第2章计算机的逻辑部件.ppt

上传人:本田雅阁 文档编号:2549027 上传时间:2019-04-06 格式:PPT 页数:88 大小:807.51KB
返回 下载 相关 举报
第2章计算机的逻辑部件.ppt_第1页
第1页 / 共88页
第2章计算机的逻辑部件.ppt_第2页
第2页 / 共88页
第2章计算机的逻辑部件.ppt_第3页
第3页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第2章计算机的逻辑部件.ppt》由会员分享,可在线阅读,更多相关《第2章计算机的逻辑部件.ppt(88页珍藏版)》请在三一文库上搜索。

1、2007.7.2,计算机组成原理,1,第2章 计算机的逻辑部件,计算机组成原理,2007.7.2,计算机组成原理,2,计算机的逻辑部件,本章从逻辑代数的基本知识、逻辑门电路的构成及特性出发,介绍组合逻辑电路分析与设计的一般方法;介绍了加法器、译码器等常用芯片的逻辑功能;介绍了加法器、译码器等中规模器件设计组合逻辑电路、解决实际问题的思路与方法。读者应深入理解基本逻辑运算、逻辑运算规则、逻辑函数的标准表达式、代数化简、卡诺图化简等基本理论;掌握利用逻辑代数知识分析组合逻辑电路的方法;掌握用小规模器件设计组合电路的一般过程;深入理解中规模器件在设计组合逻辑电路、解决实际问题中的应用。,2007.7

2、.2,计算机组成原理,3,本章要点:,数字逻辑电路基础知识 逻辑函数的化简 加法器设计 译码器设计 计数器设计 EDA技术,2007.7.2,计算机组成原理,4,2.1.1 逻辑代数的基本知识,逻辑代数是研究逻辑电路的基本工具,是描述输入逻辑变量和输出函数之间关系的数学表达式。逻辑代数又称为开关代数或布尔代数,是由英国数学家乔治 布尔(George Boole)于19世纪中叶首先提出的用于描述客观事物逻辑关系的数学方法,是按一定的逻辑规律进行运算的,反映逻辑变量运算规律的数学,主要应用于继电器开关电路的分析与设计上。经过不断的完善和发展后,被用于数字逻辑电路和数字系统中,成为逻辑电路分析和设计

3、的有力工具。,2.1 数字逻辑与数字电路,2007.7.2,计算机组成原理,5,通常电子系统中都含有模拟和数字两种模块。和模拟电路相比较,在存储、分析或传输信号时,数字电路更具优越性。在数字电路中,常用二进制数来量化连续变化的模拟信号,而二进制数正好是用数字1和0来表示的。这里的0和1不是十进制数中的数字,逻辑0和逻辑1不代表数值大小,仅表示相互矛盾、相互对立的两种逻辑状态,这样就可借助复杂的数字系统来实现信号的存储、分析和传输。,1数字逻辑信号,2007.7.2,计算机组成原理,6,2.逻辑电平,逻辑代数与普通代数相似之处在于它们都是用字母表示变量,用代数式描述客观事物间的关系。但不同的是,

4、逻辑代数是描述客观事物间的逻辑关系,逻辑函数表达式中的逻辑变量的取值和逻辑函数值都只有两个值,即0 和1,称之为数字逻辑。 在电路上,可用电子器件的开关特性来实现,由此形成离散信号电压或数字电压,这些数字电压通常用逻辑电平来表示。应当注意,逻辑电平不是物理量,而是物理量的相对表示。在正逻辑体系中,用1来表示高电平,用0来表示低电平。在负逻辑体系中,用0来表示高电平,用1来表示低电平(本书采用正逻辑)。这种高电平和低电平统称为逻辑电平。,2007.7.2,计算机组成原理,7,2.1.2 常见的门电路,1与门 真值表表示的两输入端与门如表2-1所示,逻辑符号如图2-1所示。从与门的逻辑关系上可以看

