有关寄存器类型和线网类型经验reg & wire的区别
我刚刚看到有人在讲reg wire那我就把我几年有关寄存器类型和线网类型经验拿出来和大家分享吧:
注意:
1寄存器类型变量只能用过程赋值语句赋值。
2在具体实现时,整数(inteter)类型的变量至少用32为,时间(time)类型的变量至少用64为寄存器。
3 存储器类型数组中的每个元素作为整体可以进行读或写操作,如果要单独访问数组中某个元素的个别位,则必须先把这个元素的内容赋值到某个位数相同的寄存器变量中才能进行。
4Realtime类型寄存器变量是verilog语言新增加的变量类型,目前还没有任何工具支持这种类型的变量。
5有符号和无符号值的概念,在不同版本的Verilog中和用不同厂家的仿真器时,并不是完全一致,因此,当使用位宽大于32位的有符号数或矢量时要特别注意。<br>
可综合性问题:
1.在描述组合逻辑的always块中,寄存器被综合成wire型;如果存在不完整赋值的情况,则被综合成锁存器,
2.在描述时序逻辑的always块中,寄存器根据块内语句的内容被综合成连线(wire)或者触发器。
3.运用目前的综合工具,整数被综合成32位,其值用二进制数表示,负数则用其二进制补码表示。
4.根据所用语句,存贮器数组会被综合成触发器或连线,而不会被综合成RAM或ROM的器件。
提示
运用reg类型变量来描述寄存器逻辑,integer类型变量用于循环变量和计数,real类型变量用于系统模块,time和realtime类型变量用于测试模块中记录仿真时刻
2每个端口不但要声明是输出、输入、还是双向端口,而且还要声明是连线(wire)还是寄存器(reg)类型,如果没声明,则会隐含地认为该端口是连线(wire)类型,且其位宽与相应地端口一致。如果某端口已被声明为一矢量,则其端口的方向和类型两个声明中的位宽必须一致。
3 输入和双向端口不能声明为寄存器类型。 好贴!!! 是呀!我最近也在搞这块,就只知道一个输入一个输出!<br>
现在还好看到这么多!不错! 多谢楼主共享 归纳得不错 归纳的很好,谢谢 恩,不错,赞一个 还是不知道wire型是做啥用的!! 支持支持,好贴啊 支持好贴!