2.1 VHDL语言概述
第四讲VHDL语言基础知识

关键词 VHDL 实体 逻辑功能
此两处必须同名
逻辑行为描述
1、实体
格式
ENTITY 实体名 IS [GENERIC ( 类属表 );] [PORT ( 端口表 );] END 实体名;
说明
实体说明所设计的逻辑电路的输入、输 出信号及其特性(输入(in)输出(out)、双向 (inout)、buffer)
•文件(FILES)是传输大量数据的客体,包含一些专门数据 类型的数值。
对象说明的一般格式是: <对象类型> < 标识符表>:<子类型说明> <信号种类>: =<表达式>; 说明 标识符 <子类型说明>是类型名或类型名加限制条件 <信号种类>为BUS或REGISTER,该项为任选项 :=<表达式>为对象赋初值
IS
一个包集合由包集合标题和包集合体两 大部分组成。 包集合体是一个可选项。
5、库
格式
LIBRARY 库名; USE 库名. 程序包名. All;
USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序包名.ALL ;
VHDL库的种类
• IEEE库:IEEE标准库, 是按IEEE组织制定的 工业标准进行编写的, 是内容丰富的资源库 使用需声明 • •STD_LOGIC_1164 程序包 •STD_LOGIC_ARITH 程序包 •STD_LOGIC_UNSIGNED 程序包
STD库:VHDL标准库,STANDARD和 TEXTIO程序包即收入在STD库中 使用无需声明
VHDL库的种类
• • •
ASIC库:EDA厂商提供库 使用需声明 WORK库:现行作业库,当前工作目录的所有设计 使用无需声明 USER库:用户自定义库 使用需声明
硬件描述语言VHDL基本概念

信号模式表示端口的数据流向,有以下五 种:IN(流入实体)、OUT(流出实体)、 INOUT(双向端口)、BUFFER(带有反馈的 输出端口,该端口只能有1个驱动源)和 LINKAG(无特定方向)。
20世纪70年代末至80年代初,美国国防部提出了 VHSIC(Very High Speed Integrated Circuit)计划, 其目标是为了开发新一代集成电路。
为了配合这一计划,1983年美国国防部与TI公司、 IBM公司和Intermerics公司联合签约,开发VHSIC HDL,即VHDL。在1985年开发小组发布了最后版本 VHDL V7.2,同时开始着手标准化工作,到1987年12月, VHDL经过多次修改后,被IEEE接受为第一个标准HDL, 即IEEE Std 1076-1987。
目前公布的最新VHDL标准版本是
IEEE Std 1076-2008。
2.2 1位全加器的描述实例
1位全加器有3个输入端a、b、c_in和 2个输出端sum、c_out。
它是由2个半加器和1个或门构成。
a
sum
b
全加器
a
temp_sum
sum
U1
U2
b 半加器
半加器 temp_c2
c_in
c_out c_in
1个设计实体由1个实体声明和若干个结构 体组成。实体声明是设计实体的接口部分,它 表示设计实体对外部的特征信息;结构体是设 计实体的实现方案描述。
1个设计实体中的若干个结构体,分别代表 同一实体声明的不同实现方案。
VHDL语言基础

