首页 VerilogHDL-编程规范培训050719

VerilogHDL-编程规范培训050719

举报
开通vip

VerilogHDL-编程规范培训050719VerilogHDL-编程规范培训050719VerilogHDL编程规范目的本规范的目的是提高书写代码的可读性、可修改性、可重复性,优化代码综合和仿真的结果,规范化公司的ASIC设计输入。从而做到:①逻辑功能正确,②可快速仿真,③综合结果最优,④可读性较好。范围本规范涉及VerilogHDL编码风格,编码中应注意的问题,Testbench的编码等。本规范适用于Verilogmodel的任何一级(RTL,behavioral,gate_level),也适用于出于仿真、综合或二者结合的目的而设计的模块。定义FSM:有...

VerilogHDL-编程规范培训050719
VerilogHDL-编程 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 培训050719VerilogHDL编程规范目的本规范的目的是提高书写代码的可读性、可修改性、可重复性,优化代码综合和仿真的结果,规范化公司的ASIC 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 输入。从而做到:①逻辑功能正确,②可快速仿真,③综合结果最优,④可读性较好。范围本规范涉及VerilogHDL编码风格,编码中应注意的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,Testbench的编码等。本规范适用于Verilogmodel的任何一级(RTL,behavioral,gate_level),也适用于出于仿真、综合或二者结合的目的而设计的模块。定义FSM:有限状态机伪路径::静态时序 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 (STA)认为是时序失败,而设计者认为是正确的路径。规范内容4.1VerilogHDL编码风格本规范适用于Verilogmodel的任何一级(RTL,behavioral,gate_level),也适用于出于仿真、综合或二者结合的目的而设计的模块。命名的习惯命名包含信号或变量出处、有效状态等基本含义。有效而有意义的名字有效的命名并不一定要求将功能描述出来。如For(I=0;I<1024;I=I+1)指针I就没有必要用loop_index作为指针名。用连贯的缩写例如:Addraddress;Patrpoiter;Clkclock;Rstreset用最右边的字符下划线表示低电平有效,高电平有效的信号不得用下划线表示。如:Rst_,Trdy_,Irdy,Idel大小写原则名字的首字符大写,其余小写(但是parameter,integer定义的数值名要全部大写,例如parameterCYCCLE=10.),两个词之间要用下划线。例如:Data_in全局信号的名字中应包含信号来源的一些信息。如:D_addr[7:2]中的”D”指明了地址是解码模块(Decodermodule)中的地址。同一信号在不同层次上应保持一致性。避免使用保留字。如:in、out、x、z等不能作为变量、端口或模块名。添加有意义的后缀,使信号更加明确。如表1所示。表1Modules1.顶层模块应只是内部模块间的互连。在没有被调用的(顶层)模块中,除了内部的互连和模块的调用外,尽量再做中间逻辑,如不能再出现对reg变量的赋值等。目的是为了更有效的综合,因为顶层模块中出现了中间逻辑,Synopsys的designcompoler就不能把子模块中的逻辑综合到最优。2.模块应在开始处注明文件名、功能描述、引用模块、设计者、设计时间及版权信息等。例如:/*=====================*\Filename:RX_MUX.vAuthor:DongShengLiuDescription:Calledby:TopmoduleRevisionHistory:2005-4-4Revision1.0Company:whicc\*=====================*/3.不要对Input进行驱动,在module内不要存在没有驱动的信号,更不能在模块端口中出现没有驱动的输出信号,避免在elaborate和compile时产生warning,干扰错误定位。!!!4.每行限制在80个字符以内。5.用一个时钟的上升沿或下降沿采样信号,不能一会用上升沿,一会用下降沿。如果既要用上升沿,又要用下降沿,则应分成两个模块设计。建议在顶层模块中对Clock做一非门,在层次模块中如果要用时钟下降沿可以用非门产生的PosedgeClk_,这样做的好处使得在整个设计中采用同一种时钟沿触发,有利于综合。6.在模块中要用明了的注释。对信号、参量、引脚、模块、函数及进程等加以说明,便于阅读和维护。7.Module名要大写,且应与文件名一致。如:ModuleCRC();模块输出寄存器化(如图1所示),使得输出的驱动强度和输入的延迟可以预测,从而使得模块额综合过程简单。图1输出驱动强度都等于平均的触发器驱动强度;输入延迟始终等于通过触发器的路径,近于相等。将关键路径逻辑和非关键路径逻辑放在不同模块。保证DC可以对关键路径模块实现速度优化,而对非关键路径模块实施面积优化。在同一模块DC无法实现不同的策略。将相关的组合逻辑放在同一模块。有助于DC对其进行优化,因为DC通常不能越过模块的边界来优化逻辑。 电路 模拟电路李宁答案12数字电路仿真实验电路与电子学第1章单片机复位电路图组合逻辑电路课后答案 中调用的module名用TRxx标示。NetandRegister一个reg变量只能在一个always语句中赋值。对任何一个Register的赋值要加单位延迟,对异步复位可以不加。向量的有效位的顺序一般是从大到小。尽管有效位的顺序是自由的。但不利代码的维护。如Data[-4:0],则LSB[-1][-2][-3][-4]MSB,或Data[0:4],则LSB[4][3][2][1]MSB.推荐用Data[4:0]。对net和register类型的输出要做声明。否则,Verilog将假定它是一个宽的wire变量。Expression用括号来表示执行的优先级。方便阅读。用一个函数(function)来代替表达式的多次重复。如果代码中发现多次使用一个特殊的表达式,那么就用一个函数来代替,这样在以后的版本升级时更便利,这种概念在行为级的代码设计时同样使用,经常使用的一组描述可以写到一个任务(task)中。IF语句1.每个If语句都应有一个else语句和它对应。没有else语句会使综合出的逻辑和RTL级的逻辑不同。如果条件为假时,则用一条空语句。例如:If(a==b)beginV1=2’b01;V2=2’b02;EndElse:;2.如果变量在If-else语句或case语句中做非完全赋值,则应该没有赋值的变量一个缺省值。case语句case语句通常综合成一级多路复用器,如图2的右边部分所示,而If语句则综合成优先编码的串接的多个多路复用器,如图2的左边部分所示。通常,使用case语句比if语句快,优先编码的结构仅在信号的到达有先后时使用。Case语句比if条件赋值语句快。所有的case语句应该有一个defaultcase,允许空语句Default:;图2Writingfunctions在function的最后给function赋值。FuntionCompareVectors;//(Vector1,Vector2,Length)Input[199:0]Vector1,Vector2;Input[31:0]Length;//localvariablesIntegeri;RegEqual;Begini=0;Equal=1While((i
本文档为【VerilogHDL-编程规范培训050719】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥17.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
wassyy
本人从事施工专职安全员多年,对施工现场安全管理、内业资料管理具有丰富的经验。
格式:doc
大小:5MB
软件:Word
页数:19
分类:修理服务/居民服务
上传时间:2022-01-08
浏览量:8