《数字电路与数字逻辑》vhdl.ppt

上传人:wuy****n92 文档编号:80503352 上传时间:2023-03-23 格式:PPT 页数:64 大小:229.50KB
返回 下载 相关 举报
《数字电路与数字逻辑》vhdl.ppt_第1页
第1页 / 共64页
《数字电路与数字逻辑》vhdl.ppt_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《《数字电路与数字逻辑》vhdl.ppt》由会员分享,可在线阅读,更多相关《《数字电路与数字逻辑》vhdl.ppt(64页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、硬件描述语言硬件描述语言 第第12章章 硬件描述语言硬件描述语言 121 概述概述 122 VHDL语言的基本结构语言的基本结构 123 数据对象、数据类型和运算操作符数据对象、数据类型和运算操作符 124 仿真和逻辑综合仿真和逻辑综合 125 VHDL基本逻辑电路设计举例基本逻辑电路设计举例 本章小结本章小结 习题习题12 返回主目录返回主目录硬件描述语言硬件描述语言 硬件描述语言硬件描述语言 12.1 概述概述 在计算机辅助电子系统设计出现以前,人们完成系统硬件的设计一直采用传统的自下而上的方法,设计者根据系统的具体需要,选择市场上能买到的逻辑元器件,构成所需要的硬件电路,在设计的后期进行

2、仿真和调试,主要的设计文件是电原理图。硬件描述语言硬件描述语言 随着大规模专用集成电路(ASIC)的开发和研制,各ASIC研制和生产厂家相继开发了用于各自目的的硬件描述语言。其中最具代表性的是美国国防部开发的VHDL语言(VHSIC Hardware Description Language),Viewlogic 公司开发的Verilog HDL以及日本电子工业振兴协会开发的UDL/I语言。硬件描述语言硬件描述语言 所谓硬件描述语言,就是可以描述硬件电路的功能、信号连接关系以及定时关系的语言,它比电原理图更能有效地表示硬件电路的特性。利用HDL语言设计系统硬件,通常采用自上而下的方法,即从系统

3、总体要求出发,自上而下地逐步将设计内容细化,硬件描述语言硬件描述语言 最后完成系统硬件的整体设计。在设计过程中,设计者分3个层次对系统硬件进行设计:行为描述、寄存器传输(RTL)方式描述和逻辑综合,并且在每一层次都要进行仿真,以便尽早发现问题。设计过程如图12.1所示。硬件描述语言硬件描述语言图 12.1 HDL语言设计系统 硬件过程框图硬件描述语言硬件描述语言 设计者不会受到元器件的限制,可根据设计需要大量采用ASIC芯片。采用HDL语言设计硬件电路时,主要的设计文件是用HDL语言编写的源程序,如果需要也可以转换成电原理图形式输出。硬件描述语言硬件描述语言 当前各ASIC芯片制造商都开发了自

4、己的HDL语言,惟一被公认的是美国国防部的VHDL语言,它已成为IEEE STD-1076标准。VHDL有许多优点,它支持自上而下(Top Down)和基于库(LibraryBased)的设计方法,而且还支持同步电路、异步电路、FPGA以及其他随机电路的设计;系统硬件的描述能力强;用VHDL编程可以和工艺无关等。本章简要介绍VHDL语言的一些基本知识,旨在让读者了解VHDL。硬件描述语言硬件描述语言122 VHDL语言的基本结构语言的基本结构 1221 语言设计的基本单元及其构成语言设计的基本单元及其构成 1222 VHDL构造体的描述方式构造体的描述方式 1223 包集合、库及配置包集合、库

5、及配置硬件描述语言硬件描述语言12.2 VHDL语言的基本结构语言的基本结构 一个完整的VHDL程序通常包含实体(Entity)、构造体(Architecture)、配 置(Configuration)、包 集 合(Package)和库(Library)5个部分。前4种是可分别编译的源设计单元,库可由用户生成或由ASIC芯片制造商提供。硬件描述语言硬件描述语言 12.2.1 VHDL语言设计的基本单元及其构成语言设计的基本单元及其构成 VHDL语言的一个基本设计单元,简单的可以是一个与门,复杂的可以是一个微处理器或一个系统。但是,其基本构成是一致的,它们都由实体和构造体两部分组成。首先我们来看

6、一个例子。图12.2是二选一电路及其VHDL描述。图 12.2 二选一电路及其VHDL描述硬件描述语言硬件描述语言 ENTITY mux IS GENERIC(m:TIME:=1 ns);PORT(d0,d1,sel:IN BIT;Q:OUT BIT);END mux;ARCHITECTURE connect OF mux IS SIGNAL tmp:BIT 硬件描述语言硬件描述语言 BEGIN cale:PROCESS(d0,d1,sel)VARIABLE tmp1,tmp2,tmp3:BIT;BEGIN tmp1:=d0 AND sel;tmp2:=d1 AND(NOT sel);tmp1

7、:=tmp1 OR tmp2;tmp=tmp3;q=tmp AFTER m;END PROCESS;END connect;硬件描述语言硬件描述语言 1.实体(实体(ENTITY)实体部分主要规定了设计单元的输入和输出或引脚.实体部分的一般格式为 ENTITY 实体名 IS GENERIC(类属参数说明);PORT(端口说明);END 实体名;属参数说明表示设计单元的默认类属参数值,例如规定端口的大小、实体的定时特性等。例如上述程序中的GENERIC(m:TIME:=1ns),指定了构造体内m的值为1 ns。端口说明是对基本设计实体与外部接口的描述,即对外部引脚信号的名称、数据类型和输入输出方

8、向的描述。其一般格式为硬件描述语言硬件描述语言 PORT(端口名:方向 数据类型名;端口名:方向 数据类型名);端口方向主要有4种:输入(IN)、输出(OUT)、缓冲(BUFFER)和双向(INOUT)。数据类型主要有布尔型(BOOLEAN)、位(BIT)位矢量(BIT-VECTOR)、整数(INTEGER)等。有些VHDL程序中,数据类型的说明符号有所不同,例如 LIBRARY IEEE USE IEEE.STD-LOGIC-1164.ALL;ENTITY mu IS PORT(d0,d1,sel:IN STD-LOGIC;Q:OUT STD-LOGIC);END mu;硬件描述语言硬件描述

9、语言 该例中,BIT类型用STD-LOGIC说明,这两种方法是完全等效的。只是使用了不同的库和包集合,例如上列程序的前两个语句。2.构造体构造体 构造体主要用来描述实体的内部逻辑,即描述一个实体的功能。构造体的一般说明格式为 ARCHITECTURE 构造体名 OF 实体名 IS 定义说明;BEGIN 语句部分;END 构造体名;VHDL可用3种描述格式来完成构造体,下面将分别介绍。硬件描述语言硬件描述语言 12.2.2 构造体的描述方式构造体的描述方式 对系统的构造体进行描述,VHDL允许采用3种不同风格的描述格式来完成,即行为描述、数据流RTL(或寄存器传输)描述和结构描述方式,或者是这些

10、方式的任意组合。在当前的情况下,采用后两种方式的VHDL程序可以进行逻辑综合,而采用行为描述的VHDL程序大部分只用于系统仿真。硬件描述语言硬件描述语言 1.行为描述方式(行为描述方式(Behavioral Descriptions)所谓行为描述,是指描述该设计单元的功能,即该硬件能做什么,主要使用函数、过程和进程语句,以算法形式描述数据的变换和传送。以四选一电路为例:LIBRARY IEEE;说明使用IEEE库 USE IEEE.STD-LOGIC-1164.ALL;说明使用 IEEE库中“STD-LOGIC-1164”USE IEEE.STD-LOGIC-UNSIGNED.ALL;和 “S

11、TD-LOGIC-UNSIGNED”包集合 ENTITY mux4 IS 定义实体mux4,说明端口i0,i1,i2,i3,硬件描述语言硬件描述语言 PORT(i0,i1,i2,i3,a,b:IN STD-LOGIC;a,b为输 入,q为输出 q:OUT STD-LOGIC);END mux4;实体mux4结束 ARCHITECTURE behave OF mux4 IS 定义构造 体behave SIGNAL sel:INTEGER;定义信号sel BEGIN WITH sel SELECT 用选择信号代入语句描 述电路功能 q=i0 WHEN 0,例如:当ab为00时,sel为0 i1 W

12、HEN 1,此时输出q为i0,其余类推 硬件描述语言硬件描述语言 i2 WHEN 2,i3 WHEN 3,XWHEN OTHERS;sel=0 WHEN a=0AND b=0ELSE 1 WHEN a=1AND b=0ELSE 2 WHEN a=0AND b=1ELSE 3 WHEN a=1AND b=1ELSE 4;END behave;构造体结束硬件描述语言硬件描述语言 2.数据流数据流RTL描述方式描述方式 所谓数据流描述,是指以类似于寄存器传输级的方式描述数据的传输和变换,主要使用并行的信号赋值语句,既显示了该设计单元的行为,也表示了该设计单元的结构。为说明这一点,我们仍用四选一电路为

13、例,用数据流描述其功能。例如,LIBRARY IEEE;USE IEEE.STD-LOGIC-1164.ALL;USE IEEE.STD-LOGIC-UNSIGNED.ALL;ENTITY mux4 IS硬件描述语言硬件描述语言 PORT(input:INSTD-LOGIC-VECTOR(3DOWNTO 0);端口说明,定义输入和输出 sel:IN STD-LOGIC-VECTOR(1 DOWNTO 0);信号 y:OUT STD-LOGIC);END mux4;ARCHITECTURE rtl OF mux4 IS 定义构造体rtl BEGIN yset,b=qb,c=q);u2:NAND2

14、 PORT MAP(a=reset,b=q,c=qb);END netlist;ARCHITECTURE behave OF rsff IS 行为描述BEGIN q=NOT(qb AND set);q=NOT(q AND reset);END behave;硬件描述语言硬件描述语言 在上述例子中,实体rsff有两个构造体netlist和behave,实体究竟和哪个构造体相对应,由配置语句来实现。如果选用构造体netlist,则用:CONFIGURATION rsffconl OF rsff IS FOR netlist END FOR;END rsffconl;硬件描述语言硬件描述语言 如果选

15、用构造体behave,则用:CONFIGURATION rsffconl OF rsff IS FOR behave END FOR;END rsffconl;这只是非常简单的一类配置,详细说明请读者参考相关文献。硬件描述语言硬件描述语言 123 数据对象、数据类型和运算操作符数据对象、数据类型和运算操作符 1231 数据对象数据对象 1232 数据类型数据类型 1233 运算操作符运算操作符硬件描述语言硬件描述语言 12.3.1 数据对象数据对象 VHDL的数据对象保存有专门类型的值,数据对象包括信号(Signal)、变量(Variable)、常数(Constant)和文件(File),在使

16、用之前必须给予详细的说明。1.信号(信号(Signal)信号与电路内部的硬件连接相对应,端口也是信号。作为连线,信号可以是逻辑门的输入或输出,也可以表达存储元件的状态。信号通常在构造体、包集合和实体中说明。信号说明的格式为 12.3数据对象、数据对象、数据类型和运算操作符数据类型和运算操作符硬件描述语言硬件描述语言 SIGNAL 信号名:数据类型约束条件:=表达式;例如,SIGNAL enable:BIT:=0;SIGNAL count:BIT-VECTOR(3 DOWNTO 0);2.变量(Variable)变量只能在进程语句、函数语句和过程语句中使用,它是一个局部量。和信号不同,分配给信号

17、的值必须经过一段时间的延迟后才能成为当前值,而分配给变量的值则立刻成为当前值,信号和硬件的“连线”相对应,而变量不能表达连线和存储元件。变量的说明格式为硬件描述语言硬件描述语言 VARIABLE 变量名:数据类型约束条件:=表达式;例如,VARIABLE x,y:INTEGER;VARIABLE count:INTEGER RANGE 0 TO 255:=10;变量的赋值是直接的,非预设的。而信号的值必须经过一段延迟后,才能成为当前值的赋值,信号赋值采用“=”符号。变量的赋值和初始化的符号“:KG-*4=”表示立即赋值。硬件描述语言硬件描述语言 3.常数常数(Constant)常数是一个固定的

18、值。所谓常数说明就是对某一常数名赋予一个固定的值。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指出,常数一旦被赋值就不能再改变。常数说明的一般格式如下:CONSTANT 常数名:数据类型:=表达式;例如,CONSTANT VCC:REL:=5.0;CONSTANT DALY:TIME:=100ns;硬件描述语言硬件描述语言 4.文件文件(File)文件包含一些专门类型的数值,它不可以通过赋值来更新文件的内容。文件可以作为参数向子程序传递,通过子程序对文件进行读写操作。因此文件参数没有模式。硬件描述语言硬件描述语言 12.3.2 数据类型数据类型 VHDL具有很强的数据类型,这使得VH

19、DL能够创建高层次的系统和算法模型。VHDL的数据类型分别为标量类型、复合类型、存取类型和文件类型。其中前两种用于综合,后两种主要用于建立仿真模型。这里主要讨论标量类型和复合类型。1.标量类型标量类型(Scalar Types)标量类型是最基本的数据类型,它包括:整数类型、浮点类型、物理类型和枚举类型。硬件描述语言硬件描述语言 1)整数类型(Integer Types)整数类型严格地和算术整数相似,能够处理VHDL的软件必须支持-(231-1)+(231-1),即-2 147 483 647+2 147 483 647范围的整数,例如:VARIABLE a:INTEGER range-63+6

20、3;2)浮点类型(Floating Types)浮点类型用于表达大部分实数,VHDL规定其范围为-1.0E38+1.0E38。综合工具通常不支持浮点类型。3)物理类型(Physical Types)物理类型对于综合意义不大,主要用于仿真。硬件描述语言硬件描述语言 4)枚举类型(Enumeration Types)枚举类型是一种非常重要的数据类型,用于建立抽象的模型。设计者用枚举类型严格地表达一个特定操作所需要的值。枚举类型的所有值由用户定义,这些值为标识符或某个字母的字面值。标识符像一个名字,例如,abc,black,clock等。文字字符的字面值是用引号括起来的字符,例如:X、1等。举例如下

