verilog编码要求规范

verilog编码要求规范

ID:35941630

大小:263.85 KB

页数:28页

时间:2019-04-26

verilog编码要求规范_第1页
verilog编码要求规范_第2页
verilog编码要求规范_第3页
verilog编码要求规范_第4页
verilog编码要求规范_第5页
资源描述:

《verilog编码要求规范》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实用文案Verilog编码规范(仅供内部使用)拟制:xxx日期:xxx审核:审核者日期:yyyy-mm-dd批准:批准者日期:yyyy-mm-dd版权所有侵权必究标准文档实用文案修订记录修订日期修订版本描述修订者标准文档实用文案目录1命名规范62代码编写规范82.1版面82.2编写代码规范83电路设计规则173.1时钟173.2复位173.3避免LATCH183.4避免组合反馈183.5赋值语句183.6case语句和if-then-else语句193.7状态机193.8异步逻辑214模块划分215提高可移植性的编码风格215.

2、1采用参数化设计215.2采用独立于工具平台和工艺库的设计225.3尽量使用已经得到验证的IP226其他一些设计建议237附件258参考文档:30标准文档实用文案标准文档实用文案基本原则:简单,一致,可重用。l简单指尽量使用简单的语句,尽量使用简单的设计,尽量使用简单的时钟,尽量使用简单的复位。l一致指尽量保持代码风格一致,尽量保持命名一致。l可重用指有成熟的IP尽量使用IP,设计的代码要尽量可重用。标准文档实用文案命名规范给信号命名就像给孩子取名字一样,有区别,有根源,有深度,还有一点,要简单,别冗长。有区别指取名字不要一样,

3、假如大家只有一个手机号码,那这个号码还能有什么用处?有根源指取名字要能象姓氏一样,让人一看就直到是张家的后代而不是李家的。有深度就是取名字要有涵义,张一,张二,张三虽然也是名字,但是请考虑一下被取名字人的感受。简单点,几十个字母长的名字,打字的和看字的都累。s大小写规则:只有parameter,`define和module名称才能享受大写。sModule名应与文件名保持一致(文件名是小写),假如不想在设计后面遇到麻烦的话。s不要尝试使用任何保留字,因为他们已经被保留了。s不要重复使用同样的名字去命名不同的数据。s(建议)对mod

4、ule名加”_LVx”的后缀,增强module名称的结构层次含义如:设计顶层为TOPLEVEL,即LEVEL1,命名为QTRxxxx_LV1;时钟模块,IO_PAD,CORE,为LEVEL2,命名为CLK_PROC_LV2等等;CORE内子模块为LEVEL3,然后以此类推。s对于来自同一驱动源的所有时钟信号使用相同的名字。s对于低电平有效的信号,应该以_n结尾。s模块间相连端口名称要一致。s(建议)使用下表所列的命名缩写方式。全称名称clockClkresetrstclearclraddressaddrdata_indindat

5、a_outdoutinterruptrequestintreadenablerdenwriteenablewrencountcntrequestreq标准文档实用文案controlctrlarbiterarbpointerptrsegmentsegmemorymemregisterreg·(建议)使用下列后缀命名方式全称添加后缀activelow_nenable_enselect_selflag_flgdelay_dly·信号命名的两个词之间用下划线间隔,如ram_addr,cnt_ctrl等等·信号命名尽量不要使用孤立的、小写

6、的英文字母L标准文档实用文案代码编写规范1.1版面s语句独立成行,增加可读性和可维护性。s行的长度保持每行小于或等于72个字符。因为有的终端或打印机每行不能超过80个字符。规定72个字符是为了留出边空,提高可读性。还有一个原因是为象vi这样的编辑器留有显示行号的地方。用回车来分割超过72个字符的行,并且在下一行用缩进来表示该行是前一行的继续。s缩进。用缩进来提高续行和嵌套循环的可读性。缩进采用4个空格。避免使用TAB键。不同的编辑器或用户环境使得TAB的位置差别很大,造成缩进的混乱。有一些工具可以将TAB替换成空格。s(建议)使

7、用注释使用注释来解释端口、信号、信号组、always块、函数等。注释应该放在它所描述的代码的附近。注释应该简明扼要,并足够说明问题。避免注释杂乱。显而易见的功能不用加注释。注释关键是说明设计意图。1.2编写代码规范s在源文件中要有文件头在源文件、script文件的开始应包含一个文件头。文件头至少应包含下列信息:文件名、作者、模块的功能描述和关键特征的列表、文件产生的日期、更改记录(日期、更改者、更改的内容)。(参见代码模板sample.v)s模块名称用大写,例如:moduleMEM_CTRL。s端口声明时每行声明一个端口,并有注

8、释(最好在同一行),也可对同一类型的一组端口加注释。对于时钟,复位以及其他控制信号,需要注释有效工作沿或者有效工作值建议用下述顺序声明端口。//INPUTsclocks,//posedgeactiveresets,//activehighenables,//ac

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。