东北大学电子技术基础-第7章可编程逻辑器

上传人:san****019 文档编号:20467320 上传时间:2021-03-22 格式:PPT 页数:96 大小:1.26MB
收藏 版权申诉 举报 下载
东北大学电子技术基础-第7章可编程逻辑器_第1页
第1页 / 共96页
东北大学电子技术基础-第7章可编程逻辑器_第2页
第2页 / 共96页
东北大学电子技术基础-第7章可编程逻辑器_第3页
第3页 / 共96页
资源描述:

《东北大学电子技术基础-第7章可编程逻辑器》由会员分享,可在线阅读,更多相关《东北大学电子技术基础-第7章可编程逻辑器(96页珍藏版)》请在装配图网上搜索。

1、第七章 可编程逻辑器件 7.1概述 7.2可编程逻辑器件基础 PLD逻辑表示法 逻辑阵列的 PLD表示法应用举例 7.3 通用阵列逻辑 GAL 7.1 概 述 PLD出现的背景 电路集成度不断提高 SSIMSILSIVLSI 计算机技术的发展使 EDA技术得到广泛应用 设计方法的发展自下而上 自上而下 用户需要设计自己需要的专用电路 专用集成电路( ASIC Application Specific Integrated Circuits)开发周期长,投入大,风险 大 可编程器件 PLD:开发周期短,投入小,风险小 7.1 概 述 PLD器件的优点 集成度高,可以替代多至几千块通用 IC芯片

2、极大减小电路的面积,降低功耗,提高可靠性 具有完善先进的开发工具 提供语言、图形等设计方法,十分灵活 通过仿真工具来验证设计的正确性 可以反复地擦除、编程,方便设计的修改和 升级 灵活地定义管脚功能,减轻设计工作量,缩 短系统开发时间 ,保密性好 7.1 概 述 PLD的发展趋势 向高集成度、高速度方向进一步发展 最高集成度已达到 400万门 向低电压和低功耗方向发展 5V3.3V2.5V1.8V更低 内嵌多种功能模块 RAM, ROM, FIFO, DSP, CPU 向数、模混合可编程方向发展 7.1 概 述 大的 PLD生产厂家 最大的 PLD供应商之一 FPGA的发明者,最大的 PLD供

3、 应商之一 ISP技术的发明者 提供军品及宇航级产品 7.1 概 述 可编程专用集成电路 ASIC(Application Specific Integrated Circuit) 是面向用户特定 用途或特定功能的大规模、超大规模集成电 路。 分类:按功能分为数字的、模拟的、数字和 模拟混和三种。按制造方式分为全定制、半 定制 ASIC、可编程三种。 PLD器件的分类按集成度 可 编 程 逻 辑 器 件 (Programmable Logic Device)为通用器件 , 分为 低密度 PROM,EPROM,EEPROM,PAL,PLA,GAL 只能完成较小规模的逻辑电路 高密度,已经有超过

4、400万门的器件 EPLD, CPLD, FPGA 可用于设计大规模的数字系统集成度高,甚至 可以做到 SOC( System On a Chip) PLD器件的分类按结构特点 基于与或阵列结构的器件阵列型 PROM, EEPROM, PAL, GAL, CPLD CPLD的代表芯片如: Altera的 MAX系列 基于门阵列结构的器件单元型 现场可编程逻辑门阵列 FPGA:是集成度和结 构复杂度最高的可编程 ASIC。运算器、乘法 器、数字滤波器、二维卷积器等具有复杂算法 的逻辑单元和信号处理单元的逻辑设计可选用 FPGA实现。 按制造技术和编程方式进行分类 熔丝或反熔丝编程器件 Actel

5、的 FPGA器件 体积小,集成度高,速度高,易加密,抗干扰,耐 高温 只能一次编程,在设计初期阶段不灵活 SRAM大多数公司的 FPGA器件 可反复编程,实现系统功能的动态重构 每次上电需重新下载,实际应用时需外挂 EEPROM 用于保存程序 EEPROM大多数 CPLD器件 可反复编程 不用每次上电重新下载,但相对速度慢,功耗较大 可编程 ASIC的编程方式 可编程 ASIC的编程方式有两种: 采用专用编程器进行编程 在系统编程 甩掉了专用编程器 , 而且也不用将芯片从电路系统 取下 , 只利用计算机和一组下载电缆就可以在系统 编程 。 Lattice和 Xilinx等几家大公司现在都有在系

6、 统可编程 ASIC产品 。 在系统编程方式方便 了用户 。 可编程 ASIC的一般开发步骤 设计输入 (entry) 功能模拟 (function simulation) 逻辑分割 (partitioning) 布局和布线 (place and routing) 时间模拟 (timing simulation) 写入下载数据 (download) ASIC开发步骤流程图 状 态 机 输 入 逻 辑 图 输 入 波 形 输 入 H D L 输 入 设 计 输 入 功 能 模 拟 逻 辑 分 割 时 间 模 拟 编 程 下 载 设 计 输 入 布 局 布 线 器 件 验 证 Y N N Y 图