21、:TYPE Two-level-logic is(0,1);TYPE color is(red,yellow,blue);KH*2硬件描述语言硬件描述语言 2.复合类型(复合类型(Composite Types)标量类型的数据对象在任何时刻仅持有一个值,而复合类型的数据对象则在某个时刻可持有多个值。复合类型由数组类型和记录类型组成。1)数组类型(Array Types)一个数组类型的对象用相同类型的多个元素组成,其定义如下:TYPE 数据类型名 IS ARRAY 范围 OF 原数据类型名;例如:TYPE bit-vector IS ARRAY(0 TO 6)OF STD-LOGIC;硬件描述语

22、言硬件描述语言 2)记录类型(Record Types)一个记录类型的数据对象可具有不同类型的多个元素,其定义如下:TYPE 数据类型名 IS RECORD 元素名:数据类型名;元素名:数据类型名;END RECORD;例如,TYPE bank IS RECORD addr:STD-LOGIC-VECTOR(7 DOWNTO 0);ro:INTEGER;END RECORD;硬件描述语言硬件描述语言表表 12.1 VHDL的运算操作符的运算操作符 12.3.3 运算操作符运算操作符 VHDL定义了丰富的运算操作符,主要有算术运算符、关系运算符、逻辑运算符、赋值运算符、关联运算符和其他运算符,如

