文档介绍:-08维护人: 赵文哲E-mail: venturezhao@关于verilog语言编码规范本编码规范由西安交通大学人机所电视组全体学生和创芯公司全体员工共同编写和维护。以此来维护DTV系列芯片的verilog源码的可读性,健壮性和易维护性。该文档主要致力于verilog语言的编码标准化,同时也适用于其他相似的硬件描述语言,如VHDL等。使代码易于管理的方法之一是增强代码的一致性,让别人读懂自己的代码是非常重要的事情。因此,保持自己的代码符合统一的规范是一个编码者的基本素质。如果自己的编码风格与本文档的规定实在不同,无法忍受,请与维护者联系,在组内会议上统一讨论解决方案。此外,如其他人对该编码规范有任何建议和批评,欢迎联系该规范的维护者。维护者的联系方式详见首页的维护列表。关于本文档读者,文档主要规范了verilog语言的写法和格式,并不介绍verilog语言的语法。请读者自己学****verilog语言的基础知识。项目文件组织形式一般而言,项目的文件需要统一的存放在一个统一的文件夹下。根据各自功能不同,分门别类的存放。以项目proj-xx为例,其文件存储方式如表1所示。表1项目文件组织proj-xx|--doc|--datasheet|--specification|--inc|--ip|--sim_utility|--altera_utility|--xilinx_utility|--dc_utility|--rtl|--sim|--proj_sim|--subproj_sim|--softcode|--adc|--dac|--ddr|--probe|--dc|--pt|--fp|--pr|--synplifydoc: 存放项目相关的文档,包括该项目用到的datasheet,芯片规格书(specification)等等。inc: 存放项目所用到的头文件。主要是整个项目所用到的整体的定义。ip: 存放商业上购买的成熟IP以及项目中一些成熟的可复用的代码。一般的,ip分为sim、FPGA以及DC版本。rtl: 存放项目的rtl代码。这是项目的核心,文件名与module名称应当一致,同时按照模块的层叠关系进行存放,必要时也可以采用平行结构存放。sim: 存放项目的仿真代码。一般在sim中建立一级子项目,使得sim文件恰恰在项目的两级子目录下。仿真文件的寻址需要上朔两级从根目录开始,这样当文件发生变动时,文件的寻址不需要多么大的改动。softcode:存放芯片设置之外,但是仿真平台需要的模块。仅仅用在sim之中。一般存放有仿真用adc、dac、片外ram等等。dc: 存放synopsysDC综合后的结果。pt: 存放synopsysPT检查的时序报表。fp: 存放后端工具floorplan后的网表和延时文件。pr: 存放后端工具place&route后的网表和延时文件。synplify:存放synplify工具综合后的网表。单单看上面的介绍,可能还是无法直观的看出我们所编写的代码的存放位置。图1直观的给出了文件的组织形式。rtl文件夹中存放有芯片内部的数字逻辑;ip文件夹中存放有芯片内部的模拟部分和可复用部分。softcode文件夹中存放有芯片外部的供仿真平台(testbench)使用的模块。而testbench文件则直接存放在sim文件夹之中。图1文件组织形式框图 verilog文件内部组织形式Verilog文件主要有以下几个部分组成:开头声明,文件引用,时间单位定义,moduleIO声明,宏定义,moduleIO定义,wire&reg定义,parameter定义,module具体实现。关于这几个部分的组织形式,请参考附录里的””文件。本章节主要介绍除module具体实现之外的其他环节的规定和注意事项。而关于module具体实现部分将根据该module是否可综合,分为之后的两个章节来分别阐述。开头声明每一个verilog文件的开头部分,都必须有一段声明的文字。该段文字如表2所示,声明文件的版权,作者,修改日期以及修改内容介绍等等。表2文件的开头声明//************************Declaration***************************************////ThisVerilogfilewasdevelopedbyTheInstituteofArtificialIntelli-////genceandRobotics,Xi'-////mationconfidentialandproprietarytoTheInst