




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,作者:,日期:2008-7-2,1.良好的编程风格有利于减少消耗的硬件资源,提高设计的工作频率。2.提高系统的可移植性和可维护性。3.程序的格式化能体现程序员的基本素质和整个团队的风貌。,简介,规范的重要性:,命名规则,注释,代码格式,命名规则,注释,代码格式,用于命名的字符集为:字母AZ和az,数字09以及下划线组成。例如:data_busdata_widthclk48M48M_clkdata_busdata*bus,命名字符集,名称不能以数字开头,数据总线,48M时钟信号,数据位宽,不能连续使用下划线,不能包含非字母符号*,使用有意义的名字,以利于望文生义,参数(parameter)、常量(constant)和块标号(blocklabel)名必须一致采用大写;而信号,变量和结构名(construct)以及实例标号(instance)必须一致采用小写。有利于在仿真时,区分不变和变化的数据。,大小写规则,moduledisplay_led(clk_48M,/时钟ledout/LED输出);inputclk_48M;/48M系统时钟output7:0ledout;/LED输出控制reg22:0count;/计数器reg7:0led_reg;/LED输出缓存区wireled_clk;/LED显示时钟控制parameterCOUNTER=100;assignled_clk=count22;/LED显示时间控制,模块标号小写,变量小写,常量大写,在不区分大小写的情况下,名字必须唯一。例如,名字state和State不能同时出现在同一设计中,这是因为有的EDA工具不区分大小写。,名字必须唯一,modulecasestatement(a,State,state,dout);inputa;inputState;input2:0state;outputdout;regdout;parameterSTATE=3bx11;always(aorborstate)case(stateendcaseendmodule,输入信号,参数,输入信号,不同类型的信号命名习惯,如果一个名字由多个字组成,则使用下划线连接,用以增加名字的可读性。为了使信号的名字有意义,可以根据信号类型选取相应的后缀。,对于包含多个后缀的信号,建议采用下面的优先权,从高到低。最高的优先权建议从信号名的最后一个后缀获得,多个后缀的信号名的优先权:1._n/低电平有效信号2._z/三态信号3._clk/时钟信号4._next/状态机信号,多个后缀的信号名的优先权,ram,data1,z,n,低电平有效信号,三态信号,数据类型,操作对象,文件名的格式为:.,从而使文件与设计模块相对应。例如文件名为counter.v表明该文件中有一个用VerilogHDL语言描述的counter模块。以Libero8.0环境为例:,文件名格式,新建工程,工程名,工程路径,点击HDLEditor,文件编写窗口,新建工程,语言类型,设计模块名,点击HDLEditor,文件名,命名规则,注释,代码格式,文件注释模板(英文版),用TAB键缩进对齐,文件信息,创建信息,修改信息,公司信息,文件结束,文件注释模板(中文版),文件的中文注释模板和英文注释模板一样,模块可以由一个或多个进程(always模块)/赋值语句组成,模块注释主要用分割功能模块,提高程序可读性,包括模块注释和模块结束。模块间如进程(always模块)的注释可直接在上面注释,可以多行,模块的英文注释模板可自行修改。,模块注释模板,模块注释模板,模块注释,模块结束,进程注释,要特别说明的就是,为了排版好看,我们采用首行缩进0.74厘米,字体小五,宋体(中),CourierNew(英),底纹使用-10%灰底,必须以“程序清单”为题注并置于程序上方。,注释规则(文档版),命名规则,注释,代码格式,端口的申明及注释,modulebuzzer(clk_48M,/时钟输入beep,/蜂鸣器控制输出key,/按键输入ledout/LED显示控制信号);inputclk_48M;input3:0key;outputbeep;output7:0ledout;.endmodule,不使用:inputa,b;和inputa,b;,使用:inputa;intputb;,必须明确地表明端口类型,每行中只有一个端口申明。,最好在同一行上,每个端口列表后面紧跟一个描述性的注释,端口的申明顺序与端口列表的顺序相同,在一个区域中申明所有的内部连线,在模块顶部内部连线申明应紧跟在I/O端口申明的后面。,modulelcd_top(clk_48M,/系统时钟rst,/rst为全局复位信号lcd_en,/LCD使能信号data_bus/8位指令或数据总线);inputclk_48M;inputrst;outputlcd_en;output7:0data_bus;wireclk_lcd;.,用于将链接两个模块的时钟,以表格样式书写代码,always(posedgeclk_48M)/时钟节拍计数器beginif(clk_reg)count=#116d0;elsecount=#1Count+16d1;/计数器加一end,相同类型的代码项是在一条竖线上,使用四个空格的连续缩进使代码在一条竖线上。,语句对齐,注释对齐,注释有两种形式,必须使用一行注释(/),不要使用多行注释(/*/),不利于代码的屏蔽。,为了提高程序的可读性,必须使用4个空格(建议使用TAB键以空格代替,详见TAB制表符的设置)和换行来实现缩进对齐,不要直接使用Tab制表符。因为不同的编辑系统的Tab制表符间距可能不同。,使用4个空格进行代码缩进,例如:使用Notepad+编辑器显示的结果,图中橙色箭头表示TAB制表。,为了提高程序的可读性,必须使用4个空格(建议使用TAB键以空格代替,详见制表符的设置)和换行来实现缩进对齐,不要直接使用Tab制表符。因为不同的编辑系统的Tab制表符间距可能不同。,使用4个空格进行代码缩进,例如:使用记事本打开显示的结果,对比两个图可以看出用不同的编辑器打开差异性很大。,每行只有一个Verilog语句,应该保持每行不超过80个字符:,每行有一个Verilog语句,采用,不采用,upper_en=(p5type,upper_en=(p5type,不要在同一条线上使用多个分号连接的分开的Verilog语句。,对于长的语句可以使用回车和缩进方法,表示成连续的语句行。,assignresult=(great_r3)|(equal_r3,避免使用硬编码数值,建议使用宏或则参数来定义常数,避免使用硬编码数值。,parameterDATA_WIDTH=32;/总线数据宽度inputDATA_WIDTH-1:0data_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮装修维修合同范本
- 云南廉价租房合同范本
- 西方飞机租赁合同范本
- 住房公积金管理中心创建市文明单位申报材料
- 乡镇2025年防止返贫动态监测帮扶集中排查工作方案
- 2025年安全工器具题库及答案
- 2025年山西省朔州市事业单位工勤技能考试考试题库及参考答案
- 2025年山东省烟台市事业单位工勤技能考试题库及答案
- CN120269323A 冷却器的拆装装置及方法 (华能澜沧江水电股份有限公司)
- 轨道交通考试试题及答案
- 事业单位行政单位物业管理服务方案(技术标)
- 单位食堂制止浪费方案
- 建筑施工安全技术操作规程
- 2024-2030年全球与中国发泡稀奶油行业竞争动态及营销动态研究报告
- 农村屋面琉璃瓦工程包工包料承包合同
- 2025届新高考政治精准突破复习 政治阅卷“感”与“悟”
- JB-T 8236-2023 滚动轴承 双列和四列圆锥滚子轴承游隙及调整方法
- SY-T 6966-2023 输油气管道工程安全仪表系统设计规范
- 新部编版三年级语文上册《全册课件》
- 中华全国总工会办公厅印发《加快工会数字化建设工作方案》
- 争当排头兵心得体会争当排头兵
评论
0/150
提交评论