5、出,如果输入端A作为控制端,则A的值将会决定输入端B的值是否能被输出到端口Y。,表2-1 两输入端与门的真值表,2007.7.2,计算机组成原理,8,(a)国外符号 (b)国标符号 图2-1 两输入端与门逻辑符号,符号表示:,2007.7.2,计算机组成原理,9,2或门 真值表表示的两输入端或门如表2-2所示,逻辑符号如图2-2所示。,表2-2 两输入端或门的真值表,2007.7.2,计算机组成原理,10,图2-2 两输入端或门逻辑符号,(a)国外符号 (b)国标符号,2007.7.2,计算机组成原理,11,3非门,非门可以用反相器电路实现,因此非门又称为“反相器”。真值表表示的非门如表2-3

6、所示,逻辑符号如图2-3所示。,表2-3 非门的真值表,2007.7.2,计算机组成原理,12,(a)国外符号 (b)国标符号 图2-3 非门逻辑符号,符号表示:,2007.7.2,计算机组成原理,13,5或非门,真值表表示的两输入端或非门如表2-5所示,逻辑符号如图2-5所示。可以利用或非门的输入端A来控制输入端B。当A=0时,(输入信号被反相输出);当A=1时,则不管B的值是什么,Y都为0。,表2-5 两输入端或非门的真值表,2007.7.2,计算机组成原理,14,符号表示:,(a)国外符号 (b)国标符号 图2-5 两输入端或非门逻辑符号,2007.7.2,计算机组成原理,15,6异或门

7、,真值表表示的两输入端异或门如表2-6所示,逻辑符号如图2-6所示。从逻辑表达式中可以看出,异或门能够用与门、非门和或门来实现。,表2-6 两输入端异或门的真值表,2007.7.2,计算机组成原理,16,符号表示:,(a)国外符号 (b)国标符号 图2-6 两输入端异或门逻辑符号,2007.7.2,计算机组成原理,17,7同或门,真值表表示的两输入端同或门如表2-7所示,逻辑符号如图2-7所示。,表2-7 两输入端同或门的真值表,2007.7.2,计算机组成原理,18,符号表示:,(a)国外符号 (b)国标符号 图2-7 两输入端同或门逻辑符号,2007.7.2,计算机组成原理,19,2.2.

8、1 加法器,在数字系统中,减法、乘法和除法的核心都是加法,因此加法器是计算机的基本运算单元,在逻辑电路中经常使用。 半加器和全加器是算术运算电路中的基本单元,它们是完成1位二进制数相加的一种组合逻辑电路。,2.2 常用的组合逻辑电路设计,2007.7.2,计算机组成原理,20,1半加器,不考虑低位进位的加法器称半加器。 设A为被加数,B为加数。本位和为S,本位进位为C,根据半加器的概念得出半加器的真值表如表2-8所示。 由真值表可得出本位和S,本位进位C的表达式:,表2-8 半加器真值表,2007.7.2,计算机组成原理,21,实现半加器运算的逻辑电路,如图2-8(a)所示,(b)图为半加器的

9、符号。,图2-8 半加器,2007.7.2,计算机组成原理,22,2全加器,半加器只是解决了两个一位二进制数相加,没有考虑来自低位的进位。如果要多位二进制数相加,必须同时考虑来自低位的进位,这种加法器称全加器。 全加器真值表如表2-9所示,表中Ai为被加数;Bi为加数;本位和Si;进位Ci,低位进位Ci-1。 根据全加器的概念得出全加器真值表如下页表2-9所示。,2007.7.2,计算机组成原理,23,表2-9 全加器真值表,2007.7.2,计算机组成原理,24,由真值表写出:,2007.7.2,计算机组成原理,25,根据表达式画出全加器逻辑图如图2-9(a)所示,图2-9(b)是全加器的符

10、号。,(a)逻辑图 (b)符号,图2-9 全加器电路,2007.7.2,计算机组成原理,26,3多位二进制加法电路,用全加器可以实现多位二进制加法运算,实现四位二进制加法运算的逻辑图如图2-10所示。图中低位进位输出作为高位进位输入,进位信号是后级向前级一级一级传输的。,图2-10 四位二进加法器逻辑图,2007.7.2,计算机组成原理,27,4集成四位二进制加法器74283,集成四位二进制加法器74283采用了超前进位方式。74283逻辑符号及引脚图如图2-11所示。,(a)逻辑符号 (b)引脚图 图2-11 4位二进制加法器 74283的逻辑符号、引脚图,思考: 结合集成四位二进制加法器7

