verilog不可综合语句总结汇总

上传人:飞*** 文档编号:47796978 上传时间:2018-07-05 格式:PDF 页数:3 大小:30.35KB
返回 下载 相关 举报
verilog不可综合语句总结汇总_第1页
第1页 / 共3页
verilog不可综合语句总结汇总_第2页
第2页 / 共3页
verilog不可综合语句总结汇总_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《verilog不可综合语句总结汇总》由会员分享,可在线阅读,更多相关《verilog不可综合语句总结汇总(3页珍藏版)》请在金锄头文库上搜索。

1、verilog 不可综合语句总结 汇总(1)所有综合工具都支持的结构:always ,assign ,begin ,end,case ,wire,tri ,aupply0 ,supply1 ,reg ,integer ,default ,for ,function,and ,nand ,or,nor ,xor ,xnor ,buf ,not ,bufif0 ,bufif1 ,notif0 ,notif1 ,if,inout ,input ,instantitation,module ,negedge ,posedge ,operators ,output ,parameter 。(2)所有综合

2、工具都不支持的结构:time ,defparam ,$finish ,fork ,join,initial ,delays ,UDP,wait 。(3)有些工具支持有些工具不支持的结构:casex ,casez ,wand ,triand ,wor ,trior ,real ,disable ,forever ,arrays ,memories ,repeat ,task ,while 。建立可综合 模型的原则要保证 Verilog HDL 赋值语句的可综合性,在建模时应注意以下要点:(1)不使用 initial 。(2)不使用 #10。(3)不使用循环次数不确定的循环语句,如forever

3、、while 等。(4)不使用用户自定义原语(UDP 元件)。(5)尽量使用同步方式设计电路。(6)除非是关键路径的设计,一般不采用调用门级元件来描述设计的方法,建议采用行为语句来完成设计。(7)用 always 过程块描述组合逻辑,应在敏感信号列表中列出所有的输入信号。(8)所有的内部寄存器都应该能够被复位,在使用FPGA 实现设计时,应尽量使用器件的全局复位端作为系统总的复位。(9)对时序逻辑描述和建模,应尽量使用非阻塞赋值方式。对组合逻辑描述和建模,既可以用阻塞赋值,也可以用非阻塞赋值。但在同一个过程块中,最好不要同时用阻塞赋值和非阻塞赋值。(10)不能在一个以上的always 过程块中

4、对同一个变量赋值。而对同一个赋值对象不能既使用阻塞式赋值,又使用非阻塞式赋值。(11)如果不打算把变量推导成锁存器,那么必须在if 语句或 case 语句的所有条件分支中都对变量明确地赋值。(12)避免混合使用上升沿和下降沿触发的触发器。(13)同一个变量的赋值不能受多个时钟控制,也不能受两种不同的时钟条件(或者不同的时钟沿)控制。(14)避免在 case 语句的分支项中使用x 值或 z 值。不可综合 verilog语句 2009-04-14 19:331、initial 只能在 test bench 中使用,不能综合。(我用ISE9.1 综合时,有的简单的initial 也可以综合,不知道为

5、什么)2、events event 在同步 test bench 时更有用,不能综合。3、real 不支持 real 数据类型的综合。4、time 不支持 time 数据类型的综合。5、force 和 release 不支持 force 和 release 的综合。6、assign 和 deassign 不支持对 reg 数据类型的 assign 或 deassign 进行综合,支持对wire 数据类型的 assign 或 deassign 进行综合。7、fork join 不可综合,可以使用非块语句达到同样的效果。8、primitives 支持门级原语的综合,不支持非门级原语的综合。9、ta

6、ble 不支持 UDP 和 table 的综合。10、同一变量在敏感列表里同时带有posedge和 negedge如:always (posedge clk or negedge clk) begin.end 这个 always 块不可综合。11、同一个 reg 变量被多个 always 块驱动12、延时以#开头的延时不可综合成硬件电路延时,综合工具会忽略所有延时代码,但不会报错。如:a=#10 b; 这里的 #10 是用于仿真时的延时,在综合的时候综合工具会忽略它。也就是说,在综合的时候上式等同于a=b; 13、与 X、Z 的比较可能会有人喜欢在条件表达式中把数据和X(或 Z)进行比较,殊不知这是不可综合的,综合工具同样会忽略。所以要确保信号只有两个状态:0 或 1。如:1 module synthesis_compare_xz (a,b); 2 output a; 3 input b; 4 reg a; 5 6 always (b) 7 begin 8 if (b = 1bz) | (b = 1bx) begin 9 a = 1; 10 end else begin 11 a = 0; 12 end 13 end 14 15 endmodule

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号