EDA技术实用教程复习三不同类型的赋值语句

更新时间:2023-05-18 19:54:50 阅读: 评论:0

EDA技术实⽤教程复习三不同类型的赋值语句
安全感悟⼀、连续赋值语句
连续赋值语句⽤于把值赋给线⽹型变量(不能为寄存器型变量赋值)
连续赋值语句的基本格式如下:
assign  ⽬标变量名 = 驱动表达式;
其中assign是连续赋值命名的关键词。由assign引导的赋值语句的执⾏⽅式是,当等号右侧的驱动表达式中的任⼀信号变量发⽣变化时,此表达式即被计算⼀遍,并将获得的数据⽴即赋给等号左侧的变量名所标⽰的⽬标变量。
对于并⾏语句,⽆论有多少⾏语句,都是同时执⾏的,与语句的前后次序⽆关。以关键词assign引导的赋值语句实际上属于并⾏赋值语句,即在模块module_endmodule中所有的由assign引导的语句都是并⾏运⾏的。
例如:
module  F A _ D f (A, B, Cin, Sum, Cout ) ;
input    A, B, Cin;
养牛仔裤
output  Sum, Cout ;
assign  Sum = A ^B ^Cin;
assign  Cout = (A & Cin) | (B & Cin) | (A & B) ;
被跳蚤咬了怎么办endmodule
在本例中,有两个连续赋值语句。这些赋值语句是并发的,与其书写的顺序⽆关。
⼆、过程赋值语句
⽤于对reg型变量赋值,有两种⽅式:阻塞式赋值,⾮阻塞式赋值。
梦见在水里1、阻塞式赋值
Verilog中,⽤“=”作为阻塞赋值语句的赋值符号,如y=b。
蚊香灰
阻塞式赋值的特点是,⼀旦执⾏完当前的赋值语句,赋值⽬标变量y即刻获得来⾃等号右侧表达式的计算值。
50字童话故事2、⾮阻塞式赋值
村委会成员
appsVerilog中,⽤“<=”作为⾮阻塞赋值语句的赋值符号,如y<=b。
⾮阻塞式赋值的特点是,必须在块语句执⾏结束时,才整体完成赋值操作。
3、阻塞赋值和⾮阻塞式赋值主要区别
⾮阻塞(non-blocking)赋值⽅式 ( b<= a):
b的值被赋成新值a的操作, 并不是⽴刻完成的,⽽是在块结束时才完成;
块内的多条赋值语句在块结束时同时赋值;
硬件有对应的电路。
阻塞(blocking)赋值⽅式 ( b = a):
b的值⽴刻被赋成新值a;
完成该赋值语句后才能执⾏下⼀句的操作;
硬件没有对应的电路,因⽽综合结果未知。

本文发布于:2023-05-18 19:54:50,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/913996.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:赋值   语句   阻塞   变量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图