11、4283的引脚图,查阅相关资料请分析设计出四位二进制加法器详细的电路图。,2007.7.2,计算机组成原理,28,2.2.2 译码器设计,译码器是一个多输入、多输出的组合逻辑电路。它的作用是通过对编码的译码,形成相应的控制信号或输出信号,即把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。不同的功能可选用不同种类的译码器。 译码器可分为通用译码器和显示译码器两大类。前者又分为变量译码器和代码变换译码器。,2007.7.2,计算机组成原理,29,1变量译码器(

12、又称二进制译码器),用以表示输入变量的状态,如2线4线、3线8线和4线16线译码器。若有n个输入变量,则有2n个不同的组合状态,就有2n个输出端供其使用。而每一个输出所代表的函数对应于n个输入变量的最小项。 以3线8线译码器74LS138为例进行分析,图2-12(a)、(b)分别为其逻辑图及引脚排列。其中 、为地址输入端,为译码输出端,S1、为使能端。 表2-10为74LS138功能表。 当S11,0时,器件使能,地址码所指定的输出端有信号(为0)输出,其它所有输出端均无信号(全为1)输出。当S10, X时,或 S1X,1时,译码器被禁止,所有输出同时为1。,2007.7.2,计算机组成原理,

13、30,图2-12 38线译码器74LS138逻辑图及引脚排列,图2-12 38线译码器74LS138逻辑图及引脚排列,2007.7.2,计算机组成原理,31,表2-10 74LS138功能表,+,2007.7.2,计算机组成原理,32,利用使能端能方便地将两个3线-8线译码器组合成一个4线-16线译码器,如图2-13所示。,图2-13 用两片74LS138组合成4-16译码器,2007.7.2,计算机组成原理,33,2数码显示译码器,(1)七段发光二极管(LED)数码管 LED数码管是目前最常用的数字显示器,图2-14(a)、(b)为共阴管和共阳管的电路,(c)为两种不同出线形式的引出脚功能图

14、。 一个LED数码管可用来显示一位09十进制数和一个小数点。小型数码管(0.5寸和0.36寸)每段发光二极管的正向压降,随显示光(通常为红、绿、黄、橙色)的颜色不同略有差别,通常约为22.5V,每个发光二极管的点亮电流在510mA。LED数码管要显示BCD码所表示的十进制数字就需要有一个专门的译码器,该译码器不但要完成译码功能,还要有相当的驱动能力。,2007.7.2,计算机组成原理,34,(a) 共阴连接(“1”电平驱动),(b) 共阳连接(“0”电平驱动),2007.7.2,计算机组成原理,35,(c) 符号及引脚功能,图 214 LED数码管,2007.7.2,计算机组成原理,36,(2

15、)BCD码七段译码驱动器,此类译码器型号有74LS47(共阳),74LS48(共阴),CC4511(共阴)等。以CC4511 BCD为例,图2-15为CC4511引脚排列图。,图215 CC4511引脚排列,2007.7.2,计算机组成原理,37,其中: A、B、C、D 8421 BCD码输入端。 a、b、c、d、e、f、g 译码输出端,输出“1”有效,用来驱动共阴极LED数码管。 测试输入端,“0”时,译码输出全为“1”。 消隐输入端,“0”时,译码输出全为“0”。 LE 锁定端,LE“1”时译码器处于锁定(保持)状态,译码输出保持在LE0时的数值,LE0为正常译码。 表2-11为CC451

16、1功能表。CC4511内接有上拉电阻,故只需在输出端与数码管各段之间串入限流电阻即可工作。译码器还有拒伪码功能,当输入码超过1001时,输出全为“0”,数码管熄灭。,2007.7.2,计算机组成原理,38,表2-11 CC4511功能表,2007.7.2,计算机组成原理,39,续表:,2007.7.2,计算机组成原理,40,在实际应用中,将十进制数的BCD码接至译码器的相应输入端A、B、C、D即可显示09的数字。四位数码管可接受四组BCD码输入。CC4511与LED数码管的连接如图2-16所示。,图2-16 CC4511驱动一位LED数码管,2007.7.2,计算机组成原理,41,2.2.3