23、表 12.1 所示。运算符类型 运 算 符 功 能逻辑运算符ANDORNANDNORXNORNOTXOR与或与非或非同或非异或硬件描述语言硬件描述语言续表(续表(2)运算符类型 运 算 符 功 能关系运算符=/=等于不等于小于大于小于等于大于等于 算术运算符+/MODREM SLL加减乘除取模取余逻辑左移硬件描述语言硬件描述语言续表(续表(3)运算符类型 运 算 符 功 能 算术运算符SRLSLASRAROLROR*ABS逻辑右移算术左移算术右移逻辑循环左移逻辑循环右移平方去绝对值=:在例化元件时用于形参到实残的映射+-&正负连接硬件描述语言硬件描述语言124 仿真和逻辑综合仿真和逻辑综合 1

24、241 仿真 1242 逻辑综合硬件描述语言硬件描述语言12.4仿真和逻辑综合仿真和逻辑综合 12.4.1 仿真仿真 前面介绍了VHDL语言的基本语句,掌握了这些就可以利用VHDL语言设计数字逻辑电路。为了验证设计模块是否正确,还需对这些设计进行仿真。仿真是利用HDL语言进行硬件设计的一个必不可少的步骤,它贯穿整个过程。目前仿真工具有许多,如:Synopsys公司的 VHDL SystemSimulator等。仿真输入信息的产生通常有两种方法:程序直接产生方法和读TEXIO方法,这里不再详细介绍。硬件描述语言硬件描述语言 在硬件系统设计过程中一般要进行3次仿真:行为级仿真、RTL级仿真和门级仿

25、真。它们的仿真目的和仿真程序模块的书写要求各不相同。1.行为级仿真行为级仿真 行为级仿真的目的是验证系统的数学模型和行为是否正确,因而对系统的抽象程度较高。对行为级仿真程序模块的书写没有太多限制,凡是VHDL语言中的语句和数据类型都可以在程序中使用。硬件描述语言硬件描述语言 2.RTL级仿真级仿真 通过行为级仿真以后,下一步就是将行为级描述的程序改写为RTL描述的程序模块。RTL仿真是为了使被仿真模块符合逻辑工具的要求,使其能生成门级逻辑电路。3.门级电路仿真门级电路仿真 RTL程序模块经逻辑综合后就生成了门级电路。在门级电路的仿真中,主要考虑门的延时对系统工作情况的影响。硬件描述语言硬件描述

26、语言 12.4.2 逻辑综合逻辑综合 逻辑综合就是将较高抽象层次的描述自动地转换到较低抽象层次的描述的一种方法。就现有的逻辑综合工具而言,就是将RTL级的描述转换成门级网络表(用基本逻辑元件表示的文件);如果需要,可以将逻辑综合的结果以逻辑原理图输出。硬件描述语言硬件描述语言 当前,已有十几种逻辑综合工具,如Synopsys公司的 Design Compiler Family,Cadence Design Systems公司的 Synerey等。要求的输入为:RTL描述的程序模块;约束条,如面积、速度、功耗、可测性;支持工艺库,如TTL工艺库、MOS工艺库、CMOS工艺库等。输出是门级网络表。

27、1.RTL级描述级描述 RTL级描述的特点是规定设计中采用各种寄存器形式,然后在寄存器之间插入组合逻辑。组合逻辑或者由逻辑方程、顺序控制语言和子程序描述,或者通过并行语句由寄存器之间的云图文件来表示。硬件描述语言硬件描述语言 2约束条件约束条件 在逻辑综合过程中,为了优化输出和工艺映射的需要,一定要有相应的约束条件,以实现所设计结构的控制,也就是说,采用不同的约束条件如面积、延时、功耗和可测性,对于同一个系统,其实现的结构是不同的。3.属性属性 属性用于规定设计进行的环境,例如属性规定输出器件必须驱动的负载数、驱动器件的驱动能力、输入信号的定时等。硬件描述语言硬件描述语言 4.工艺库工艺库 在

28、根据约束条件建立网表时,工艺库含有使综合进程作正确选择的全部信息。它不仅含有ASIC单元的逻辑功能,还有该单元的面积、输入到输出的定时关系、输出的扇出限制和对单元所需的定时检查。5.逻辑综合的基本步骤逻辑综合的基本步骤 为了将RTL描述转换到门级,一般应有 3 步:转换、优化和映射到门硬件描述语言硬件描述语言12.5 VHDL基本逻辑电路设计举例基本逻辑电路设计举例 3-8译码器是一个常用的数字电路,例如芯片74LS138。由有关手册可知,该译码器由8个3输入“与非”门,4个反相器和一个3输入“或非”门构成。如果事先不作说明,只给出电路,读通该电路就要花较多的时间。如果采用VHDL语言,从行为

29、、能来对3-8译码器进行描述,不仅逻辑设计变得非常容易,而且阅读起来也会很方便。硬件描述语言硬件描述语言 3-8译码器是最常用的一种小规模集成电路,它有3个二进制输入端a、b、c和8个译码输入端y0y7。对输入a、b、c的值进行译码,就可以确定输入端y0y7的哪一个输出端变为有效(低电平),从而达到译码的目的。源程序如下:LIBRARY IEEE;USE IEEE.STD-LOGIC-1164.ALL;ENTITY decoder-3-to-8 IS PORT(a,b,c,g1,g2a,g2b:IN STD-LOGIC;硬件描述语言硬件描述语言 y:OUT STD-LOGIC-VECTOR(7

30、 DOWNTO 0);END decoder-3-to-8;ARCHITECTURE rtl OF decoder-3-to-8 IS BEGIN Indatayyyyyyyyy=XXXXXXXX;END CASE;ELSE y=11111111;END IF;END PROCESS;END rtl;硬件描述语言硬件描述语言本章小结本章小结 一个数字系统,当我们借助EDA工具进行设计时,都需要对所设计系统的功能结构进行描述,即为EDA工具提供规定格式的输入数据,硬件描述语言HDL就是一种对数字系统在系统级至电路级进行设计描述的语言。VHDL语言设计的基本单元主要由实体和构造体来组成。实体由端口描述和若干个程序体描述组成,端口描述定义了该实体的外部特性,程序体描述则表述该实体的内部特性。硬件描述语言硬件描述语言 一个结构体的描述可以用结构描述、数据流描述和行为描述中的一种或三种形式的混合来描述。对于VHDL的包集合、库、配置以及数据类型和运算符等,本章都简要进行了介绍,限于篇幅,更深入详细的内容,请读者参考相关文献。硬件描述语言硬件描述语言习题习题12 12.1 VHDL的基本结构由哪几部分组成?12.2 请写出实体说明和构造体说明的一般格式。12.3 构造体的描述方式有哪些?请简要介绍。12.4 参考有关书籍,试设计一个一位七段数码管的显示译码电路,写出VHDL的源程序。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com