软件:Quartus
语言:VHDL
代码功能:
单窗口排队机电路设计
在EDA平台下使用VDL语言为工具,设计单窗口排队机电路,给每个新加入排队人员编号,并计算队伍长度。
要求:
1.进入队伍和离开队伍为外界输入信号,当前服务号码和当前队伍长度各由两个数码管显示;
2.队伍长度初始化后为0,队伍编号由1开始递增并输出;
3.队伍长度达到99后,若又有新加入人员,则输出溢出报警;
4.每个人员完成业务后由业务员点击完成,对该队伍长度进行刷新。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
分频模块
控制模块
显示模块
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; --排队设计 ENTITY?line?IS ???PORT?( ??????clk_in????:?IN?STD_LOGIC;--50MHz ??????reset_n???:?IN?STD_LOGIC;--复位 ??????in_line???:?IN?STD_LOGIC;--进队 ??????out_line??:?IN?STD_LOGIC;--出队 alarm_led?????:?OUT?STD_LOGIC;????--溢出 ??????dig_led???:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--数码管位选 ??????seg_led???:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管段选 ???); END?line; ARCHITECTURE?behave?OF?line?IS --50MHz分频到1KHz ???COMPONENT?divider?IS ??????PORT?( ?????????clk_in????:?IN?STD_LOGIC;--50MHz ?????????clk_1K????:?OUT?STD_LOGIC--分频得到1Khz ??????); ???END?COMPONENT; ???--显示模块 ???COMPONENT?display?IS ??????PORT?( ?????????clk???????:?IN?STD_LOGIC; ?????????current_num?:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--当前号码 ?????????long_num??:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--队长 ?????????dig_led???:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--数码管位选 ?????????seg_led???:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管段选 ??????); ???END?COMPONENT; ??? ???--排队控制模块 ???COMPONENT?line_ctrl?IS ??????PORT?( ?????????clk???????:?IN?STD_LOGIC;--1KHz ?????????reset_n???:?IN?STD_LOGIC;--复位 ?????????in_line???:?IN?STD_LOGIC;--进队 ?????????out_line??:?IN?STD_LOGIC;--出队 alarm_led?????:?OUT?STD_LOGIC; ?????????current_num?:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--当前号码 ?????????long_num??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--队长 ??????); ???END?COMPONENT; ??? ???SIGNAL?clk_1K????????:?STD_LOGIC; ??? ???SIGNAL?current_num???:?STD_LOGIC_VECTOR(7?DOWNTO?0);--当前号码 ???SIGNAL?long_num??????:?STD_LOGIC_VECTOR(7?DOWNTO?0);--队长 ???SIGNAL?dig_led_buf?:?STD_LOGIC_VECTOR(3?DOWNTO?0); ???SIGNAL?seg_led_buf?:?STD_LOGIC_VECTOR(7?DOWNTO?0); BEGIN ???dig_led?<=?dig_led_buf; ???seg_led?<=?seg_led_buf; ??? ???--50MHz分频到1KHz ???i_divider?:?divider ??????PORT?MAP?( ?????????clk_in??=>?clk_in,--50MHz ?????????clk_1K??=>?clk_1K--分频得到1Khz ??????); ??? ???--排队控制模块 ???i_line_ctrl?:?line_ctrl ??????PORT?MAP?( ?????????clk??????????=>?clk_1K,--1KHz ?????????reset_n??????=>?reset_n,--复位 ?????????in_line??????=>?in_line,--进队 ?????????out_line?????=>?out_line,--出队 alarm_led??=>?alarm_led,--溢出报警 ?????????current_num??=>?current_num,--当前号码 ?????????long_num?????=>?long_num--队长 ??????);
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=582
阅读全文