17、移位寄存器设计,移位寄存器和数码寄存器不同,移位寄存器不仅能存储数据,而且具有移位的功能。按照数据移动的方向,可分为单向移位和双向移位。而单向移位又有左移和右移之分。 1单向移位寄存器 图2-17所示为4位单向右移移位寄存器,由4个D触发器构成。将前一位触发器的输出与后一位触发器的输入相连,将前一位数据移至后一位。在CP移位指令控制下,数据依次由D0输入,经4个CP脉冲,可并行输出Q0Q3。,2007.7.2,计算机组成原理,42,图2-17 单向移位寄存器,设输入数码为1101,那么,在CP移位脉冲作用下,其数据移动情况如表2-16所示。可见,当经过4个CP脉冲后,1101四位数据全部移入寄

18、存器中,并从四个触发器Q端得到并行数据输出。再经四个CP脉冲,则由Q3全部串行输出。,2007.7.2,计算机组成原理,43,表2-12 移位寄存器中数据的移动,同样方法,数据由右输入可构成左移移位寄存器。 上述移位寄存器数据都是串行输入的,事实上,在数据输入形式上还可实现并行输入,左移或右移串行输出而构成多种工作方式。,2007.7.2,计算机组成原理,44,2中规模集成移位寄存器,将左移和右移移位寄存器结合起来,加上移位控制端,在方向控制信号作用下可构成双向移位寄存器。集成移位寄存器种类很多,功能与前所述相同。它有双向,单向;也有并入/并出、并入/串出、串入/并出、串入/串出;还有四位、八

19、位等类型。图2-18所示是一种功能较强的集成四位双向移位寄存器74LS194。它具有并行寄存,左移寄存,右移寄存和保持四种工作模式,由M1M0端信号确定74LS194的工作模式。 为低电平有效的清零端,DSR为右移串行输入端,DSL为左移串行输入端,D3D2D1D0为并行输入端。,2007.7.2,计算机组成原理,45,(a) 逻辑符号 (b) 引脚图 图2-18集成四位双向移位寄存器74LS194,2007.7.2,计算机组成原理,46,74LS194功能表见表2-13。由表2-17可以知道,74LS194在 端为低电平时具有异步清零功能。条件下,M1M0=00时,寄存器实现保持(数据)功能

20、;图2-23(b)中QA作为寄存器高位输出,即QAQBQCQD=Q3Q2Q1Q0,M1M0=01时,寄存器实现右移功能,CP作用下,数据由高位向低位移动,右移输入端DSR数据移入Q3;M1M0=10时,寄存器实现左移功能,CP作用下,数据由低位向高位移动,左移输入端DSL数据移入Q0;M1M0=11时,寄存器实现并行输入(预置)功能,并行输入数据D3D2D1D0=ABCD寄存到Q端,时钟上跳后Q3Q2Q1Q0= D3D2D1D0=ABCD。,2007.7.2,计算机组成原理,47,表2-13 74LS194功能表,2007.7.2,计算机组成原理,48,将74LS194各功能端,控制端适当级连

21、,可实现容量的扩展。图2-19所示是由74LS194构成的8位双向移位寄存器。,图2-19 74LS194构成的8位双向移位寄存器,2007.7.2,计算机组成原理,49,1计数器分类,计数器是时序逻辑电路的一个基本功能模块。能够实现计数功能的电路称为计数器。它是现代数字系统中不可缺少的组成部分。它不仅用于对脉冲计数,还可用于定时、分频、数字运算等工作。 计数器种类很多,按对脉冲计数值增减分为:加法计数器、减法计数器和可逆计数器。 按照计数器中各触发器计数脉冲引入的方式不同,分为:同步计数器、异步计数器。若各触发器受同一时钟脉冲控制,其状态更新是在同一时刻完成,则为同步计数;反之,则为异步计数

22、器。 按照计数器循环长度可分为:二进制计数器、八进制计数器、十进制计数器、十六进制计数器、N进制计数器等。也就是不同的计数长度。,2.2.4 计数器设计,2007.7.2,计算机组成原理,50,2同步二进制计数器74LS161集成计数器,74LS161是一种同步四位二进制加法集成计数器。其逻辑符号如图2-20(a)所示,管脚的排列如图2-25(b)所示,逻辑功能如表2-14所示。,(a)逻辑符号 (b)管脚图 图2-20 集成4位二进计数器74LS161,2007.7.2,计算机组成原理,51,表2-14 74161的功能表,2007.7.2,计算机组成原理,52,由表2-14可知,74LS1

