IC验证学霸笔记2——verilog基本语法之可综合(十三)

可综合语法

and or nand 等基本逻辑门

if块和case块

+,-,*,/,^,~等逻辑运算符

&&,||,==,>,<=,!=,!等关系运算符

>>,<<,assign 等赋值语句

always(不包含延时)块;


不可综合语法

initial块

forever块

repeat, force,release,task,enable,disable一般不可综合

系统函数如$display等

#延时赋值语句一般综合是会被忽略。


阻塞赋值于非阻塞赋值

阻塞赋值(=)

阻塞赋值对应的电路往往与触发沿没有关系,只与输入电平的变化有关;

一般可综合的阻塞赋值语句在执行操作时不能设定延迟,(即使是零延迟也不允许),否则延迟后才执行赋值,这种语句不可综合;

赋值语句可以认为只有一个步骤的操作:

其后面的赋值语句是在前一句赋值语句结束后再开始赋值的;

非阻塞赋值(<=)

非阻塞赋值对应的电路结构往往与触发有关系,只有在触发沿时才有可能发生赋值的情况。

非阻塞赋值在赋值操作时刻开始时计算非阻塞赋值符右边的表达式,赋值操作时刻结束时更新左边。同一语句块中的非阻塞赋值是同时进行的。

非阻塞赋值只能用在initial块额always块中,不能用于连续赋值。

Verilog 模块编程要点

1.时序电路建模时,用非阻塞赋值;

2.锁存器电路建模时,用非阻塞赋值;

3.用always块建立组合逻辑模型时,用阻塞赋值;

4.在同一个always块中建立组合逻辑和逻辑电路时,使用非阻塞赋值;

5.在同一个always块中不要既使用阻塞赋值又使用非阻塞赋值;

6.不要在一个以上的always块中为同一个变量赋值;

7.用$strobe系统任务来显示用非阻塞赋值的变量值;

8.在赋值时不要使用#0延迟;


注:优秀验证学员随堂笔记,已经征求到学生的同意,会持续给牛友们分享!
大家看完记得 一键三连!多多支持

#深度学习##转行转岗经验分享##芯片设计工程师##芯片IC验证工程师##你为什么选择硬件行业#
全部评论
还得是学霸
点赞 回复 分享
发布于 2022-10-13 11:07 陕西

相关推荐

07-14 13:47
门头沟学院 Java
Lynn012:你评估好自己的位置了吗《顶尖应届》
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
评论
1
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务