7、7 - 1 A S I C 开 发 步 骤 流 程 图 TOP DOWN设计思想 自顶向下 ( TOP DOWN) 设计首先是从 系统级开始入手 。 把系统分成若干基本单 元模块 , 然后再把作为基本单元的这些模 块分成下一层的子模块 。 顶 层 模 块 模 块 A 模 块 B 模 块 C 模 块 A 1 模 块 A 2 模 块 B 1 模 块 B 2 模 块 C 1 模 块 C 2 模 块 C 3 图 7-2top-down设计图 TOP DOWN设计思想 采用 TOP DOWN层次结构化设计方法 , 设计者 可在一个硬件系统的不同层次的模块下进行设计 。 总体设计师可以在上层模块级别上对其

8、下层模块 设计者所做的设计进行行为级模拟验证 。 在 TOP DOWN的设计过程中 , 划分每一个层次 模块时要对目标模块做优化 , 在实现模块时要进 行模拟仿真 。 虽然 TOP DOWN的设计过程是理 想的 , 但它的缺点是得到的最小可实现的物理单 元不标准 , 成本可能较高 。 BOTTOM UP设计思想 BOTTOM UP层次结构化设计是 TOP DOWN设计的逆过程。 它虽然也是从系统级开始的,即从图 7-2中 设计树的树根开始,但在层次模块划分时, 首先考虑的是实现模块的基本物理单元是 否存在,划分过程必须是从存在的基本单 元出发。 BOTTOM UP设计思想 设计树最末枝上的单元

9、要么是已经制造出 的单元,要么是已经开发成功的单元,或 者是可以买得到的单元。 自底向上 (BOTTOM UP)的设计过程采用 的全是标准单元,通常比较经济。 但完全采用自底向上的设计有时不能完全 达到指定的设计目标要求。 BOTTOM UP设计思想 用可编程 ASIC实现一个好的电子系统设计 通常采用 TOP DOWN和 BOTTOM UP 两种方法的结合,充分考虑设计过程中多 个指标的平衡。 设计库及库元件 在层次设计中所用的模块有两种: 预先设计好的标准模块 由用户设计的具有特定应用功能的模块 前者一般要存放在 EDA开发系统中各种类型 的文件库之中,后者必须经过模型仿真和调 试证明无误

10、后,建立一个图形符号存放在用 户的设计库中准备在更上层的设计中使用。 设计库及库元件 设计库中比较高级的模块一般由两个模型构 成: 模块的图形符号 模块的功能模型 图形符号在建立原理图时使用,功能模型在 逻辑模拟仿真时使用。 设计库及库元件 模块的功能模型可以是逻辑图形式,也可以 是 VHDL描述的,还可以是真值表或逻辑方 程式描述的。 一个已知的图形符号可以用来代表一个或几 个功能模型,这些模型的功能相同,参数可 以不同。例如 2输入与非门 7400、 74LS00, 74S00,功能相同,但是传输延时,功耗不 相同。 画层次原理图 画层次原理图类似于用逻辑门符号画一个逻 辑图,先将选用的模

11、块符号和连结器符号放 在画页上,然后用连线将它们连结起来,最 后将选用的符号名放在相应的模块及其结点 上。 选用符号名要注意遵循以下规则:一般把在 一个层次原理图中所使用的模块的每一个拷 贝叫做这个模块的例化。 画层次原理图 为了模拟仿真和建立设计文件,每个例化 都要起一个名字。 A d d e r M o d u l e : F A 4 K e y p a d i n p u t S t o r a g e r e g i s t e r D i s p l a y d r i v e r 位全加器模块 FA4起名为 Adder。 画层次原理图 Adder的模块由 4个一位全加器子模块 FA

12、1实现, 这四个子模块分别起名为 add0、 add1、 add2、 add3。 A d d e r M o d u l e : F A 4 K e y p a d i n p u t S t o r a g e r e g i s t e r D i s p l a y d i r v e r a d d 0 M o u d l e : F A 1 a d d 1 M o u d l e : F A 1 a d d 2 M o u d l e : F A 1 a d d 3 M o u d l e : F A 1 a 0 b 0 a 1 a 2 a 3 b 1 b 2 b 3 s 0 s 1

13、 s 2 s 3 G N D N C 画层次原理图 构成一位全加器的各个逻辑门及其信号线也要起 一个名,它们的名字分别是 1、 2、 A1、 A2、 A3、 R1。 A 1 X 1 X 2 R 1 A 2 A 3 a b c i n s c o u t x 1 画层次原理图 为了调试或模拟仿真 , 常常要研究模块中的一 个指定信号 。 例如 , 假设要研究图 7-3中位全 加器 FA1的工作情况 , 需要观察完整系统模拟时 的信号 x1的值 。 因为有个 FA1的例化 , 例化名称要被合并成如 下的信号名 , 顶层模块名次层模块名:信号 名 。 因此 , 要监视全加器 add2这个例化中信号

