打印

大侠帮忙看下这段VHDL代码

[复制链接]
1568|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
le062|  楼主 | 2010-12-18 19:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 le062 于 2010-12-27 17:03 编辑

我要做个智力抢答器,下面是抢答判断的代码
我用了个VARIABLE SC:INTEGER 用来锁存判断
但是仿真的时候 当 CLR=0 AND RST=0,输出A1, B1, C1, D1就都是不定值了
LIBRARY IEEE; 
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY QDJB IS
PORT (CLR,RST: IN STD_LOGIC;
A, B, C, D: IN STD_LOGIC;
A1, B1, C1, D1: OUT STD_LOGIC;
G: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));
END QDJB;
ARCHITECTURE ART OF QDJB IS
CONSTANT W1: STD_LOGIC_VECTOR:="1010";
CONSTANT W2: STD_LOGIC_VECTOR:="1011";
CONSTANT W3: STD_LOGIC_VECTOR:="1100";
CONSTANT W4: STD_LOGIC_VECTOR:="1101";
CONSTANT FOUL: STD_LOGIC_VECTOR:="1111";
BEGIN
PROCESS(CLR,RST)
VARIABLE SC:INTEGER:=00;
BEGIN
IF(CLR='1'OR RST='1')THEN
IF(A='0'AND B='0'AND C='0'AND D='0')THEN
A1<='0'; B1<='0'; C1<='0'; D1<='0';G<="1110";SC:=01;
ELSIF((A='1'AND (SC=01))OR (SC=02))THEN
A1<='1'; B1<='0'; C1<='0'; D1<='0';G<=FOUL;SC:=02;
ELSIF((B='1'AND (SC=01))OR (SC=03))THEN
A1<='0'; B1<='1'; C1<='0'; D1<='0';G<=FOUL;SC:=03;
ELSIF((C='1'AND (SC=01))OR (SC=04))THEN
A1<='0'; B1<='0'; C1<='1'; D1<='0';G<=FOUL;SC:=04;
ELSIF((D='1'AND (SC=01))OR (SC=05))THEN
A1<='0'; B1<='0'; C1<='0'; D1<='1';G<=FOUL;SC:=05;
END IF;
ELSE
IF ((A='1'AND (SC=01))OR (SC=06))THEN
A1<='1'; B1<='0'; C1<='0'; D1<='0';G<=W1;SC:=06;
ELSIF((B='1'AND (SC=01))OR (SC=07))THEN
A1<='0'; B1<='1'; C1<='0'; D1<='0';G<=W2;SC:=07;
ELSIF((C='1'AND (SC=01))OR (SC=08))THEN
A1<='0'; B1<='0'; C1<='1'; D1<='0';G<=W3;SC:=08;
ELSIF((D='1'AND (SC=01))OR (SC=09))THEN
A1<='0'; B1<='0'; C1<='0'; D1<='1';G<=W4;SC:=09;
ELSE A1<='0'; B1<='0'; C1<='0'; D1<='0';G<="0000";
END IF;
END IF;
END PROCESS;
END ART;
我是改别人代码的 这个抢答锁存功能一直搞不定
谢谢

--
问题搞定 其实没啥问题

相关帖子

沙发
mr.king| | 2010-12-19 08:11 | 只看该作者
你用IF          ELSIF          ELSE       三个状态 把CLR=‘0’ RST=‘0’的状况写出来

使用特权

评论回复
板凳
岚369| | 2011-5-14 19:44 | 只看该作者
可能是仿真的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

435

帖子

4

粉丝