顶层模块代码如下:
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元)。