14、线 x1的时候 , 这个信号名应该写成 Adder add2: x1通过上述的书写规则 , 就可指定顶层模块中 adder中的模块 add2的信号 x1, 这个起名规则可 以扩展到任何一个层次 。 层次联接器符号和总线 为了建立层次原理图 , 一个抽象级别的模块 输入和输出引脚的名称要与次层模块原理图 相应信号的名称保持唯一性或者一致性 , 如 图 7-所示 。 A 1 X 1 X 2 R 1 A 2 A 3 a b c i n s c o u t x 1 M o d u l e : F A 1 a b c i n s c o u t 输入连接器 输出 连接器 层次联接器符号和总线 当模块有多

15、重输入和输出信号时 , 层次的相 互连接器画成如图 7-5所示的总线形式 。 A(3:0)=A(3) A(2) A(1) A(0) B(3:0)=B(3) B(2) B(1) B(0) S(3:0)=S(3) S(2) S(1) S(0) F A 4 A ( 3 : 0 ) B ( 3 : 0 ) S ( 3 : 0 ) A ( 0 ) A ( 1 ) A ( 2 ) A ( 3 ) B ( 0 ) B ( 1 ) B ( 2 ) B ( 3 ) S ( 0 ) S ( 1 ) S ( 2 ) S ( 3 ) A 0 A 1 A 2 A 3 B 0 B 1 B 2 B 3 S 0 S 1 S

16、2 S 3 ( a ) 层次联接器符号和总线 为了进一步简化模块原理图画法 , 有时常常 在模块上定义多重引脚 , 如图 7-5(b)所示 。 P i n A ( 3 : 0 ) P i n S ( 3 : 0 ) P i n B ( 3 : 0 ) A ( 3 : 0 ) B ( 3 : 0 ) S ( 3 : 0 ) F A 4 ( b ) 每个多重引脚代表 一组相关信号的集 合,允许把总线直 接联接到模块的引 脚上,但是必须清 楚每条总线代表的 是 4个信号的联接。 层次化设计的模拟 采用层次设计实现的系统必须进行设计模拟 和验证 。 一个层次设计中最底层的元件或模 块必须首先进行模拟仿

17、真 , 当其工作正确之 后 , 再进行高一抽象级别模块的模拟仿真 。 最后还要对最上层系统进行模拟仿真 , 最终 完成系统设计 。 层次化设计的模拟 在模拟仿真时 , 首先要将模块用相应的电路 来代替 , 称为展平 , 展平工作一直做到最底 层模块都用基本的逻辑门实现为止 。 在展平过程中所有元件及所有的信号线都必 须有指定过的名称 。 模拟仿真结果可以是给出正确的波形 , 也可 以是给出一些时延参数 。 图给出的是用总 线表示的波形 。 层次化设计的模拟 图给出的是用总线表示的波形 。 0111 1011 1011 0000 0000 S(3:0) 0110 0110 0110 0110 0

18、000 A(3:0) 0001 0001 0101 0101 0000 B(3:0) 12 10 7 5 0 Time A ( 3 : 0 ) B ( 3 : 0 ) S ( 3 : 0 ) 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 1 0 5 1 0 1 5 T i m e 表格形式的模拟值 波形表示的模拟值 7.2 可编程逻辑器件基础 PLD的逻辑表示 PLD中阵列及其阵列交叉点的逻辑表示 PLD中基本逻辑单元的 PLD表示 逻辑阵列的 PLD表示法应用举例 PLD的逻辑表示 PLD中阵列及其

19、阵列交叉点的逻辑表示 PLD中阵列交叉点的逻辑表示 PLD中与阵列和或阵列的逻辑表示 PLD中阵列交叉点的逻辑表示 PLD逻辑阵列中交叉点的连接方式采用图 7-7所示的几种逻辑表示。 ( a ) ( b ) ( c ) (a)表示实体连结,就是行线和列线在这个交叉点 处实在连接,这个交叉点是不可编程点,在交叉点 处打上实心点。 PLD中阵列交叉点的逻辑表示 PLD逻辑阵列中交叉点的连接方式采用图 7-7所示的几种逻辑表示。 ( a ) ( b ) ( c ) (b)表示可编程连接。无论 或 表示该符号所在行线和列线交叉处是可编程点,具有一 个可编程单元。 PLD中阵列交叉点的逻辑表示 PLD逻

20、辑阵列中交叉点的连接方式采用图 7-7所示的几种逻辑表示。 ( a ) ( b ) ( c ) 在采用熔丝工艺的 PLD器件中,器件出厂后用户 编程之前,所有可编程点处的熔丝都处于接通状态, 习惯上都用 表示熔丝接通,因此可编程点上处处 都打 或 。 PLD中阵列交叉点的逻辑表示 PLD逻辑阵列中交叉点的连接方式采用图 7-7所示的几种逻辑表示。 ( a ) ( b ) ( c ) PLD器件被用户编程后,可编程点上的熔丝有的 烧断,有的接通。编 程后可在编程点上仍打有 , 这时的 表示可编程点被编程后熔丝接通。 PLD中阵列交叉点的逻辑表示 PLD逻辑阵列中交叉点的连接方式采用图 7-7所示

