Verilog HDL 可综合语句和不可综合语句汇总

作为HDL语言,有两种基本的用途:系统仿真和设计实现。所有的HDL描述都可用于仿真,但并非所有的HDL描述都可综合。

                                            一般综合工具支持的Verilog HDL结构

Verilog HDL结构可综合性说明
module,macromodule
wire,reg,integer 数据类型
parameter

端口类型说明

input,output,inout

运算符

+,-,*,%

&,~&,|,~|,^,^~

==,!=,&&,||,!

~,&,|,^,^~

>>,<<,?:,{}

大部分可综合:

全等运算符(===    !==)不支持:

多数工具对除法(/)和求模(%)有限制;

如对除法操作,只有当除数是常数,且是2的指数时才支持;

基本门元件

and,nand,nor,or,xor,xnor,buf,not,

bufif0,bufif1,notif0,notif1,pullup,pulldowm

全部可综合

但某些工具对取值x和z有所限制

持续赋值 assign

过程赋值:        阻塞赋值( = )  

                        非阻塞赋值( <= ) 

支持,但对同一reg型变量只能采样阻塞和非阻塞赋值的其中一种进行赋值

条件语句:

if-else,case,casex,casez,endcase

一般支持,但有的综合不支持casex,casez
for循环语句

always 过程语句

begin-end 块语句

function,endfunction
task,endtask一般支持,少数综合器不支持
编译向导: `include,`define,`ifdef,`else,`endif

                               一般综合工具忽略的Verilog HDL结构

Verilog HDL结构这些结构和语句在综合时全被忽略
延时控制 #xxx
scalared, vectored
specify
small, large, medium
weak0,weak1,highz0,highz1,pull0,pull1
time
wait

                                   一般综合工具不支持的Verilog HDL结构

Verilog HDL结构可综合性说明
在assign持续赋值中,等式左边含有变量的位选择

多数综合器对这些结构和语句不支持,这些语句描述的程序代码不能转换为具体的电路网表结构,但这些结构都能够被仿真工具(如ModeSim等)所支持

全等运算符===,!==
cmos,nmos,rcmos,rnmos,pmos,rpmos
deassign,defparam,event
force,release
fork,join
forever,while,repeat
rtran,tran,tranif0,tranif1,rtranif0,rtranif1
initial
table,endtable,primitive,endprimitive

可综合设计的要点

  • 不使用初始化语句。
  • 不使用带有延时的描述。
  • 不使用循环次数不确定的循环语句,如forever、while等。
  • 尽量采用同步方式设计电路
  • 除非是关键路径设计,一般不采用调用门级元件来描述设计的方法,建议采用行为语句来完成设计。
  • 用always过程块描述组合逻辑,应在敏感信号列表中列出所有的输入信号。
  • 所有的内部寄存器都应该能够被复位,应尽量使用器件的全局复位端作为系统总的复位。
  • 用户自定义原语(UDP元件)是不可综合的,它只能用来建立门级元件的仿真模型。
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值