VHDL代码设计规范.doc
- 文档编号:1648512
- 上传时间:2022-10-23
- 格式:DOC
- 页数:26
- 大小:1.26MB
VHDL代码设计规范.doc
《VHDL代码设计规范.doc》由会员分享,可在线阅读,更多相关《VHDL代码设计规范.doc(26页珍藏版)》请在冰豆网上搜索。
文件履历表
DocumentHistoryForm
文件会签页
文件标题
VHDL编码规范(试用版)
文件编号
授权
分发清单
加盖受控章
签名
签名
编制
审核
部门
部门
签名
签名
审核
审核
部门
部门
签名
签名
审核
审核
部门
部门
签名
签名
审核
审核
部门
部门
签名
签名
审核
审核
部门
部门
签名
签名
审核
审核
部门
部门
签名
签名
审核
审核
部门
部门
审批
签名
批准
签名
生效日期:
文件历史记录
文件编号
现行版本
V1.0
文件标题
VHDL代码设计规范
文件履历
版次
编制
日期
更改内容(条款)
质量记录编号:
第1页共1页
VHDL代码设计规范
(评审稿)
文件编号:
编制:
审核:
VHDL代码设计规范
(定稿)
文件编号:
编制:
审核:
可靠性审核:
标准化:
批准:
目录
1. 目的 1
2. 范围 1
3. 术语说明 1
4. 规范列表 1
5. 规范 3
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. 附录 9
6.1. 例子说明(规范详细解释) 9
6.2. 代码模板 18
-1-
1.目的
规范VHDL的设计风格,保证代码的可读性、重用性及与现有EDA工具的一致性,从而形成对设计代码的标准化管理。
2.范围
本标准规定了VHDL代码设计规范。
本标准适用于COMBA公司技术中心。
3.术语说明
本规范使用的术语解释如下:
级别:
指该规则遵循的级别,有两个级别,分别为推荐和规定。
推荐:
表示在一般情况下必须遵循该规则。
规定:
表示必须严格遵守该规则。
说明:
对此规则或准则的必要的解释。
示例:
对此规则举例进行说明,示例分为正例和反例。
正例:
对此规则或准则给出的正确示例。
反例:
对此规则或准则给出的反面示例。
4.规范列表
编号
级别
规则
书写规范
R1.
规定
一个文件只包含一个模块,文件命名、模块命名、实体命名必须相同。
文件名及其后缀必须小写.
R2.
规定
顶层文件命名方式使用器件型号、工程名与_top结合。
第二层文件后缀使用_module,第三层文件使用_block,第四层之后不做定义。
R3.
规定
模块使用功能进行划分,第二层文件及下面的模块命名,第一个单词需要与第二层文件一致。
R4.
推荐
代码编写之前,以文档的方式,进行命名约定
R5.
规定
命名要有实际意义。
R6.
规定
命名标识符的首字符必须是字母,包含多个单词的标志符单词之间使用下划线分开。
信号、变量等的命名最后的也一定要求是字母,中间的可以是数字或者其他合法符号。
R7.
规定
模块、信号、变量等的命名不大于64个字符
R8.
推荐
实体,结构名用大写标识
R9.
推荐
行为级、结构级的结构体命名分别以“BEH_实体名”和“STR_实体名”区分。
如果是混合使用,或者是分不清使用了那一种结构,那么就是用“ARC_实体名”命名.
R10.
规定
单口RAM模块命名以SPRAM作后缀;双口RAM模块命名以DPRAM作后缀;ROM模块命名以ROM作后缀;FIFO模块命名以FIFO_作后缀;数字时钟管理模块命名以DCM作后缀;锁相环模块命名以PLL作后缀;乘法模块命名以MULT作后缀;除法模块命名以DIV作后缀;加法模块命名以ADD作后缀;减法模块命名以SUB作后缀。
R11.
推荐
模块实例化时,采用‘Un_xx_元件名’标识,cell实例化时使用‘Mn_xx_元件名’标识。
R12.
规定
模块内部定义的信号、变量采用首字母大写命名。
首字母符合说明的要求
R13.
规定
非顶层模块端口信号命名方式采用I_portname、O_portname分别对应输入、输出端口信号。
R14.
规定
顶层模块端口信号命名要求与原理图命名一致或者是相关意义的英文单词或者字母
R15.
规定
时钟信号必须用后缀“_clk”进行命名
R16.
规定
对于微处理器接口的寄存器,必须包含reg标志。
用下划线分开该寄存器功能特征
R17.
规定
对于输入管脚时钟采样同步的信号命名要求后缀加“_buf”表示。
多次采样加数字区分
R18.
规定
一些常用的基本信号按说明统一后缀命名
R19.
规定
多比特信号,应该使用相同的比特顺序,都采用downto描述。
R20.
规定
VHDL的保留字用小写
R21.
规定
调用IEEE标准库时,“IEEE”用大写,其余用小写。
R22.
规定
每个VHDL源文件应该在文件头注释文件的基本信息
R23.
规定
每个信号,变量和端口的定义都要有注释
R24.
规定
每个进程使用“--------”隔开。
如果一个功能模块由几个进程组成,使用”--*****”隔开。
R25.
推荐
对于内部表,注释说明表的组成、表的内容及作用
R26.
规定
用缩进方式使得代码有层次感,缩进不要使用TAB键,缩进为4个空格
R27.
推荐
每行字符数推荐不大于90,最大不能超过120
R28.
规定
模块端口每行定义一个。
根据端口功能进行区分,类间用空行分开
R29.
推荐
调用模块使用“=>”方式进行端口映射,总线到总线映射时(xdowntoy)要写全
R30.
规定
调用模块进行端口实例时,一行代码只实例一个信号。
顺序必须与原模块保持一致
R31.
规定
功能集中或有很强的相关性的变量信号声明放在一起,类间用空行或注释分开
R32.
规定
端口、信号、变量定义需要对齐,端口实例化需要对齐
R33.
规定
运算符与信号之间必须有空格分开
设计规范
R34.
规定
全局复位信号使用器件提供的全局信号管脚
R35.
推荐
当采用异步复位时,推荐使用同步释放的方式
R36.
规定
每个输出管脚和内部定义的信号都应该通过复位信号赋初值
R37.
推荐
全局时钟输入在管脚够用的情况下必须使用器件全局时钟输入管脚
R38.
推荐
尽量不要在设计中对同一时钟的上升沿和下降沿混合使用,建议使用上升沿,可以考虑使用高频时钟替代时钟沿的混用
R39.
推荐
避免使用内部的产生的信号(如分频信号)作为时钟信号
R40.
规定
如果一定使用分频时钟的话,必须使用全局布线资源。
R41.
规定
避免使用门控时钟
R42.
推荐
FPGA的输入时钟至少有一个本地时钟,用作CPU接口或监控时钟。
R43.
推荐
逻辑控制推荐使用状态机实现
R44.
规定
状态机的各个状态,使用参数表示
R45.
推荐
状态机编码:
在速度可以满足要求的情况下,不推荐使用one_hot编码;进行二进制编码且状态机的处理流程比较单一时,推荐使用格雷码。
R46.
规定
并行信号总线,如果与采样时钟异步,必须进行两次采样比较,才能作为采样的结果使用
R47.
规定
对与时钟异步的信号进行沿检测,需要先采样该信号,再对该信号的采样信号进行沿检测
R48.
规定
对于异步信号,必须先进行同步,不能直接使用。
R49.
推荐
顶层文件只作为内部模块的互联,一般不再包含逻辑
R50.
推荐
内部模块间端口尽量避免使用inout类型端口
R51.
规定
所有端口禁止使用buffer类型端口
R52.
规定
异步进程的敏感列表中一定要列全所有敏感信号
R53.
推荐
使用括号表示优先级
R54.
推荐
使用参数化设计
R55.
规定
所有预留输入管脚与起来送到一个垃圾输出管脚;所有预留输出管脚根据系统要求输出无效电平
R56.
规定
计数器(signal)按2的整数次幂方式定义,使用时,注意对不用状态的处理
R57.
推荐
模块划分应该以功能为原则
R58.
推荐
模块划分区分面积敏感和速度敏感的部分,将它们分在不同模块
R59.
推荐
建议每个进程只处理一个信号或只处理一组时序密切相关的信号
R60.
规定
组合逻辑中,每一个if语句,必须有一个else语句。
如果else不会发生,或不进行操作,else条件下加上空语句
R61.
推荐
if嵌套不宜太多
设计常识
R62.
推荐
if和case语句
R63.
推荐
状态机的设计
R64.
推荐
流水线操作
R65.
规定
顶层模块的输入输出端口信号的命名采用IO_portname的方式。
5.规范
本规范分为书写规范、设计规范以及其他设计注意事项,下面分别进行说明。
5.1.书写规范
5.1.1.命名规范
R1.一个文件只包含一个模块,文件命名、模块命名、实体命名必须相同。
文件名必须小写。
级别:
规定
说明:
文件类型为.vhd。
如果文件名与模块名不一致,有些编译器不能识别,而且名字不一致,也不利于将文件与模块对应,不利于文件的管理。
示例:
请参阅例:
文件模块命名。
R2.顶层文件命名方式使用器件型号与_top结合。
第二层文件后缀使用_module,第三层文件使用_block,第四层之后不做定义。
级别:
规定
说明:
一般顶层文件命名使用器件名加工程名再加“_top”,如“xc3s1000bga456_rru_top”,第二层文件使用“_module”,如“ad5320_module”,第三层文件使用“_block”,如“sync_corr_block”。
如果是最基本的元件,如DPRAM、FIFO等,按照DPRAM、FIFO命名规则为优先。
R3.第二层模块使用功能进行划分,第二层文件下面的文件命名第一个单词需要与第二层文件一致。
级别:
规定
说明:
逻辑模块使用功能进行划分,为了每一个模块的文件按照顺序排列在一起,方便文件管理,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 代码 设计规范