21、的几种逻辑表示。 ( a ) ( b ) ( c ) 熔丝烧断的可编程点上的 消失,行线和列线不 相接,这种情况用图 (c)表示。 PLD中与阵列和或阵列的逻辑表示 与阵列如图 (a)所示。 熔 丝 + V C C R F ( A , B , C ) ( a ) A A B B C C 在二极管与门的各支路 与输出之间接入熔丝。 熔丝保留的各支路的输 入为有效输入,输出 F 是熔丝保留各支路输入 的与逻辑函数。图 (b) 是 PLD表示。 A ( b ) F ( A , B , C ) = 0 CCA B B 图 (a)和图 (b)是熔丝全部保留的与阵列表示情况。 F(A, B, C)=0。

22、PLD中与阵列和或阵列的逻辑表示 图 (c)是烧断 3个熔丝的情况,图 (d)是图 (c) 的 PLD表示。 熔 丝 + V C C R ( c ) A A B B C C F ( A , B , C ) = A B C A A B B C C ( d ) F ( A , B , C ) = A B C PLD中与阵列和或阵列的逻辑表示 可编程或阵列,其构成原理与可编程的与 阵列相同。 p 1 R p 2 p 3 f ( p 1 , p 2 , p 3 ) = p 1 + p 2 + p 3 ( a ) f ( p 1 , p 2 , p 3 ) = p 1 + p 2 + p 3 ( b )

23、 p 1 p 2 p 3 PLD中与阵列和或阵列的逻辑表示 图 (c)是烧断 1个熔丝的情况,图 (d)是图 (c) 的 PLD表示。 p 1 R p 2 p 3 f ( p 1 , p 2 , p 3 ) = p 1 + p 3 ( c ) f ( p 1 , p 2 , p 3 ) = p 1 + p 3 ( d ) p 1 p 2 p 3 PLD的逻辑表示 PLD中基本逻辑单元的 PLD表示 输入缓冲器和反馈缓冲器 输出极性可编程的异或门 地址选择可编程的数据选择器 可编程数据分配器的逻辑表示 激励方式可编程的时序记忆单元的 PLD表示 PLD中与阵列的缺省表示 双向输入 /输出和反馈输

24、入的逻辑表示 输入缓冲器和反馈缓冲器 在 PLD中有二种特殊的缓冲器,它们是输 入缓冲器和反馈缓冲器,这二种缓冲器有 相同的电路构成,图 7-10给出它们的 PLD 表示,它们是单输入、双输出的缓冲器单 元,一个是高有效输出端,即同极性输出 端。另一个是低有效输出端,即反极性输 出端。 A A A 输入缓冲器和反馈缓冲器 与曾经学过的输出三态缓冲器不同,注意二 者之间的区别。 输入缓冲器和反馈缓冲器输出只有 0、 1两个 逻辑状态。而输出三态缓冲器除了有 0、 1两 个逻辑状态外,还有一个称为高阻 (Z)的状 态。 A A A 输出极性可编程的异或门 在 PLD中为了实现输出极性可编程 , 常

25、 采用图 (a)所示的异或门结构 。 PPQ 10 当熔丝烧断,异或门输出极性为低有效,即 否则异或门输出高有效 Q0=P 0=P。 Q 0 P R V D D 熔 丝 Q 0 P ( a ) 输出极性可编程的异或门 图 (b)是编程后熔丝保留,输出极性编程为 高有效。 图 (c)是编程熔丝烧断,输出极性编程为 低有效。 P Q 0 = P + 1 = P ( c ) Q 0 = P + 0 = P P ( b ) 地址选择可编程的数据选择器 地址选择可编程的数据选择器如图 7-12所示。 M U X M U X ( b ) ( a ) M U X M U X 图 7 - 1 2 地 址 选

26、择 可 编 程 数 据 选 择 器 P L D 表 示 地址选择端编程后,若列线与行线相接且接地,其输 入为逻辑 0。否则,列线与行线断开其输入为逻辑 1。 二选一数 据选择器 四选一数据选择器 根据编程情况,地址选择端的输入有 00, 01, 10, 11 四种情况。 可编程数据分配器的逻辑表示 可编程逻辑分配器如图 7-13所示 。 乘 积 项 簇 到 n - 1 到 n - 2 来 自 n - 1 到 n + 1 来 自 n + 1 来 自 n + 2 去 n 号 宏 单 元 R R 熔 丝 1 熔 丝 2 V D D V D D S 1 S 0 图 7-13 可编程逻辑分配器 图中的核

