返回信息流☆─────────────────────────────────────☆
did (铭铭→★光棍帮05级分舵主★) 于 (Thu May 17 01:14:37 2007) 提到:
4位2进制计数器 其中reset为异步复位控制端 add_min为加减记数选择端
实在不知道怎么改了 望各位指点 谢谢!!
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_unsigned.all;
ENTITY counter2 IS
PORT ( clk : IN std_logic;
reset : IN std_logic;
add_min : IN std_logic;
q : BUFFER std_logic_vector(3 DOWNTO 0)
);
END counter2;
ARCHITECTURE dataflow OF counter2 IS
BEGIN
PROCESS (add_min,reset,clk)
BEGIN
IF( add_min='1') THEN
IF ( reset='1') THEN
q<=(others =>'0');
ELSIF ( clk'event and clk='1') THEN
q<=q+1;
END IF;
ELSIF( add_min='0') THEN
IF ( reset='1') THEN
q<=(others =>'1');
ELSIF ( clk'event and clk='1') THEN
q<=q-1;
END IF;
END IF;
END PROCESS;
END dataflow;
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Thu May 17 01:21:07 2007) 提到:
这个肯定不对的...应该这样
if reset='1' then
q1<=(others=>'0');
elsif ( clk'event and clk='1') THEN
if add_min='1' then
q1<=q1+1;
else
q1<=q1-1;
end
end
q<=q1;
q1是个内部的signal,q直接是out类型,不要用buffer
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Thu May 17 01:22:11 2007) 提到:
然后process敏感量里面只有clk和reset,不要addmin
☆─────────────────────────────────────☆
did (铭铭→★光棍帮05级分舵主★) 于 (Thu May 17 01:24:01 2007) 提到:
但是如果注释掉一部分只进行加法或减法记数为什么行的通呢?
刚刚接触 不怎么懂 谢谢啊
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Thu May 17 01:25:02 2007) 提到:
因为你不能把clk'event这个语句放在另一个if then里面的
☆─────────────────────────────────────☆
did (铭铭→★光棍帮05级分舵主★) 于 (Thu May 17 01:26:44 2007) 提到:
【 在 kidd 的大作中提到: 】
: 因为你不能把clk'event这个语句放在另一个if then里面的
终于明白了 谢谢哈
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Thu May 17 01:27:36 2007) 提到:
没问题!^_^
☆─────────────────────────────────────☆
did (铭铭→★光棍帮05级分舵主★) 于 (Thu May 17 01:28:46 2007) 提到:
各种崇拜 kidd强人啊
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Thu May 17 01:54:43 2007) 提到:
呵呵,过奖了..
☆─────────────────────────────────────☆
PIR (piratekkk) 于 (Thu May 17 18:24:37 2007) 提到:
【 在 kidd 的大作中提到: 】
: 因为你不能把clk'event这个语句放在另一个if then里面的
楼上说的好像有一点问题,其实这是可以的,LZ错在不应该将"end if" 写在elsif中间, 无论有几个if,或elsif,都应该在最后才写end if语句,否则系统肯定会报错
☆─────────────────────────────────────☆
teamo (云漫天涯) 于 (Thu May 17 18:26:49 2007) 提到:
【 在 PIR (piratekkk) 的大作中提到: 】
: 楼上说的好像有一点问题,其实这是可以的,LZ错在不应该将"end if" 写在elsif中间,
~~~~~~~~~~
这个是对内层判断的结尾,我觉得没什么问题
: 无论有几个if,或elsif,都应该在最后才写end if语句,否则系统肯定会报错
☆─────────────────────────────────────☆
PIR (piratekkk) 于 (Thu May 17 18:28:49 2007) 提到:
但是我编过很多的有用到if的这么做都不能编译通过
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Thu May 17 19:37:27 2007) 提到:
都写在最后,岂不是逻辑都混乱了...
【 在 PIR 的大作中提到: 】
: 楼上说的好像有一点问题,其实这是可以的,LZ错在不应该将"end if" 写在elsif中间, 无论有几个if,或elsif,都应该在最后才写end if语句,否则系统肯定会报错
☆─────────────────────────────────────☆
wzh0001 (wuzhuang) 于 (Thu May 17 22:22:01 2007) 提到:
呵呵,水平还是有明显差距的~~~
多看,多练~~
☆─────────────────────────────────────☆
did (铭铭→★光棍帮05级分舵主★) 于 (Thu May 17 23:05:19 2007) 提到:
迷糊了……
☆─────────────────────────────────────☆
RhettButler (TomorrowIsAnotherDay) 于 (Sat May 19 16:36:16 2007) 提到:
if少用。。。
这是一条镜像帖。来源:北邮人论坛 / circuit / #1141同步于 2007/6/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
[合集] 这段VHDL程序错在哪了呢?
pooh1949
2007/6/5镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。