我是靠谱客的博主 迅速学姐,最近开发中收集的这篇文章主要介绍verilog中wire和reg的用法区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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的用法区别的全部内容,希望文章能够帮你解决verilog中wire和reg的用法区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部