27、心部分是 可编程逻辑分配器 可编程熔丝 S1S0的不同编程值, 使乘积项簇分别被分配到 n+1号、 n号、 n-1号、 n-2号宏单元。 FUSE1正常时 (默认 状态 )不熔断,乘积 项簇的信号传不到 n 号宏单元。 若编程后 FUSE1熔断, 乘积项簇信号可以传 到 n号宏单元。 如果 FUSE2熔 断,异或门反极 性传输,否则异 或门原极性传输, n号宏单元接收 信号与乘积项簇 信号同相。 激励方式可编程的时序记忆单元的 PLD表示 时序记忆单元有二种 , 即锁存器和触发器 。 输出的状态只受输入激励信号控制的时序记 忆单元是锁存器 。 只有在时钟信号控制下才能得到受输入激励 信号决定的

28、相应输出状态的时序记忆单元是 触发器 。 二种时序记忆单元的根本区别是输出状态的 变化是否取决于时钟信号的控制 。 激励方式可编程的时序记忆单元的 PLD表示 图 7-14是激励方式可编程的时序记忆单元 的 PLD表示 。 D Q C L K R / L R e s e t 通过编程,使 R/L端 为 0, Q端的输出状态只 与激励信号有关并受 D 决定,图所示电路为 D 锁存器。 通过编程,若使 R/L 端为 1,电路只有在时 钟脉冲信号 CLK的驱 动下, Q端的状态变化 受 D端的激励信号决定, 该电路具有 D触发器功 能。 PLD中与阵列的缺省表示 在 PLD器件与阵列中常看到图 7-

29、15中给出 的几种表示。输出为 Z1的与门 4个输入变 量全部被编程后输入, 4个交叉点均画 。 因此, 01 BBAAZ Z 1 = 0 Z 3 = 1 A B Z 2 = 0 图 7 - 1 5 P L D 中 与 阵 列 的 默 认 表 示 PLD中与阵列的缺省表示 02 BBAAZ 同理: Z2为 Z1的缺省表示。这时的阵列交 叉点上均未画 ,而在与门符号内却画有 , 。 Z 1 = 0 Z 3 = 1 A B Z 2 = 0 图 7 - 1 5 P L D 中 与 阵 列 的 默 认 表 示 PLD中与阵列的缺省表示 输出为 Z3的与门输入阵列交叉点上无 ,与门符 号内也无 ,这是浮

30、动状态的逻辑表示。浮动输 入状态代表与阵列编程后熔丝全部熔断, 4个输入 全都不同与门相接,相当与门输入悬空,与门输 出为高电平,即输出逻辑“ 1” Z 1 = 0 Z 3 = 1 A B Z 2 = 0 图 7 - 1 5 P L D 中 与 阵 列 的 默 认 表 示 双向输入 /输出和反馈输入的逻辑表示 双向输入 /输出和反馈输入结构是 PLD结构的特点 之一 , 乘积项 Pn+1为三态输出缓冲器的使能端控 制信号 。 P 1 P n P n + 1 1 n n + 1 I O m S m ( a ) I 1 I n 1 Sm Sm S m I O m ( o u t p u t ) (

31、 b ) Feedback=Sm 双向输入 /输出和反馈输入的逻辑表示 由于各阵列交叉点全打有 , 所以 n+1号与门输出 为逻辑 “ 0”, 三态输出缓冲器禁止 , 其输出为高 阻 。 P 1 P n P n + 1 1 n n + 1 I O m S m ( a ) I 1 I n S m I O m ( i n p u t ) ( b ) 0 高阻 加到与 阵列上 逻辑阵列的 PLD表示法应用举例 二位串行进位加法器的原理框图如图 7-18(a) 所示 。 C 1 ( 7 ) F A F A A 1 B 1 ( 3 ) ( 4 ) A 0 B 0 ( 1 ) ( 2 ) C - 1 (

32、5 ) S 1 C 0 S 0 ( 9 ) ( 6 ) ( 8 ) ( a ) 输入 1iii1iii1iii1iiii CBACBACBACBAS 输入 输出 1ii1iiiii CBCABAC 其阵列表示如图 7-18(b)所示 。 逻辑阵列的 PLD表示法应用举例 1iii1iii1iii1iiii CBACBACBACBAS 1ii1iiiii CBCABAC A 0 ( 1 ) B 0 ( 2 ) A 1 ( 3 ) B 1 ( 4 ) C - 1 C 0 C 1 S 0 S 1 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 ( 5 )

33、( 6 ) ( 7 ) ( 8 ) ( 9 ) ( b ) 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 7.3 通用阵列逻辑 GAL GAL (Generic Array Logic)的结构及其 工作原理 GAL的基本阵列结构 GAL的工作模式和逻辑组态 GAL16V8的编程 GAL22V10介绍 VHDL语言介绍 GAL应用举例 7.3 通用阵列逻辑 GAL GAL的结构及其工作原理 GAL的基本阵列结构 通用型 GAL16V8的电路结构 GAL16V8的结构控制字 GAL16V8的 OLMC GAL的工作模式和逻辑组态 GAL16V8的编程

