第七章 VHDL语言简介

合集下载

硬件描述语言VHDL基本概念

硬件描述语言VHDL基本概念
这里名称是指端口的信号名称,所以 信号关键字SIGNAL可以省略,信号名称 必须使用合法的标识符,当多个端口的 信号模式和信号类型都相同时,可以一 起声明。
信号模式表示端口的数据流向,有以下五 种: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语言介绍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入门

元件声明
y1 : OUT BIT);
END COMPONENT;
1
COMPONENT or_2

PORT( i3, i4 : IN BIT;

y2 : OUT BIT); END COMPONENT;

COMPONENT xor_2

PORT( a, b : IN BIT;
c : OUT BIT);
END adder;
2、结构体
ARCHITECTURE <结构体名> OF <实体名> IS
[结构体说明部分]; BEGIN <并行处理语句>; END结构体名;
•ARCHITECTURE a OF adder IS •BEGIN •s<=a XOR b XOR cin; •co<=((a XOR b) AND cin) OR (a AND b); •END a;


s ,co : OUT BIT);

图二 实体说明的描述
u2
cin
=1
s
u1
u3 tmp
END adder; ARCHITECTURE a OF adder IS BEGIN
a
&2
b
=1 tmp
1 u4
u5

&
≥1
co
s<=a XOR b XOR cin;
构 体
图三 1位全加器的逻辑图
co<=((a XOR b) AND cin) OR (a AND b);
中,通过调用库 中的元件或已设 计好的模块来对 当前的设计进行
u5:or_2 PORT MAP (tmp2,tmp3,co); 描述。

VHDL语言简介

VHDL语言简介

(3) VHDL 常用语句 )
VHDL 常用语句分为并行 (Concurrent) 和 顺序 (Sequential) 语句。 常用语句分为并行 语句。 并行语句( 并行语句(Concurrent)被用在结构体中,认为它们是同时被执行的, )被用在结构体中,认为它们是同时被执行的, 与在程序中书写的先后次序无关。 与在程序中书写的先后次序无关。包括条件赋值 WITH-SELECT-WHEN 语 语句, 语句, 语句等。 句,WHEN-ELSE 语句,process语句,例化语句等。 语句 例化语句等 WITH-SELECT-WHEN语句必须指明所有用到的互斥条件;为避免麻 语句必须指明所有用到的互斥条件; 语句必须指明所有用到的互斥条件 烦和错误可以用〝 烦和错误可以用〝others〞代替其它各种不用的组合。 〞代替其它各种不用的组合。 语句用于描述顺序事件并且要包含在结构中, 进程 Process 语句用于描述顺序事件并且要包含在结构中,一个结构 体可以包含多个进程语句。 体可以包含多个进程语句。每个进程语句与结构体中的一个赋值语句处于 同等地位,只是它是否被执行取决于其参数列表中的信号(称为敏感信号) 同等地位,只是它是否被执行取决于其参数列表中的信号(称为敏感信号) 是否发生变化,敏感信号发生变化才使该进程被执行一次,多个进程语句、 是否发生变化,敏感信号发生变化才使该进程被执行一次,多个进程语句、 赋值语句是可以并行执行的。进程语句的构成如下图所示。 赋值语句是可以并行执行的。进程语句的构成如下图所示。
1.VHDL 的基本结构 .
1)VHDL 的组成 ) 文件构成,每个文件通常包含程序包 实体和 程序包、 一个 VHDL 设计由若干个 VHDL 文件构成,每个文件通常包含程序包、实体和 结构体三个部分 其各自的作用如下图所示。 三个部分, 结构体三个部分,其各自的作用如下图所示。 设计必须包含一个实体和一个与之对应的结构体, 一个完整的 VHDL 设计必须包含一个实体和一个与之对应的结构体,一个实体 可对应多结构体,可采用不同方法来描述电路。 可对应多结构体,可采用不同方法来描述电路。 程序包( ① 程序包(Package)和 库(Library) ) ) 程序包是用来罗列 语言中所要用到的信号定义、常数定义、数据类型、 程序包是用来罗列 VHDL 语言中所要用到的信号定义、常数定义、数据类型、 部件语句、函数定义和过程定义等,它是一个可编译的设计单元, 部件语句、函数定义和过程定义等,它是一个可编译的设计单元,也是库结构中的 一个层次。要使用程序包时, 语句说明。 一个层次。要使用程序包时,可以用 USE 语句说明。 语言中, 库是专门存放预先编译好的程序包(package)的地方。在 VHDL 语言中,库 是专门存放预先编译好的程序包( )的地方。 的说明总是放在设计单元的最前面。 的说明总是放在设计单元的最前面。

