VHDL编程规范.docVIP

  • 26
  • 0
  • 约3.57千字
  • 约 6页
  • 2017-06-07 发布于重庆
  • 举报
VHDL编程规范

华为VHDL编程规范 (2010-10-18 13:30:09) 转载 标签: 编程 规范 杂谈 分类: 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_NAME port( Port1 : in STD_LOGIC; Port2 : in STD_LOGIC; Port3 : out STD_LOGIC; .. Portn : out STD_LOGIC ); end ENTITY_NAME ; architecture BEHAVIOR of ENTITY_NAME is begin Statements; end BEHAVIOR ; 实体名的命名建议能大致反映该实体的功能如 COUNTER8 8位宽的计数器模块 DECODER38 3-8线译码器模块 一个实体可以有多个结构体 对单个结构体的实体 文件要包含结构体和实体说明 便于查 阅 对多个结构体的实体 建议把常用的结构体放在文件中 其余结构体用单独文件表示 使 用时用configuration 语句进行配置 2. VHDL各语句使用规定 with-select-when 语句书写规范规定 with- select - when 语句提供选择信号赋值 是根据选定信号的值对信号赋值 代码的书写规范为 with S select X = A when 00, B when 01, C when 10, D when others; when_else 语句书写规范规定 when_else 语句提供为条件信号赋值 即一个信号根据条件被赋一值 代码书写规范为 Signal_

文档评论(0)

1亿VIP精品文档

相关文档