求EDA八路抢答器课程设计

邮箱228785201@qq.com... 邮箱228785201@qq.com 展开
 我来答
0夏至将至0
2010-12-22 · TA获得超过136个赞
知道答主
回答量:59
采纳率:0%
帮助的人:27.5万
展开全部
做过六路的抢答器设计,自己把这个再改改吧
library ieee;
use ieee.std_logic_1164.all;
entity liulu is
port(set,clk,d1,d2,d3,d4,d5,d6:in std_logic; --定义六个输入一个时钟一个复位
q:out std_logic_vector(3 downto 0); --合法抢答时的输出
fq:out std_logic_vector(5 downto 0); --非法抢答时的输出
selected: out std_logic); --判断是否有合法抢答信号
end liulu;
architecture liulu of liulu is
signal deny: std_logic; --定义锁存信号
begin
selected<=deny;
process(d1,d2,d3,d4,d5,d6,set)
variable tmp1,tmp3:std_logic_vector(5 downto 0); --定义抢答时中间变量
variable tmp2:std_logic; --定义判断是否有抢答信号的变量
begin
tmp1:=d1 & d2 & d3 & d4 & d5 & d6;
tmp2:=d1 or d2 or d3 or d4 or d5 or d6;
tmp3:=(d1 and clk)&(d2 and clk)&(d3 and clk)&(d4 and clk)&(d5 and clk)&(d6 and clk);
fq<="000000"; --定义非法抢答时输出的初始状态
if set='0' then
deny<='0';
tmp1:="000000";
q<="0000"; --定义合法抢答时输出的初始状态

if tmp2='1' then --判断是否有非法抢答
fq<= tmp3;
end if;
elsif deny='0' then --合法抢答时译码输出
case tmp1 is
when "100000"=>q<="0001" ;deny<='1';
when "010000"=>q<="0010" ;deny<='1';
when "001000"=>q<="0011" ;deny<='1';
when "000100"=>q<="0100" ;deny<='1';
when "000010"=>q<="0101" ;deny<='1';
when "000001"=>q<="0110" ;deny<='1';
when others=>q<="0000";
end case;
end if;
end process;
end liulu;
华芯测试
2024-09-01 广告
电学测试台是深圳市华芯测试科技有限公司的核心设备之一,它集成了高精度测量仪器与自动化控制系统,专为半导体芯片、电子元件及模块的电性能检测而设计。该测试台能够迅速、准确地完成电压、电流、电阻、电容及频率等关键参数的测试,确保产品质量符合行业标... 点击进入详情页
本回答由华芯测试提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式