VHDL介绍

VHDL介绍

VHDL介绍VHDL是⼀种硬件描述语⾔,它可以对电⼦电路和系统的⾏为进⾏描述。

制定了ieee.1164库。

使⽤VHDL语⾔描述的电路,可以进⾏综合和仿真。

VHDL代码3个基本组成部分:库(library)声明、实体(entity)和构造体(architecture)。

库(library)声明:列出了当前设计中需要⽤到的所有⽂件,如ieee,std,work等。

实体(entity):定义了电路的输⼊和输出引脚。

构造体(architecture):所包含的代码描述了电路要实验的功能。

1、库声明库(library)的建⽴和使⽤有利于设计重⽤和代码共享,同时可以使代码结构更加清晰。

2、库的种类在VHDL设计中有3个常⽤的库:ieee库,std库和work库。

在ieee库中有⼀个ieee正式认可的标准std_logic_1164.all。

ieee库包含了许多包集。

⽐如:std_logic_1164:定义了std_logic(8值)和std_ulogic(9值)多值逻辑系统。

std_logic_arith:定义了signal(有符号)和unsigned(⽆符号)数据类型和相关算术运算和⽐较运算操作。

它包含许多数据类型转换函数,这种函数可以实现数据类型的转换。

常⽤的数据类型转换函数包括conv_integer(p),conv_unsigned(p,b),conv_signed(p,b)和conv_std_logic_vector(p,b).std_logic_signed:内部包含⼀些函数,这些函数可以使std_LOGIC_vector类型的数据像signed类型的数据⼀样进⾏运算操作。

std_logic_unsigned:内部包含⼀些函数,这些函数可以使std_logic_vector类型的数据类型像unsigned类型的数据⼀样操作。

std库std库是VHDL设计环境的标准资源库,包括数据类型和输⼊/输出⽂本等内容。

VHDL硬件描述语言

VHDL硬件描述语言
27
VHDL语言设计实体的基本结构
3. 结构体说明语句 用于定义结构体中所用的数据对象和子程序, 并对所引用的元件加以说明,如: ● 信号(SIGNAL)
● 类型(TYPE)
● 常数(CONSTANT) ● 元件(COMPONENT) ● 函数(FUNCTION) ● 过程(PROCEDURE)
28
3
概 述
1993年,IEEE对VHDL进行了修订,增加了一些 功能,并从更高的抽象层次和系统描述能力上扩展 VHDL的内容,公布了VHDL新的版本,编号为IEEE Std1076-1993(简称93版)。 1995年中国国家技术监督局组织编写并出版了 《CAD通用技术规范》,推荐VHDL语言作为我国电子 自动化硬件描述语言的国家标准。1996年, IEEE1076.3成为VHDL综合标准。
结构体:用来描述电路内部结构和逻辑功能。并以 标识符ARCHITECTURE开头,以END结尾。
14
VHDL语言设计实体的基本结构
VHDL语言的实体说明
实体说明是VHDL程序设计中最基本的组成部分, 实体说明语句的格式如下: 主要用来描述设计实体的外部接口信号,定义设计 实体说明语句 ENTITY 实体名 IS 单元的输入、输出端口,是设计实体对外的一个通 类属说明语句 [GENERIC(类属表);] 信界面,但它不描述设计的具体功能。 端口说明语句 [PORT(端口表);] 结束语句 END [ENTITY] 实体名;
{; 常数名{, 常数名}: 数据类型[: 设定值]}) 常数名:是由设计者定义的类属常数名; 数据类型:常取INTEGER或TIME的类型; 设定值:为常数名所代表的数值。
17
VHDL语言设计实体的基本结构
2. 类属说明语句GENERIC

VHDL语言简介

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概述

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译码器

vhdl语言

vhdl语言

VHDL语言简介VHDL(VHSIC Hardware Description Language)即可高速集成电路硬件描述语言,是一种用于描述数字系统和电路的硬件描述语言。

它在1981年由美国国防部的高速集成电路联合委员会(VHSIC)开发,用于设计大规模集成电路。

VHDL是一种面向对象的语言,可以用于描述各种数字系统,从简单的逻辑门到复杂的处理器。

它提供了丰富的语法和语义,使得设计人员可以准确地描述他们的电路和系统。

VHDL的优势VHDL作为一种硬件描述语言,在数字系统设计中具有许多优势。

1.可重用性:VHDL允许设计人员创建可重用的模块和子系统,这些模块和子系统可以在不同的项目中重复使用,提高了设计效率和可维护性。

2.仿真和验证:VHDL具有强大的仿真和验证能力,可以在设计之前对系统进行全面的仿真和验证。

