BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #1141同步于 2007/6/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

[合集] 这段VHDL程序错在哪了呢?

pooh1949
2007/6/5镜像同步0 回复
☆─────────────────────────────────────☆ 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少用。。。
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。