EDA地铁售票系统长沙理工范文Word文档格式.docx
- 文档编号:21621373
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:16
- 大小:182.87KB
EDA地铁售票系统长沙理工范文Word文档格式.docx
《EDA地铁售票系统长沙理工范文Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA地铁售票系统长沙理工范文Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
3.客一次只能选择一个出站口,根据乘坐的站数确定票价。
假设乘客购票所在站到终点站共有19站。
若乘坐1--5站,则票价为2元/张;
若乘坐6-10站,则票价为3元/张。
19个站用长度位5的二进制向量编码表示,即00001表示乘坐1站,00010表示乘坐2站,依次类推,10011表示乘坐19站(到终点站)。
4.票机有1个进币端口。
硬币口可识别1元硬币,用单独信号的上升沿方式表示,纸币口类似,用长度为4的二进制编码方式表示。
乘客可以连续多次投入钱币,并且可以以任意顺序投入硬币和纸币
系统流程图
1选站状态当“确认”信号为高电平时,输入站点信号(0-19)被读入有效,确认票型,赋给相应暂存变量并进入选票数状态。
当站点为前4站时,票为2元票,后每加5个站加一块钱。
否则当“确认”信号为低电平,所处状态不变,系统没有录入有效信息。
直至用户按下“确认”键前,选择的站点后选的覆盖先选的。
②选票数状态当“确认”信号为高电平时,输入票数(1-6)信号被读入有效,赋给相应暂存变量,计算出应付总金额,并进入付款状态。
这里需参考选站状态时确定的票类型计算总金额。
直至用户按下“确认”键前,选择的票数后选的覆盖先选的。
③付款状态用户每投入钱币,系统更新“已付金额”。
若“已付金额”不小于“应付金额”,系统进入找零及出票状态。
若不足,系统任处于付款准备状态,直至金额足够。
若中途用户按下“取消”键,系统进入退款准备状态。
④退款准备状态系统计算出应退金额,并按钱的面值从大到小的优先级算出每种面值的钞票应该付几张。
系统进入结束状态。
⑤找零及出票准备状态系统计算出应找金额,并按钱的面值从大到小的优先级算出每种面值的钞票应该付几张。
系统计算出出票的种类和票数。
系统并将所有数据清除,进入下一个购票环节。
程序代码:
modulesubway_tb;
regrst;
regclk;
regget;
regcancel;
reg[4:
0]sel_in;
0]sel_out;
reg[3:
0]count;
regci_1;
regci1;
regci5;
regci10;
wireco1;
wireco2;
wireco3;
wireco4;
wirecak1;
regget_1;
subwaysu(
.rst(rst),
.clk(clk),
.get(get),
.cancel(cancel),
.sel_in(sel_in),
.sel_out(sel_out),
.ci_1(ci_1),
.ci1(ci1),
.ci5(ci5),
.ci10(ci10),
.co1(co1),
.co2(co2),
.co3(co3),
.co4(co4),
.cak1(cak1),
.get_1(get_1),
.count(count)
);
initial
begin
rst=1;
//forever#10clk=!
clk;
cancel=0;
#100;
rst=0;
sel_in=5'
b00111;
sel_out=5'
b00001;
count=4'
b0011;
get_1=1'
b1;
get=1'
ci_1=1'
ci10=1'
ci5=1'
#150;
b0000;
b0;
b00000;
#3000
//----------------
cancel=1'
end
endmodule
modulesubway(
rst,
clk,
get,
get_1,
cancel,
sel_in,
sel_out,
count,
ci_1,
ci1,
ci5,
ci10,
co1,co2,co3,co4,
cak1,
inputrst,clk;
inputget,cancel;
inputci_1,ci1,ci5,ci10;
input[3:
0]count;
input[4:
0]sel_in;
0]sel_out;
inputget_1;
outputco1,co2,co3,co4;
outputcak1;
wire[7:
0]cout;
wirefinish;
wirefinishp;
wire[3:
0]sel;
wireen;
wireclr;
0]mount;
modulezhan(
rst,
clk,
clr,
get_1,
sel_in,
sel_out,
sel
inputrst;
inputclk;
inputclr;
outputreg[3:
0]a;
always@(posedgeclk&
&
get_1)
if(!
rst==0)a=4'
elseif(!
clr==0)a=4'
elseif(sel_in>
=sel_out)
a<
=((sel_in-sel_out)/5)+1;
elseif(sel_in<
sel_out)
=~((sel_in-sel_out)/5)+2;
end
always@(posedgeclk)
begin
case(a)
4'
b0001:
sel=4'
b0010;
b0010:
b0011:
b0100;
b0100:
b0101;
default:
sel=4'
endcase
end
modulecount(clk,
ci_1,
ci1,
ci5,
ci10,
cout
inputrst;
inputclk;
inputclr;
inputci_1,ci1,ci5,ci10;
output[7:
0]cout;
reg[2:
0]q1,q5,q10,q_1;
assigncout=q1+5*q5+10*q10+1*q_1;
always@(posedgerstorposedgeclrorposedgeci1)
if(rst==1)q1<
=0;
elseif(clr==1)q1<
else
q1=q1+1;
always@(posedgerstorposedgeclrorposedgeci5)
if(rst==1)q5<
elseif(clr==1)q5<
q5=q5+1;
always@(posedgerstorposedgeclrorposedgeci10)
if(rst==1)q10<
elseif(clr==1)q10<
q10=q10+1;
always@(posedgerstorposedgeclrorposedgeq_1)
if(rst==1)q_1<
elseif(clr==1)q_1<
q_1=q_1+1;
endmodule
modulezhao(rst,
clr,
finishp,
mount,
cak1
inputfinishp;
input[7:
0]mount;
outputcak1;
regregcak1;
reg[7:
0]q;
assigncak1=regcak1;
always@(posedgeclk&
finishp==1)
if(mount!
=0)
q=mount;
if(q)
regcak1=1;
q=q-1;
if(!
q)
regcak1=0;
endmodule
modulecontrl(
get,
sel,//
count,//
cout,//
mount,//
finish,
finish_done,//
finishp,
en//
//
inputget,cancel;
input[3:
0]sel;
outputregfinish_done;
outputreg[7:
outputregfinish,finishp;
outputregen;
always@(posedgerstorposedgeclk)
finish_done=0;
if(rst==1)
mount<
finish<
finishp<
en<
else
if((get==1)&
(cout>
=sel*count))
=1;
finish_done<
=1;
mount=cout-sel*count;
elseif((cancel==1)||((get==1)&
(cout<
sel*count)))
=cout;
modulechupiao(rst,clk,clr,
en,
sel,
co1,co2,co3,co4);
inputrst,clk,clr;
inputen;
outputco1,co2,co3,co4;
reg[3:
//reg[3:
0]qsel;
0]qcount;
assignco1=q[0];
assignco2=q[1];
assignco3=q[2];
assignco4=q[3];
always@(posedgeclk&
en==1)
if(rst==1)qcount<
if(count!
qcount=count;
if(qcount&
sel==2)
q[0]=1;
qcount<
=qcount-1;
qcount)
q[0]=0;
结束语
在此次课程设计中,我们收获了许多,不仅在知识学习方面,而且在动手能力方面、团结合作能力等方面都有了一定的成就。
首先,在知识学习方面,虽然我们开始有在计算机组成原理这一门课程中接触过verilogL这一门语言,但是我们都还不是很了解,只知道它由实体、结构体组成,其余的就不是很了解,但是在此次课程设计中,我们有了比较详细的了解,基本能够写出一个比较完整的程序。
这两周的自学中,我们也体会到了自学得快乐。
其次,在动手能力方面,很多时候我们都是知识不能够结合实践,所以很多时候我们都不知道应该怎么样开始,不过此次由于有了老师的详细讲解,所以,我们能够很快知道接下来应该做什么,有什么作用,得出什么结果。
最后,在团结合作能力方面,虽然每个人有每个人的题目板块,但是我们还是充分发挥了我们的团结合作能力,找到程序的同学帮没找到的同学找,有什么错误的大家一起讨论,一起找资料解决,最后,实在不行还有我们坚强的后盾——我们的指导老师,所以我们合作得很快乐。
在这次设计过程中,体现出团队设计的能力以及综合运用知识的能力,体会了学以致用、突出劳动成果的喜悦心情,从中发现平时学习的不足和薄弱环节,从而加以弥补。
同时,也再次体会到了学习合作的快乐。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 地铁 售票 系统 长沙 理工 范文