这有助于检测和纠正潜在的问题,并确保系统在硬件实现之前达到预期的功能。

3.抽象级别:VHDL允许设计人员在不同的抽象级别上描述系统,从高级的行为级别到底层的结构级别。

这使得设计人员可以根据需要在不同的级别上工作,并且可以更容易地进行系统级别的优化。

4.灵活性和可扩展性:VHDL支持灵活的设计方法和工作流程,并允许设计人员在设计过程中进行迭代和修改。

它还可以与其他常用的设计工具和方法集成,以满足特定的需求。

VHDL语言的基本结构VHDL语言由模块、实体、架构以及信号和过程等基本元素组成。

模块(Module)模块是VHDL中描述数字系统的最基本单位。

一个模块可以包含多个实体和架构,并通过连接信号进行通信。

每个模块都有一个顶层实体和一个或多个架构。

实体(Entity)实体是描述模块的接口和行为的抽象。

它定义了输入输出端口,以及模块对外部环境的接口。

一个实体可以有一个或多个架构。

架构(Architecture)架构描述模块的具体行为和内部结构。

它定义了模块的内部信号和过程,以及对外部信号和过程的接口。

VHDL语言详解

VHDL语言详解
ENTITY mux4 IS PORT (i0, i1, i2, i3, a, b : IN STD_LOGIC;
q : OUT STD_LOGIC); END mux4;
case muxval is when 0 => q <= i0; when 1 => q <= i1; when 2 => q <= i2; when 3 => q <= i3;
muxval := muxval + 1;
end if;
if (b = '1') then
muxval := muxval + 2;
end if;
VHDL语言的数据对象(四)
文件
VHDL-93语法把文件也当作对象; 不能被赋值; 通过规定的过程和函数对文件对象进行读出
和写作的操作; 说明的格式
File 文件名 : 文件类型 is [方向] 路径表达式; Type 文件类型名 is file of 数据类型; 例: type filetype is file of std_logic_vector;
file myfile : filetype is in “/myproject/vector.in”
基本概念(6/7)
结构体(architecture)说明的相关概念
结构体是由一个或多个并行语句构成的,他们的书 写顺序并不代表他们的执行顺序。
Entity test1 Is Port ( a, b : in bit;
输出只和输入有关
c, d : out bit);
end test1;
architecture test1_body of test1 is

VHDL是一种硬件描述语言(课程总结)

VHDL是一种硬件描述语言(课程总结)

VHDL是一种硬件描述语言,用于对电子电路和系统的行为进行描述。

VHDL是VHSIC Hardware Description Language的缩写。

所有的VHDL代码都可以仿真,但不是所有的VHDL代码都可以综合。

V ery high speed integrated circuitVHDL和V erilog HDL都与工艺和工具无关,可以方便的进行移植和重用。

可编程逻辑器件包括:复杂可编程逻辑器件(CPLD:Complex Programmable Logic Devices),现场可编程门阵列(FPGA:Field Programmable Gate Arrays)。

VHDL语言从根本上讲是并发执行的。

因此常称之为代码,而不是程序。

VHDL中,只有在进程(PROCESS)、函数(FUNCTION)、和过程(PROCEDURE)内部的语句才是顺序执行的。

第二章VHDL代码结构VHDL代码的三个基本组成部分:库(LIBRARY)声明、实体(ENTITY)、构造体(ARCHITECTURE)库声明:列出当前设计中需要的所有库文件实体:定义电路的I/O引脚;构造体:包含的代码描述电路要实现的功能。

库的建立有利于设计重用和代码共享同时使代码结构更加清晰常用库:IEEE库,Std库,work库std_logic_1164:当用到std_logic及其衍生类型时,需要声明;std_logic_arith:定义了signed和unsigned类型和相关算数运算和比较运算。

std_logic_signed:使std_logic_vector 类型的数据同signed一样执行。

std_logic_unsigned:std ,work库在程序中都是默认可见的,直接使用就可,不需要再对其进行声明;只有ieee库在使用前需要声明。

实体(ENTITY)用来描述电路所有的输入/输出引脚,端口的信号模式4种:IN,OUT,INOUT,BUFFER。

vhdl语法

vhdl语法

