wire型和reg型的一点小疑惑

似水如烟   2011-8-2 20:29 楼主

今天在看书时发现一点疑惑,问题大致是这样的:

一个电路网络,要对其中一个2输入与门的输出(定义为tmp吧,其实此处并不存在端口或变量)进行一些赋值操作,。在Verilog编程中按说是应该把其定义为wire型变量,可是今天看的一个例子却定义成了reg型,当然在使用tmp是在always模块中,我也知道在always模块中需要赋值的变量应该定义为reg型,是不是此时对tmp定义为reg型也同样兼容了wire型。是不是只有在组合逻辑时才可以定义为wire型变量,还是因为上者的情况是在always模块中的缘故。自己没法确定

回复评论 (9)

好像是always 我初学 也老是搞不清楚
点赞  2011-8-2 23:14

组合逻辑的输出看你用在啥地方?

如果用在always模块之外,定义成WIRE;

例如二输入的与逻辑

assign c=a & b;

定义成WIRE类型,好处,C值随着A,B值立即变化,不受时钟或其他信号的影响。

 

如果定义成REG,一定要always 模块赋值

例如always ( a or b)

 begin

   c<=a & b;

 end

 

上面两种表达方法,电路的形式一样,结果一样。只是表达方法不同罢了。

 

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-8-3 07:57

回复 楼主 似水如烟 的帖子

上面说的对
组合逻辑既可以写成always 使用reg
也可以写成assign 使用wire
电路的形式一样,结果一样。
点赞  2011-8-4 09:31

回复 板凳 eeleader 的帖子

正解!
点赞  2011-8-10 10:35
学习了
点赞  2011-8-10 11:09
受教了
点赞  2011-8-18 09:25
3F正解
点赞  2011-9-1 23:51

哈哈!

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-9-6 21:02
verilog编程中
wire型:1.模块间互连
        2.assign语句
reg型:always语句
       initial语句(仿真)
点赞  2011-9-16 06:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复