verilog中可综合和不可综合语句概述

上传人:d**** 文档编号:184376963 上传时间:2023-02-01 格式:DOCX 页数:3 大小:11.70KB
返回 下载 相关 举报
verilog中可综合和不可综合语句概述_第1页
第1页 / 共3页
verilog中可综合和不可综合语句概述_第2页
第2页 / 共3页
verilog中可综合和不可综合语句概述_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述
Verilog中可综合及不可综合语句概述Verilog硬件描述语言有很完整的语法结构和系统,类似高级语言,这些语法结构的应 用给我们的设计描述带来很多方便。但是,我们知道,Verilog是描述硬件电路的,它是建 立在硬件电路的基础上的。有些语法结构是不能与实际硬件电路对应起来的,也就是说我们 在把一个语言描述的程序映射成实际硬件电路中的结构时是不能实现的。下面就是我多年工 作经验总结出来的大部分综合工具支持或不支持的verilog语法结构。一. 用verilog建立可综合模型的原则要保证Verilog HDL赋值语句的可综合性,在建模时应注意以下要点:(1) 不使用 initialo(2) 不使用#10o(3) 不使用循环次数不确定的循环语句,如forever、while等。(4) 不使用用户自定义原语(UDP元件)。(5) 尽量使用同步方式设计电路。(6) 除非是关键路径的设计,一般不采用调用门级元件来描述设计的方法,建议采用 行为语句来完成设计。(7) 用always过程块描述组合逻辑,应在敏感信号列表中列出所有的输入信号。(8) 所有的内部寄存器都应该能够被复位,在使用FPGA实现设计时,应尽量使用器 件的全局复位端作为系统总的复位。(9) 对时序逻辑描述和建模,应尽量使用非阻塞赋值方式。对组合逻辑描述和建模, 既可以用阻塞赋值,也可以用非阻塞赋值。但在同一个过程块中,最好不要同时用阻塞赋值 和非阻塞赋值。(10) 不能在一个以上的always过程块中对同一个变量赋值。而对同一个赋值对象不 能既使用阻塞式赋值,又使用非阻塞式赋值。(11) 如果不打算把变量推导成锁存器,那么必须在if语句或case语句的所有条件分 支中都对变量明确地赋值。(12) 避免混合使用上升沿和下降沿触发的触发器。(13) 同一个变量的赋值不能受多个时钟控制,也不能受两种不同的时钟条件(或者不 同的时钟沿)控制。(14) 避免在case语句的分支项中使用x值或z值。二. 不可综合verilog语句1、initial只能在test bench中使用,不能综合。(我用ISE9.1综合时,有的简单的initial也可以 综合,不知道为什么)2、eventsevent在同步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、table不支持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。三.总结汇总所有综合工具都支持的结构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所有综合工具都不支持的结构time, defparam, $finish, fork,join,initial, delays, UDP, wait有些工具支持有些工具不支持的结构casex,casez,wand,triand,wor,trior,real,disable,forever,arrays,memories,repeat, task,while。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!