23、61具有以下功能:,(1)异步清零。当RD0时,不管其他输入端的状态如何,不论有无时钟脉冲CP,计数器输出将被直接置零(Q3Q2QlQ00000),称为异步清零。 (2)同步并行预置数。当RD1、LD0时,在输入时钟脉冲CP上升沿的作用下,并行输入端的数据d3d2d1d0被置入计数器的输出端,即Q3Q2QlQ0d3d2d1d0。由于这个操作要与CP上升沿同步,所以称为同步预置数。 (3)计数。当RDLDEPET1时,在CP端输入计数脉冲,计数器进行二进制加法计数。,2007.7.2,计算机组成原理,53,(4)保持。当RDLD1,且0,即两个使能端中有0时,则计数器保持原来的状态不变。这时,如

24、EP0、ET1,则进位输出信号RCO保持不变;如ET0则不管EP状态如何,进位输出信号RCO为低电平0。,在数字集成电路中有许多型号的计数器产品,可以用这些数字集成电路来实现所需要的计数功能和时序逻辑功能。在设计相关电路时有两种方法,一种为反馈清零法,另一种为反馈置数法,3集成计数器的应用,2007.7.2,计算机组成原理,54,(1)反馈清零法,反馈清零法是利用反馈电路产生一个给集成计数器的复位信号,使计数器各输出端为零(清零)。反馈电路一般是组合逻辑电路,计数器输出部分或全部作为其输入,在计数器一定的输出状态下即时产生复位信号,使计数电路同步或异步地复位。反馈清零法的逻辑框图如图图2-21

25、所示。,图2-21 反馈清零法框图,2007.7.2,计算机组成原理,55,(2)反馈置数法,反馈置数法将反馈逻辑电路产生的信号送到计数电路的置位端,在满足条件时,计数电路输出状态为给定的二进制码。反馈置数法的逻辑框图如图2-22所示。,图2-22 反馈清零法框图,2007.7.2,计算机组成原理,56,4环形计数,图2-23(a)所示的环形计数器是由4个D触发器组成的。任何时刻,它只有一位为1,其它各位为0。当CLR信号使电路清零后,便由最低位的触发器产生一个与时钟脉冲同宽的节拍脉冲信号T0,T0的下降沿引发T1,T1的下降沿又引发T2,依次形成T0、T1、T2 、T3共4个节拍脉冲。这样,

26、随着时钟脉冲的到来,环形计数器的各位轮流置1,且在最高位(左边第一位)置1之后又回到右边第一位,这就形成环形置位,所以称为环形计数器。,2007.7.2,计算机组成原理,57,环形计数器不是用来计数的,而是用于发出顺序控制信号的。它是计算机的控制器中的一个重要部件。,2007.7.2,计算机组成原理,58,2.3.1 EDA技术简介,随着半导体技术、集成技术和计算机技术的发展,电子系统的设计和设计手段发生了很大的变化。特别是进入到20世纪90年代以后,电子设计自动化EDA(Electrical Design Automation)技术的发展和普及给电子系统的设计带来了革命性的变化。EDA是一种

27、实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。,2.3 EDA技术,2007.7.2,计算机组成原理,59,EDA可以看作是电子CAD的高级阶段。是90年代初,从CAD、CAM(计算机辅助制造)、CAT(计算机辅助测试)、和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具、在EDA软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适

28、配编译、逻辑映射和编程下载等工作。 EDA技术中最具现代电子设计技术特征的功能就是日益强大的逻辑设计仿真测试技术。EDA仿真测试技术只需通过计算机就能对所设计的电子系统,从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,在完成实际系统的安装后还能对系统上的目标器件进行所谓边界扫描测试。这一切都极大地提高了大规模系统电子设计的自动化程度。另一方面,高速发展的CPLD/FPGA(复杂可编程逻辑器件/现场可编程逻辑器件)又为EDA技术的不断进步奠定了坚实的物质基础。,2007.7.2,计算机组成原理,60,EDA的基本工具包括编程器、仿真器、检查/分析工具和优化/综合工具。现代的EDA工具

