verilog语言代码设计规范
更新时间:2023-11-30 10:26:01 阅读量: 教育文库 文档下载
代码设计规范
verilog语言代码设计规范
2011年12月
1
代码设计规范
目录
一、规范适用范围 ----------------------------------------- 错误!未定义书签。
1.1项目适用范围 ----------------------------------------------- 错误!未定义书签。 1.2人员适用范围 ----------------------------------------------- 错误!未定义书签。 1.3编码设计的成果形式 ----------------------------------- 错误!未定义书签。
二、代码书写规范 ------------------------------------------------------------------ 3
2.1模块说明书写规范 ----------------------------------------------------------------- 3 2.1模块注释书写规范 ----------------------------------------------------------------- 3 2.3变量名称书写规范 ----------------------------------------------------------------- 4 2.4代码结构书写规范 ----------------------------------------------------------------- 5
三、使用verilog语言的语法范围 ------------------------------------------ 6
3.1设计RTL代码的语法范围 ----------------------------------------------------- 6 3.2设计仿真代码的语法范围 ----------------------------------------------------- 8
四、使用verilog语言的结构范围 ------------------------------------------ 9
4.1系统设计文件的形式与使用方法 ----------------------------------------- 9 4.2模块结构划分的标准 ------------------------------------------------------------ 10 4.3组合逻辑的代码风格 ---------------------------------------------------------- 11 4.4时序逻辑的代码风格 ------------------------------------------------------------ 19 4.5仿真代码的代码风格 ------------------------------------------------------------ 25
五、使用受限范围内的语法或结构要进行的申请过程错误!未
定义书签。
5.1受限的语法与结构 --------------------------------------- 错误!未定义书签。 5.2批准使用的程序 ------------------------------------------- 错误!未定义书签。
2
代码设计规范
二、代码书写规范
2.1模块说明书写规范
在开始子模块设计时,必须对子模块的基本信息给予说明。说明的位置一般在设计的开头,使用注释的形式用(/* */)说明该设计的作者、编写日期、版本号、在系统中的层次位置、基本功能描述等。其形式如下所示:
/******************************************************** *author :abc * *date :2005-5-12 * *version :1.0 * *hiberarchy:mcu-alu-adder * *describe :16 bit adder * ********************************************************/ 说明的内容要简洁清晰。使用/* */对将说明部分括起来是为了与普通注释相区别。
2.1模块注释书写规范
注释对项目团队关于设计的交流至关重要,好的设计总是会在恰当的地方对语句或变量予以说明,没有注释的设计不是真正的工业级设计,通篇的注释同没有注释一样糟糕,会将代码淹没在无用的注释之中。这一节给出书写注释的规范。
如果设计中出现了一个新的变量,那么必须对这个新变量给予注释,对变量的注释应该放在变量的定义之前,注释应该说明变量的物理意义或作用。其形式如下:
??? //input port //clear reset singal of system //Ac control singal of accumulation input clear,Ac; ??? 3 代码设计规范
如果设计中的某块结构属于作者的创新或设计中很关键的部分,作者应该对这种结构的物理含义予以简要说明。注释在语句或结构的前一行开始写如:
??? //wallace tree multiplication ??? 2.3变量名称书写规范
verilog语言规定了各种类型的标志符的格式,作为规范我们对用户自定义的各种变量的命名方法及书写格式加以约束。变量一般指模块(或设计)名、端口名、连线名、参照名、单元名以及内部寄存器名。首先变量名必须能表达实际的物理意义,如果需要几个单词来表示,那么单词之间用一个“_”分隔。变量名不宜过长,一般不要超过16个字符否则书写的效率会下降,因此变量名应该尽量使用单词的缩略写法,完整的含义应在注释中给予说明。我们规定常量参数一律使用大写字母表示,变量的名称一律用小写字母a~z、数字0~9或下划线_表示,变量首字符一律用字母。模块名(或设计名)应该与文件名一致,一个文件只应包含一个模块。它是模块功能的缩略表达。端口名应与该端口实际的物理意义相一致。连线是对内部单元(实例)引脚间进行连接的物理线或是对组合逻辑输出端口、组合逻辑单元输出端进行赋值运算的输入线。连线名应该有确定的连接对象或是有确定的信号物理意义,所以针对单元引脚连接的连线它的名称应该表明所连接单元的名称,如timing_alu表示时序发生器发出的控制信号连接ALU部件的控制端。针对为输出端做赋值运算的输入连线它的名字应该表达相应的物理意义,绝不要使用通用名如:a,b,c这样的名字。这类连线适当的名称如:add_a,add_b。参照名就是一个单元或实例参考的库标准单元或原始设计名,所以它的名字与库单元或模块名相同。单元与实例在synopsys的DC工具中是不加区分的,这里也等同看待,它的名字可以用参照名为头后加数字予以标识。如alu1、acc1等。如果设计的内部有中间级寄存器,那么寄存器以实际的物理意义进行命名,比如在乘法器中为分割关键路径引入的中间级寄存器可以命名为
4
代码设计规范
pipeline1_out等。
2.4代码结构书写规范
好的代码结构可以清晰的看出设计的层次关系,进而使结构与设计者所要表达的逻辑意图一致,方便纠错和交流。代码最基本的结构有平行结构和层次结构,他们反映了代码的隶属关系,我们规定注释语句与语句块是一个层次的,这意味着对模块的注释行(以//开头)必须在一行的顶头开始写。其他语句的层次低于模块定义和注释,那么其他语句至少要向后缩退四个空格。语句块中的语句低于语句块的定义,例如:
always @(posedge clk) begin
out <= in; end
//end always
语句块中的语句块和其他语句是同级的。语句块结束应该有注释说明结束的语句块的名称 例如:
always @(posedge clk1 negedge clear)
begin
if(!clear) begin
out <= 6'b000000; end else begin
case(addr) `SFR_A: begin
out <= in; end ……
endcase end end
5
正在阅读:
verilog语言代码设计规范11-30
电子工程师最新个人年度总结08-11
2011年武汉铁路职业技术学院单独招收中职毕业生(1)04-06
企业销售人员流失的原因分析12-04
通信原理答案(里面有少许错误 注意下)10-18
2013-2014学年天津市五区县高一(上)期末数学试卷(解析版)03-08
2022年老年健康宣传周活动总结(7页)03-27
中国人民解放军各集团军编制战斗序列大全05-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- verilog
- 规范
- 语言
- 代码
- 设计
- 入 院 记 录 doc4545454542454
- 2015年上半年银行业从业资格考试真题及答案解析个人理财篇
- (人卫第六版)分析化学(李发美著)
- 蒙古栎移植成活技术
- 硼酸
- 波谱分析考题
- 2014年小学五年级英语下册期末测试题
- 循环水供热运行规程
- 当代中国经济
- 吉林市教育局文件
- 品管七大手法1 - 图文
- 小学数学青岛版一年级上册《认识图形》教学设计
- 小学六年级体育教案第二学期
- 日本内阁库藏本明代秘本
- 25MW南汽抽汽汽轮机调节系统说明书
- 国际财务管理复习题2
- 雅思单词 - 学习雅思单词必读
- 学习教育系统十二五12345工作思路、贵州教育精神和贵州教师誓词心得体会
- 三年级数学第三单元导学案
- 免费课堂 逻辑推理 每日一练 6月20日 -