Verilog中几种赋值语句

在Verilog中有两种类型的赋值语句 连续赋值和过程赋值 赋值表达式由三个部分组成 左
值赋值运算符=或<= 和右值右值可以是任何类型的数据包括net型和register型但对连续
赋值 左值必须是net类型的数据 而过程赋值 左值必须是register类型的数据 下面将作详细描

1连续赋值
在initial或always外的assign赋值语句 称为连续赋值语句 一般在描述纯组合电路时使用 例

wire> assign out = en ? a : b //多路选择器
assign> 也可以在数据定义时同时进行连续赋值如
wire> 使用连续赋值语句 所有右值都是敏感信号 当右值发生变化时 计算表达式的值 并将结
果传给左值具有组合电路的特性输入变化输出立即变化
2过程赋值
在initial或always块中的赋值语句 称为过程赋值语句 包括三种 Blocking赋值
Non-blocking赋值和过程连续赋值assign/deassign
Blocking赋值与顺序相关的而Non-blocking赋值与顺序无关一般来说使用Non-blocking赋
值描述时序逻辑电路使用Blocking赋值语句描述组合逻辑电路例如
reg X,Y,Z;
//Non-blocking> Y <= X;
Z <= Y;
end
reg X,Y,Z;
//Blocking> Y = X;
Z = Y;
end在Verilog中有两种类型的赋值语句 连续赋值和过程赋值 赋值表达式由三个部分组成 左
值赋值运算符=或<= 和右值右值可以是任何类型的数据包括net型和register型但对连续
赋值 左值必须是net类型的数据 而过程赋值 左值必须是register类型的数据 下面将作详细描

1连续赋值
在initial或always外的assign赋值语句 称为连续赋值语句 一般在描述纯组合电路时使用 例

wire> assign out = en ? a : b //多路选择器
assign> 也可以在数据定义时同时进行连续赋值如
wire> 使用连续赋值语句 所有右值都是敏感信号 当右值发生变化时 计算表达式的值 并将结
果传给左值具有组合电路的特性输入变化输出立即变化
2过程赋值
在initial或always块中的赋值语句 称为过程赋值语句 包括三种 Blocking赋值
Non-blocking赋值和过程连续赋值assign/deassign
Blocking赋值与顺序相关的而Non-blocking赋值与顺序无关一般来说使用Non-blocking赋
值描述时序逻辑电路使用Blocking赋值语句描述组合逻辑电路例如
reg X,Y,Z;
//Non-blocking> Y <= X;
Z <= Y;
end
reg X,Y,Z;
//Blocking> Y = X;
Z = Y;
end
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值