29、软件已突破了早期仅能进行PCB(印刷电路板)版图设计,或类似某些仅限于电路功能模拟的、纯软件的范围的局限,以最终实现可靠的硬件系统为目标,配备了系统设计自动化的全部工具。 随着基于EDA的SOC(单片系统)设计技术的发展,软硬件功能内核库的建立,以及基于VHDL所谓自顶向下设计理念的确立,未来的EDA将会超越电子设计的范畴进入其他领域。,2007.7.2,计算机组成原理,61,2.3.2 EDA技术应用,EDA技术的每一次进步,都引起了设计层次上的一次飞跃。EDA技术的应用,主要包括以下三个方面:,电子工程师接受系统设计任务后,首先确定设计方案,并选择能实现该方案的合适元器件,然后根据具体的元

30、器件设计电路原理图。,1物理级设计,物理级设计主要指IC版图设计,一般由半导体厂家完成,对电子工程师没有太大的意义。,2电路级设计,2007.7.2,计算机组成原理,62,接着进行第一次仿真,其中包括数字电路的逻辑模拟、故障分析,模拟电路的交直流分析、瞬态分析。在进行系统仿真时,必须要有元件模型库的支持,计算机上模拟的输入输出波形代替了实际电路调试中的信号源和示波器。这一次仿真主要是检验设计方案在功能方面的正确性。 仿真通过后,根据原理图产生的电气连接网络表进行PCB板的自动布局布线。在制作PCB板之前还可以进行PCB后分析,其中包括热分析、噪声及窜扰分析、电磁兼容分析、可靠性分析等,并可将分

31、析后的结果参数重新写回电路图,进行第二次仿真,也称为后仿真。后仿真主要是检验PCB板在实际工作环境中的可行性。 由此可见,电路级的EDA技术使电子工程师在实际的电子系统产生前,就可以全面地了解系统的功能特性和物理特性,从而将开发风险消灭在设计阶段,缩短了开发时间,降低了开发成本。,2007.7.2,计算机组成原理,63,3系统级设计,进入90年代以来,电子信息类产品的开发明显呈现两个特点:一是产品复杂程度提高;二是产品上市时限紧迫。然而,电路级设计本质上是基于门级描述的单层次设计,设计的所有工作(包括设计输入、仿真和分析、设计修改等)都是在基本逻辑门这一层次上进行的,显然这种设计方法不能适应新

32、的形势,一种高层次的电子设计方法,也即系统级设计方法,应运而生。 高层次设计是一种“概念驱动式”设计,设计人员无须通过门级原理图描述电路,而是针对设计目标进行功能描述。由于摆脱了电路细节的束缚,设计人员可以把精力集中于创造性的方案与概念的构思上,一旦这些概念构思以高层次描述的形式输入计算机,EDA系统就能以规则驱动的方式自动完成整个设计。这样,新的概念就能迅速有效地成为产品,大大缩短了产品的研制周期。不仅如此,高层次设计只是定义系统的行为特性,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。,2007.7.

33、2,计算机组成原理,64,系统级设计的工作流程如下:,第1步,工程师按照“自顶向下”的设计方法进行系统划分。,第2步,输入VHDL代码,这是高层次设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图,状态图等),这种输入方式具有直观、容易理解的优点。,第3步,将以上的设计输入编译成标准的VHDL文件。,第4步,进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。,2007.7.2,计算机组成原理,65,第5步,利用综合器对VHDL源代码进行综合优化处

34、理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库支持下才能完成。,第7步,利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化、布局布线。,第6步,利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一仿真步骤。,2007.7.2,计算机组成原理,66,第8步,在适配完成后,产生多项设计结果: (1)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等; (2)适

35、配后的仿真模型; (3)器件编程文件。根据适配后的仿真模型,可以进行适配后的时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确地预期未来芯片的实际性能。如果仿真结果达不到设计要求,就需要修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求;最后一步是将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA或CPLD中。,思考:查阅资料,请比较与传统电路设计方法相比,采用EDA技术进行电路设计有那些优点?,2007.7.2,计算机组成原理,67,2.4 硬件描述语言VHDL,EDA关键技术之一就是采用硬件描述语言对硬件电路进行描述,且具有系统级仿

