可综合语法 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验证工程师##你为什么选择硬件行业#