VHDL代码书写规范

合集下载

第3节VHDL的数据及文字规则

第3节VHDL的数据及文字规则

四、文件
文件是传输大量数据的对象,可以包含一些专门数据类型 的数值。在系统仿真测试时,为方便控制及观察,测试的 输入激励数据和仿真结果的输出都要用文件来进行
IEEE STD1076-1987中定义了TEXTIO程序包, STD1076-1987中定义了TEXTIO程序包, 它定义了几种文件I 它定义了几种文件I/O传输的方式。例如:
这些文件I 这些文件I/O传输方式实际上是对一些过程的定 义,调用这些过程就能完成数据的传递。
4.3.3
VHDL数据类型( VHDL数据类型(DATA TYPES) 数据类型
四种基本数据类型: 四种基本数据类型: 标量类型( (1)标量类型( Scalar Type) 复合类型(Complex (2)复合类型(Complex Type) 存取类型(Access (3)存取类型(Access Type) 文件类型(File (4)文件类型(File Type) 重点介绍: 重点介绍: • VHDL的预定义数据类型 VHDL的预定义数据类型 • IEEE标准数据类型 IEEE标准数据类型 • 用户自定义数据类型方式
二、 IEEE标准数据类型 IEEE标准数据类型
数据类型STD_LOGIC共定义了九种值,具体如下: 数据类型STD_LOGIC共定义了九种值,具体如下: 共定义了九种值
‘U’ ‘X‘ '0‘ '1‘ 'Z‘ 'W‘ 'L‘ 'H‘ '-'
--未初始化 --未初始化 --强未知 --强未知 --强0 --强 --强1 --强 --高阻态 --高阻态 --弱未知 --弱未知 --弱0 --弱 --弱 1 --弱 --忽略 --忽略
四、段名
Swap A, 0feh 多个下标的组合 A, 0efh 标识符(表达式 方向 表达式) 标识符( 表达式) 方向----方向----- To 由低到高 DOWNTO 由高到低 7); 如:signal a, z: bit_vector(0 to 7);-- 8位位矢量 z(0 to 3)<=a(4 t0 7); 7); z(4 to 7)<=a(0 to 3); 3); a

实验五理论(二)VHDL文字规则

实验五理论(二)VHDL文字规则

2 字符串
(1)文字字符串
"ERROR" , "Both S and Q equal to 1" , "BB$CC"
(2)数位字符串
B:二进制基数符号,表示二进制位0或1,在字符串 中的每位表示一个Bit。 O:八进制基数符号,在字符串中的每一个数代表一 个八进制数,即代表一个3位(BIT)的二进制数。 X:十六进制基数符号(0~F),代表一个十六进制数, 即一个4位的二进制数。
data1 <= B"1_1101_1110" 矢数组长度是9 data2 <= O"15" 矢数组长度是6 data3 <= X"AD0" 位矢数组长度是12 data4 <= B"101_010_101_010" 矢数组长度是12 data5 <= "101_010_101_010" data6 <= "0AD0"
-- 二进制数数组,位 -- 八进制数数组,位
-- 十六进制数数组,
-- 二进制数数组,位 --表达错误,缺B。 --表达错它可以是常量、变量 、信号、端口、子程序或参数的名字。
规则: •有效的字符:包括26个大小写英文字母,数字包括0 ~9 以及下划线“_”。 •任何标识符必须以英文字母开头。 •必须是单一下划线“_”,且其前后都必须有英文字 母或数字。 •标识符中的英语字母不分大小写。 •允许包含图形符号(如回车符、换行符等),也允许 包含空格符。
C、物理量文字(VHDL综合器不接受此类文字)。如: 60s (60秒), 100m (100米), k (千欧姆), 177A (177安培)

VHDL代码设计规范

VHDL代码设计规范

签名签名编制审核部门部门签名审核签名审核加盖受控章部门部门签名签名审核审核部门部门签名签名审核审核部门部门签名签名审核审核部门部门签名签名审核审核部门部门签名签名审核审核部门部门审批批准生效日期:签名签名文件编号文件标题现行版本VHDL 代码设计规范V1.0版次编制日期更改内容(条款)文件编号:编制:审核:文件编号:编制:审核:可靠性审核:标准化:批准:........................................................................................................................................................................................................................................................................................................................................................................................................5.1. 书写规范 (3)5.1.1. 命名规范...................................................................... 3..5.1.2. 注释规范...................................................................... 5..5.1.3. 其他书写规范..................................................................6..5.2. 设计规范 (6)5.2.1. 复位..........................................................................6..5.2.2. 时钟.......................................................................... 7..5.2.3. 状态机........................................................................ 7..5.2.4. 异步信号...................................................................... 7..5.2.5. 其他设计规范.................................................................. 8..5.3. 设计常识 (9)................................................................................6.1. 例子说明(规范详细解释) (9)6.2. 代码模板 (18)规范 VHDL 的设计风格,保证代码的可读性、重用性及与现有 EDA 工具的一致性,从而形成对设计代码的标准化管理。

VHDL代码规范

VHDL代码规范

3
3.1
代码风格 .........................................................................................11
移植与可读性要求 ....................................................................................... 11
3.1.1 3.1.2 3.1.3 3.1.4 3.1.5
3.1.6 3.1.7 3.1.8 3.1.9
常数之间有确定的关系时,使用关系定义 ...............................................................12 定义地址时,使用基址+偏移方式 .............................................................................13 常数可能变动的情况下使用generic map方式传递,而不是在模块中定义 ...............13 表达式使用括号表示优先级 .......................................................................................13
3.2
3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9
语句使用 .......................................................................................................13

VHDL代码设计规范

VHDL代码设计规范

质量记录编号:第 1 页共1页文件历史记录质量记录编号:第 1 页共1页VHDL代码设计规范(评审稿)文件编号:编审制:核:VHDL代码设计规范(定稿)文件编号:编审制:核:可靠性审核:标准化:批准:目录1. 2. 3. 4. 5.目的 (1)范围 (1)术语说明 (1)规范列表 (1)规范 (3)5.1.书写规范 (3)5.1.1.5.1.2.5.1.3.命名规范 (3)注释规范 (5)其他书写规范 (6)5.2.设计规范 (6)5.2.1.5.2.2.5.2.3.5.2.4.5.2.5.复位 (6)时钟 (7)状态机 (7)异步信号 (7)其他设计规范 (8)5.3.设计常识 (9)6.附录 (9)6.1.6.2.例子说明(规范详细解释) (9)代码模板 (18)- 1 -1. 目的规范VHDL的设计风格,保证代码的可读性、重用性及与现有EDA工具的一致性,从而形成对设计代码的标准化管理。

2. 范围本标准规定了VHDL代码设计规范。

本标准适用于COMBA公司技术中心。

3. 术语说明本规范使用的术语解释如下:级别:指该规则遵循的级别,有两个级别,分别为推荐和规定。

推荐:表示在一般情况下必须遵循该规则。

规定:表示必须严格遵守该规则。

说明:对此规则或准则的必要的解释。

示例:对此规则举例进行说明,示例分为正例和反例。

正例:对此规则或准则给出的正确示例。

反例:对此规则或准则给出的反面示例。

4. 规范列表编号级别书写规范规则R1.R2. R3.R4. R5. R6.R7. R8. R9.规定规定规定推荐规定规定规定推荐推荐一个文件只包含一个模块,文件命名、模块命名、实体命名必须相同。

文件名及其后缀必须小写.顶层文件命名方式使用器件型号、工程名与_top 结合。

第二层文件后缀使用_module,第三层文件使用_block,第四层之后不做定义。

模块使用功能进行划分,第二层文件及下面的模块命名,第一个单词需要与第二层文件一致。

VHDL语言编写规范

VHDL语言编写规范

VHDL语言编写规范目录目录 (1)1 目的 (2)2 范围 (2)3 定义 (2)4 规范内容:VHDL编码风格 (2)4.1 标识符(Identifiers)命名习惯 (2)4.2 数据对象和类型 (4)4.3 信号和变量 (5)4.4 实体 (5)4.5 语句 (7)4.6 运算符(Operator) (10)4.7 function (10)4.8 procedure (11)4.9 类属( generics) (11)4.10 package (12)4.11 FSM(有限状态机) (12)4.12 Comments (12)4.13 TAB键间隔 (12)4.14 语句书写规范规定 (13)5 程序中的注释 (13)6 代码模块划分 (14)7 代码编写中容易出现的问题 (15)7.1 资源共享问题 (15)7.2 组合逻辑描述的多种方式 (15)7.3 考虑综合的执行时间 (16)7.4 避免使用Latch (16)7.5 多赋值语句案例:三态总线 (16)附录一VHDL保留字 (18)附录二函数书写实例 (19)附录三参数化元件实例 (20)附录四程序包书写实例 (21)1 目的编写该规范的目的是提高书写VHDL代码的可读性、可修改性、可重用性;优化代码综合和仿真结果,指导设计工程师使用VHDL 规范代码和优化电路,规范化公司的ASIC/FPGA 设计输入,从而做到:a、逻辑功能正确;b、可快速仿真;c、综合结果最优;d、可读性最好。

2 范围该规范设计VHDL编码风格、规定,编码中应注意的问题,VHDL代码书写范例等,适用于所有的采用VHDL代码进行设计的项目。

3 定义VHDL:Very high speed IC Hardware Description Language,甚高速集成电路的硬件描述语言。

FSM:Finite Status Machine,有限状态机Simulate:仿真,通过输入激励在计算机上验证设计是否正确。

VHDL代码书写规范

VHDL代码书写规范

VHDL代码书写规范(定稿)文件编号:编制:审核:可靠性审核:标准化:批准:文件会签页文件历史记录文件编号现行版本V1.0 文件标题VHDL代码书写规范文件履历版次编制日期更改内容(条款)V1.0V1.0目录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_元件名’标识。

VHDL编程规范

VHDL编程规范

华为VHDL编程规范(2010-10-18 13:30:09)转载分类:FPGA标签:vhdl编程规范杂谈1.标识符 (Identifiers)命名习惯标识符用于定义实体名结构体名信号和变量名等选择有意义的命名对设计是十分重要的命名包含信号或变量诸如出处有效状态等基本含义下面给出一些命名的规则包括VHDL语言的保留字2.标识符定义命名规定标识符第一个字符必须是字母最后一个字符不能是下划线不许出现连续两个下划线基本标识符只能由字母数字和下划线组成标识符两词之间须用下划线连接标识符不得与保留字同名3. 标识符大小写规定对常量数据类型实体名和结构体名采用全部大写对变量采用小写对信号采用第一个词首字符大写保留字一律小写建议用有意义而有效的名字能简单包含该信号的全部或部分信息如输入输出信息Data_in 总线数据输入Din 单根数据线输入FIFO_out FIFO数据总线输出如宽度信息Cnt8_q 8位计数器输出信号的命名变量主要用在高层次的模拟模型建模及用于运算的用途但变量的综合较难定义对于编写可综合的VHDL模块在没有把握综合结果情况下建议不使用在VHDL中信号(signal)代表硬件连线因此可以是逻辑门的输入输出同时信号也可表达存贮元件的状态端口也是信号在进程process 中信号是在进程结束时被赋值因此在一个进程中当一个信号被多个信号所赋值时只有最后一个赋值语句起作用1. 实体结构体使用规定library IEEE use IEEE.std_logic_1164.all 除IEEE大写外其余小写实体名和结构体名必须用大写标识实体名必须与文件名同名自定义的其他标识符如信号名变量名标号等不得与实体名结构体名同名实体端口数据模式不准使用buffer 模式需要反馈的信号可定义内部信号来解决如计数器端口Count 可内部定义信号signal Cnt8_q STD_LOGIC_VECTOR(7 downto 0)实体端口数据类型规定实体端口的数据类型采用IEEE std_logic_1164 标准支持的和提供的最适合于综合的数据类型STD_ULOGIC STD_LOGIC和这些类型的数组不采用IEEE 1076 /93 标准支持和提供的BIT BIT数组INTEGER及其派生类型这是为保证模拟模型和综合模型的一致性及减少转换时间和错误代码书写要有层次即层层缩进格式清晰美观要有必要的注释25%实体开始处应注明文件名功能描述引用模块设计者设计时间及版权信息等如-- Filename ﹕-- Author ﹕-- Description ﹕library IEEE;use IEEE.std_logic_1164.all;entity ENTITY_NAMEport(Port1 : in STD_LOGIC;Port2 : in STD_LOGIC;Port3 : out STD_LOGIC;..Portn : out STD_LOGIC);end ENTITY_NAME ;architecture BEHAVIOR of ENTITY_NAME isbeginStatements;end BEHAVIOR ;实体名的命名建议能大致反映该实体的功能如COUNTER8 8位宽的计数器模块DECODER38 3-8线译码器模块一个实体可以有多个结构体对单个结构体的实体文件要包含结构体和实体说明便于查阅对多个结构体的实体建议把常用的结构体放在文件中其余结构体用单独文件表示使用时用configuration 语句进行配置2. VHDL各语句使用规定with-select-when 语句书写规范规定with- select - when 语句提供选择信号赋值是根据选定信号的值对信号赋值代码的书写规范为with S selectX <= A when 00,B when 01,C when 10,D when others;when_else 语句书写规范规定when_else 语句提供为条件信号赋值即一个信号根据条件被赋一值代码书写规范为Signal_name <= value_a when condition1 elsevalue_b when condition2 elsevalue_c when condition3 elsevalue_x当条件是表达式时表达式须用()括起来使代码更为清晰如when (a = b and C= ‘1 ’)elseif 必须有一个else 对应除在如下面例子的情况下可不写else语句例process( Clk,Rst)beginif ( Rst = '1') thenQ <= '0';elsif ( Clk ‘event and Clk = ‘1’) thenQ <= D;end if;end process;case- when 语句书写规范规定该语句用于规定一组根据给定选择信号的值而执行的语句可用with-select-when 语句等效代码的书写规范为case- selection_signal iswhen value1_of _selection signal =>Statements1;when value2_of _selection signal =>Statements2;....when last_value_of _selection signal =>Statements x ;when others =>Statements x;end case;process 显示敏感列表必须完整对有Clk 的process 不同综合工具有不同的要求有些只要写Clk和Rst就可建议根据具体情况简化设计书写有clk的process 的敏感列表中为方便修改敏感列表书写规范如下Lab: process (Clk, Rst,list1,list2)begin每个process 前须加个lable为便于阅读port map 采用名字对应(=> )映射方法port map 中总线到总线映射时(X downto Y )要写全VHDL保留字VHDL语言的保留字如下absaccess after alias all and architecture array assert attributebegin block buffer bus case component configuration constantdisconnect downto else elsif end entity exit file for functiongenerate generic group guarded if impure in inertial inoutis label library linkage literal loop map mod nand new next nornot null of on open or others out package portpostponed procedure process pure range record register reject rem report return rol ror select severity signal shared sla sll sra srl subtype then to transport type unaffected units until use variablewait when while with xnor xorVHDL 编写范例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VHDL代码书写规范(定稿)文件编号:编制:审核:可靠性审核:标准化:批准:文件会签页文件历史记录文件编号现行版本V1.0 文件标题VHDL代码书写规范文件履历版次编制日期更改内容(条款)V1.0V1.0目录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)R26.模块端口每行定义一个。

先根据端口功能进行区分,然后再根据输入输出方向进行区分,类间用空行分开。

(6)R27.调用模块使用“=>”方式进行端口映射,总线到总线映射时(x downto y)要写全。

(6)R28.调用模块进行端口映射时,一行代码只映射一个信号。

顺序必须与原模块保持一致 (6)R29功能集中或有很强的相关性的变量信号声明放在一起,类间用空行或注释分开。

(6)R30.端口、信号、变量定义需要对齐;模块实例化时,端口映射需要对齐。

(6)R31.运算符与信号之间必须有空格分开 (7)1.目的规范VHDL的书写风格,保证代码的可读性、可重用性和可移植性,并且要与现有的EDA工具保持一致,从而形成对VHDL代码的标准化管理。

2.范围本标准规定了VHDL代码书写规范。

本标准适用于G-LINK公司研发中心。

3.术语说明本规范使用的术语解释如下:级别:指该规则遵循的级别,有两个级别,分别为推荐和规定。

推荐:表示在一般情况下必须遵循该规则。

规定:表示必须严格遵守该规则。

说明:对此规则或准则的必要的解释。

示例:对此规则举例进行说明,示例分为正例和反例。

正例:对此规则或准则给出的正确示例。

反例:对此规则或准则给出的反面示例。

4.书写规范4.1命名规范R1.一个文件只包含一个模块,文件命名和实体命名必须相同。

文件名大写,其后缀小写。

级别:规定说明:文件类型为.vhd。

如果文件名与实体名不一致,有些编译器不能识别,而且名字不一致,也不利于将文件与模块对应,不利于文件的管理。

正例:文件名是SER_TSP.vhd,那么文件内部实体的命名就是entity SER_TSP isport(……);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所示:OTDR_XC3S1000BGA456_TOP.vhdAD9051_moduleSync_moduleSync_corr_blockSync_corr_sramSync_corr_fifo图1 设计实体内部的结构R3.代码编写之前,以文档的方式,根据功能分类,分别对FPGA的外部端口进行命名约定。

级别:规定说明:命名约定包括模块命名、端口信号命名(确保工程的顶层文件的端口与原理图设计保持一致)、端口信号引脚分配说明(是否是特殊引脚或是普通I/O脚)等。

在整个系统的研发过程中,FPGA与其它电路模块(CPU/模拟电路/通信接口等)之间的关系是非常密切的,为了处理好FPGA与其它电路模块之间的相互联系,我们必须以文档的形式,清晰地说明输入输出端口的特性以及FPGA内部所完成的功能,才能使整个研发团队之间的合作更加顺畅。

正例:①FPGA与ARM微处理器之间采用SPI通信协议;②SPI通信接口分别是:SPI_CLK、SPI_MISO、SP_MOSI、SPI_CS;③SPI通信接口的引脚分配均为普通I/O引脚。

R4.命名要有实际意义。

级别:规定说明:具有一定意义的命名比写上好几行的注释要好得多。

正例:如全加器模块(FULL_ADDER)、半加器子模块(HALF_ADDER)和时钟信号锁相环模块(CLK_SHIFT_PHASE_PLL)等R5.命名标识符的首字符必须是字母,包含多个单词的标志符单词之间使用下划线分开。

信号、变量等的命名最后字符也一定要求是字母,中间的可以是数字或者其他合法符号。

级别:规定说明:由于某些综合工具对于总线类型的信号,综合的结果为总线名加上数字编号。

如果信号、变量名最后一个字母也使用数字的话,容易混扰。

正例:Pulse_FFT、AD_State、Address反例:PulseFFT、ADState、Address8R6.模块、信号、变量等的命名不大于64个字符级别:规定说明:太长的命名不方便阅读。

R7.实体、结构名、端口信号、常量用大写标识级别:规定说明:使用大写容易与一般的信号、变量区分。

R8.行为级、结构级和数据流级结构命名分别以“BEH_实体名”、“STR_实体名”和“RTL_实体名”区分。

如果是混合使用,或者是分不清使用了那一种结构,那么就是用“ARC_实体名”命名。

级别:规定表1 实体命名方式描述方式命名方式行为级描述BEH_实体名结构级描述STR_实体名数据流级描述RTL_实体名混合级描述ARC_实体名R9.单口RAM模块命名以SPRAM作后缀;双口RAM模块命名以DPRAM作后缀;ROM 模块命名以ROM作后缀;FIFO模块命名以FIFO_作后缀;数字时钟管理模块命名以DCM作后缀;锁相环模块命名以PLL作后缀;乘法模块命名以MULT作后缀;除法模块命名以DIV作后缀;加法模块命名以ADD作后缀;减法模块命名以SUB作后缀。

级别:规定示例:如大小为512X8的双口RAM(其中512为数据深度,8为数据宽度),命名顺序为功能、存储容量和器件类型:Function_512x8_dpram,调用时,例化名可以为U_Function_512x8_dpram,其中Function说明双口RAM的作用。

R10.模块实例化时,采用‘Un_xx_元件名’标识,cell实例化时使用‘Mn_xx_元件名’标识。

级别:推荐说明:因为综合、布线工具的工具,一般都将使用实例标志输出报告,如果没有表示模块的名字,不利于阅读报告。

其中n表示多次实例化的编号,xx表示模块调用的特性(如用途等)。

如果只调用一次,那么就不必使用数字,直接就是‘U_xx_元件名’示例:如HDLC发送模块hdlc_trans,调用时例化名可以为:U0_hirs_hdlc_trans,U1_e1_hdlc_trans;对于三态输出单元tri,调用时例化名可以为M_cpuio_tri。

R11.模块内部定义的信号、变量采用首字母大写命名。

首字母符合说明的要求。

级别:规定说明:首字符要求如表1所示:表1 模块内部定义数据对象的首字符要求例子说明信号S_cpu_addr 信号使用“S_”开头变量V_data_buf 变量使用“V_”开头常量C_RSSI_ADDR 常量使用“C_”开头数组A_rssi 数组使用“A_”开头R12.IO_portname分别对应输入、输出和双向端口信号。

级别:规定说明:“I_”表示输入;“O_”表示输出;“IO_”表示双向。

相关文档
最新文档