VHDL语⾔基础VHDL语⾔基础1 数据对象数据对象包括常量、变量、信号和⽂件四种类型1.1 常量常量是对某⼀常量名赋予⼀个固定的值,⽽且只能赋值⼀次。
通常赋值在程序开始前进⾏,该值的数据类型则在声明语句中指明--定义常量语句:--Constant 常数名:数据类型:=表达式Constant Vcc:real:=5.2; --指定Vcc的数据类型是实数,赋值为5.0VConstant bus_width:integer:=8; --定义总线宽度为常数8常量所赋的值应和定义的数据类型⼀致;常量在程序包、实体、构造体或进程的说明性区域必须加以说明。
定义程序包内的常量课提供所包含的任何实体、构造体所引⽤,定义在实体说明内的常量只能在该实体内可见,定义在进程说明内的常量只能在该实体内可见,定义在进程说明区域中的常量只能在该进程内可见1.2 变量变量只能在进程语句、函数语句和过程语句结构中使⽤。
变量的赋值是直接的,⾮预设的。
变量不能表达“连线”或储存原件,不能设置传输延迟量--定义变量语句--Variable 变量名:数据类型:=初始值;Variable count:integer 0 to 255:=20; --定义count整数变量,变化范围0-255,初始值为20--变量赋值语句--⽬标变量名:=表达式;x:=10.0; --实数变量赋值为10.0Y:=1.5+x; --运算表达式赋值,表达式必须与⽬标变量的数据类型相同A(3 to 6):=("1101") --位⽮量赋值1.3 信号信号表⽰逻辑门的输⼊或输出,类似于连接线,也可以表达存储元件的状态。
信号通常在构造体、程序包和实体中说明--信号定义语句--Signal 信号名:数据类型:=初始值Signal clock:bit:='0'; --定义时钟信号,初始值为0Signal count:BIT_VECTOR(3 DOWNTO 0); --定义count为4位位⽮量--信号赋值语句⽬标信号名<=表达式;x<=9;Z<=x after 5 ns; --在5ns后将x的值赋给z2 数据类型2.1 VHDL的预定义数据类型类型定义说明布尔(Boolean)TYPE BOOLEAN IS (FALSE,TRUE);取值为FALSE和TRUE,不是数值,不能运算,⼀般⽤于关系运算符位(Bit)TYPE BIT IS ('0','1');取值为0和1,⽤于逻辑运算位⽮量(Bit_Vector)TYPE BIT_VECTOR IS ARRAY(Natural range<>)OF BIT;基于Bit类型的数组,⽤于逻辑运算字符(Character)TYPE CHARACTER IS (NUL,SOH,STX,...,'','!',...);通常⽤''引号引起来,区分⼤⼩写字符串(String)VARIABLE string_var:STRING(1 TO 7);string_var:="A B C D";通常⽤""引起来,区分⼤⼩写整数(Integer)variable a:integer range -63 to 63取值范围 -(231 -1)~(231-1)要求⽤RANGE⼦句为所定义的数限定范围,以便根据范围决定此信号或变量的⼆进制位数实数(Real)-取值范围-1.0E38~+1.0E38,仅可⽤于仿真不可综合时间(Time)-物理量数据,完整的包括整数和单位两个部分,⽤⾄少⼀个空格隔开,仅可⽤于仿真不可综合时间(Time)-开,仅可⽤于仿真不可综合错误等级(SeverityLevel)TYPE severity_level IS (NOTE、WARNING、ERROR、FAILURE);表⽰系统状态,仅可⽤于仿真不可⽤于综合类型定义说明2.2 IEEE预定义标准逻辑位与⽮量标准逻辑类型对数字逻辑电路的逻辑特性描述更加完整、真实,因此在VHDL程序中,对逻辑信号的定义通常采⽤标准逻辑类型标准逻辑位(Std_Logic)符号说明'U'Undefined(未初始化)'X'Forcing Unknown(强未知)'0'Forcing 0(强0)'1'Forcing 1(强1)'Z'High Impedance(⾼阻)'W'Weak Unknown(弱未知)'L'Weak 0(弱0)'H'Weak 1(弱1)'-'Don't Care(忽略)标准逻辑位⽮量(Std_Logic_Vector)基于Std_Logic类型的数组使⽤Std_Logic和Std_Logic_Vector要调⽤IEEE库中的Std_Logic_1164程序包;就综合⽽⾔,能够在数字器件中实现的是“-、0、1、Z”四种状态。
VHDL语言介绍