在VHDL语言里,不同类型的数据信号之间不能互 相赋值。当需要不同类型数据之间传递信息时,就需 要类型转换函数将其中的一种类型数据转换为另一中 数据类型后,再进行信号的传递。
• 1999年,IEEE又将数字模拟混合VHDL的版本作为工业标准, 即IEEE1076.3;
一、VHDL概述
VHDL与电路图设计电路的方式不同:
和电路图设计方式相比: (1)易于修改;
(2)设计能力更强;
(3)VHDL语言很方便:独立于器件设计;相同的程
序代码可以用于不同厂家生产的器件。
一、VHDL概述
设计范例:2输入与门
a b
c
电路真值表
a 0 1 0 1
b 0 0 1 1
c 0 0 0 1
一、VHDL 概述 IEEE; LIBRARY
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; Entity and2 is Port( a : in bit; 双减号--为VHDL程序的 b : in bit; 注释符,类似C语言中的 //注释符。 c : out bit); End and2; --实体定义结束。
端口名
端口模式
数据类型
一、VHDL概述
端口模式(MODE)有以下几种类型: IN ;OUT;INOUT ;BUFFER
端口模式可用下图说明:(黑框代表一个设计或模块)

IN
OUT
BUFFER
INOUT
(3)ARCHITECTURE定义区
实体的实现。即说明电路执行什么动作或实现功能。 定义格式: Architecture 结构体名 of 实体名 is

vhdl是什么意思

vhdl是什么意思

vhdl是什么意思vhdl是什幺意思 VHDL 语言的英文全名是Very High Speed Integrated Circuit Hardware DescripTIon Language ,即超高速集成电路硬件描述语言。

HDL 发展的技术源头是:在HDL 形成发展之前,已有了许多程序设计语言,如汇编、C 、Pascal 、Fortran 、Prolog 等。

这些语言运行在不同硬件平台和不同的操作环境中,它们适合于描述过程和算法,不适合作硬件描述。

CAD 的出现,使人们可以利用计算机进行建筑、服装等行业的辅助设计,电子辅助设计也同步发展起来。

在从CAD 工具到EDA 工具的进化过程中,电子设计工具的人机界面能力越来越高。

在利用EDA 工具进行电子设计时,逻辑图、分立电子原件作为整个越来越复杂的电子系统的设计已不适应。

任何一种EDA 工具,都需要一种硬件描述语言来作为EDA 工具的工作语言。

这些众多的EDA 工具软件开发者,各自推出了自己的HDL 语言。

 HDL发展的社会根源是:美国国防部电子系统项目有众多的承包公司,由于各公司技术路线不一致,许多产品不兼容,他们使用各自的设计语言,使得甲公司的设计不能被乙公司重复利用,造成了信息交换困难和维护困难。

美国政府为了降低开发费用,避免重复设计,国防部为他们的超高速集成电路提供了一种硬件描述语言,以期望VHDL 功能强大、严格、可读性好。

政府要求各公司的合同都用它来描述,以避免产生歧义。

 由政府牵头,VHDL 工作小组于1981 年6 月成立,提出了一个满足电子设计各种要求的能够作为工业标准的HDL 。

1983 年第 3 季度,由IBM 公司、TI 公司、Intermetrics。

VHDL语言简介

VHDL语言简介

端口模式可用下图说明:(黑框代表一个设计或模块)
IN
OUT
BUFFER
INPUT
端口类型(TYPE)定义端口的数据类型,包括以下几 种: ●integer 可用作循环的指针或常数,通常不用于 I/O信号; 例如: SIGNAL count :integer range o to 255 count<=count+1
信号赋值
计算结果,并赋值给信号 元件例化 调用另一个实体所描述的电 路。即元件调用
过程调用
调用一个预先定义好的算法
过程 定义一个新算法实现 电路功能。在过程中赋值顺 序语句。语句按放置的顺序 执行。
结构体的一般格式如下:
Architecture<architecture_name 结构体名> of <entity_name> is
--定义一个信号,以保存两数二进制相加的和.
· 常量
常量在设计描述中保持某一规定类型的特定值不 变 。如利用它可设计不同模值的计数器,模值存于 常量中,不同的设计,改变模值仅需改变此常量值。 常量在定义时赋初值,赋值符号为‚ : = ‖。
· 变量
变量只在给定的进程中用于声明局部值或用于子程序 中。赋值符号为‚ : = ‖。
下例为一位DCB码加法计数器的例子.
描述实体的行为功能。即设计的功能。一个实体可以有多
个结构体,一种结构体可能为行为描述,而另一种结构体
可 能 为设 计 的结 构 描述 或 数据 通 道的 描 述 。 结 构体 是
VHDL设计中最主要的部分,它一般有一些子部分构成, 如下图所示:
结构体 (Architecture) 声明区 (Declarations) 信号声明:声明用于该结构体的类型,常数,元 件,子程序。 并发语句

VHDL语言简介

VHDL语言简介

(3)结构体的子结构设计方法 一个设计实体可以有多个结构体,对于一个结构复杂、 功能丰富的结构体来说,用一个描述模块很不方便,所以要 采用结构体中的子结构模块进行设计。 其形式有三种: a) 采用多个进程的子结构方式(进程语句); b) 采用多个模块的子结构方式(Block语句); c) 采用多个子程序的子结构方式(子程序调用语句)。
Architecture Body
1、VHDL程序基本单元 、 程序基本单元 一个基本设计单元可以是整个电子系统,也可以代表一 块电路板或一块芯片,简单的可以是一个反向器,复杂的可 以是一个微处理器或一个数字电路系统 。 不管是简单的还是复杂的数字电路其基本结构都是相同 的,都由两部分构成:实体说明Entity Declaration、结构体。 一个程序只能有一个实体,但可以有多个结构体。 实体相当于器件外壳,而结构体相当于内部电路结构。 器件是固定的,但具体的电路实现可以是多样化的。
数据流描述:描述了数据流的运动路线、运动方向和运动结果, 对于全加器,其布尔方程如下: sum = s xor c_in s = x xor y c_out = (x and y) or (s and c_in) 全加器的数据流描述如下: Library ieee; Use ieee.std_logic_1164.all; Entity full_adder is Generic(tpd: time:= 10ns); Port(x, y, c_in: in std_logic; sum, c_out: out std_logic); End full_adder;
2、设计实体 、 实体是一个初级设计单元,可以单独编译并且可以被并 入设计库。 实体说明是一个器件的外观视图,即从外部看到的器件 外貌,包括端口等。 实体说明也可以定义参数,并把参数从外部传入模块内 部。 任何一个基本设计单元的实体说明都具有如下结构:

VHDL语言及其应用介绍

VHDL语言及其应用介绍

VHDL语言及其应用介绍随着电子技术的发展,数字系统的设计正朝高速度、大容量、小体积的方向发展,传统的自底而上的设计方法已难以适应形势。

EDA(Electronic Design Automation)技术的应运而生,使传统的电子系统设计发生了根本的变革。

EDA 技术就是依赖功能强大的计算机,在EDA 工具软件平台上,对以硬件描述语言VHDL(Very High Speed Integrated Circui t Hardware Description Language)为系统逻辑描述手段自顶而下地逐层完成相应的描述、综合、优化、仿真与验证,直至生成器件。

VHDL 语言是目前应用于数字系统仿真最为实用的语言之一。

1VHDL 特点VHDL 语言最早由美国国防部提出。

用VHDL 语言进行数字逻辑电路和数字系统的设计,是电子电路设计方法上的一次革命性变革。

与传统设计方法相比,VHDL 描述电路行为的算法有很多优点:(1) 设计层次较高、用于较复杂的计算时,能尽早发现存在的问题,缩短设计周期。

(2) 独立实现,修改方便,系统硬件描述能力强。

(3) 可读性好,有利于交流,适合于文档保存。

(4) VHDL 语言标准、规范、移植性强。

(5) VHDL 类型众多而且支持用户自定义类型,支持自顶而下的设计方法和多种电路的设计。

2 数字系统的设计流程VHDL 按要求对系统进行描述,然后综合、仿真、适配,当确认设计符合要求时,再将设计映射至实际的逻辑器件中,设计流程如VHDL 语言已日益成为一种通用的硬件设计交换媒介,计算机辅助工程软件的供应商已把VHDL 作为其CAD 或EDA 软件输入与输出的标准。

其中ALTERA 公司提供了一套十分有特色的综合工具MAX+PLUSⅡ,他提供了全面的逻辑设计能力,从编辑、综合、布线到仿真、下载一气呵成,十分方便。

3 设计实例及仿真结果3.1 设计实例以交通信号灯主控制电路的设计为例,应用MAX+PLUSⅡ软件平台,来说明VHDL 语言在EDA 仿真中的应用。

VHDL语言

VHDL语言

VHDL语言VHDL(Very High Speed Integrated Circuit Hardware Description Language),超高速集成电路硬件描述语言。

VHDL语言基础主要构件:一、实体(Entity)二、结构体(Architecture)三、程序包(Package)四、库(Library)五、配置(Configuration)一、实体(Entity)1、功能:实现设计单元的端口说明。

2、语法结构:ENTITY 实体名 ISPORT(端口名{,端口名}:端口模式数据类型;端口名{,端口名}:端口模式数据类型);END实体名;1)、端口名:每个引脚的名称2)、端口模式:引脚上数据传输的方向3)、常用端口模式:3、样例:ENTITY and_2 ISPORT(a,b:IN STD_LOGIC;y:OUT STD_LOGIC);END and_2;实体and_2输入a,b;输出y二、结构体(Architecture)1、功能:描述设计单元内部结构和行为,建立输入输出关系。

