verilog-HDL-代码风格规范

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

领步电气VerilogHDL代码规范FPGA组VerilogHDL代码规范(仅内部使用)文档作者:冯仁委日期:2013-8-5审批:日期:领步电气VerilogHDL代码规范内部公开2013-08-05版权所有侵权必究2修订记录日期修订版本描述作者2013-8-51.00初稿完成冯仁委领步电气VerilogHDL代码规范内部公开2013-08-05版权所有侵权必究3目录VerilogHDL代码规范......................................................................................................................1修订记录...........................................................................................................................................2目录..................................................................................................................................................31.目的...........................................................................................................................................42.范围...........................................................................................................................................43.定义...........................................................................................................................................44.规范内容...................................................................................................................................41)可综合设计.......................................................................................................................4a)命名规范...................................................................................................................4b)模块规范...................................................................................................................7c)NetandRegister......................................................................................................12d)Expressions..............................................................................................................13e)For语句..................................................................................................................13f)If语句.....................................................................................................................13g)Case语句...............................................................................................................14h)Writingfunctions.....................................................................................................14i)使用可综合的语句.................................................................................................14j)Comments...............................................................................................................15k)FMS..........................................................................................................................152)仿真验证.........................................................................................................................17领步电气VerilogHDL代码规范内部公开2013-08-05版权所有侵权必究41.目的为了提高VerilogHDL代码的可读性、可修改性、可重用性,方便成员间的交流使用,提升项目组的设计效率,现面向FPGA组制定本规范。2.范围本规范包括可综合设计规范和仿真验证规范两部分。可综合设计规范是针对逻辑设计代码,适用于RTL的任何一种描述方式(数据流描述,行为描述,门级描述)。仿真验证规范针对Testbench代码。本规范读者包括FPGA设计人员、验证人员和其他与FPGA开发相关人员。3.定义VerilogHDLVerilog硬件描述语言FSM有限状态机RM参考模型BFM总线功能模型4.规范内容1)可综合设计确保代码能在绝大多数综合工具所接受,且能无歧义快速综合,现制定可综合代码规范。a)命名规范命名要做到简洁、清晰、有效,尽可能做到见名知意。1.使用有意义的名字。使用有意义的的名字,使设计者更容易理解信号意义,理解模块功能,发现设计错误,修改错误,同时方便成员间交流。2.使用规范的缩写。领步电气VerilogHDL代码规范内部公开2013-08-05版权所有侵权必究5信号命名过长对设计带来麻烦,缩写就是为了简洁、清晰,所有缩写要求能基本表明本单词的含义。常用信号缩写见表格2,其它信号名一般取其前三个字母。信号名长度在20个字母内,词与词之间用下划线连接。3.使用规范的大小写。端口、信号、变量所有字母小写,函数名、模块名、宏定义、参数定义大写。比如:inputsys_rst;parameterCLK_PERIOD=20。4.总线命名规则。总线宽度的语句必须用[N:0],而不能用[0:N],标记0表示LSB,标记N表示MSB。5.低有效信号名加_n。比如:sys_rst_n。6.信号打拍加_Xd,打一拍加_d或者_1d,打2拍加_2d。比如:sck_ctrl_d,sck_ctrl_2d。7.避免使用数字和reg作为后缀。综合工具会给寄存器自动加上_reg,如果自己加上_reg,网表可读性变差。多bit信号综合后可能会改名成bit数后缀的单bit信号,造成网表理解困难。比如:ctrl_reg改为reg_ctrl,8.避免使用关键字。比如:inoutcase等不能够做为变量端口或模块。9.同一信号在不同层次应保持一致性。层次化设计中,同一信号相同名称可以确保不同层次信号处理正确,避免因为名称不同造成设计错误。10.全局信号名字中应包含信号来源的一些信息。系统信号应加上sys。比如:adc2378_sdo、sys_clk。11.添加有意义的后缀使信号名更加明确常用的后缀。如表1表格1常用信号后缀表:信号后缀意义_clk时钟_n低有效领步电气VerilogHDL代码规范内部公开2013-08-05版权所有侵权必究6_neg下降沿_pos上升沿_z三态信号_en使能表格2常见信号缩写:全称缩写中文含义acknowledgeack应答adressaddr地址arbiterarb仲裁checkchk校验clockclk时钟configurationcfg配置controlctrl控制countercnt计数器currentstatecurr_st当前状态dataindin数据输入dataoutdout数据输出decodede译码decreasedec减一delaydly延迟disabledis不使能errorerr错误enableen使能framefrm帧generategen生成grantgnt同意,准予,承认increaseinc加一inputin输入lengthlen(帧、包)长nextstatenext_st下一状态outputout输出packetpkt包prioritypri优先级pointerptr指针领步电气VerilogHDL代码规范内部公开2013-08-05版权所有侵权必究7readenablerden读使能readrd读readyrdy准备好receiverx接收requestreq请求resetrst复位segmentseg片段节sourcescr源statisticsstat统计timertmr定时switchsf转换temporarytmp或者temp临时的transmittx发送validvld有效writeanablewren写使能writewr写操作b)模块规范模块的命名尽量用英文表达出其完整的功能,长度一般不少于2个字母。1.每文件最多只能包含一个模块。每个模块必须用一个文件表示。在一个文件中不允许存在一个以上的模块。(该模块的测试文件必须用另外一个文件表示,因此一个经过初步验证的模块必须用一个包含可综合模块和测试文件的文件夹来表示)。2.顶层模块应只是内部模块间的互连,不允许顶层模块出现胶合逻辑。在顶层模块中出现中间胶合逻辑,综合工具就不能把子模块中的逻辑综合到最优。3.每一个模块应在开始处注明文件名、功能描述、引用模块、设计者、设计时间及版权信息等。如下://-------------------------------------------------------------------------------------//Title:adc2378datasample//Project:lb1101//Filename:adc23

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功