带优先级的叫号机电路设计

大作业

429350261@qq.com

1. 设计思路

思路:

1. clk_vip监控VIP按键次数
2. clk_custom监控普通客户
3. clk_waiter监控waiter按键次数(按优先级分为clk_waiter_vip和clk_waiter_custom)
1. 判断len_vip队列是否为空
2. 判断len_custom队列是否为空
4. len长度输出
len = len_vip + len_custom;
len_vip = clk_vip-clk_waiter_vip;
len_custom = clk_custom-clk_waiter_custom;

端口:

port(clk,clk_vip,clk_waiter,clk_custom:in std_logic;
         len:out std_logic_vector(6 downto 0);       --长度输出端口(0~20)
         waiter:out std_logic_vector(6 downto 0);    --服务数据端口
         vip_sign : out std_logic_vector(3 downto 0);--vip客户标志位
         man:out bit:='0');                          --队满指示灯

信号:

	signal  rst : bit:='0';                                          --队长满20停止信号
	signal  vip_key,custom_key,                                      --客户按键数量
			waiter_vip,waiter_custom,                                --服务员按键数量
			len_vip,len_custom,len_sign:std_logic_vector(6 downto 0);--客户长度与等待长度

2. 编译与下载

1. 原理图

原理图

2. 运行截图

在这里插入图片描述

3. 源代码

1. 主程序逻辑

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity main is
	port(clk,clk_vip,clk_waiter,clk_custom:in std_logic;
         len:out std_logic_vector(6 downto 0);    --长度输出端口(0~20)
         waiter:out std_logic_vector(6 downto 0);  --服务数据端口
         vip_sign : out std_logic_vector(3 downto 0);--vip客户标志位
         man:out bit:='0'
        );
end main;
architecture behav of main is
    signal  rst : bit:='0';                                      --队长满20停止信号
	signal  vip_key,custom_key,                             --客户按键数量
			waiter_vip,waiter_custom,     
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ISE.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值