2、语法结构:ARCHITECTURE 结构体名 OF 实体名 IS[结构体说明语句]BEGIN[功能描述语句]END 结构体名;1)、结构体说明语句:结构体功能描述语句,其中要用到内部信号、常数、数据类型、函数(无时可省略)。

2)、功能描述语句:用并行语句形式描述设计单元功能。

3)、并行语句类型:a、进程语句(PROCESS)b、块描述语句(BLOCK)c、信号赋值语句d、子程序调用语句e、元件例化语句3、样例:ARCHITECTURE one OF and_2 ISBEGINy <= a and bEND ARCHITECTURE one;并行语句执行顺序与其书写顺序无关,在实际电路中所有并行语句功能同时实现。

三、程序包(Package)1、功能:存放各设计模块共享的数据类型、常数、子程序等。

2、语法结构:USE LIBRARY 库名.程序包名.项目名;3、样例:(对IEEE库的1164程序包中所有项目的说明)USE IEEE.STD_LOGIC_1164.ALL;四、库(Library)1、功能:存储和放置设计单元(元件、程序包等)。

第七章VHDL语言属性描述

第七章VHDL语言属性描述
第七章 VHDL语言属性描述
1. 2. 3. • • • •
属性是指关于设计实体、结构体、类型、信号等项 目的指定特性。 属性提供了描述特定对象的多个侧面值的手段 信号属性在检测信号变化和建立详细的时域模型时非常 重要 为什么要有属性: 电路元件需要时钟信号同步 需要控制信号控制整个电路的行为(进程的执行) 时钟信号与控制信号的使用多种多样 利用属性可以使VHDL源代码更加简明扼要,便于理解
7.2 函数类属性 7.2.3 信号类型属性函数 主要用来得到信号的各种行为功能信息:包括信号值的变化、
信号变化后经过的时间、变化前的信号值等。共有5种属性:
(1)’EVENT --当前很短的时间内信号发生了变化,则返回TRUE, 否则返回FALSE。 (2)’ACTIVE --当前很短的时间内信号活跃,则返回TRUE,否则返 回FALSE。 (3)’LAST_EVENT --返回信号从前一个事件发生到现在的时间值。 (4)’LAST_VALUE --返回信号在最近一个事件发生以前的值 (5)’LAST_ACTIVE --返回信号从前一次活跃到现在的时间值
7.3 信号类属性 1 属性 ’DELAYED(t)
可以用’DELAYED(t) 属性的信号建立一个延迟信号附加在该信号
上。
例7-11 二输入与门附加延迟的描述
a
a_ipd
inta
c_opd
c
b
b_ipd
intb
7.3 信号类属性
library ieee; use ieee.std_logic_1164.all; entity and2 IS GENERIC (a_ipd, b_ipd, c_opd: TIME); PORT(a, b: IN cal_resist std_logic; c: OUT std_logic); end and2 ; ARCHITECTURE int_signals OF and2 IS SIGNAL inta, intb : std_logic; BEGIN inta <= TRANSPORT a AFTER a_ipd; intb <= TRANSPORT b AFTER b_ipd; c <= inta AND intb AFTER c_opd; END int_signals ; ARCHITECTURE attr OF and2 IS BEGIN c <= a’DELAYED(a_ipd) AND b’DELAYED(b_ipd) AFTER c_opd; END attr;

VHDL语言详解

VHDL语言详解