VHDL语言介绍VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述数字电路的结构和行为。
它是一种高级编程语言,用于描述数字系统中的硬件功能。
VHDL是一种被广泛应用于数字系统设计的硬件描述语言,它可以用于描述数字系统的结构和功能,并且允许进行仿真、综合和验证。
VHDL最初是由美国国防部(DoD)为了应对不同供应商生产的不同硬件之间互通性的问题而开发的。
它提供了一种用于描述数字电路的方法,可以在不同供应商的工具之间进行交换。
VHDL已成为一种行业标准,在数字系统设计领域被广泛应用。
VHDL的语法类似于Ada编程语言,它使用关键字、运算符和数据类型来描述数字系统中的硬件元素。
VHDL中的关键概念包括实体(entity)、架构(architecture)和过程(process)。
实体描述了数字系统的接口和功能,架构描述了数字系统的内部结构和行为,而过程描述了数字系统中的操作和控制。
VHDL主要有两种用途,一是用于模拟和验证数字系统的功能,二是用于综合数字系统的设计,生成实际的硬件电路。
在模拟和验证阶段,设计师可以使用VHDL描述数字系统的功能,并通过仿真工具对其进行验证。
在综合阶段,设计师可以使用VHDL描述数字系统的结构,并通过综合工具生成对应的硬件电路。
VHDL的优点在于其强大的表达能力和灵活性。
设计师可以使用VHDL描述各种复杂的数字系统,包括处理器、通信接口、存储器等。
VHDL还提供了丰富的数据类型和运算符,使设计师可以轻松地描述数字系统中的各种操作。
除了描述数字系统的结构和行为,VHDL还提供了丰富的标准库和模块化编程的方法。
设计师可以使用标准库中提供的各种功能模块来加速开发过程,并且可以将自己设计的模块封装成库以便重复使用。
VHDL还支持面向对象的设计方法,设计师可以使用面向对象的技术来组织和管理复杂的数字系统。
通过使用面向对象的方法,设计师可以将数字系统分解成多个模块,每个模块都有自己的接口和功能,并且可以通过继承和复用来简化设计过程。
vhdl语言

VHDL语言VHDL(VHSIC Hardware Description Language)是用于描述数字电路和系统的硬件描述语言,是一种标准化的硬件描述语言,广泛应用于数字电路设计和电子系统设计领域。
VHDL语言是一种强大的工具,可以帮助工程师描述复杂的数字电路,并进行仿真和综合。
它可以描述电路的结构、功能和时序行为,是一种形式化的语言,能够准确地描述电路的行为特性,有助于工程师在设计阶段发现和解决问题。
VHDL语言的基本概念实体(Entity)•实体描述了电路的接口和功能,可以看作是一种抽象的模块。
•实体中定义了输入输出端口,以及对应的信号类型和位宽。
•实体可以包含多个体系结构(Architecture)。
体系结构(Architecture)•体系结构描述了实体的具体实现,定义了实体的行为。
•体系结构中包含了处理逻辑、时序行为以及信号的赋值。
•体系结构可以描述电路的功能和行为。
信号(Signal)•信号是VHDL语言中的基本数据类型,用于在电路中传递信息。
•信号可以是标量(Scalar)或矢量(Vector),可以是时序或组合。
•信号的赋值可以是同步的或异步的。
过程(Process)•过程描述了VHDL中的行为,通常用于描述组合逻辑或时序逻辑。
•过程中可以包含逻辑运算、条件语句、循环语句等。
•过程中的代码在仿真或综合时会被执行。
VHDL语言的应用VHDL语言主要用于数字电路设计、电子系统设计、FPGA设计等领域。
工程师可以使用VHDL语言描述数字电路的结构和行为,进行仿真和综合,快速验证设计的正确性。
VHDL语言的应用领域包括但不限于:•数字电路设计•通信系统设计•控制系统设计•图像处理系统设计•嵌入式系统设计VHDL语言在电子设计领域具有广泛的应用前景,可以帮助工程师快速高效地设计数字电路系统,并满足不同应用场景的需求。
总结VHDL语言是一种强大的硬件描述语言,可以帮助工程师描述数字电路的结构和行为,进行仿真和综合,快速验证设计的正确性。
VHDL语言详解

