Wire与Reg的使用方式测试报告

本文详细介绍了Verilog中Wire与Reg的使用,包括基本概念、赋值、端口和例化。Wire通常用于组合逻辑,Reg则可能涉及时序逻辑。在模块例化中,输入建议使用Reg以保持灵活性,输出应为Wire。行为上,Wire和Reg不影响电路行为,而是由组合逻辑或时序逻辑决定。在语法上,Wire适用于assign,Reg用于initial和always块。模块设计时,输入通常为Wire,输出可以是Wire或Reg,但assign赋值或子模块输出必须为Wire。
摘要由CSDN通过智能技术生成

1、基本

测试项

语法测试结果

说明

组合:=
(assign/initial/always_with_no_clk)

 

assign用且仅用=,左值用且仅用wire

initialalways左值用且仅用reg=<=都可以,但是一般情况下,组合用=,时序用<=

时序:<=
(always_with_clk)

 

assign

assign只能用=,只能对wire

reg用于且仅用于alwaysinitial的左值;

wire用于且仅用于assign的左值。

assign:只要右边表达式任一个变量有变化,表达式立即被计算,计算的结果立即赋给左边信号。也即assign行为上等价于组合always

always

always不管敏感量是posedge(时序逻辑)或者是一个信号(组合逻辑):

可以用<=,也可以用=

always里面赋值的左值必须是reg

initial

initialalways一样

可以用<=,也可以用=

initial里面赋值的左值必须是reg

wire初值

wire不可以赋初值,但是可以赋初reg

wire w1=1'b0,w2;不合法

但是

reg r2;

wire w1=r2,w2;合法

reg可赋初值

reg可以赋初值

reg r1=1'b0,r2;合法

综上,得到的基本概念用图形描述如下:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值