概述(4/4)
VHDL vs. Verilog HDL
USA—IBM,TI,AT&T,INTEL…VHDL; USA—Silicon Valley…Verilog; Europe—VHDL; Japan—Verilog; Korea—70-80%VHDL;
VHDL的一些基本概念
基本概念(1/7)
操作数的类型应该和运算操作符所要求并置一维数组整数和实数包括浮点数整数和实数包括浮点数mod整数rem整数sll逻辑左移bit或布尔型一维数组srl逻辑右移bit或布尔型一维数组sla算术左移bit或布尔型一维数组sra算术右移bit或布尔型一维数组rol逻辑循环左移bit或布尔型一维数组ror逻辑循环右移bit或布尔型一维数组乘方整数算术操作符abs取绝对值整数vhdl语言的运算操作符2等于任何数据类型不等于任何数据类型小于枚举与整数类型及对应的一维数组大于枚举与整数类型及对应的一维数组小于等于枚举与整数类型及对应的一维数组关系操作符大于等于枚举与整数类型及对应的一维数组bitbooleanstdlogibitbooleanstdlogibitbooleanstdlogibitbooleanstdlogibitbooleanstdlogibitbooleanstdlogibitbooleanstdlogi整数符号操作符整数vhdl语言的运算操作符3运算符优先级xnor最低优先级vhdlvhdl语言的运算操作符4norxorstdlogicvector1downtostdlogicsignalnandjnandbooleansignalstdlogicvector1downtostdlogicsignalbooleanvhdl语言的运算操作符5主要用于位和位矢量的连接
VHDL语言的数据对象(二)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VARIABLE 变量名:数据类型 约束条件:=初始值; 例如: VARIABLE n:INTEGER RANGE 0 TO 15 :=2;
信 号
• 信号
信号定义语句的格式为: SIGNAL 信号名:数据类型 约束条件:=表达式; 例如: SIGNAL data:STD_LOGIC_VECTOR (7 DOWNTO 0); 信号赋值语句的格式为: 目标信号名<= 表达式; 例如: y <= ‘0’ ;
• 端口说明
PORT(端口名{,端口名} :方向 数据类型; … 端口名{,端口名} :方向 数据类型);
端口方向
端口方向用来定义外部引脚的信号方向是输入还是输出。表 示方向的说明符及含义如下表所示:
方向定义 IN OUT INOUT 含 输入 输出(构造体内部不能再使用) 双向 义
BUFFER
LINKAGE
标准数据类型(10种)
• • • • • 布尔量 :TRUE,FALSE 字符(CHARACTER) 字符串 时间 : 错误等级 在VHDL仿真器中,错误等级类型数据用来表征系 统的状态,它共有4种:NOTE(注意), WARNING(警告),ERROR(出错), FAILLURE(失败)。
用户自定义数据类型
三、VHDL程序的基本结构
一个完整的VHDL语言程序通常包含:实体(Entity)、构造 体(Architecture)、配置(Configuration)、包集合 (Package)和库(Library)五部分。 • • • • • 实体(Entity): “symbol” 构造体(Architecture): 配置(Configuration): 包集合(Package): 库(Library):
• 字符:用单引号引起来的ASCII字符,可以是数字,也可以是符号或字母。 • 字符串:是一维的字符数组,需放在双引号中。如:“FALSE”, B “100”
2-2 标识符
• 短标识符(VHDL’87)
VHDL的短标识符必须遵守以下规则: 1、必须以英文字母开头; 2、英文字母、数字(0~9)和下划线都是有效的字符; 3、短标识符不区分大小写; 4、下划线(_)的前后都必须有英文字母或数字; 如:A_1 5、不能和VHDL语言的保留字重名。
3-1 实体
• 实体说明
实体说明定义了一个给定的设计单元及该设计单元与周围 的接口,它具有如下结构:
ENTITY 实体名 IS [类属参数说明] [端口说明] END 实体名;
类属参数说明与端口说明
• 类属参数说明[可选]
GENERIC [CONSTANT] 名字表:[IN] 子类型标志 [:=静 态表达式],… ];
输出(构造体内部可再使用)
不指定方向,无论哪个方向都可连接
实体entity dff_async_rst is port (D,CLK,RESET :in STD_LOGIC; Q :out STD_LOGIC); end dff_async_rst;
实体举例2
● 采用VHDL语言设计硬件电路的优点
1、 计技术齐全、方法灵活、支持广泛。
VHDL语言可以支持自上而下和基于库的设计方法,而且支持 同步电路、异步电路、FPGA以及其它随机电路的设计。
2、系统硬件描述能力强,能支持硬件的设计、验证、 综合和测试,是一种多层次的硬件描述语言。 3、VHDL语言可以与工艺无关编程。当门级或门级 以上的描述通过仿真验证后,再利用相应的工具将设 计映射成不同的工艺(如MOS、CMOS等)。这样,在 工艺更新时,就无须修改原设计程序,只要改变相应 的映射工具就行了。 4、VHDL语言标准、规范,易于共享和重复利用。
一、VHDL的发展史

VHSIC 计划
美国国防部在上个世纪70年代末和80年代初提出的VHSIC (Very High Speed Integrated Circuit)计划的产物。 1981年提出了一种新的硬件描述语言,称为VHSIC Hardware Description Language 。简称VHDL。
第七章 VHDL语言简介
硬件描述语言:就是可以描述硬件电路的功能、信号的连接关系及定时关 系语言。 最常用的HDL是VHDL和Verilog HDL
一、VHDL的发展史 二、VHDL的基本语法 三、VHDL程序的基本结构 四、 VHDL语言构造体的描述方式 五、VHDL构造体的子结构描述方式 六、VHDL的基本描述语句 七、基本逻辑电路设计 八、VHDL仿真与综合
标准数据类型(10种)
• • • • 整数(INTERGER) 自然数(Natural)和正整数(Positive) 实数(REAL) 位(BIT) 位数据类型也属于枚举型,取值只能是‘1’和‘0’ • 位矢量(BIT_VECTOR) 位矢量使用双引号括起来的一组位数据,如 “1011”。 使用位矢量时必须注明位宽,即数组中元素个数和 排列,如: SIGNAL S1:BIT_VECTOR(15 DOWNTO 0);

