集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 11887|回复: 29

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

[复制链接]
ANG 发表于 2010-6-26 01:01:05 | 显示全部楼层 |阅读模式
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 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 17:08 , Processed in 0.075155 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表