[Verilog HDL] verilog初学者的一个问题,希望各位指教!

[复制链接]
2731|3
 楼主| sky840723 发表于 2007-4-2 15:45 | 显示全部楼层 |阅读模式
其实就是很简单的一个小程序,两个输入m、c,一个输出n。当输入c为1时,n对m取反。我自己写的程序如下:<br />module&nbsp;a(m,n,c);<br />input&nbsp;c,m;<br />output&nbsp;n;<br />if(c)<br />assign&nbsp;n=~m;<br />endmodule<br />不知为什么无法通过编译,可自己又不知哪里出错。将if(c)那行去掉就可以通过编译,可是达不到预期效果。<br />这个程序是有些白痴,因为我是初学者,刚开始的。<br />希望各位大哥指导,不胜感激!
flyicdsp 发表于 2007-4-2 16:29 | 显示全部楼层

是不是要else啊,要不有latch了

另外if也不能写assign吧,这个不是很懂
一尘w 发表于 2007-4-2 18:38 | 显示全部楼层

m c是电平触发,必须用always结构

module&nbsp;test(m,n,c);<br />input&nbsp;c,m;<br />output&nbsp;n;<br />reg&nbsp;n;<br /><br />always&nbsp;@(m&nbsp;or&nbsp;c)<br />begin<br />if(c)<br />n=~m;<br />end<br />endmodule<br />我没有做仿真,不过编译是通过了
 楼主| sky840723 发表于 2007-4-3 09:04 | 显示全部楼层

多谢了!

通过了编译,仿真结果也是正确的。<br />感谢楼上的两位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部