verilog中wire和reg的用法区别

  • wire(组合逻辑)
  • reg(组合和时序逻辑)
  • 可以相互替代的情况

看到一个文档,很详细的讲了wire和reg的区别,随便记录一下

wire(组合逻辑)

wire在verilog设计中表示简单的线,规则如下:
1.在设计中wire用于将例化模块的input、output端口和其他元素连接
2.在声明模块时wire可以做input和output
3.wire只能被驱动,不能存储值
4.在always@块中wire不能在=或<=的左边
5.assign只允许wire型变量在=左边
6.wire elements are a stateless way of connecting two peices in a Verilog-based design(不太懂意思)

无状态对象(Stateless Bean),就是没有实例变量的对象,不能保存数据,是不变类。

7.wire只能用来建模组合逻辑

reg(组合和时序逻辑)

reg与wires相似,但是可以用来像寄存器一样存储信息,规则:
1.reg可以用来连接例化模块的input
2.reg不能连接例化模块的output
3.reg可以用作模块声明的output
4.reg不能用作模块声明的input
5.reg是唯一可以在always@块中放在<=或=左边的类型
6.reg是唯一可以在initial块中放在=左边的类型
7.reg不能放在assign语句中的=左边
8.在always@(posedge clk)中可以综合为寄存器
9.reg可以创造时序和组合逻辑

可以相互替代的情况

1.都可以放在assign = 的右边和always@ <= 或 = 的右边
2.都能作为例化模块的input

不少人都认为verilog中区分wire和reg是有一定历史包袱和缺陷的,不然sv中为啥要再设计一个logic呢?所以我觉得不要强求自己从实际电路中理解wire和reg,像我这种新手就应该牢记规则去用就好了_

verilog中wire和reg的用法区别相关推荐

  1. 萌新食用:Verilog中wire和reg数据类型的区别

    萌新食用:Verilog中wire和reg数据类型的区别 最近恰好在学习数电相关知识扯到Verilog中的wire与reg类型数据的区别: 总的来说,其实就一句话:wire相当于物理连线,而reg相当 ...

  2. Verilog中wire与reg类型的区别

    这是事转载的一篇文章,觉得不错,虽然中间有点小错误. wire与reg类型的区别: wire型数据常用来表示以assign关键字指定的组合逻辑信号.模块的输入输出端口类型都默认为wire型.默认初始值 ...

  3. Verilog中wire与reg类型的区别(转载自http://www.cnblogs.com/farbeyond/p/5204586.html)

    wire与reg类型的区别: wire型数据常用来表示以assign关键字指定的组合逻辑信号.模块的输入输出端口类型都默认为wire型.默认初始值是z. reg型表示的寄存器类型.always模块内被 ...

  4. Verilog 中 wire 和 reg 数据类型区别

    两者差别很大,完全不能取消. 在Verilog中,wire永远是wire,就是相当于一条连线,用来连接电路,不能存储数据,无驱动能力,是组合逻辑,只能在assign左侧赋值,不能在always @ 中 ...

  5. verilog中wire和reg的区别,什么时候用wire?什么时候用reg?

    相信很多和我一样刚开始接触verilog语言的小白都会有这样的困惑,wire型变量和reg型变量到底有什么区别?什么情况下使用wire定义变量.什么情况下使用reg定义变量?下面就详细分析两者在使用中 ...

  6. jquery中this与$(this)的用法区别.

    2019独角兽企业重金招聘Python工程师标准>>> jquery中this与$(this)的用法区别.先看以下代码: $("#textbox").hover( ...

  7. Java中PreparedStatement和Statement的用法区别

    Java中PreparedStatement和Statement的用法区别 (2012-08-01 11:06:44) 转载▼ 标签: 杂谈   1. PreparedStatement接口继承Sta ...

  8. php request time,php中time()与$_SERVER[REQUEST_TIME]用法区别分析

    php中time()与$_SERVER[REQUEST_TIME]用法区别分析 发布于 2015-01-26 08:56:46 | 143 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本 ...

  9. Python中的 // 和 / 和 % 的用法区别

    Python中的 // 和 / 和 % 的用法区别

最新文章

  1. 网络营销外包专员浅析从用户角度出发如何完善网络营销外包?
  2. java中过滤器、监听器、拦截器的区别
  3. sql 为什么要用where 1=1或者where 1 =0 ?
  4. 从串口驱动的移植看linux2.6内核中的驱动模型 platform device platform driver【转】...
  5. ROS笔记(26) Movelt!
  6. 随想录(学习使用virtualbox软件)
  7. VScode 搭建 django 开发环境(MAC、Python3.7)
  8. 序列二次规划——SQP
  9. 【Python量化】蒙特卡洛模拟法预测股价走势
  10. 计算机d盘无法格式化,为什么不能格式化D盘?D盘无法格式化的解决方法
  11. 一步一步教你写股票走势图——分时图四(高亮联动)
  12. html如何缩进对齐,CSS:文本样式(缩进/对齐/字符间隔/文本装饰/空白格处理)_html/css_WEB-ITnose...
  13. 【记录】那些很实用的Nginx规则
  14. 2019年数学建模国赛(国一)经历总结
  15. k神讲故事-金融的结局
  16. UCK将私钥硬件化 是数字资产安全储存的又一次革新
  17. Java几种定时发送消息
  18. airpods pro是按压还是触摸_外媒曝AirPods Pro出现广泛故障:触摸和佩戴识别失效...
  19. Qt实现计算器(包含算术运算和逻辑运算),纯干货,一步步超详细过程
  20. ApiPost下载、安装

热门文章

  1. 字节小游戏SDK-ios切支付方案
  2. seo怎么发外链(你不知道的seo发外链技巧和方法)
  3. 数据包络分析及模糊综合评价法各自的优点,缺点,应用范围
  4. java 数组的克隆
  5. ffmpeg移植Android方法以及常见问题汇总
  6. 物联网方案分析的几个哲学命题
  7. 十年了,Hadoop的前世今生
  8. 安卓大作业 安卓小游戏 养宠物战斗游戏(可以注册登录)
  9. 开放数据平台、助力国家实验室:盘点默默耕耘在数据科学领域的清华力量
  10. 明月学Mybatis:小结(一)