34、GAL的基本阵列结构 图 7-19给出 GAL的基本结构框图。 可 编 程 与 阵 列 可 编 程 宏 单 元 固 定 或 阵 列 I 2 I 1 I 0 O 2 O 1 O 0 图 7 - 1 9 G A L 的 基 本 阵 列 结 构 框 图 I / C L K G N D 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 V c c I / O E O C / O R / I I ( b ) ( a ) 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 0 3 2 7 8 3 1 5 1 6 4 2 3 2 4 5 3

35、1 3 2 6 4 0 3 9 7 4 7 4 8 8 5 6 5 5 9 6 3 C K O L M C ( 1 9 ) O L M C ( 1 8 ) O L M C ( 1 7 ) O L M C ( 1 6 ) O L M C ( 1 5 ) O L M C ( 1 4 ) O L M C ( 1 3 ) O L M C ( 1 2 ) m m m m m m m m O E 4 7 8 1 1 1 2 1 5 1 6 1 9 2 0 2 3 2 4 2 7 2 8 3 1 3 12 82 72 42 32 01 9 1 61 5 0 3 4 7 8 1 1 1 2 图 7 - 2 0

36、 G A L 1 6 V 8 的 逻 辑 图 逻辑宏单元 输入 /输出口 输入口 时钟信 号输入 使能控制 可编程与阵列 固定或阵列 2, 3, 4, 5, 6, 7, 8, 9是 专用输入引脚 1, 11, 12, 13, 14, 17, 18, 19各引脚 可通过编程组态设 为输入引脚 12, 13, 14, 17, 18, 19各引脚可通 过编程组态设为输 出引脚, 15, 16专 用输出引脚 GAL16V8的结构控制字 GAL和 PAL不同之处是 GAL的输出电路增加 了输出逻辑宏单元 OLMC (Output Logic MacroCell)。 GAL的输出电路可编程。 GAL的结构

37、控制字有 5种, 82位: SYN:同步控制字 1位,对 8个宏单元是公共的; AC0:结构控制字 1位,对 8个宏单元是公共的; AC1(n):结构控制字 8位,每个宏单元一个; XOR(n):极性控制字 8位,每个宏单元一个; PTD:乘积项禁止控制字 64位,每个与门一个。 GAL16V8的 OLMC的内部电路构成 OLMC的内部电路构成如图 7-21所示 。 0 1 P T M U X 1 1 1 0 0 1 0 0 T S M U X D Q Q F M U X 1 0 - 1 1 - 0 - 1 0 - 0 1 0 O M U X 来 自 ” 与 ” 阵 列 反 馈 C K C K

38、 G 1 G 2 V C C A C 0 A C 1 ( n ) O R 8 X O R ( n ) A C 0 A C 1 ( m ) A C 1 ( n ) O E O E 来 自 邻 级 输 出 ( m ) I / O ( n ) 乘积项 多路开 关 输出多 路开关 三态多路 开关 反馈多 路开关 来自 1 号引脚 导 通 高 阻 OE=1,导通 OE=0,高阻 用户编程决定 输出三态 缓冲器状态 VCC 地电平 OE 第一与项 0 0 0 1 1 0 1 1 TSMUX 输入信号 AC0AC1(n) 表 7-1 AC0AC1(n)对 TSMUX控制表 Q端信号 本级输出端 邻级输出 地

39、电平 反馈缓冲器输 入端信号来源 寄存器 Q端 本级输出 邻级输出 地电平 1 0 1 1 0 1 0 0 FMUX 输入信号 AC0 AC1(n) AC1(m) 表 7-2 AC0AC1对 FMUX控制表 AC0和 AC1(n)对 TSMUX的全部控制作用见 表 7-1。 导 通 高 阻 OE=1,导通 OE=0,高阻 用户编程决定 输出三态 缓冲器状态 VCC 地电平 OE 第一与项 0 0 0 1 1 0 1 1 TSMUX 输入信号 AC0AC1(n) 表 7-1 AC0AC1(n)对 TSMUX控制表 FMUX的全部控制功能如表 7-2所示 。 Q端信号 本级输出端 邻级输出 地电平

40、 反馈缓冲器输 入端信号来源 寄存器 Q端 本级输出 邻级输出 地电平 1 0 1 1 0 1 0 0 FMUX 输入信号 AC0 AC1(n) AC1(m) 表 7-2 AC0AC1对 FMUX控制表 GAL的工作模式和逻辑组态 GAL16V8、 GAL20V8系列器件的 OLMC 有寄存器模式 、 复杂模式 、 简单模式三种 工作模式 。 用户通过输出引脚定义方程确定 OLMC的 工作模式 。 输出引脚定义方程有 A型 、 B 型 、 C型三种 。 它们与工作模式的关系如表 7-3所示 。 表 7-3 OLMC的工作模式同引脚定义方程的关系 输出引脚 方程类型 输出引脚 定义方程式 工作模

