一、VHDL优点:
覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言;
VHDL语言具有良好的可读性,既可以被计算机接受,也容易被人们 VHDL语言已做为一种IEEE的工业标准,便于使用、交流和推广。
VHDL的不足之处:
设计的最终实现取决于针对目标器件的编程器,工具的不同会导致综合质量不一样。
二、VHDL语言基础
1、标识符
首字符必须是字母
末字符不能为下划线
不允许出现两个连续的下划线
不区分大小写
VHDL定义的保留字(关键字),不能用作标识符
标识符字符最长可以是32个字符。
需要避免关键字:ABS, ACCESS,AFTER,ALL,AND,ARCHITECTURE,
ARRAY,ATTRIBUTE,BEGIN,BODY,BUFFER,BUS,CASE ,
COMPONENT,CONSTANT,DISCONNECT,DOWNTO,ELSE,
ELSIF,END,ENTITY,EXIT,FILE,FOR,FUNCTION,GENERIC,
GROUP,IF,INPURE,IN,INOUT,IS,LABEL,LIBRARY,
LINKAGE,LOOP,MAP,MOD,NAND,NEW,NEXT,NOR ,NOT,
NULL,OF,ON,OPEN ,OR ,OTHERS,OUT,PACKAGE,POUT,
PROCEDURE ,PROCESS,PURE,RANGE ,RECODE,REM,
REPORT,RETURN,ROL,ROR,SELECT,SHARED,SIGNAL,
SLA,SLL,SRA,SUBTYPE,THEN,TRANSPORT,TO,TYPE ,
UNAFFECTED,UNITS,UNTIL,USE,VARIABLE,WAIT,WHEN,
WHILE,WITH,XOR ,XNOR
2、数据对象
数据对象包括常量、变量、信号和文件四种类型。
2.1常量是对某一常量名赋予一个固定的值,而且只能赋值一次。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。
Constant 常数名:数据类型:=表
常量所赋的值应和定义的数据类型一致;
常量在程序包、实体、构造体或进程的说明性区域内必须加以说明。定义在程序包内的常量可供所含的任何实体、构造体所引用,定义在实体说明内的常量只能在该实体内可见,定义在进程说明性区域中的常量只能在该进程内可见。
2.2变量Variable
变量只能在进程语句、函数语句和过程语句结构中使用。变量的赋值是直接的,非预设的,分配给变量的值立即成为当前值,
变量不能表达“连线”或存储元件,不能设置传输延迟量。
变量定义语句:
Variable count: integer 0 to 255:=20 ; -- 定义count整数变量,变化
范围0~255,初始值为20。
Variable 变量名:数据类型 :=初始值变量定义语
目标变量名 := 表达式;
x:=10.0; -- 实数变量赋值为10.0A(3 to 6):=(“1101”); --位矢量赋值
2.3信号Signal
信号表示逻辑门的输入或输出,类似于连接线,也可以表达存储元件的状态。信号通常在构造体、程序包和实体中说明。
信号定义语句:
Signal 信号名: 数据类型 :=初始值信号定义语
Z<=x after 5 ns; -- 在5ns后将x的值赋予z
3、数据类型
VHDL的预定义数据类型
在VHDL标准程序包STANDARD中定义好,实际使用过程中,已自动包含进VHDL源文件中,不需要通过USE语句显式调用。
布尔:(Boolean)
TYPE BOOLEAN IS (FALSE, TRUE);
-- 取值为FALSE和TRUE,不是数值,不能运算,一般用于关系运算符
位: ( Bit )