·设计目标:
本设计完成基于Verilog HDL的自动售票系统,综合软件用Quartus II8.1。
本自动售票系统可以完成1元、2元、3元、4元四种票的自动售出,货币种类可以是1元、5元、10元、50元、100元,能自动找零和显示
·总体设计:
共有四个主要模块和一个顶层模块:四个模块分别是主控模块、统计模块、出票模块和找零模块;顶层模块负责各模块间的连接,组成一个可用的自动售票系统。
总体结构如下:
·各模块设计:
统计模块:
根据各种货币输入,统计出总钱数提供给主控模块。每次售票完成后总钱数自动归零(主控模块提供售票完成信号,计数清零)
代码如下:
1://统?计?钱?数?模?块?2:module count ( rst,//复?位?高?有??3:clr,4: ci1,ci5,ci10,ci50,ci100,//1元?、?元?、?元?、?元?、?元?输?入?5:cout//统?计?出?的?总?钱?数?6:);7:8:input rst;9:input clr;//清?零?信?号?10:input ci1,ci5,ci10,ci50,ci100;//高?脉?冲?有??11:output [7:0] cout;12:13:reg [2:0] q1,q5,q10,q50,q100;14:15:assign cout = q1 + 5*q5 + 10*q10 + 50*q50 + 100*q100;16:17://一?元?计?数?18:always @ (posedge rst or posedge clr or posedge ci1)19:begin20:if(rst==1) q1