[Word]华为VHDL编程规范.doc
文本预览下载声明
华为VHDL编程规范
(2010-10-18 13:30:09)
HYPERLINK javascript:; 转载
标签:
HYPERLINK /c.php?t=blogk=vhdlts=bpoststype=tag \t _blank vhdl HYPERLINK /c.php?t=blogk=%B1%E0%B3%CCts=bpoststype=tag \t _blank 编程 HYPERLINK /c.php?t=blogk=%B9%E6%B7%B6ts=bpoststype=tag \t _blank 规范 HYPERLINK /c.php?t=blogk=%D4%D3%CC%B8ts=bpoststype=tag \t _blank 杂谈
分类: HYPERLINK /s/articlelist_1829994213_1_1.html \t _blank FPGA
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线译码器模块
一个实体可以有多个
显示全部