ANG 发表于 2010-6-26 01:01:05

wire对应于连续赋值,reg对应于过程赋值

wire对应于连续赋值,reg对应于过程赋值
看到有新手问reg与wire,我也来讲两句。
<br>
简单来说硬件描述语言有两种用途:1、仿真,2、综合。<br>
<br>
对于wire和reg,也要从这两个角度来考虑。<br>
<br>
<br>
*********************************************************************************<br>
从仿真的角度来说,HDL语言面对的是编译器(如Modelsim等),相当于软件思路。<br>
这时:<br>
wire对应于连续赋值,如assign
reg对应于过程赋值,如always,initial
<br>
*********************************************************************************<br>
从综合的角度来说,HDL语言面对的是综合器(如DC等),要从电路的角度来考虑。<br>
这时:<br>
1、wire型的变量综合出来一般是一根导线;<br>
2、reg变量在always块中有两种情况:<br>
(1)、always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑<br>
(2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop) <br>
<br>
在设计中,输入信号一般来说你是不知道上一级是寄存器输出还是组合逻辑输出,那么对于本级来说就是一根导线,也就是wire型。而输出信号则由你自己来决定是寄存器输出还是组合逻辑输出,wire型、reg型都可以。但一般的,整个设计的外部输出(即最顶层模块的输出),要求是寄存器输出,较稳定、扇出能力也较好。<br>
<br>
不知我讲清楚了没有,大家可以跟贴讨论一下

interi 发表于 2010-6-26 01:42:05

哇,这样一说,感觉清晰多了。

ANG 发表于 2010-6-26 02:08:48

谢谢楼主,豁然开朗

CHANG 发表于 2010-6-26 03:34:33

整个设计的外部输出(即最顶层模块的输出),要求是寄存器输出,较稳定、扇出能力也较好。<br>
<br>
这句话说的很好

CCIE 发表于 2010-6-26 04:22:35

写的简明易懂

ATA 发表于 2010-6-26 06:21:57

谢谢各位版主,我会更多和大家讨论的!<br>
<br>
[ 本帖最后由 xajingle 于 2006-6-2 22:00 编辑 ]

ANG 发表于 2010-6-26 07:12:35

讲得很明白,谢谢

usb 发表于 2010-6-26 08:05:45

谢谢啊。受教了

CHANG 发表于 2010-6-26 09:17:44

写的很好啊,谢谢了

CHANG 发表于 2010-6-26 10:49:13

很清晰啊~~
页: [1] 2 3
查看完整版本: wire对应于连续赋值,reg对应于过程赋值