- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《VERILOG语言编写规范 2
VERILOG语言编写规范1 目的本规范的目的是提高书写代码的可读性 可修改性 可重用性,优化代码综合和仿真结果,指导设计工程师使用VerilogHDL规范代码和优化电路 ,规范化公司的ASIC设计输入 从而做到 1. 逻辑功能正确 2.可快速仿真 3. 综合结果最优 如果是hardware model)4. 可读性较好。2 范围本规范涉及Verilog HDL编码风格, 编码中应注意的问题, Testbench的编码等。本规范适用于Verilog model的任何一级( RTL behavioral, gate_level), 也适用于出于仿真,综合或二者结合的目的而设计的模块。3 定义Verilog HDL : Verilog 硬件描述语言FSM : 有限状态机伪路径 : 静态时序分析( STA) 认为是时序失败, 而设计者认为是正确的路径4 引用标准和参考资料下列标准包含的条文 通过在本标准中引用而构成本标准的条文 在标准出版时 所示版本均为有效 所有标准都会被修订 使用本标准的各方应探讨 使用下列标准最新版本的可能性Actel HDLCoding Style GuiderSun MicrosystemsRevision 1.0VerilogStyle and Coding Guidelines5 规范内容5.1 Verilog 编码风格本章节中提到的Verilog编码规则和建议适应于 Verilog model的任何一级( RTL behavioral,gate_level) 也适用于出于仿真, 综合或二者结合的目的而设计的模块。5.1.1 命名规范选择有意义的信号和变量名, 对设计是十分重要的。 命名包含信号或变量诸如出处, 有效状态等基本含义 下面给出一些命名的规则。1. 用有意义而有效的名字有效的命名有时并不是要求将功能描述出来 如For ( I = 0; I 1024; I = I + 1 )Mem[I]= #1 32’b0;For 语句中的循环指针I 就没必要用loop_index作为指针名。2. 用连贯的缩写长的名字对书写和记忆会带来不便, 甚至带来错误 采用缩写时应注意同一信号在模块中的一致性。 缩写的例子如下:Addr address Pntr pointerClk clockRst reset3. 用名字前加小写n表示低电平有效 高电平有效的信号不得以下划线表示 短暂的引擎信号建议采用高有效如 nRst, nTrdy, nIrdy nIdsel.4. 大小写原则名字一般首字符大写 ,其余小写 (但parameter, integer 定义的数值名可全部用大写),两个词之间要用下划线连接(或第二个单词首字母大写)如 :Packet_addr, Data_in, Mem_wr , Mem_ce_Or: PacketAddr, DataIn, MemWr , MemCe5.全局信号名字中应包含信号来源的一些信息如: D_addr[7:2] 这里的 D 指明了地址是解码模块(Decoder module)中的地址.6. 同一信号在不同层次应保持一致性7. 自己定义的常数 类型等用大写标识如: parameter CYCLE=100.8. 避免使用保留字如 in out x z等不能够做为变量 端口或模块名9. 添加有意义的后缀 使信号名更加明确 常用的后缀如下芯片的双向信号 -xbio芯片的三态输出 _xz芯片的漏极开路输出 _xod芯片原始输出信号 _xo芯片原始输入信号 _xi下降沿有效的寄存器 _f连到三态输出的信号 _z寄存前的信号 _next时钟信号 _Clk5.1.2 Modules1.顶层模块应只是内部模块间的互连Verilog设计一般都是层次型的设计, 也就是在设计中会出现一个或多个模块, 模块间的调用在所难免。 可把设计比喻成树, 被调用的模块就是树叶, 没被调用的模块就是树根, 那么在这个树根模块中, 除了内部的互连和模块的调用外, 尽量避免再做逻辑, 如:不能再出现对reg变量赋值等, 这样做的目的是为了更有效的综合, 因为在顶层模块中出现中间逻辑 ,Synopsys 的design compiler 就不能把子模块中的逻辑综合到最优。2. 每一个模块应在开始处注明文件名 功能描述 引用模块 设计者 设计时间及版权信息等如 /* =========================== *\Filename ﹕ SPI_M.vAuthor ﹕whqDescription ﹕File descriptionCalled by ﹕Top module Revision History ﹕time yy-mm-ddRevision 1.0Email
文档评论(0)