




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2 2章章 计算机的逻辑部件计算机的逻辑部件 2.12.1 半导体器件的开关特性半导体器件的开关特性 2.22.2 基本逻辑运算和基本门电路基本逻辑运算和基本门电路 2.3 2.3 组合逻辑电路组合逻辑电路 2.4 2.4 时序逻辑电路时序逻辑电路 2.52.5可编程逻辑器件设计基础可编程逻辑器件设计基础 2.1 2.1 半导体器件的开关特性半导体器件的开关特性 l 数字电路中主要使用半导体器件二极管、三极管、 电容器等。 l 数字电路二极管、三极管主要当做电开关使用, 即让其工作在开关状态。 l 2.1.1 二极管的开关特性 二极管在正向电压作用下电阻很小,处于导通状态,相 当于一只接通
2、的开关;在反向电压作用下,电阻很大,处 于截止状态,如同一只断开的开关。利用二极管的开关特 性,可以组成各种逻辑电路。 l21 2.1.1 2.1.1 二极管二极管 l1 1、二极管的开关特性、二极管的开关特性 二极管在正向电压正向电压作用下电阻很小,处于导通状态,相 当于一只接通的开关接通的开关; 二极管在反向电压反向电压作用下,电阻很大,处于截止状态, 如同一只断开的开关断开的开关。 利用二极管的开关特性二极管的开关特性,可以组成各种逻辑电路(P32 二极管与门、或门等)。 l 例:二极管与门电路 当A、B都置为高电平时,二极管截止,Y输出为高电平; 当A、B中最少有一个置为低电平时,二极
3、管导通,就会通过 DA或DB把Y点的电平拉低,所以Y输出低电平。 这样A、B两个输入端和输出端Y之间就形成了与门的逻辑关系。 2.1.2 2.1.2 三极管三极管 l 半导体三极管是电子电路中最重要的器件,它最主要的功 能是电流放大和开关作用。 l 在模拟电路中三极管可以构成放大器,用来放大电流; l 在数字电路中三极管作为开关元件开关元件。 l 三极管顾名思义具有三个电极。二极管是由一个PN结构成 的,而三极管由两个PN结构成,共用的一个电极成为三极共用的一个电极成为三极 管的基极(用字母管的基极(用字母b b表示),其他的两个电极成为集电极表示),其他的两个电极成为集电极 (用字母(用字母
4、c c表示)和发射极(用字母表示)和发射极(用字母e e表示)表示)。 l 水龙头有三个点:进水、阀门、出水 ,相当于三极管的 发射极 e、基极 b、集电极 c l 在数字电路中三极管可以组成逻辑电路中的“与非门”、 “或非门”等。(P33P33页页) 2.2 2.2 基本逻辑运算和基本门电路基本逻辑运算和基本门电路 l 基本逻辑运算:与、或、非基本逻辑运算:与、或、非 l 基本门电路:与门、或门、非门;与非门、或非门、三态门等基本门电路:与门、或门、非门;与非门、或非门、三态门等 l 三态门三态门 l 三态门由三种状态:导通时的三态门由三种状态:导通时的0 0、1 1两状态和不导通时的禁止态
5、。两状态和不导通时的禁止态。 当当E=1E=1时,三态门导通,其输出时,三态门导通,其输出L L等于输入等于输入D D,(,(D=0,L=0;D=1,L=1D=0,L=0;D=1,L=1);); 当当E=0E=0时,三态门不导通,输出与输入呈现高电阻隔离。时,三态门不导通,输出与输入呈现高电阻隔离。 l 三态门在计算机中常用在部件与总线连接上,用三态门来控制部件与三态门在计算机中常用在部件与总线连接上,用三态门来控制部件与 总线间的传输控制总线间的传输控制。 D E L DD输入端输入端 LL输出端输出端 EE使能端(门开关)使能端(门开关) 2.3 2.3 计算机中常用的逻辑部件计算机中常用
6、的逻辑部件 2.3.1 2.3.1 加法器加法器 2.3.2 2.3.2 算术逻辑单元(简称算术逻辑单元(简称ALUALU) 2.3.3 2.3.3 译码器译码器 2.3.4 2.3.4 数据选择器数据选择器 2.3.5 2.3.5 数据分配器数据分配器 组合逻辑电路由门电路组成,没有记忆作用,特点是组合逻辑电路由门电路组成,没有记忆作用,特点是 输出信号随输入信号变化而变化。输出信号随输入信号变化而变化。 在计算机设计中,组合逻辑电路常作为控制器电路,在计算机设计中,组合逻辑电路常作为控制器电路, 其输入往往是指令的操作码或状态信号,而输出往往输其输入往往是指令的操作码或状态信号,而输出往往
7、输 出到寄存器中或加到三态门的控制端。出到寄存器中或加到三态门的控制端。 Cn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-1Cn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-1 Fn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-1Fn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-1 2.3.1 2.3.1 加法器加法器 不考虑进位输入时,两数码不考虑进位输入时,两数码XnXn、YnYn相加称为半加器;若考虑相加称为半加器;若考虑 低位进位输入低位进位输入Cn-1Cn-1相加,则称为全加器。全加和相
8、加,则称为全加器。全加和FnFn与进位输出与进位输出 CnCn的表示式为:的表示式为: 其逻辑电路图详见教材其逻辑电路图详见教材4242页图页图2.172.17,2.182.18所示。所示。 有关半加器和全加器的功能表及逻辑图如教材中图有关半加器和全加器的功能表及逻辑图如教材中图2.52.5和图和图2.62.6 Xn Yn Cn-1 Fn Cn 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 一位全加器真值表如下:一位全加器真值表如下: 其中其中Xn Xn 为被加数,为被加数,YnY
9、n为加数,为加数, Cn-1Cn-1为低级进位信号,为低级进位信号,FnFn 为和,为和,CnCn为本级向上进位信号。为本级向上进位信号。 简单简单4 4位位串行全加器串行全加器如下图所示:如下图所示: ( (教材图教材图2-20 2-20 四位串行加法器四位串行加法器) ) 将将4 4个全加器相连可得个全加器相连可得4 4位加法器(如上图),其加法位加法器(如上图),其加法 所需时间较长。所需时间较长。 这是因为其位间进位是串行传送的,本位全加和这是因为其位间进位是串行传送的,本位全加和FiFi必必 须等低位进位须等低位进位Ci-1Ci-1来到后才能进行,加法时间与位数有关。来到后才能进行,
10、加法时间与位数有关。 只有改变进位逐位传送的路径,才能提高加法器工作只有改变进位逐位传送的路径,才能提高加法器工作 速度。速度。 解决办法之一是采用解决办法之一是采用“超前进位产生电路超前进位产生电路”来来同时形同时形 成各位进位成各位进位,从而实行快速加法,我们称这种加法器为超,从而实行快速加法,我们称这种加法器为超 前进位加法器。前进位加法器。 超前进位产生电路在随后运算器章节会有介绍。超前进位产生电路在随后运算器章节会有介绍。 2.3.2 2.3.2 算术逻辑单元(简称算术逻辑单元(简称ALUALU) l ALUALU是一种功能较强的组合逻辑电路是一种功能较强的组合逻辑电路, ,它能进行
11、它能进行 多种算术运算和逻辑运算。多种算术运算和逻辑运算。 l例:例:SN74181SN74181型四位型四位ALUALU中规模集成电路中规模集成电路 SN74181SN74181能执行能执行1616种算术运算和种算术运算和1616种逻辑运算种逻辑运算 真值表见真值表见P23P23页表页表2.52.5所示。所示。 l 在图在图2.52.5中功能表中,中功能表中,“加加”表示算术加,表示算术加,“+”+”表表 示逻辑加。示逻辑加。 l M M是状态控制端是状态控制端: M=H,: M=H,执行逻辑运算;执行逻辑运算;M=LM=L执行算术执行算术 运算。运算。 l S0 S3S0 S3是运算选择端
12、,它决定电路执行哪种算术运是运算选择端,它决定电路执行哪种算术运 算或逻辑运算。算或逻辑运算。 S0 S1 S2 S3 L L L L L L L H L L H L L L H H L H L L L H L H L H H L L H H H H L L L H L L H H L H L H L H H H H L L H H L H H H H L H H H H A A+B AB “0” AB B AB AB A+B AB B AB “1” A+B A+B A A A+B A+B 减1 A加(AB) (AB)加(A+B) A减B减1 (AB)减1 A加(AB) A加B (AB)加(A
13、+B) (AB)减1 A加A A加(A+B) A加(A+B) A减1 A+1 (A+B)加1 (A+B)加1 “0” A加(AB)加1 (AB)加(A+B)加1 A减B AB A加(AB)加1 A加B加1 (AB)加(A+B)加1 (AB) A加A加1 A加(A+B)加1 A加(A+B)加1 A 正 逻 辑 M=H 逻辑运算 M=L算术运算 Cn=1 Cn=0 表表2.5 74LS181 ALU2.5 74LS181 ALU功能表功能表 74L181逻辑电路图演示 用四片用四片7418174181电路可组成电路可组成1616位位ALUALU,如图,如图2.102.10片内进位是快片内进位是快
14、速并行的,但片间进位是逐片串行传递的,因此总的形成时间速并行的,但片间进位是逐片串行传递的,因此总的形成时间 还是是比较长的,可以采用并行进位电路还是是比较长的,可以采用并行进位电路74LS18274LS182让片间进位让片间进位 同时产生来加快执行速度。同时产生来加快执行速度。 图图 2.10 图图2.11 与与74181型型ALU连用的超前进位产生电路连用的超前进位产生电路 用两个用两个1616位全先行进位部件(位全先行进位部件(7418274182)和八个)和八个 7418174181可级连组成的可级连组成的3232位位ALUALU电路电路 用四个用四个1616位全先行进位部件(位全先行
15、进位部件(7418274182)和十六)和十六 个个7418174181可级连组成的可级连组成的6464位位ALUALU电路电路 由于集成器件的集成度的提高,允许更多位的由于集成器件的集成度的提高,允许更多位的 ALUALU集成在一个芯片内。例如集成在一个芯片内。例如AMDAMD公司的公司的 AM29332AM29332为为3232位位ALU,ALU,而在而在IntelIntel公司的公司的PentiumPentium处处 理器中,理器中,3232位位ALUALU仅是芯片内的一部分电路。尽仅是芯片内的一部分电路。尽 管器件不同,但基本电路原理还是相似的。管器件不同,但基本电路原理还是相似的。
16、2.3.3 2.3.3 译码器译码器 译码:把某组编码翻译为译码:把某组编码翻译为唯一的输出唯一的输出。 计算机应用中要用到的有地址译码器和指令计算机应用中要用到的有地址译码器和指令 译码器。译码器。 译码器:有译码器:有2-42-4译码器、译码器、3-83-8译码器(译码器(8 8选选1 1译码器)译码器) 和和4-164-16译码器(即译码器(即1616选选1 1译码器)等多种。译码器)等多种。 书中介绍的是书中介绍的是2-42-4译码器的组成及应用译码器的组成及应用 例如:例如:3-83-8译码器,即译码器,即8 8选选1 1译码器的输入信号有三译码器的输入信号有三 个:个:C C、B
17、B、A A(A A为低位),三位二进制数可组成为低位),三位二进制数可组成8 8个不个不 同数字,因此可分别选中输出同数字,因此可分别选中输出Y Y0 0 到到Y Y7 7的某一个输出故的某一个输出故 称为称为 8 8选选1 1译码器。在资料手册中的型号为译码器。在资料手册中的型号为7413874138。 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B C B A 下图分别为译码器引脚图和输入输出真值表下图分别为译码器引脚图和输入输出真值表 其中:其中:G G1 1、G G2A 2A、 、G G2B 2B为芯片选择端, 为芯片选择端,G G1 1高电平有效,高电平有效,
18、而而G G2A 2A、 、G G2B 2B为低电平有效。 为低电平有效。 输 入 输 出 C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 74LS138 2.3.4 2.3.4 数据选择器数据选择器 F D0 D1 D2 D3 A1 A
19、0 地址A1A0 输出F 0 0 D0 0 1 D1 1 0 D2 1 1 D3 在地址选择信号的控制下,从多路数据中选择一在地址选择信号的控制下,从多路数据中选择一 路作为输出信号。又称多路开关或多路选择器。路作为输出信号。又称多路开关或多路选择器。 以四选一选择器为例:以四选一选择器为例: 数据传输过程中,常常需要将一路数据分配到多路数据传输过程中,常常需要将一路数据分配到多路 装置中指定的某一路中,执行这种功能的电路叫数据分配装置中指定的某一路中,执行这种功能的电路叫数据分配 器。下面以四路数据分配器为例进行说明:器。下面以四路数据分配器为例进行说明: D A1 A0 S W0 W1 W
20、2 W3 A0 A1 D W 0 0 D W0=D 0 1 D W1=D 1 0 D W2=D 1 1 D W3=D 2.4.5 2.4.5 数据分配器数据分配器 2.4 2.4 时序电路时序电路 2.4.1 2.4.1 触发器触发器 2.4.2 2.4.2 寄存器寄存器 2.4.3 2.4.3 四级二进制并行计数器四级二进制并行计数器 D S Q CLK CLR Q 输入 输出 S CLR CLK D Q 0 0 1 1 0 0 0 0 1 0 X X 1 0 1 X X 0 D触发器功能表:触发器功能表: 正跳变触发有效。正跳变触发有效。 2.4.1 2.4.1 触发器触发器 (1)D(1
21、)D触发器触发器 电路符号:电路符号: D为数据输入端;为数据输入端; CLK为时钟信号;为时钟信号; S为置位信号端;为置位信号端; CLR复位信号端;复位信号端; Q为输出信号端。为输出信号端。 电路符号: JK为控制输入端; CLK为时钟信号; S为置位信号端; CLR复位信号端; Q为输出信号端。 (2) J-K(2) J-K触发器触发器 输入 输出 S CLR CLK J K Q 0 0 0 0 不变 0 0 1 0 1 0 0 0 1 0 0 0 1 1 翻转 0 1 X X X 0 1 0 X X X 1 J S Q CLK K CLR Q 1 1 寄存器寄存器 计算机中常用部件
22、,用于暂存二进制信息。计算机中常用部件,用于暂存二进制信息。 寄存器可由多个触发器组成。每个触发器存寄存器可由多个触发器组成。每个触发器存 1Bit,N个触发器储存个触发器储存N位二进制数据。位二进制数据。 Q3 D3 CLK X3 Q2 D2 CLK X2 Q1 D1 CLK X1 Q0 D0 CLK X0 控制端 下图为由下图为由4个个D触发器组成的四位缓冲寄存器。触发器组成的四位缓冲寄存器。 2.4.2 2.4.2 寄存器寄存器 2 2 移位寄存器移位寄存器 移位寄存器不仅具有存储数据的功能,而移位寄存器不仅具有存储数据的功能,而 且还具有移位功能。所谓移位功能就是将移位寄且还具有移位功
23、能。所谓移位功能就是将移位寄 存器中所存的数据,在移位脉冲信号的作用下,存器中所存的数据,在移位脉冲信号的作用下, 按要求逐次向左、右方进行移动。按要求逐次向左、右方进行移动。 从信号输入上分有串行输入和并行输入从信号输入上分有串行输入和并行输入 从信号输出上分有串行输出和并行输出从信号输出上分有串行输出和并行输出 下面以串行输入并行输出右移位寄存器为下面以串行输入并行输出右移位寄存器为 例进行说明:例进行说明: X1 X2 X3 X4 移位脉冲移位脉冲 CLK D1 Q1 F1 CLK D2 Q2 F2 CLK D3 Q3 F3 CLK D4 Q4 F4 CLK 串行输入信串行输入信 号号D
24、IN DIN CLK X1 X2 X3 X4 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 串行输入并行串行输入并行 输出右移位寄输出右移位寄 存器波形图存器波形图 2.4.3 2.4.3 四级二进制并行计数器四级二进制并行计数器 J Q CLK K CLR J Q CLK K CLR Q0 Q1 Q2 Q3 清清0端端 控制端控制端 计计 数数 端端 J Q CLK K CLR J Q CLK K CLR CLK Q0 Q1 Q2 Q3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2.5 2.5 可编程逻辑器件设计基础可编程逻辑
25、器件设计基础 2.5.1 2.5.1 可编程逻辑器件简介可编程逻辑器件简介 2.5.2 2.5.2 硬件描述语言(硬件描述语言(VHDLVHDL)介绍)介绍 2.5.3 2.5.3 可编程逻辑器件设计语言可编程逻辑器件设计语言ABELABEL 2.5.1 2.5.1 可编程逻辑器件简介可编程逻辑器件简介 l 目前,数字集成电路得到了广泛的应用,其本目前,数字集成电路得到了广泛的应用,其本 身也在不断地进行更新换代。随着微电子技术的发身也在不断地进行更新换代。随着微电子技术的发 展,设计与制造集成电路的任务已不可能全由半导展,设计与制造集成电路的任务已不可能全由半导 体厂商来独立承担,出现了可编
26、程逻辑器件(体厂商来独立承担,出现了可编程逻辑器件(PLDPLD), , 其中应用最广泛的是现场可编程门阵列(其中应用最广泛的是现场可编程门阵列(FPGAFPGA)和)和 复杂可编程逻辑器件(复杂可编程逻辑器件(CPLDCPLD)。)。 l 可编程逻辑器件如同一张白纸或是一堆积木。可编程逻辑器件如同一张白纸或是一堆积木。 它能完成任何数字器件的功能,上至高性能它能完成任何数字器件的功能,上至高性能CPU CPU , 下至简单组合逻辑下至简单组合逻辑( (如如7474系列元器件系列元器件) ) ,都可以用它来,都可以用它来 实现。实现。 l 现在的可编程逻辑器件已经能够容纳几个现在的可编程逻辑器
27、件已经能够容纳几个3232位的位的CPUCPU 同时工作,实现复杂嵌入式系统。同时工作,实现复杂嵌入式系统。 l 可编程逻辑器件是电子设计领域中最具活力和发展可编程逻辑器件是电子设计领域中最具活力和发展 前途的一项技术。前途的一项技术。 1 1)FPGAFPGA和和CPLDCPLD CPLD CPLD是复杂可编程逻辑器件是复杂可编程逻辑器件(Complex Programable (Complex Programable Logic Device)Logic Device)的简称。的简称。 FPGA FPGA是现场可编程门阵列是现场可编程门阵列(Field Programable Gate (
28、Field Programable Gate Array)Array)的简称。的简称。 两者的功能基本相同,只是实现的原理有所不同。两者的功能基本相同,只是实现的原理有所不同。 lFPGAFPGA与与CPLDCPLD的主要区别的主要区别 在编程方式上,在编程方式上,CPLDCPLD主要是基于主要是基于EEPROMEEPROM或或FLASHFLASH存储器存储器 编程,编程次数可达编程,编程次数可达1 1万次,其优点是系统断电时编程信息万次,其优点是系统断电时编程信息 也不丢失。也不丢失。 FPGAFPGA大部分是基于大部分是基于SRAMSRAM编程,编程信息在系统断电时丢编程,编程信息在系统断
29、电时丢 失,所以每次上电时须将编程数据从外部配置芯片重新写失,所以每次上电时须将编程数据从外部配置芯片重新写 入入SRAMSRAM中,其优点是可以编程任意次,可在工作中快速编中,其优点是可以编程任意次,可在工作中快速编 程,从而实现板级和系统级的动态配置。程,从而实现板级和系统级的动态配置。 但但FPGAFPGA的制造工艺确定了的制造工艺确定了FPGAFPGA芯片中包含的芯片中包含的LUTLUT和触发和触发 器的数量要比器的数量要比CPLDCPLD丰富得多,更适合完成复杂的时序逻辑。丰富得多,更适合完成复杂的时序逻辑。 CPLD CPLD由于其宏单元的分解组合逻辑功能强大,适合于触由于其宏单元
30、的分解组合逻辑功能强大,适合于触 发器有限而乘积项丰富的组合逻辑。发器有限而乘积项丰富的组合逻辑。 l为什么要使用为什么要使用CPLD/FPGACPLD/FPGA 搞过硬件电路设计的工程师可能明白:使用通用的标准搞过硬件电路设计的工程师可能明白:使用通用的标准 逻辑集成器件(如逻辑集成器件(如7474系列元器件)组合设计一块具有特定逻系列元器件)组合设计一块具有特定逻 辑功能的电路板是很麻烦的。需要进行逻辑电路设计,然后辑功能的电路板是很麻烦的。需要进行逻辑电路设计,然后 再进行印刷电路板设计、最后还有焊接工序。这期间的调试再进行印刷电路板设计、最后还有焊接工序。这期间的调试 工作很多都牵涉到
31、各器件之间的阻抗匹配、信号完整性等。工作很多都牵涉到各器件之间的阻抗匹配、信号完整性等。 这就是说,各逻辑器件并不像在逻辑设计阶段那么理想了,这就是说,各逻辑器件并不像在逻辑设计阶段那么理想了, 还需要考虑其实际情况。一个小错误都可能使得还需要考虑其实际情况。一个小错误都可能使得PCBPCB报废,报废, 须重新制板。系统的调试只有在硬件须重新制板。系统的调试只有在硬件PCBPCB板制造、焊接完成板制造、焊接完成 后才能进行。若发现错误,调试也只能等下一次后才能进行。若发现错误,调试也只能等下一次PCBPCB修改后修改后 才能继续。才能继续。 这样一来,整个开发周期就变得很长了,电路板的体积这样
32、一来,整个开发周期就变得很长了,电路板的体积 功耗都变大,可靠性降低。而且逻辑设计人员不能专注于逻功耗都变大,可靠性降低。而且逻辑设计人员不能专注于逻 辑功能的设计,效率大打折扣。辑功能的设计,效率大打折扣。 可编程逻辑器件为数字系统的开发带来革命性的突破,可编程逻辑器件为数字系统的开发带来革命性的突破, 简化了系统的设计简化了系统的设计。只要逻辑门数足够,一片可编程逻辑器。只要逻辑门数足够,一片可编程逻辑器 件就可以容纳传统设计所需要的通用标准逻辑器件。件就可以容纳传统设计所需要的通用标准逻辑器件。“器件器件” (并非真正的器件,而是内部逻辑关系)之间的连接和可靠(并非真正的器件,而是内部逻
33、辑关系)之间的连接和可靠 性完全由芯片制造商来保证。性完全由芯片制造商来保证。 另外,通过逻辑设计或者修改模块参数,还可以另外,通过逻辑设计或者修改模块参数,还可以“自制自制” 原来所没有的器件,这一点很重要。通过购买第三方的原来所没有的器件,这一点很重要。通过购买第三方的 IPIntellectual Property,IPIntellectual Property,知识产权)核,使系统设计大为知识产权)核,使系统设计大为 简化,具有很高的集成度。简化,具有很高的集成度。 由于可编程逻辑器件的大部分引脚均为普通由于可编程逻辑器件的大部分引脚均为普通I/OI/O引脚,引脚, 可以设置为输入、输
34、出、双向或高阻。所以在器件型号选定可以设置为输入、输出、双向或高阻。所以在器件型号选定 后,根据系统的要求,可编程器件的输入输出关系及其所使后,根据系统的要求,可编程器件的输入输出关系及其所使 用的引脚就可以确定下来了。另外由于可编程逻辑器件的内用的引脚就可以确定下来了。另外由于可编程逻辑器件的内 部逻辑设计与硬件部逻辑设计与硬件PCBPCB绘制同时进行,绘制同时进行,大大缩短了系统设计大大缩短了系统设计 周期周期。在。在PCBPCB完成以后,还可以利用可编程逻辑器件的在线完成以后,还可以利用可编程逻辑器件的在线 修改能力,随时修改设计,而不必改动硬件电路。可以说,修改能力,随时修改设计,而不
35、必改动硬件电路。可以说, 这就是这就是“可编程可编程”的魅力!的魅力! 总之,使用可编程逻辑器件来开发数字电路,可以大大缩总之,使用可编程逻辑器件来开发数字电路,可以大大缩 短设计时间,减少短设计时间,减少PCBPCB面积,提高系统的可靠性。面积,提高系统的可靠性。 可编程逻辑器件的这些优点使得可编程逻辑器件的这些优点使得PLDPLD技术在技术在2020世纪世纪9090年以年以 后得到飞速的发展,同时也大大推动了后得到飞速的发展,同时也大大推动了EDAEDA软件和硬件描述软件和硬件描述 语言(语言(HDLHDL)的进步。)的进步。 2.4.2 2.4.2 硬件描述语言(硬件描述语言(VHDLV
36、HDL) l 随着随着EDA技术的发展,使用硬件描述语言技术的发展,使用硬件描述语言(Hardware Description Language)设计设计CPLD/FPGA称为一种趋势称为一种趋势 l 为什么要使用硬件描述语言呢?它跟原理图输入又有什为什么要使用硬件描述语言呢?它跟原理图输入又有什 么区别?么区别? 传统的原理图输入其实就相当于物理器件的焊接,其输传统的原理图输入其实就相当于物理器件的焊接,其输 入的可靠性好、效率高、比较直观,但设计大规模入的可靠性好、效率高、比较直观,但设计大规模PLD/ FPGA时显得很烦琐、移植性差。硬件描述语言和传统原时显得很烦琐、移植性差。硬件描述语
37、言和传统原 理图输入方法的关系就好比是高级语言和汇编语言的关理图输入方法的关系就好比是高级语言和汇编语言的关 系。系。HDL的可移植性好,使用方便,但效率不如原理图的可移植性好,使用方便,但效率不如原理图 高。在真正的高。在真正的CPLD/FPGA设计中,通常建议采用原理图设计中,通常建议采用原理图 和和HDL结合的方法来设计。在最短的时间内,用自己最熟结合的方法来设计。在最短的时间内,用自己最熟 悉的工具设计出高效、稳定、符合设计要求的电路才是我悉的工具设计出高效、稳定、符合设计要求的电路才是我 们的最终目的。们的最终目的。 lVHDL特点特点 VHDL的英文全名是的英文全名是Very-Hi
38、gh-Speed Integrated Circuit Hardware Description Language,诞生于诞生于1982年。年。1987年底,年底, VHDL被被IEEE和美国国防部确认为标准硬件描述语言。和美国国防部确认为标准硬件描述语言。 lVHDL的程序结构特点是将一项工程设计,或称设计实体的程序结构特点是将一项工程设计,或称设计实体(可以可以 是一个元件、一个电路模块或一个系统是一个元件、一个电路模块或一个系统)分成外部分成外部(或称可视部分,或称可视部分, 即端口即端口)和内部和内部(或称不可视部分,即涉及实体的内部功能实现部或称不可视部分,即涉及实体的内部功能实现部
39、 分分)。在完成了对一个涉及实体开发后,其他的设计就可以直接调。在完成了对一个涉及实体开发后,其他的设计就可以直接调 用这个模块。这种将设计实体分成内外部分的概念是用这个模块。这种将设计实体分成内外部分的概念是VHDL系统设系统设 计的基本点。计的基本点。 目前主要的硬件描述语言是目前主要的硬件描述语言是VHDL和和Verilog HDL。VHDL发展较发展较 早,语法严格,而早,语法严格,而Verilog HDL是在是在C语言基础上发展起来的一种语言基础上发展起来的一种 硬件描述语言,语法比较自由。两者相比,硬件描述语言,语法比较自由。两者相比,VHDL书写规则比书写规则比erilog 烦琐
40、一些,但烦琐一些,但Verilog自由的语法也容易让初学者出错。其实两种语自由的语法也容易让初学者出错。其实两种语 言的差别并不大,它们的描述能力也是相似的。掌握其中一种语言言的差别并不大,它们的描述能力也是相似的。掌握其中一种语言 以后,通过短期的学习,可以较快的学会另一种语言。这里简要介以后,通过短期的学习,可以较快的学会另一种语言。这里简要介 绍一下绍一下VHDL语言。语言。 VHDL是美国国防部颁布的超高速集成电路是美国国防部颁布的超高速集成电路(VHSIC)计划计划 所确定的硬件描述语言,并于所确定的硬件描述语言,并于1987年被年被IEEE批准为标准设计批准为标准设计 语言,命名为
41、语言,命名为IEEE-1076-1987。美国国防部鼓励设计语言格。美国国防部鼓励设计语言格 式标准化,它要求所有与政府项目有关的式标准化,它要求所有与政府项目有关的ASIC设计必须符合设计必须符合 IEEE-1076标准。设计者用标准。设计者用VHDL可对整个可对整个ASIC进行从系统级进行从系统级 (对电路结构的高层次抽象对电路结构的高层次抽象)到门级硬件的描述。对被模拟系统到门级硬件的描述。对被模拟系统 的模型可混合使用高层次行为描述和低层次的模型可混合使用高层次行为描述和低层次(逻辑和门逻辑和门)的详细的详细 描述。描述。 使用任何文本编辑器都可进行使用任何文本编辑器都可进行VHDL语
42、言的编写,也可以语言的编写,也可以 用专门的用专门的HDL编辑环境。通常将编辑环境。通常将VHDL文件保存为文件保存为.vhd文件。文件。 VHDL的语言形式、描述风格及句法有点类似于一般的计算机的语言形式、描述风格及句法有点类似于一般的计算机 高级语言,但是要注意的是,硬件描述语言与平常的计算机高级语言,但是要注意的是,硬件描述语言与平常的计算机 描述语言并不相同,它描述的是硬件电路。描述语言并不相同,它描述的是硬件电路。VHDL主要用于描主要用于描 述数字系统的结构、行为、功能和接口,与原理图有对应的述数字系统的结构、行为、功能和接口,与原理图有对应的 关系关系 VHDL是一种标准语言,是
43、一种标准语言,VHDL模型可以在与此标准模型可以在与此标准 相一致的任一计算机系统上运行,并产生相同的模拟结果。相一致的任一计算机系统上运行,并产生相同的模拟结果。 VHDL模型以使用离散值的模型以使用离散值的“激励一响应激励一响应”形式为基形式为基 础。础。 对一个器件,常常会问两个最基本的问题:它由什么对一个器件,常常会问两个最基本的问题:它由什么 组成组成?它如何工作它如何工作?这两个问题提出了硬件描述的基本方这两个问题提出了硬件描述的基本方 面:结构与行为。面:结构与行为。VHDL描述的对象是数字设备,是离散描述的对象是数字设备,是离散 系统。即将离散的输入值系统。即将离散的输入值(激
44、励激励)进行一系列计算和转换,进行一系列计算和转换, 最后产生离散的输出值最后产生离散的输出值(响应响应)。从某输入点数值的变化。从某输入点数值的变化(从从 “0”到到“1”或从或从“1”到到“0”)到输出端得到响应,总存在到输出端得到响应,总存在 一定的时间延迟。一定的时间延迟。 l 定义电路的端口定义电路的端口(输入端、输出端输入端、输出端),端口是电路与外界的连接,端口是电路与外界的连接 点。点。 l 电路的行为描述和结构描述。电路的行为描述和结构描述。 l 编写对电路进行激励模拟的命令文件,进行逻辑模拟。编写对电路进行激励模拟的命令文件,进行逻辑模拟。 (1)电路的)电路的VHDL描述
45、描述 在在VHDL中,被模拟的电路由实体定义,实体由说明部分与结中,被模拟的电路由实体定义,实体由说明部分与结 构部分组成。今将半加器的构部分组成。今将半加器的VHDL描述作一介绍描述作一介绍(其中其中“- -”为注释为注释 符,一行中符,一行中“- -”后面的任何字符都为注释,在程序中不起作用后面的任何字符都为注释,在程序中不起作用 )。 描述工具是描述工具是Viewlogic公司提供的公司提供的Workview软件。软件。 - -下面是半加器的实体说明下面是半加器的实体说明 ENTITY half_adder is port (X:in vlbit; Y:in vlbit; Sum:out
46、 vlbit; Carry:out vlbit); end half_adder; - -端口定义结束,端口定义结束,in表示输入数据,表示输入数据,out表示输出数据。表示输出数据。 在对电路进行逻辑模拟时,一般要经历以下步骤:在对电路进行逻辑模拟时,一般要经历以下步骤: - -VHDL有三种基本数据类型:整数、浮点数和枚举类有三种基本数据类型:整数、浮点数和枚举类 型,型,vlbit为枚举类型二值为枚举类型二值(0,1) 。 - - X、Y是半加器的输入,是半加器的输入,Sum为和为和(输出输出),Carry为为 进位进位(输出输出)。 - -下面为结构体描述下面为结构体描述 ARCHIT
47、ECTURE behavioral_description of half- adder is begin process begin Sum=X xor Y after 5 ns; Carry=X and Y after 5 ns; Wait on X,Y; end process; - -进程描述结束进程描述结束 end behavioral_description; - -结构体描述结束结构体描述结束 现将结构体描述简单说明如下:现将结构体描述简单说明如下: 在在VHDL中,常用进程中,常用进程Process进行行为描述。进行行为描述。 在该进程中,表示在该进程中,表示Sum和和Carr
48、y的值要比信号的值要比信号X,Y 延迟延迟5ns时间才能形成。时间才能形成。Wait语句将进程挂起,直语句将进程挂起,直 到信号到信号X或或Y中的任一个发生了变化,进程就从进程中的任一个发生了变化,进程就从进程 语句的顶端开始重新执行一遭,也可将进程改写如语句的顶端开始重新执行一遭,也可将进程改写如 下,此时不再需要下,此时不再需要Walt语句,而作用与有语句,而作用与有Wall语句语句 的进程相同。的进程相同。 process (X,Y) begin Sum=X xor Y after 5 ns; Carry=X and Y after 5 ns; end process; l 例例1、举一
49、个移位器的例子。该移位器可对、举一个移位器的例子。该移位器可对32位数据位数据 A进行任意位进行任意位(31位位0位位)移位,移位次数由移位,移位次数由 给出,移位器的功能由给出,移位器的功能由5级门完成,在级门完成,在B(i)控制下数据经控制下数据经 过每级门有两种操作可供选择:直接送出过每级门有两种操作可供选择:直接送出(B(i)=0不移位不移位) 或移固定位数或移固定位数(B(i)=1),其中第,其中第1级可移级可移1位;第位;第2级可移级可移2 位;第位;第3级可移级可移4位;第位;第4级可移级可移8位;第位;第5级可移级可移16位。另位。另 外该移位器可进行逻辑左移、逻辑右移、算术左
50、移和算术外该移位器可进行逻辑左移、逻辑右移、算术左移和算术 右移四种操作。逻辑左移和算术左移,空出来的低位补右移四种操作。逻辑左移和算术左移,空出来的低位补 0;所以这两种操作没有区别,统称为左移;逻辑右移空;所以这两种操作没有区别,统称为左移;逻辑右移空 出的高位补出的高位补0;算术右移,空出的高位全部补入原符号;算术右移,空出的高位全部补入原符号 位。位。SR为移位结果。为移位结果。 l 在本例中,首先对移位器进行行为描述,定义了三在本例中,首先对移位器进行行为描述,定义了三 个个 函数函数(function):左移:左移shiftl,逻辑右移,逻辑右移shiftr-logic,算,算 术
51、右移术右移shiftr maths,并一起归入,并一起归入ExtendVhd程序包程序包 中。中。 左移的左移的VHDL描述:描述: function shiftl( A:vlbit_ld(31 downto 0); i:integer) return vlbit_ld is variable SR:vlbit_ld(31 dowmo 0); begin SR(31+i downto i):A; for j in i-l downto 0 loop SR(j):=0; end loop return SR(31 downto 0); cndI; 程序中的程序中的vlbit_ld表示一维数组。表
52、示一维数组。 在在VHDL中有两种赋值符号中有两种赋值符号“”和和“:”。前者表示赋值。前者表示赋值 需经需经 过一段延迟时间才能完成;后者则可立即赋值。当给变量置初始化过一段延迟时间才能完成;后者则可立即赋值。当给变量置初始化 值或给常量赋值时使用值或给常量赋值时使用“:”符号。符号。 逻辑右移的逻辑右移的VHDL描述;描述; function shiftr_logic( A:vlbit_ld(31 downto 0); i:integer) return vlbit_ld is variable SR:vlbit_ld(31 downto 0); begin for j in 31 dow
53、nto 32-i loop SR(j):= 0; end loop SR(31-i downto -i):=A return SR(31 downto 0); end; 算术右移的算术右移的VHDL描述请读者自行写出。描述请读者自行写出。 下面给出移位器的实体说明与结构体描述。下面给出移位器的实体说明与结构体描述。 文件名:文件名:shifter.vhd use work.extend.all; -use语句允许本实体引用。语句允许本实体引用。extend.vhd程序包,内有程序包,内有3个移个移 位函数位函数 ENTITY shifter is generic(SR_DELAY:time:=
54、10ns); -属性定义,从输入属性定义,从输入A、B到输出到输出SR的延迟的延迟 port(A:in vlbit_ld(31 downto 00); B:in vlbit_ld(4 downto 0); SR:out vlbit_ld(31 downto 00); Clr,Cal:in vlbit); -端口定义,端口定义,A为为32位一维向量,位一维向量,B为为5位一维向量。位一维向量。 -Clr为左右移控制信号,为左右移控制信号,Clr=0为左移,为左移,Clr=1,为右移,为右移 -Cal为算术移位和逻辑移位的控制信号,为算术移位和逻辑移位的控制信号,Cal=“0”为算术移位,为算术移
55、位, Cal=1为逻辑移位为逻辑移位 end shifter; 实体说明结束,以下为结构体描述实体说明结束,以下为结构体描述 ARCHITECTURE behavior OF shifter IS begin process (A,B,Clr,Cal) variable tmp1, tmp2,tmp3,tmp4,tmp5: vlbit_ld (31 downto 00) begin if B(0)=0 then tmp1:=A; elsif Clr=0 then tmp1=(shiftl(A,1); elsif Cal=0 then tmp1:= (shiftr_maths(A,1); els
56、e tmp1:= (shiftr_logic(A,1); end if; -shiftl,shiftr_logic及及shiftr_maths在在extend.vhd中定义中定义 if B(1)= 0 then . . end if -得出得出tmp2 if B(2):=0 then . . end if if B(3)=0 then . . end if -得出得出tmp3,tmp4 if B(4)=0 then tmp5:=(tmp4) elsif Clr=0 then tmp5:= (shiftl(tmp4,16); elsif Car=0 then tmp5:=(shiflr_math
57、s (tmp4,16); else tmp5:=(shiftr_logic (tmp4,16); end if SR= tmp5 after SR_DELAY; -输出结果输出结果SR end process; -进程描述结束进程描述结束 end behavior; 例例2、这里举一个简单的、这里举一个简单的VHDL例子,让大家有一个入门的认例子,让大家有一个入门的认 识。例子的功能是实现一个识。例子的功能是实现一个12位的寄存器。位的寄存器。 ENTITY REG12 IS -外部端口定义:数据,时钟,输出外部端口定义:数据,时钟,输出 PORT(d:IN BIT_VECTOR(11 DOW
58、NTO 0); clk:IN BIT; q :OUT BIT_VECTOR(11 DOWNTO 0); EDN REG12; -内部实体逻辑内部实体逻辑 ARCHITECTURE a OF REG12 IS BEGIN PROCESS BEGIN WAIT UNTILL clk=1;-等待时钟上升沿等待时钟上升沿 qVHDL shifter-v 可生成可生成shifter.VLI及及shifter.VSM网表文件网表文件(其中其中VHDL为为 编译命令,编译命令,-v为命令的参数,表示需要生成网表文件为命令的参数,表示需要生成网表文件)。 l 第二步,进入模拟器,并把模拟对象的网表文件加第二步
59、,进入模拟器,并把模拟对象的网表文件加 载载 到模拟器中。到模拟器中。 在在workview集成环境中,模拟器为集成环境中,模拟器为viewsim。进入。进入 viewsim中后,模拟器会问用户加载网表的名称,输入中后,模拟器会问用户加载网表的名称,输入 shifter即可即可(关于关于workview的具体使用,可参看其使用说的具体使用,可参看其使用说 明书明书)。 l 第三步,对输入端口施加激励并进行模拟。所第三步,对输入端口施加激励并进行模拟。所 谓激励,对应于实际电路的输入端输入信号,一般谓激励,对应于实际电路的输入端输入信号,一般 通过逻辑值通过逻辑值1和和0的组合来表达。的组合来表
60、达。 在在shifter中,输入端口有中,输入端口有A,B, Clr及及Cal为这些输入端口设计激励时,要注意尽可为这些输入端口设计激励时,要注意尽可 能全面地测试移位器的功能。能全面地测试移位器的功能。 l 第四步第四步,显示模拟结果,设计简单的列表方式及显示模拟结果,设计简单的列表方式及 图形显示方式等。图形显示方式等。 2.6.3 2.6.3 可编程逻辑器件设计语言可编程逻辑器件设计语言ABELABEL (用于计算机组成原理实验)(用于计算机组成原理实验) 前言前言 1 ABEL-HDL语言的基本语法语言的基本语法 2 ABEL-HDL语言源文件的基本结构语言源文件的基本结构 3 逻辑描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 以节促防活动方案
- 任达华出席活动方案
- 食品用纸包装、纸容器产品质量省监督抽查实施细则
- 企业七天乐活动方案
- 企业亲子烘焙活动方案
- 企业入住活动方案
- 企业冬季活动方案
- 企业单位公司年会策划方案
- 企业品质活动方案
- 企业培训活动方案
- 广东省风力发电内蒙古分公司广东能源集团招聘笔试题库2025
- 2024广西桂盛金融信息科技服务有限公司专业技术人员常态化公开招聘笔试历年典型考题及考点剖析附带答案详解
- 中国航空透明件行业市场规模及投资前景预测分析报告
- 2025年风险管理师资格考试试题及答案
- 精神科患者安全管理
- 2024智能交通系统架构设计试题及答案
- 热泵技术考试题及答案
- 旅游英语考试试题及答案
- 【课件】人体的骨骼课件北师大版生物七年级下册
- 英语财务报告阅读试题及答案
- 2025甘肃省农垦集团有限责任公司招聘生产技术人员145人笔试参考题库附带答案详解
评论
0/150
提交评论