41、式 A型 B型 C型 引脚名 :=逻辑方程式 引脚名 =逻辑方程式 引脚名 .OE=逻辑方程式 引脚名 = SYN=0, AC0=1 寄存器模式 SYN=1, AC0=1复杂模式 SYN=1, AC0=0简单模式 GAL的工作模式和逻辑组态 输出逻辑宏单元三种模式又分为七种逻 辑组态 , 其隶属关系如表 7-4所示 。 GAL的工作模式和逻辑组态 表 7-4 三种模式和七种组态的关系 工作模式 逻辑组态 寄存器模式 复杂模式 简单模式 寄存器输出组态 组合输出组态 有反馈组合输出 无反馈组合输出 无反馈组合输出组态 本级输出邻级输 入组态 相邻输入组态 C K O E X O R D Q Q

42、- ( a ) (a)寄存器模式寄存器输出组态: 寄存器输出 0 1 0 功能 AC1(n) AC0 SYN 低有效 高有效 0 1 输出极性 XOR 1脚作为寄存器输出级 的公共时钟 CK端; 11 脚作为寄存器输出级的 公共使能 OE端。 X O R ( b ) (b)寄存器模式组合输出组态: 在一个带寄存器 GAL中的组合输出 1 1 0 功能 AC1(n) AC0 SYN 低有效 高有效 0 1 输出极性 XOR 1和 11号总是分别 作为时钟 CK端和使 能端 OE。 引脚 1和 11为输入,所有 输出为组合逻辑输出。 1318号宏单元可构成这 种组态 X O R ( c ) (c)

43、复杂模式有反馈组合输出组态: 低有效 高有效 0 1 输出极性 XOR 所有输出为组 合逻辑 1 1 1 功能 AC1(n) AC0 SYN 12, 19号宏单元可 构成这种组态 X O R ( d ) (d)复杂模式无反馈组合输出组态: 低有效 高有效 0 1 输出极性 XOR 所有输出为组 合逻辑 1 0 1 功能 AC1(n) 失效 AC0= SYN SYN AC1(m)= SYN 1 15, 16号宏单元可构 成这种组态 X O R ( e ) V C C (e)简单模式无反馈组合输出组态: 所有输出为组 合逻辑 0 0 1 功能 AC1(n) AC0 SYN 低有效 高有效 0 1

44、输出极性 XOR 15和 16号宏单元也能 构成这种组态 X O R ( f ) V c c m (f)简单模式本级组合输出邻级输入组态: 所有输出为组 合逻辑 0 0 1 功能 AC1(n) AC0 SYN 低有效 高有效 0 1 输出极性 XOR 输出缓冲器失效 除 15和 16号宏单元外 都可构成这种组态 ( g ) G N D (g)简单模式邻级输入组态: 所有输出为组 合逻辑 1 0 1 功能 AC1(n) AC0 SYN 无效 无效 0 1 输出极性 XOR ispGAL22V10 In-System Programmable E2CMOS PLD Generic Array Lo

45、gic ispGAL22V10 22V10没有结构体控制位,能实现 16V8和 20V8所 能实现的全部功能; 22V10具有更多的乘积项, 增加了 2个通用的输入端,其输出使能控制比 20V8 更好。 22V10的每个输出宏单元可配置成有 (或没有 )寄存 器。 22V10的宏单元和 16V8的不同。 用单个乘积项控制输出缓冲器 (寄存器和组合配 置 )。 每个输出至少有 8个乘积项是可用的,内部引脚 有更多的乘积项可用。 引脚 1输入的时钟信号作为组合输入,对于任何 乘积项都是可用的。 ispGAL22V10 单个乘积项可用来产生一个全局性的异步 复位信号,使所有内部触发器都复位为 0。

46、单个乘积项可用来产生一个全局性的同步 预置信号,使所有内部触发器在时钟的上 升沿到来时置位为 1。 可以通过编程改变输出极性。在寄存器配 置下,极性的改变发生在 D触发器的输出端, 而不是在输入端。 GAL的开发流程 (开发步骤 ) 建立用户源文件 用户源文件就是设计者书写的描述所要实现逻辑电路功 能的软件程序的集合。其软件程序必须符合某一可编程 逻辑设计语言的语法规范。现在广泛使用的有 ABEL- HDL, VHDL, Verilog-VHDL等硬件描述语言。 编译用户源文件 要想使建立起来的用户源文件变成要下载的数据文件 (JEDEC),必须经过若干步的语言处理程序。如语法检 查、逻辑化简