36、真和综合能力。目前应用比较广泛的硬件描述语言就是VHDL(Very High Speed Integrated Circuit Hardware Description Language),它最早是由美国国防部提出来的。VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛。,2007.7.2,计算机组成原理,68,2.4.1 VHDL语言程序格式,VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VH

37、DL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。 【例2-1】与门的VHDL语言实现。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AND2 IS PORT(A,B:IN STD_LOGIC; C:OUT STD_LOGIC); END; ARCHITECTURE ART OF AND2 IS BEGIN C=A AND B; END;,2007.7.2,计算机组成原理,69,由例2-6可以看出,一段独立的VHDL代码至少包含3个组成部分:,(3)结构体(ARCHITECTURE):所包含的代码描述了电路要实现的功能。,(

38、2)实体(ENTITY):定义了电路的输入/输出引脚。,(1)库(LIBRARY)声明:列出了当前设计中需要用到的所有库文件,如ieee,std和work等。,2007.7.2,计算机组成原理,70,1库声明,库是一些常用代码的集合,将电路设计中经常使用的一些代码存放到库中,有利于设计的重用和代码共享。在VHDL设计中有3个常用的库:ieee库,std库和work库。,(3)work库:work是当前工作库,当前设计的所有代码都存放在work库中。,(2)std库:std库是VHDL设计环境的标准资源库,包括数据类型和输入/输出文本等内容。,(1)ieee库:在ieee库中有一个IEEE正式认

39、可的标准包集std_logic_1164.all。,2007.7.2,计算机组成原理,71,使用一个库之前,需要对库进行声明。经过声明之后,在设计中就可以调用库中的代码了。库的声明如下: LIBRARY library_name; USE library_name.package_name.package_parts; 其中,LIBRARY和USE是VHDL保留的关键字。目前设计中常用的是一下3个包集: (1)ieee.std_logic_1164(来自ieee库) (2)standard(来自std库) (3)work(来自work库),2007.7.2,计算机组成原理,72,它们的声明方式

40、分别为: LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY std; USE std.standard.all; LIBRARY work; USE work.all;,注意:std库和work库在程序中都是默认“可见”的,因此不再需要对它们进行声明,只有ieee库在使用前需要进行明确的声明。,2007.7.2,计算机组成原理,73,2实体,实体(ENTITY)用来描述电路的所有输入/输出引脚,其语法结构如下: ENTITY entity_name IS PORT( Port_name:signal_mode signal_type; Por

41、t_name:signal_mode signal_type; ); END entity_name;,2007.7.2,计算机组成原理,74,端口的信号模式(signal_mode)是以下4种之一:IN,OUT,INOUT或BUFFER。其中,IN和OUT是单向引脚,而INOUT是双向引脚。,注意:虽然ENTITY名称的选取没有严格的规定,但不要与VHDL保留的关键字发生冲突。,2007.7.2,计算机组成原理,75,3结构体,结构体(ARCHITECTURE)中的代码用来描述电路行为和实现功能,其语法结构如下: ARCHITECTURE architecture_name OF entit

42、y_name IS declarations BEGIN (code) END architecture_name; 从语法结构中可以看到,一个ARCHITECTURE包含两个部分:声明部分(可选),用于对信号和常量等进行声明;代码部分(BEGIN和END之间的部分),用来描述电路的行为。与ENTITY一样,可以采用除了VHDL关键字以外的任何名称为ARCHITECTURE命名,并且允许和ENTITY具有相同的名称。,2007.7.2,计算机组成原理,76,下面通过例题对VHDL代码结构的基本知识做一个总体上的认识。 【例2-2】D触发器VHDL代码。 图2-24给出了一种具有异步复位端(rs

43、t)并采用时钟(clk)上升沿触发的D触发器(D)。当rst=1时,无论时钟是什么状态,D触发器的输出(q)都将被置为低电平。否则,只要时钟信号出现上升沿,输入的值就传递给输出(也就是说,D触发器是靠时钟的上升沿触发的)。有许多方法可以实现图2-24中的D触发器,下面给出了其中的一种解决方法。,2007.7.2,计算机组成原理,77,图2-24 D触发器,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY d IS PORT (d, clk, rst: IN STD_LOGIC; q:OUT STD_LOGIC) END d;,2007.7.2,