VHDL标准化
1987年12月VHDL被接纳为IEEE std-1076-1987标准,一般 称为 VHDL’87 。 1993年进一步修订,形成IEEE std 1076-1993标准,称为 VHDL’93。
●采用VHDL语言的硬件电路设计方法
采 用 VHDL 设 计 数 字 系 统 一 般 采 用 自 上 而 下 ( Top Down)的分层设计方法,所谓自上而下的设计方法,就 是从系统总体出发,自上而下地逐步将设计内容细化, 最后完成系统硬件的整体设计。 1) 第一层次行为描述:就是对整个系统的数学模型的描述。 2) 第二层次RTL方式描述,即寄存器传输描述,也称为数 据流描述。采用RTL方式描述,才能导出系统的逻辑表 达式,才能进行逻辑综合。 3) 第三层次是逻辑综合。就是利用逻辑综合工具,将RTL 方式描述的程序转换成用基本元件表示的文件(门级网 表)。
加、减、并,关系,逻辑运算符。
括号可改变运算次序
下面以加法器为例说明并置运算符的用法:
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY addition IS PORT (A,B:IN STD_LOGIC_VECTOR( 3 DOWNTO 0); Q1: OUT STD_LOGIC_VECTOR( 4 DOWNTO 0)); END addition; ARCHITECTURE behav OF addition IS BEGIN PROCESS (A,B) BEGIN Q1 <= (‘0’ & A) + (‘0’ & B); END PROCESS; END behav;
2-5 VHDL 运算操作符
• • • • • 算术运算:+,-,*,/,MOD,REM,+(正),-(负),**,ABS。 逻辑运算:AND,OR,NAND,NOR,XOR,NOR和NOT。 关系运算:=,/=,<,>, <=,>=。 并置运算:用于位连接。(‘0’ & A) 运算符优先级:NOT,ABS,**,乘法运算符,正负,
可以由用户定义的数据类型有: • 枚举类型、整数类型、数组类型、存取类型 • 文件类型、时间类型、实数类型 用户用TYPE语句定义自己的数据类型。 TYPE语句的格式为: TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型; 例如: TYPE word IS ARRAY(0 TO 15)OF STD_LOGIC;
IEEE 预定义标准
• 标准化数据类型
IEEE’93 增 加 了 多 值 逻 辑 包 STD_LOGIC_1164 , 使 得 “STD_LOGIC”数据具有9种不同的值。其定义如下:
TYPE STD_LOGIC IS ( ‘U’, --初始值 ‘X’, --不定 ‘0’, --0 ‘1’, --1 ‘Z’, --高阻 ‘W’, --弱信号不定 ‘L’, --弱信号0 ‘H’, --弱信号1 ‘-’ --不可能情况 ); “STD_LOGIC”和“STD_LOGIC_VECTOR”是IEEE新制定的标准化数 据类型,将它们归属到用户定义的数据类型中。
二选一电路的实体说明: entity mux is port ( a: in std_logic; b: in std_logic; s: in std_logic; f: out std_logic ) end mux;
A B S
F
实体举例3
带类属参数说明的实体: entity adder is generic (width: integer := 2); port ( in_a : in std_logic_vector(width-1 downto 0); in_b : in std_logic_vector(width-1 downto 0); z : out std_logic_vector(width-1 downto 0); carry: out std_logic) ); end entity adder;
常数:对某一常数赋予一个固定值。
变量:在进程和子程序中使用,是一个局部量。 信号:是电路内部硬件连接的抽象。
常 数
常数说明格式为:
CONSTANT 常数名:数据类型:=表达式;
如: CONSTANT VCC:REAL:=5.0; • 常量是一个恒定不变的量,一旦被赋值就不 能再改变。
变 量
• 变量只能在进程和子程序中使用,是一个局 部量,不能将信息带出所定义的当前设计单 元。与信号不同,变量的赋值是理想化数据 传输,其赋值是立即生效的,不存在任何延 迟。 变量定义语句的格式为:
二、VHDL的基本语法规则
相关文档
最新文档