找回密码
 注册
搜索
查看: 935|回复: 2

[讨论] reg & wire的区别zz

[复制链接]
发表于 2006-6-30 08:39:00 | 显示全部楼层 |阅读模式
我刚刚看到有人在讲reg & wire

那我就把我几年有关寄存器类型和线网类型经验拿出来和大家分享吧:
注意:
1.        寄存器类型变量只能用过程赋值语句赋值。
2.        在具体实现时,整数(inteter)类型的变量至少用32为,时间(time)类型的变量至少用64为寄存器。
3.        存储器类型数组中的每个元素作为整体可以进行读或写操作,如果要单独访问数组中某个元素的个别位,  则必须先把这个元素的内容赋值到某个位数相同的寄存器变量中才能进行。
4.        Realtime类型寄存器变量是verilog语言新增加的变量类型,目前还没有任何工具支持这种类型的变量。
5.        有符号和无符号值的概念,在不同版本的Verilog中和用不同厂家的仿真器时,并不是完全一致,因此,当使用位宽大于32位的有符号数或矢量时要特别注意。

可综合性问题:
1.        在描述组合逻辑的always块中,寄存器被综合成wire型;如果存在不完整赋值的情况,则被综合成锁存器,
2.        在描述时序逻辑的always块中,寄存器根据块内语句的内容被综合成连线(wire)或者触发器。
3.        运用目前的综合工具,整数被综合成32位,其值用二进制数表示,负数则用其二进制补码表示。
4.        根据所用语句,存贮器数组会被综合成触发器或连线,而不会被综合成RAM或ROM的器件。

提示:
运用reg类型变量来描述寄存器逻辑,integer类型变量用于循环变量和计数,real类型变量用于系统模块,time和realtime类型变量用于测试模块中记录仿真时刻。


2.        每个端口不但要声明是输出、输入、还是双向端口,而且还要声明是连线(wire)还是寄存器(reg)类型,如果没声明,则会隐含地认为该端口是连线(wire)类型,且其位宽与相应地端口一致。如果某端口已被声明为一矢量,则其端口的方向和类型两个声明中的位宽必须一致。
3.        输入和双向端口不能声明为寄存器类型。 [br]<p align=right><font color=red>+1 RD币</font></p>
发表于 2006-10-15 21:59:00 | 显示全部楼层
好东西,赞一个~~~
点评回复

使用道具 举报

发表于 2007-5-18 22:54:00 | 显示全部楼层
顶一下
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-9-29 22:22 , Processed in 0.046476 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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