首页 > 技术文章 > verilog中的可综合与不可综合语句

shadow-fish 2020-08-12 11:03 原文

verilog中可综合语句:input,output,parameter,reg,wire,always,assign, begin...end,case,for,posedge,negedge,or,and,default,if,function,generate,integer,while,repeat(while、repeat循环可综合时,要具有明确的循环表达式和循环条件,for可综合时也要有具体的循环范围),·define

   不可综合语句:initial,fork...join,wait,time,display,forever。

保证Verilog HDL赋值语句的可综合性,在建模时应注意以下要点:(1)不能使用initial,initial一般使用在测试程序,做初始化。(2)不建议使用延时,#1,这种只是模拟数字电路中因为布线产生的信号延时,不可综合,但也不会报错。(3)不能使用循环次数不确定的函数,但forever在综合设计中禁止使用,只能使用在仿真测试程序中。(4)尽量使用同步电路设计方式。(5)除非关键电路设计,一般不建议调用门级元件进行设计,一般使用行为级进行设计。(6)当使用always进行组合逻辑设计时,敏感列表里面的要列出所有输入信号。(7)在进行时序电路进行编写时,采样非阻塞赋值。组合逻辑设计时,采样阻塞赋值,但是不能在同一个always语句里两种混合使用。(8)为避免产生锁存器,if,case要进行完整的语句赋值,且case语句中避免使用X值,Z值。

推荐阅读