IN(输入):仅允许数据流进入端口.主要用于时钟输入,控制输入,单向数据输入.
OUT(输出):仅允许数据流由实体内部流出端口.该模式通常用于终端计数一类的输出,不能用于反馈.
BUFFER(缓冲):该模式允许数据流出该实体和作为内部反馈时用,但不允许作为双向端口使用.
2选1 数据选择器
d1
d0
q
sel
u2
u1
u3
tmp1
tmp2
tmp3
例8 用带保护条件的BLOCK语句描述一个锁存器的结构.
ENTITY latch IS
PORT(d, clk : IN STD_LOGIC;
q, qn : OUT STD_LOGIC);
END latch;
ENTITY comp4 IS
PORT(a, b: IN STD_LOGIC_VECTOR(3 downto 0);
y: OUT STD_LOGIC);
END comp4;
--结构体 1:
ARCHITECTURE behavior OF comp4 IS
BEGIN
Comp: PROCESS(a, b)
包体中的子程序及其相应的说明是专用的,不能被其它VHDL单元所引用;而包集合中的说明是公用的,它可以独立地编译并插入设计库中.包集合体是次级设计单元,只有在其对应的主设计单元编译并插入设计库之后,才可独立地编译并插入到设计库中.
程序包举例(见vhdl程序example )
2.1.1.5 库(LIBRARY)
out
out
buffer
第二章 VHDL语言基础
y <= d OR
e
上午6时38分
2.1 VHDL 基本语法
2.1 组合电路描述
【例2-3】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = '0' THEN y <= a ; END IF; END PROCESS; END ARCHITECTURE one ;
端口说明 端口说明是一个设计实体界面的描述,提供外部接口信息。 由保留字PORT引导 格式如下:PORT(端口名:端口方向 数据类型) 例如: PORT (d0:IN std_logic;);
上午6时38分
VHDL的主要构件:实体
Example:写出如下器件的实体描述
ENTITY my_design IS PORT(d:IN std_logic_vector(15 DOWNTO 0); clk,reset,oe:IN std_logic; q:OUT std_logic_vector(15 DOWNTO 0); ad:INOUT std_logic_vector(15 DOWNTO 0); int:BUFFER std_logic; as:OUT std_logic); END my_design;
LIBRARY STD; USE STD.STD_LOGIC.ALL;
LIBRARY STD; USE STD.STD_LOGIC.ALL;
USE STD.STD_ttl.ALL;
ENTITY nand2 IS . . . END nand2;
VHDL语言简介
2013-7-16
电子设计竞赛培训
18
二. DDS技术
2.1 DDS原理
工作过程: 1、将存于数表中的数字波形,经D/A转换器,形成模拟量波形.
2013-7-16
电子设计竞赛培训
19
二. DDS技术
2, 两种方法可以改变输出信号的频率: (1) 改变查表寻址的时钟CLOCK的频率, 可以改变输出 波形的频率. (2) 改变寻址的步长来改变输出信号的频率。DDS即采 用此法。 步长即为对数字波形查表的相位增量.由累加器对相位
2013-7-16
电子设计竞赛培训
二. DDS技术
M与输出fout和fC之间的关系
M ( fout 2 ) f c
N
0 M 2 1
N
DDS的最小分辨率 通常用频率增量来表示频率合成器的分辨率
fout
fc =M N 2
f min
fc N 2
25
这个增量也就是最低的合成频率
在结构体语句中,并行语句的位置是: ARCHITECTURE 结构体名 OF 实体名 IS 说明语句; BEGIN 并行语句; END 结构体名;
2013-7-16
电子设计竞赛培训
11
一. VHDL简介
a. 赋值语句: 格式1(简单赋值语句): 信号量 <= 敏感信号量表达式;
格式2(条件赋值语句):
2013-7-16
电子设计竞赛培训
12
一. VHDL简介
格式3(选择赋值语句): WITH 选择表达式 SELECT 目标信号 <= 表达式1 WHEN 表达式2 WHEN 表达式3 WHEN ┇ 表达式n WHEN
条件1; 条件2; 条件3;
VHDL概述
1.覆盖面广,描述能力强,是一个多层次的硬件描述语言。
2.VHDL有良好的可读性,即可以被计算机接受,也容易 被理解。 3. 生命期长。VHDL的硬件描述与工艺技术无关,不会因 工艺变化而使描述过时。与工艺技术有关的参数可通过 VHDL提供的属性加以描述,工艺改变时,只需修改相应 程序中的属性参数即可。
1.结构体名称的命名
结构体名称是对本结构体的命名,它是该结构体的唯一 名称。OF后面紧跟的实体名表明了该结构体所对应的是哪 一个实体。用IS来结束结构体的命名。 结构体的名称可以自由命名。但在大多数时候,通常把结 构体的名称命名为behavioral(行为)、dataflow(数据流) 或者structural(结构)。表示结构体的3种描述方式。
或者说一个VHDL程序总是包含三个部分: 1.参数部分——库、程序包、配置 2.接口部分—实体说明 3.描述部分—结构体
《硬件描述语言VHDL概述》-- 一、
一个VHDL程序的前面部分总是有语句:
LIBRARY ieee; ——使用IEEE标准库 USE ieee.std_logic_1164.all; ——打开一个程序包 (程序包名为ieee.std_logic_1164.all)
《硬件描述语言VHDL概述》
VHDL语言是美国国防部在20世纪80年代初为实现其高速 集成电路计划(Very High Speed Integrated Circuit,VHSIC)而 提出的硬件描述语言(Hardware Description Language,HDL),称为VHDL。 VHDL的主要优点是:
《硬件描述语言VHDL概述》-- 一、
一、 VHDL基本结构
1.参数部分——库、程序包、配置 先看一个程序例子: 设计一个3-8译码器
第2章 VHDL语言基础
End 实体名;
端口名
端口模式
数据类型
(2)ENTITY
端口模式(MODE)有以下几种类型: IN ;OUT;INOUT ;BUFFER 端口模式可用下图说明:(黑框代表一个设计或模块)
IN
OUT
BUFFER
INOUT
二输入与门电路设计范例
Library std; Use std.standard.all;
(4)CONFIGURATION定义区
定义格式: Configuration 配置名 of 实体名 is for 选用的结构体名 end for; end configuration 配置名 ;
二输入与门电路设计范例
a c
b电Leabharlann 真值表abc
0
0
0
1
0
0
0
1
0
1
1
1
二输入与门电路设计范例
Architecture Na of and2 is
‘1’; 符号<=为信号直接赋值符。
End Na;
--结构体Na
Architecture Nb of and2 is
Begin
c <= a and b;
--and 为逻辑与操作
End Nb; --结构体Nb
Library ieee; Use ieee.std_logic_1164.all;
Entity half_adder is Port( x,y : in std_logic;sum,carry : out hlf_adder); End half_adder;
(4)CONFIGURATION定义区
一个完整VHDL电路设计必须有一个实体 和对应的结构体,即实体和结构体对构成一个 完整的VHDL设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.结构体的说明语句
结构体(ARCHITECTURE)
功能描述用到的信号(SIGNAL)、数据类型(DATA TYPE)、常
数(CONSTANT)、元件(COMPONENT)、函数(FUNCTION)的说明。
4.结构体的功能描述语句
是并行方式工作的语句结构,结构内部可能含有并行或顺序运
行的逻辑描述。 主要有四类功能描述语句。
关于VHDL的学习 1. 适应多维思维模式的变化
一般的程序设计语言多数是一维的思维模式,由于电 路系统可以有许多相关和不相关的事件同时发生,因此, VHDL的程序设计应当以多维并发的思维模式进行。 2. 理解语言与硬件电路之间的关系
学习VHDL过程中,应尽可能地理解VHDL语句与相应的 硬件电路之间的对应关系。
例:比较器的VHDL的描述
library ieee; use ieee.std_logic_1164. all ;
库说明
entity comp is port (a, b : in std_logic; q : out std_logic );
end; architecture one of comp is begin
原理图描述与VHDL描述
Graphic is what you draw is what you get “ tell me what hardware you want and I will
give it to you” VHDL is what you write is what functional
process (a, b) begin
if a > b then q <= '1‘ ; else q <= '0‘ ; end if ; end process; end;
进程
实体说 结构体
comp.vhd的时序波形: comp.vhd的综合电路:
一、实体 二、结构体 三、VHDL库 四、VHDL文字规则 五、VHDL运算符
VHDL语言要素
结构体(ARCHITECTURE)
1.结构体功能 结构体描述设计实体的内部结构和实体端口间的逻辑关系。
2.结构体语句结构 ARCHITETURE 结构体名 OF 实体名 IS [结构体说明语句] BEGIN [结构体功能描述语句] END 结构体名;
结构体由两大部分组成:对常数、信号、变量等元素的说明语 句部分;描述实体逻辑行为的功能描述语句部分,包括顺序描述语 句和并行描述语句。
ARCHITECTURE maxpld OF mux4 IS BEGIN
y <= a WHEN add="00" ELSE b WHEN add="01" ELSE c WHEN add="10" ELSE d; END maxpld;
add y 00 a 01 b 10 c 11 d
实体
结构体
mux4.vhd的时序波形: mux4.vhd的综合电路:
END ARCHITECTURE one ;
s
y
0a
1b
结构体
mux21a.vhd的时序波形: mux21a.vhd的综合电路:
例2.四选一数据选择器设计
ENTITY mux4 IS PORT (a, b, c, d: IN BIT;
add : IN BIT_vector(1 downto 0); y : OUT BIT); END mux4;
为一组二进制数。
(参考MAX+PLUS提供的VHDL语句G模EN板ER)IC类属说明语句 格式:GENERIC ([常数名:数据类型[:设定 值]); 类属可以提供端口界面常数,如时间参数或总线宽度 等静态信息。 例如: ENTITY mcu IS
GENERIC(addwidth:INTEGEN:=16); PORT(addbus:OUT BIT_VECTOR
VHDL语言概述
一、概述 二、VHDL设计举例 三、VHDL语言要素
关于VHDL
VHDL: Very-High-Speed Integrated Circuit Hardware Description Language
VHDL诞生于1982年;1987年被IEEE和美国国防部确认 为标准硬件描述语言,并公布了VHDL的标准版本:IEEE1076;1993年IEEE对VHDL进行了修订,从更高的抽象层次 和系统描述能力上扩展VHDL的内容,公布了新版本IEEE1076-1993。有专家认为:新世纪,VHDL和Verilog语言将 承担起几乎全部的数字系统设计任务。
进程语句:定义顺序语句模块。
信号赋值语句:将实体内的处理结果向信号或界面端口赋值。
子程序调用语句:调用过程或函数,将结果赋值给信号。
元件例化语句:进行元件调用说明,将元件端口与其他界面端
口进行连接。
库(LIBRARY)
1.库的功能 专门用来存放编译过的程序包和数据集合体的地方,它们可以
在其它设计中被调用。 2.库的语句结构
VHDL对电路的描述由两大部分组成:实体和结构体
实体:由entity引导,以end entity结束。实体描述 电路的外部信号端口及其性质。 结构体:由architecture引导,以end architecture 结束。描述电路的内部逻辑功能。
电路逻辑功能的描述分为:顺序语句和并行语句两种。
顺序语句:按照语句的先后排列顺序执行。 并行语句:并行执行语句,与语句的书写顺序无关。
库说明
ENTITY latch IS
PORT (d,ena
: IN STD_LOGIC ; 实体说明
q : OUT STD_LOGIC) ;
END latch ;
ARCHITECTURE maxpld OF latch IS
SIGNAL s: STD_LOGIC;
信号说明
BEGIN
PROCESS(d,ena)
数据类型
__bidir_name, __bidir_name: INOUT STD_LOGIC;
__output_name, __output_name: OUT STD_LOGIC); END __entity_name; --参考MAX+PLUS中提供的模版
OUT
IN
INOUT
BUFFER
实体语句 1.实体语句结构: 实体以语句“ENTITY 实体名 IS” 开始,以语句“END 实体名”结束。 2.实体名:设计实体的名称,由设计者自选。在元件 例化语句中,可以用此名对相应的实体进行调用。 3.实体的功能:设计单元与外部电路连接的端口描 述,是设计单元对外的一个通信界面。说明端口信号 名称、端口模式、数据类型等。
BEGIN IF ena='1' THEN s<=d; END IF;
进程
结构体
q<=s;
END PROCESS;
END maxpld;
latch.vhd的时序波形: latch.vhd的综合电路:
VHDL基本程序结构
库(LIBRARY)
实体(ENTITY)
结构体 (ARCHITECTURE)
进程(PROCESS) 或其它结构
IEEE:The Institute of Electrical and Electronics Engineers
VHDL的特点
VHDL主要用于描述数字系统的结构、行为、功能和接 口。VHDL除含有许多硬件特征的语句外,其语言的形式、 描述风格与句法结构类似于一般的计算机高级语言。
1. VHDL具有较强的行为描述能力; 2. VHDL有丰富的仿真语句和库函数; 3. VHDL支持大规模系统设计; 4. 利用EDA工具可以将VHDL描述转换为门级网表; 5. VHDL对设计的描述具有独立性。
you get “ tell me how your circuit should behave
and the VHDL compiler will give you the hardware that does the job” but the designer can not control how the circuit implement
数据选择器VHDL描述
例1. 2选1数据选择器的VHDL描述
ENTITY mux21a IS PORT( a, b : IN BIT ;
s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ;
实体
ARCHITECTURE one OF mux21a IS BEGIN y <= a WHEN s = '0' ELSE b ;
VHDL与Verilog HDL
一般的硬件描述语言可以在三个层次进行电路的 描述:行为级、RTL级、门电路级。任何一种语言的 源程序都需经过行为级→RTL级→门电路级的转化, 才能被适配器接受。
1.VHDL适于描述行为级、RTL级; Verilog适于描 述RTL级、门电路级。
2.VHDL综合过程复杂, Verilog综合过程简单。 3.VHDL是一种高级描述语言,适用于电路高级建 模; Verilog是一种低级描述,适用于描述门级电 路,易于控制电路资源。
库(LIBRARY) 4.库的使用
库的说明语句总是放在实体单元前面。 VHDL允许在一个设计实体中同时打开多个不同的库。 例:
LIBRARY IEEE; 打开IEEE库 USE IEEE.STD_LOGIC_1164.ALL;
可用STD_LOGIC_1164库中程序包的所有内容 USE IEEE.STD_LOGIC_UNSIGNED.ALL;
LIBRARY 库名; USE 库名.逻辑体名;--使库中元件等对本设计是“可见”的。 3.库的种类 VHDL程序设计中常用的库有几种: IEEE库:VHDL设计中最常用的库,包含IEEE标准的程序包和其它 一些支持工业标准的程序包。主要有: (1)STD_LOGIC_1164 ;(2) std_logic_arith STD库:标准程序包,即STANDARD和TEXTIO程序包,不用指出。 WORK库:用户的VHDL设计的现行工作库,不用指出。