• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

单窗口排队机电路设计VHDL代码Quartus仿真

07/04 09:19
589
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24011F9294O12.doc

共1个文件

名称:单窗口排队机电路设计VHDL代码Quartus仿真

软件: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

  • 2-24011F9294O12.doc
    下载

相关推荐