欢迎来到天天文库
浏览记录
ID:11144401
大小:133.18 KB
页数:23页
时间:2018-07-10
《verilog语言编写规范》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VERILOG语言编写规范1目的本规范的目的是提高书写代码的可读性可修改性可重用性,优化代码综合和仿真结果,指导设计工程师使用VerilogHDL规范代码和优化电路,规范化公司的ASIC设计输入从而做到1.逻辑功能正确2.可快速仿真3.综合结果最优如果是hardwaremodel)4.可读性较好。2范围本规范涉及VerilogHDL编码风格,编码中应注意的问题,Testbench的编码等。本规范适用于Verilogmodel的任何一级(RTLbehavioral,gate_level),也适用于出于仿真,综合或二者结合的目的而设计的模块。3定义VerilogHDL:Ver
2、ilog硬件描述语言FSM:有限状态机伪路径:静态时序分析(STA)认为是时序失败,而设计者认为是正确的路径4引用标准和参考资料下列标准包含的条文通过在本标准中引用而构成本标准的条文在标准出版时所示版本均为有效所有标准都会被修订使用本标准的各方应探讨使用下列标准最新版本的可能性ActelHDLCodingStyleGuiderSunMicrosystemsRevision1.0VerilogStyleandCodingGuidelines5规范内容5.1Verilog编码风格本章节中提到的Verilog编码规则和建议适应于Verilogmodel的任何一级(RTLbeha
3、vioral,gate_level)也适用于出于仿真,综合或二者结合的目的而设计的模块。5.1.1命名规范选择有意义的信号和变量名,对设计是十分重要的。命名包含信号或变量诸如出处,有效状态等基本含义下面给出一些命名的规则。1.用有意义而有效的名字有效的命名有时并不是要求将功能描述出来如For(I=0;I<1024;I=I+1)Mem[I]<=#132’b0;For语句中的循环指针I就没必要用loop_index作为指针名。2.用连贯的缩写长的名字对书写和记忆会带来不便,甚至带来错误采用缩写时应注意同一信号在模块中的一致性。缩写的例子如下:AddraddressPntrpo
4、interClkclockRstreset3.用名字前加小写n表示低电平有效高电平有效的信号不得以下划线表示短暂的引擎信号建议采用高有效如nRst,nTrdy,nIrdynIdsel.4.大小写原则名字一般首字符大写,其余小写(但parameter,integer定义的数值名可全部用大写),两个词之间要用下划线连接(或第二个单词首字母大写)如:Packet_addr,Data_in,Mem_wr,Mem_ce_Or:PacketAddr,DataIn,MemWr,MemCe5.全局信号名字中应包含信号来源的一些信息如:D_addr[7:2]这里的D指明了地址是解码模块(D
5、ecodermodule)中的地址.6.同一信号在不同层次应保持一致性7.自己定义的常数类型等用大写标识如:parameterCYCLE=100.8.避免使用保留字如inoutxz等不能够做为变量端口或模块名9.添加有意义的后缀使信号名更加明确常用的后缀如下芯片的双向信号-xbio芯片的三态输出_xz芯片的漏极开路输出_xod芯片原始输出信号_xo芯片原始输入信号_xi下降沿有效的寄存器_f连到三态输出的信号_z寄存前的信号_next时钟信号_Clk5.1.2Modules1.顶层模块应只是内部模块间的互连Verilog设计一般都是层次型的设计,也就是在设计中会出现一个或
6、多个模块,模块间的调用在所难免。可把设计比喻成树,被调用的模块就是树叶,没被调用的模块就是树根,那么在这个树根模块中,除了内部的互连和模块的调用外,尽量避免再做逻辑,如:不能再出现对reg变量赋值等,这样做的目的是为了更有效的综合,因为在顶层模块中出现中间逻辑,Synopsys的designcompiler就不能把子模块中的逻辑综合到最优。2.每一个模块应在开始处注明文件名功能描述引用模块设计者设计时间及版权信息等如/*===========================*Filename﹕SPI_M.vAuthor﹕whqDescription﹕Filedescri
7、ptionCalledby﹕TopmoduleRevisionHistory﹕timeyy-mm-ddRevision1.0Email﹕wuhaoqian1@gmail.comCopyright(c)1999,~~~~~~~~~~~~~,Allrightreserved/*===========================*3.不要对Input进行驱动,在module内不要存在没有驱动的信号,更不能在模块端口中出现没有驱动的输出信号,避免在仿真或综合时产生warning,干扰错误定位4.每行应限制在80个字符以内以保持代
此文档下载收益归作者所有