Chinaunix首页 | 论坛 | 博客
  • 博客访问: 370787
  • 博文数量: 50
  • 博客积分: 1495
  • 博客等级: 上尉
  • 技术积分: 805
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-21 14:19
文章分类

全部博文(50)

文章存档

2011年(47)

2010年(3)

分类: 嵌入式

2010-12-28 20:01:46

                      verilog中的reg 和 wire类型的区别

 这几天和公司出了点不愉快的事情,一切都定下来了,只有安安心心的学习了!

  继续学verilog...

  在前面简单的介绍了reg和wire的定义。
 
  到网上搜了些资料,根据自己的理解总结了一下reg和wire的区别:
  1.reg相当于存储单元,wire相当于物理连线;

  2.输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以使 wire/reg类型,输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为wire型。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型;输入和双向端口不能声明为寄存器类型。

  3.wire表示直通,即只要输入有变化,输出马上无条件的反映;reg表示一定要有触发,输出才会反映输入。

  4.从仿真的角度老说,wire只能被assign连续赋值;reg只能在initial和always中赋值。
    wire使用在连续赋值语句中,而reg使用在过程赋值语句中。
  
  5.从综合的角度来说
    wire型变量综合出来一般是一根导线;
    reg型变量在always块中有两种情况:
      (1)always后的敏感表中是(a or b)形式的,也就是不带时钟边沿的,综合出来的是组合逻辑。
      (2)always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来的一般是时序逻辑,会包含触发器。

   6.如果不指定reg,缺省情况下是1位wire型变量。

   7.
reg存器型数据保持最后一次的赋值,而wire线网型数据需要持续的驱动。

   参考网页:
            %BA%CDwire%B5%C4%C7%F8%B1%F0


                        end...............
阅读(1933) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:verilog学习笔记之基础篇续2

给主人留下些什么吧!~~