VHDL代码书写规范
- 格式:doc
- 大小:319.00 KB
- 文档页数:11
VHDL代码书写规范
(定稿)
文件编号 :
编 制 :
审 核 :
可靠性审核:
标准化:
批 准 :
VHDL代码书写规范
第 1 页 共 11 页 文件会签页
文件历史记录
文件编号
现行版本 V1.0
文件标题 VHDL代码书写规范
文件履历
版次 编制 日期 更改内容(条款)
V1.0
V1.0
VHDL代码书写规范
第 2 页 共 11 页 目 录
1.目的 ....................................................................................... 1
2.范围 ....................................................................................... 1
3.术语说明 ................................................................................... 1
4.书写规范 ................................................................................... 1
4.1命名规范 ................................................................................ 1
R1.一个文件只包含一个模块,文件命名和实体命名必须相同。文件名大写,其后缀小写。 ........... 1
R2.顶层文件命名方式使用工程名、器件型号与_TOP结合。顶层文件的元件实例化,后缀使用_module;第二层文件的元件实例化,后缀使用_block;第三层之后不做定义(若遇到常见的基本逻辑电路或子模块,如:SRAM、FIFO等,那么优先使用具有代表性的名称) ......................................... 1
R3.代码编写之前,以文档的方式,根据功能分类,分别对FPGA的外部端口进行命名约定。 .......... 2
R4.命名要有实际意义。 ..................................................................... 2
R5.命名标识符的首字符必须是字母,包含多个单词的标志符单词之间使用下划线分开。信号、变量等的命名最后字符也一定要求是字母,中间的可以是数字或者其他合法符号。 ............................ 2
R6.模块、信号、变量等的命名不大于64个字符 ................................................ 2
R7.实体、结构名、端口信号、常量用大写标识 ................................................. 2
R8.行为级、结构级和数据流级结构命名分别以“BEH_实体名”、“STR_实体名”和“RTL_实体名”区分。如果是混合使用,或者是分不清使用了那一种结构,那么就是用“ARC_实体名”命名。 .............. 3
R9.单口RAM模块命名以SPRAM作后缀;双口RAM模块命名以DPRAM作后缀;ROM模块命名以ROM作后缀;FIFO模块命名以FIFO_作后缀;数字时钟管理模块命名以DCM作后缀;锁相环模块命名以PLL作后缀;乘法模块命名以MULT作后缀;除法模块命名以DIV作后缀;加法模块命名以ADD作后缀;减法模块命名以SUB作后缀。 .............................................................................. 3
R10.模块实例化时,采用‘Un_xx_元件名’标识,cell实例化时使用‘Mn_xx_元件名’标识。 ........ 3
R11.模块内部定义的信号、变量采用首字母大写命名。首字母符合说明的要求。 .................... 3
R12.非顶层模块端口信号命名方式采用I_portname、O_portname和IO_portname分别对应输入、输出和双向端口信号。 .............................................................................. 3
R13.时钟信号必须用后缀“_clk”进行命名。 .................................................. 3
R14.对于微处理器接口的寄存器,必须包含reg标志。用下划线分开该寄存器功能特征。 ............ 4
R15.对于输入管脚时钟采样同步的信号命名要求后缀加“_buf”表示。多次采样加数字区分。 ........ 4
R16.一些常用的基本信号按说明统一后缀命名。 ................................................ 4
R17.多比特信号,应该使用相同的比特顺序,都采用downto描述。 ............................... 5
R18.VHDL的保留字用小写。 ................................................................. 5
R19.调用IEEE 标准库时,“IEEE”用大写,其它用小写。 ...................................... 5
4.2注释规范 ................................................................................ 5
R20.每个VHDL源文件应该在文件头注释文件的基本信息。 ....................................... 5
R21.每个信号、变量、常量和端口的定义都要有注释。 .......................................... 5
R22.每个进程使用“--------”隔开。如果一个功能模块由几个进程组成,使用”--*****”隔开。 ... 5
R23.对于内部表,注释说明表的组成、表的内容及作用。 ........................................ 6
4.3其它书写规范 ............................................................................ 6
R24.用缩进方式使得代码有层次感,缩进不要使用TAB键,缩进为4个空格。 ...................... 6
R25.每行字符数,最大不能超过120。 ......................................................... 6 VHDL代码书写规范
第 3 页 共 11 页 R26.模块端口每行定义一个。先根据端口功能进行区分,然后再根据输入输出方向进行区分,类间用空行分开。 .................................................................................... 6
R27.调用模块使用 “=>”方式进行端口映射,总线到总线映射时(x downto y)要写全。 ........... 6
R28.调用模块进行端口映射时,一行代码只映射一个信号。顺序必须与原模块保持一致 .............. 6
R29功能集中或有很强的相关性的变量信号声明放在一起,类间用空行或注释分开。 ................. 6
R30.端口、信号、变量定义需要对齐;模块实例化时,端口映射需要对齐。 ........................ 6
R31.运算符与信号之间必须有空格分开 ........................................................ 7
VHDL代码书写规范
第 1 页 共 11 页 1.目的
规范VHDL的书写风格,保证代码的可读性、可重用性和可移植性,并且要与现有的EDA工具保持一致,从而形成对VHDL代码的标准化管理。
2.范围
本标准规定了VHDL代码书写规范。
本标准适用于G-LINK公司研发中心。
3.术语说明
本规范使用的术语解释如下:
级别:指该规则遵循的级别,有两个级别,分别为推荐和规定。
推荐:表示在一般情况下必须遵循该规则。
规定:表示必须严格遵守该规则。
说明:对此规则或准则的必要的解释。
示例:对此规则举例进行说明,示例分为正例和反例。
正例:对此规则或准则给出的正确示例。
反例:对此规则或准则给出的反面示例。
4.书写规范
4.1命名规范
R1.一个文件只包含一个模块,文件命名和实体命名必须相同。文件名大写,其后缀小写。
级别:规定
说明:文件类型为.vhd。如果文件名与实体名不一致,有些编译器不能识别,而且名字不一致,也不利于将文件与模块对应,不利于文件的管理。
正例:文件名是SER_TSP.vhd,那么文件内部实体的命名就是
entity SER_TSP is
port(
……
);
end SER_TSP;
architecture ARC_SER_TSP of SER_TSP is
……
end ARC_SER_TSP;
R2.顶层文件命名方式使用工程名、器件型号与_TOP结合。顶层文件的元件实例化,后缀使用_module;第二层文件的元件实例化,后缀使用_block;第三层之后不做定义(若遇到常见的基本逻辑电路或子模块,如:SRAM、FIFO等,那么优先使用具有代表性的名称)
级别:规定
说明:一般顶层文件命名使用工程名加器件名再加“_TOP”,如“OTDR_
XC3S1000BGA456_TOP”, 顶层文件的元件实例化,后缀使用_module,第二层文件的元件实例化,后缀使用_block,第三层之后不做定义(若遇到常见的基本逻辑电路,如:SRAM、FIFO等,那么按照SRAM、FIFO命名规则为优先)。
正例:文件名是OTDR_XC3S1000BGA456_TOP.vhd,那么设计实体内部的结构如图1所