44、计算机组成原理,78,ARCHITECTURE behavior OF d IS BEGIN PROCESS (rst, clk) BEGIN IF (rst=1) THEN q =0; ELSIF (clkEVENT AND clk=1) THEN q = d; END IF; END PROCESS; END behavior;,2007.7.2,计算机组成原理,79,说明:第1行第2 行:库声明。注意,另外两个必需的库(std和work)是默认可见的,不必进行声明。第3行第6行:ENTITY d。第7行第15行:ARCHITECTURE behavior。第8行第14行:ARCHITEC

45、TURE的代码部分(从BEGIN开始)。,注意:VHDL是不区分大小写的。,2007.7.2,计算机组成原理,80,2.4.2 VHDL语言的应用,使用VHDL语言描述的电路,可以进行综合与仿真。VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具无关的,从而可以方便地进行移植和重用。VHDL 语言的两个最直接的应用领域是可编程逻辑器件和专用集成电路(ASIC:Application Specific Integrated Circuits),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD:Complex Programmable Logic Devices)和现场可编程门阵列(FP

46、GA:Filed Programmable Gate Arrays)。一段VHDL代码编写完成后,用户可以使用Altera,Xilinx或Lattice等厂商的可编程器件来实现整个电路,或者交其提交给专业的代客户加工的工厂用于ASIC的生产,这也是目前许多复杂的商用芯片所采用的实现方法。,2007.7.2,计算机组成原理,81,下面以世界上最大可编程逻辑器件的供应商Altera 公司的FPGA/CPLD 集成开发软件MAX+plus II为例,给读者简要介绍一下用VHDL 语言对可编程逻辑器件FPGA/CPLD开发的流程。 使用VHDL 语言和MAX+plus II软件进行FPGA/CPLD开

47、发的设计流程如下:,(1)设计输入:采用VHDL语言描述。,(2)仍然编译:先根据设计要求设定编译参数和编译策略,如器件的选择、逻辑综合方式的选择等。然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。,2007.7.2,计算机组成原理,82,(3)仿真:仿真包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计目的逻辑功能是否正确。,思考:结合VHDL语言的编程实例,请编程设计一个可以实现两位二进制相加的全加器电路。,(4)编程与验证:用经过仿真确认后的编程文件通过编程器(Programmer)将设计下

48、载到实际芯片中,最后测试芯片在系统中的实际运行性能。,2007.7.2,计算机组成原理,83,2.5实例解析,【例2-3】 用74LS138设计一个能对32地址译码的译码电路。 分析:构成32地址译码系统需要用4片74LS138译码器。32地址对应5位二进制地址码A4A3A2A1A0,低三位地址A2A1A0为每一片译码器提供8个低位地址,高位地址A4A3作为译码器的使能信号。A4A3=00时,74138-1译码输出;A4A3=01时,74138-2译码输出;A4A3=10时,74138-3译码输出;A4A3=11时,74138-4译码输出。A4A3可以用2/4线译码器译码,为74138-174

49、138-4提供使能信号。考虑到74138有多个使能端;可利用使能端本身的译码功能。由于74138只有一个高电平有效的使能端,所以A4中A3要有一个反相后接低电平有效的使能端,使A4A3=11时,74138-4译码输出。,2007.7.2,计算机组成原理,84,解:能实现32地址译码的译码系统之一如图2-25所示。,图2-25 74138实现32地址译码,2007.7.2,计算机组成原理,85,【例2-9】,试用74LS161 四位二进制同步加法计数器组成一个同步十二进制计数器。 分析:74LS161是具有异步清零和同步预置功能的集成TTL四位二进制同步加法计数器。根据功能表或逻辑符号图知道,74LS161有一个低电平有效的异步复位端RD,一个低电平有效的同步置位端LD和四位预置数输入端D3D2D1D0,二个使能输入端CTT、CTP。74LS161除四个计数状态输

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1