地铁自动售票机(基于FPGA)设计 下载本文

顶层模块代码如下:

module top(pri_3,pri_4,pri_5,pri_6,qua_1,qua_2,coin_1, coin_5,coin_10,coin_20,

rd,finish,clk1,clk2,outw,outz,act_1,act); Input pri_3,pri_4,pri_5,pri_6,qua_1, qua_2,coin_1,coin_5,coin_10, coin_20,rd,clk1,clk2,finish;

output act_1; output[3:0] act; output[5:0] outw; output[6:0] outz; wire act_1; wire[3:0] act; wire[5:0] outw; wire[6:0] outz;

wire[3:0] w1,w2,w3,w5,w6,w7,w8,w10; wire[2:0] w9;

wire[4:0] w4;

Xuanpiao x1(.pri_3(pri_3),.pri_4(pri_4), .pri_5(pri_5),.pri_6(pri_6),

.qua_1(qua_1),.qua_2(qua_2),.clk(clk1), .rd(rd),.pri(w2),.qua(w3),.cost(w1)); Toubi t1(.coin_1(coin_1),.coin_5(coin_5), .coin_10(coin_10),.coin_20(coin_20), .clk(clk1),.rd(rd) ,.coinh(w5), .coinl(w6),.coin(w4));

zhaoling z1(.pri_in(w2),.cost_in(w1),.coin_in(w4), .finish(finish),.clk(clk1),.rd(rd),.act(act), .act_1(act_1),.rest(),.restl(w8),.resth(w7));

counter6 c1(.clk2(clk2),.out(w9));

select6_1 s1(.out(w10),.in0(w2),.in1(w3),.in2(w5), .in3(w6),.in4(w7),.in5(w8),.sel(w9)); weixuan w(.din(w9),.out(outw)); zixing z(.din(w10),.out(outz));

endmodule

顶层综合文件如下:

各个子模块分析 2.1 车票选择模块

车票选择模块是指对商品进行选择与购买。车票分为票价3元,4元,5元,6元,共4种车票,乘客可以选择所要购买的票数(1张票,2张票)。

车票选择模块如图4所示:

1)输入

①rd:模块复位信号,将所有输出信号清零。作为开始一次购票过程的按键,也可以作为让乘客重新选票的按键。

②clk:模块的时钟信号。

④pri_3,pri_4,pri_5,pri_6:将其中一个置高电平,作为选择一种票价(3元,4元,5元,6元)。