VHDL

发布时间:2024-05-13 15:22:19 作者:汉语成语

VHDL的英文全称为Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,即超高速集成电路硬件描述语言。VHDL是一种IEEE标准的硬件编程语言,兼容多种EDA软件,具有功能强大,通用性强等特点,在电子工程领域,已成为事实上的通用硬件描述语言。

构造特点

1、ENTITY(实体)

格式:

Entity实体名IS

[类属参数说明]

[端口说明]

EndEntity;

其中端口说明格式为:

PORT(端口名1,端口名N:方向:类型)

其中方向有:IN,OUT,INOUT,BUFFER,LINKAGE

2、Arcthitecture(构造体)

格式:

Arcthitecture构造体名of实体名is

[定义语句]内部信号、常数、元件、数据类型、函数等的定义

begin

[并行处理语句和block、process、function、procedure]

end构造体名;

除了entity(实体)和architecture(构造体)外还有

另外三个可以独立进行编译的设计单元

Package(包集合)属于库结构的一个层次,存放信号定义、常数定义、数据类型、元件语句、函数定义和过程定义。

PackageBody具有独立对端口(port)的package

configuration(配置)描述层与层之间的连接关系以及实体与构造体之间关系。

基本类型

1、bit(位):`0`和`1`

2、bit-Vector(位矢量):例如:``00110``

3、Boolean“ture”和“false”

4、time例如:1us、100ms,3s

5、character例如:‘a’、’n’、’1’、’0’

6、string例如:“sdfsd”、”mydesign”

7、integer32位例如:1、234、-2134234

8、real范围-1.0E38~+1.0E38例如:1.0、2.834、3.14、0.0

9、natural自然数和positive正整数

10、senveritylevel(常和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)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。