VHDL的英文全称为Very-High-Speed Integrated Circuit Hardware Description Language,即超高速集成电路硬件描述语言。VHDL是一种IEEE标准的硬件编程语言,兼容多种EDA软件,具有功能强大,通用性强等特点,在电子工程领域,已成为事实上的通用硬件描述语言。
1、ENTITY(实体)
格式:
Entity 实体名 IS
[类属参数说明]
[端口说明]
End Entity;
其中端口说明格式为:
PORT(端口名1,端口名N:方向:类型)
其中方向有: IN , OUT, INOUT, BUFFER, LINKAGE
2、Arcthitecture(构造体)
格式:
Arcthitecture 构造体名 of 实体名 is
[定义语句] 内部信号、常数、元件、数据类型、函数等的定义
begin
[并行处理语句和block、process、function、procedure]
end 构造体名;
除了entity(实体)和architecture(构造体)外还有
另外三个可以独立进行编译的设计单元
Package(包集合)属于库结构的一个层次,存放信号定义、常数定义、数据类型、元件语句、函数定义和过程定义。
Package Body 具有独立对端口(port)的package
configuration(配置)描述层与层之间的连接关系以及实体与构造体之间关系。
1、bit(位): `0` 和`1`
2、bit-Vector(位矢量): 例如:``00110``
3、Boolean “ ture”和“false”
4、time 例如:1 us、100 ms,3 s
5、character 例如:‘a’、’n’、’1’、 ’0’
6、string 例如:“sdfsd”、”my design”
7、integer 32位例如:1、234、-2134234
8、real 范围-1.0E38~+1.0E38 例如:1.0、2.834、3.14、0.0
9、natural 自然数 和 positive 正整数
10、senverity level (常和assert语句配合使用)包含有:note、warning、error、failure
以上十种类型是VHDL中的标准类型,在编程中可以直接使用。使用这十种以外的类型,需要自行定义或指明所引用的Library(库)和Package(包)集合
基本概念
1、并行处理(concurrent)
语句的执行与书写顺序无关,并行块内的语句时同时执行的
2、顺序处理(sequential)
语句的执行按书写的先后次序,从前到后顺序执行。这种方式和其他普通编程语言(如c,pascal)是一样的
Architecture 中的语句及子模块之间是并行处理的
子模块block中的语句是并行处理的
子模块process中的语句是顺序处理的
子模块subprogram中的function和procedure是顺序处理的
与其他硬件描述语言相比,VHDL具有以下特点:
强大的系统硬件描述能力
VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。
支持广泛、易于修改
由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。
功能强大、设计灵活
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
独立于器件的设计、与工艺无关
设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。
很强的移植能力
VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。
易于共享和复用
VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。