47、、功能模拟、时间模拟等。经过专用软件 处理后,证明用户建立的源文件正确无误,最后将其转 换成要下载的编程数据文件 (JEDEC)。把上述的一系列 处理过程称为编译。 器件编程 在专用的软件系统环境下,启动编程器,使计算 机和编程器进行通信。将 JEDEC数据文件下载到 编程器上。 选择目标器件的制造厂家、型号进行器件匹配。 将 GAL器件插入插座并锁紧。这一步必须注意芯 片引脚序号与插座引脚号要对应。否则器件可能 被毁坏。 下载编程。即将下载到编程器上的 JEDEC数据文 件写入到 GAL芯片中。 GAL的开发流程 (开发步骤 ) 实际功能验证 将芯片从编程器取下,放到实验电路中或实际 工作的

48、系统中进行实际功能验证,如果功能正 确,说明开发工作结束。如果功能验证不正确, 则还要返回到第一步重新修改设计。 GAL的开发流程 (开发步骤 ) 用 GAL实现基本逻辑门的设计 2 0 1 9 1 8 1 6 1 7 1 5 1 4 1 3 1 2 1 1 1 2 4 5 6 7 8 9 1 0 G N D 图 7 - 3 0 用 G A L 1 6 V 8 代 替 基 本 逻 辑 门 引 脚 配 置 图 b c d e m n p q h V C C a u v w x y j i 3 z 用 GAL实现基本逻辑门的设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1

49、164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity example1 is port(a,b,c,d,e,m,n,p,q,h,i,j: in std_logic; u,v,w,x0,y0,z0: out std_logic); 用 GAL实现基本逻辑门的设计 attribute LOC :string; attribute LOC of a: signal is p19; attribute LOC of b: signal is p1; attribute LOC of c: signa

50、l is p2; attribute LOC of d: signal is p3; attribute LOC of e: signal is p4; attribute LOC of m: signal is p5; attribute LOC of n: signal is p6; attribute LOC of p: signal is p7; attribute LOC of q: signal is p8; attribute LOC of h: signal is p9; attribute LOC of u: signal is p18; attribute LOC of v

51、: signal is p17; attribute LOC of w: signal is p16; attribute LOC of x0: signal is p15; attribute LOC of y0: signal is p14; attribute LOC of z0: signal is p13; end; 用 GAL实现基本逻辑门的设计 architecture arch_Gate of example1 is begin u=not a; v=b and c; w=d or e; x0=not(m or n); y0= not(p xor q); z0=not(h an

52、d i and j); end arch_Gate; 用 GAL实现组合 -时序混合逻辑电 路 2 0 V c c C L K 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 N C X 1 Q D Q A Q B Y N C O EN C Q D 进 位 的 记 数 器 2 3 4 5 6 7 8 9 1 0 A S B D N C I E G N D N C 图 7 - 3 1 用 G A L 构 成 逻 辑 电 路 实 例 Q B ( d ) 四 进 制 计 数 器 的 等 效 电 路 Q A F D D Q C Q F D D Q C Q Q B Q A 1 1

53、 Q B Q A O E A S* B * S A S + B S 1 X 1 0 ( a ) X 1 输 出 的 等 效 阵 列 图 A S B A S B A S + B S A S + B S 1 ( b ) Y 输 出 的 等 效 阵 列 图 ( c ) D 触 发 器 的 等 效 电 路 图 II E E I I Y 1 D D F D C L K O E D Q C 1 ( b ) Y 输 出 的 等 效 阵 列 图 ( c ) D 触 发 器 的 等 效 电 路 图 II E E I I Y 1 D D F D C L K O E D Q C 1 用 GAL实现组合 -时序混合逻

54、辑电 路 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; ues ieee.std_logic_unsigned.all; entity test2 is port(clk,a,s,b,d,i,e,oe: in std_logic; x1,qd,qa,qb,y: out std_logic); 用 GAL实现组合 -时序混合逻辑电 路 attribute LOC :string; attribute LOC of clk: signal is p1; attribute LOC of a: sig

55、nal is p2; attribute LOC of s: signal is p3; attribute LOC of b: signal is p4; attribute LOC of d: signal is p5; attribute LOC of i: signal is p8; attribute LOC of e: signal is p9; attribute LOC of oe: signal is p11; attribute LOC of x1: signal is p18; attribute LOC of qd: signal is p16; attribute L

56、OC of qa: signal is p15; attribute LOC of qb: signal is p14; attribute LOC of y: signal is p13; end; 用 GAL实现组合 -时序混合逻辑电 路 architecture exam2_architecture of test2 is signal q:std_logic_vector(1 downto 0); signal qt:std_logic; begin x1= (a and s) or (not s and b); 用 GAL实现组合 -时序混合逻辑电 路 process(clk) be

57、gin if( clk=1 and clkevent) then q=q+1; -计数器加 1, q为数组 qt=d; - D触发器 end if; end process; 用 GAL实现组合 -时序混合逻辑电 路 process(oe) begin if oe=0 then qa=q(0); qb=q(1); qd=qt; else qa=Z; qb=Z; qd=Z; end if; end process; 用 GAL实现组合 -时序混合逻辑电 路 process(i,e) begin if e=1 then y= not i; else y=Z; end if; end process; end exam2_architecture;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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