kl800.com省心范文网

可编程逻辑器件原理及应用-中山大学 物理学系 陈第虎


可编程逻辑器件原理及应用
中山大学 物理学系 陈第虎

引言
20 世纪 60 年代初 工业控制(过程控制)继电器控制 特点:固定的连接方式 缺点:一旦过程变动,需要重新设计、连线和安装,产品升级或改进不容 易 60 年代末 小型计算机的出现和生产规模的扩大,以及多机群控制,已采用小型机代 替继电器,实现工业控制。 1969 年 世界第一台可编程控制器的出现 70 年代后期 随着微电子技术的发展和计算机的速度发展,PLC 具有更多的计算机功 能,不仅取代了硬件连线,而且增加了运算、数据传联和数据处理功能 目前工业控制及自动化主要方法: 单片机(PC 机):灵活、软件控制为主,需外加接口、输入输出接口; 适合家电、通讯、电子产品及仪器仪表; PLC(可编成控制器):灵活、软硬件可变、易扩展; 适合机械设备、工业控制系统及自动化生产线等设备; ASIC(专用集成电路):软硬件基本定制不变;适用于特定用途 教材: 《可编程逻辑器件原理、方法与开发应用指南》 曹伟 编著:国防科技大学出版社 1993 《可编程逻辑阵列 FPGA 和 EPLD》 金革 编著:中国科技大学出版社,1996 参考书: 《PLD/GAL 可编程逻辑器件原理和应用》 应钢 编著 : 学怨苑出版社 1993 《可编程阵列逻辑 PAL 原理与应用》 周建民 编著:中国科技大学出版社,1991 《通用逻辑阵列 GAL》 周永钊 编著:中国科技大学出版社,1989 《标准集成电路手册 PAL 电路》 电子工业出版社

本课程内容: 第一章 可编程逻辑器件概述 可编程逻辑器件的基本结构 可编程逻辑器件器件的演变和特点

第二章 逻辑设计的基本知识 基本逻辑单元 布尔表达式的演算和简化卡诺图 时序电路器件第一节 门阵列设计方法 标准单元法 硅编译器 第三章 PLD 器件产品综述 PAL 器件的基本结构和工作原理 PAL 器件命名法和封装技术 TTL 和 CMOS 的 PAL 器件 CMOS 的 PAL 器件 ECL 的 PAL 器件 其它 PLD 器件 第四章 可编程逻辑器件的设计方法 PLD 的设计方法 设计方法和设计过程概述 设计的构思 PLD 器件的选择 设计的实施 器件的编程和测试 PAL 器件的编程 设计实例 1:组合逻辑设计-设计基本逻辑 设计实例 2:寄存器型逻辑设计-设计基本触发器
第五章 常用数字逻辑器件的设计方法 组合型逻辑设计 寄存器型逻辑设计 状态机设计

第六章 PLD 的编程设计软件 综述 JEDEC 文件格式 PLUSASM 汇编软件
第七章 FPGA 和 EPLD 器件的应用 CPLD 的基本结构和分类 Altera 和 Lattice 的 CPLD

FPGA 的基本结构和分类 Xilinx 的 FPGA Xilinx 自动 CAE 工具概述 FPGA 设计流程 CPLD 设计流程

美国通用汽车公司(GM)公开招标,对汽车生产线控制系统进行改造。其基本要 求为:
把小型计算机的功能和继电器结合起来,但编程比计算机简单、易学和操作方便比继 电器控制系统的设计周期短,更改容易,且成本低系统通用性强 1969 美国数字设备公司(DEC)研制出世界第一台可编程控制器 PLD(Programmable logic controller), 并在 GM 汽车生产线上应用成功

第一章 可编程逻辑器件概述
1.可编程逻辑器件的发展 逻辑器件 可编程逻辑器件 PLD 器件的演变 2.可编程逻辑器件的特点 简化系统设计,高性能,高可靠性和低成本 3.可编程逻辑器件的基本结构 PROM 基本结构 PLD 基本结构 PAL 基本结构 GLA 基本结构

FPLA 基本结构 EPLD 基本结构 4.逻辑器件及其特点 逻辑器件: 可用来实现各种逻辑功能的器件,最基本的逻辑器件关系为“与”, “或”, “非” 广为应用的门电路都是逻辑电路,如: 74LS08 四2输入或门 ”或“ 逻辑 ”与“ 逻辑

74LS32 四2输入与门

复杂的逻辑功能器件:MPU和CUP,(01) 逻辑器件的特点: 标准单元器件:市场上的定型产品 订制器件:按要求特制;芯片面积小、成本高、设计周期长, 由“标准件”组合成“特定的逻辑功能芯片”是很麻烦的 电路设计-电路板设计-焊接-调试-成品 (如时钟芯片) 5.可编程逻辑器件及其特点 可编程逻辑器件 PLD (Programmable Logic Device) 由编程来确定逻辑功能器件的总称,属于门阵列结构 优点在于其揉性:用户应用时完成逻辑功能构造

6.PLD逻辑器件的特点: 集成度高、能充分利用Si 片 极大的设计灵活性 大大缩短研制的周期 使复杂的设计轻而易举 各种设计方法之间的比较

PLD器件的结构

PLD器件基本结构的逻辑规则

PLD器件的演变及特点

PLD 器件结构归纳

PLC (Programmable Logic Controller)现状 制成标准的模块芯片的控制器 (专用使用手册)

FPGA 模块 CPLD 模块 主要厂家 Xilinx(FPGA、 EPLD ) Altera (CPLD 、FPGA) Lattice (CPLD) 其他公司 系列比较表

PROM(Programmable read only memory)
最早的PLD器件,存在存储器或逻辑器件应用的争论
基本结构:一个固定的―与‖阵列输出到一个可编程的―或‖阵列 类型:PROM、EPROM、E2PROM 应用:简单逻辑电路、软件存储、代码转换、函数产生、字符显示 PROM 基本结构

FPLA(Field Programmable Logic Array)
1974 年Signetics 推出双极型现场可编程逻辑阵列 最早实用的PLD器件
基本结构: ―与‖阵列和―或‖阵列均可进行编程

类型:EPROM、E2PROM 技术 缺点:不灵活的结构、大的封装和高成本,使应用受限 FPAL 基本结构

PAL(Programmable Array Logic)
1977 年单片存储器件公司(MMI)研制的可编程阵列逻辑
克服了 FPLA 器件的许多不足之处 基本结构: ―与‖阵列可编程,―或‖阵列固定 技术类型:熔丝技术、EPROM、E2PROM 技术 PAL 器件在市场迅速占领了主要地位

PAL 的结构

PLA 三种基本的输出机构

GAL(Generic Array Logic)
1986 年由 Lattice 公司推出的通用可编程阵列逻辑
采用了 E2PROM 技术,最早实现电可察出和改写的PLD器件 基本结构:输出结构是可编程的,由两片 GAL16V8(20 所)和 GAL20V8(24 所)能仿真所有的 PAL 特点:每个输出脚上都集成有一个输出逻辑宏单元 OLMC(output Logic Macro Cell) 优点:其设计具有很强的灵活性、研制和开发新的电路系统极其 方便,可实现较高速度的逻辑电路 缺点:结构简单、仅能实现小规模的电路,通常只有几百门、最 高 2000 门;电路用乘积项描述,乘积项太多器件互连复杂

GAL 器件的输出逻辑宏单元(OLMC)

OLMC 的结构形式

EPLD(Field Programmable Logic Device)
1992 年 Xilinx 公司先进的现场可编程逻辑器件 EPLD
基于 EPROM、技术和 CMOS 技术、并增加了高速功能模块和高密度模块,是对 FPGA 的有力补充 逻辑门数从 300- 4000 门,管脚数从 20-288 脚 基本结构: 包含 9 个可编程的―与‖/―或‖阵列驱动的宏单元任何一个引脚的输入或宏单元输出都可连到另一 任何单元 特点: 强的布线功能: 独特的结构使其内连率很高,不需人工布线来优化速度和密度 可预测的逻辑与内连时序延迟; 时序延迟是均匀的,可在逻辑实现前预测单片结构的电可擦除和重复编程器件,无须外挂 ROM,保密性大 大加强。 特别适合完成各类算法和其他组合逻辑,更适合完成多时序的逻辑 典型产品:XC7000,如 XC7336、XC7354、XC7372 等

FPLA 的基本结构

XC7300 系列

Xilinx 公司的 XC7300 系列模块图

FPGA(Field Programmable Gate Array)
1987 年 Xilinx 公司推出现场可编程门阵列
特点:先将逻辑划分,使其对应于各逻辑块,然后通过连 线和互连开关实现功能逻辑 基本结构: “与”阵列可进行编程、无“或”阵列、用户自定义输出选择 类型:EPROM、E2PROM 技术、工作频率 230MHz、1200-20000 门 优点:FPGA 应用前景广泛,尤其适合新产品研究。爱国者导弹和 Pentium CPU 的研制都用 FPGA 技术 目前 Xilinx 公司的 XC2000、XC3000、XC3020、XC3100、XC4000、XC4002 都是最常用的的 FPGA 器 件

XC2064 的长线、I/O 时钟及直接连线

第二章 逻辑设计方法和基本知识

第一节
逻辑门 NOT (非) AND (与) OR (或) 表示法

基本逻辑单元
符号 希尔符号 — 或 / (非、负) * 与(积) + (和)

三种基本的门: 所有其它组合逻辑功能都可由这三种门单之产生。
ā 或 /A A* B A+B

二逻辑门等效于
AND 和 NOT : NAND 与非门 OR 和 NT : NOR 或非

任何逻辑功能都可以表示为 ― 与非门 ‖ 或者 ― 或非门 ‖ 的功能。
三种基本逻辑门的真值表

运算符的优先级
正常的运算次序是: NOT , AND , OR, 括号中的内容总 是比表达式的其它部分先进行运算。例:

交换律、结合律和分配律
AND 功能和 OR 功能可以交换和结合。 操作数可以任何次序出现,而不会影响功能的运算结果 :

1. 交换律

2. 结合律

3. 分配律
1. A*(B+C) = (A*B)+(A*C) : 象标准的代数规则 (乘对加) 2. A+(B*C) = (A+B)*(A+C) :真值表或逻辑变换证明 ( 加对乘 )

4.对偶性
对偶性原理:

– 如果用*替换+,+替换*,1 替换 0,0 替换 1,则替换后的表达式与 原等式等同。 – 因此只要证明第一条分配律是正确的,通过对偶性就能证明第二 条分配律的正确性。

5 . 逻辑运算的法则 四条基本公理
– 公理 1 : a. X+0=X – 公理 2 : a. X+/X=1 – 公理 3 : a. X+Y=Y+X b. X*0=0 b. X*/X=0 b. X*Y=Y*X b. X+(Y*Z)=(X+Y) *(X+Z)

– 公理 4 : a. X*(Y+Z)=(X*Y)+(X*Z)

九条基本交理
– 定理 1 : a. X+X=X – 定理 2 : a. X+1=1 b. X*X=X b. X*0=0

– 定理 3 : /(/X)=X ( 不包括具有对偶的元素 + 、 * 、 1 或 0) – 定理 4 : a. X+(Y+Z)=(X+Y)+Z l – 定理 5 : a. /(X+Y)=/X*/Y – 定理 6 : a. X+(X*Y)=X b. X*(Y*Z)=(X*Y) *Z

b. /(X*Y)=/X+/Y b. X*(X+Y)=X b. (X+Y) *(X+/Y)=X b. X*(/X+Y)=X*Y b. (X+Y) *(/X+Z)*(Y*Z)=(X+Y)*(/X+Z)

– 定理 7 : a. (X+Y)+(X*/Y)=X – 定理 8 : a. X+(/X*Y)=X+Y

– 定理 9 : a. (X*Y)+(/X*Z)+(Y*Z)=(X*Y)+(/X*Z)

除定理 3 ,每个定理或公理都有二种形式,属对偶性 原理的关系。 化简时将表示式中所有逻辑变量取非后再写成其对 偶表达形式,即可完成转换: – 例: /(A*/B+A*C+/A*B*D) – 第一步取非, /A*B+/A*/C+A*/B*/D – 第二步取对偶形式, (/A+B)*(/A+C)*(A+/B+/D) 定理 5 ,又称为狄 . 摩根( De Morgan )定理。

第二节 希尔表达式的演算和简化
任何复杂的逻辑表达式都可简化为 ― 二级 ‖ 形式 , ( SOP )或 ― 和之 积 ‖ ( POS )。 即输 入到输出的二级门电路、 ― 积之和 ‖

几个基本概念:
1. 乘积顺 : 一个简单变量或多个变量的逻辑求积,其中变量也可为求补变量 2. 和 项: 一个简单的变量或多个变量的逻辑求和,变量也可为求补变量 。 3. 标准项: 标准项是一个乘积项或和项,其中每一个变量不能使用多 次。 4. 最小项: 最小项是一 个 乘积项,包含每一个变量一次且只有一次 (可以是真值或求补)。 5. 最大项: 最大项是一个和项,它包含每一个变量一次且只有一次 (可以以是真值或求补) 。 6. 积之和表达式: 它是一个乘积项或多个乘积项逻辑求和。 7. 和之积表达式: 它是一个和项或多个 和 项的逻辑求积。

例如:
– A*B*C 乘积项 – A+B+C 和项 – A 既是和项也是积项 – A+B*C 既不是和项也不是积项 – A+ /B 和项 – A*/B*/C 是一个乘积项 l /B 即是和项,也是积项 – /A*B+A*/B 是积之和( SOP )表达式 – (A+B) *(/A+/B) 是和之积( POS )表达式 SOP 或 POS 表达式能直接转化为非常简单的门电路,最简 单的门电路分为两级,信号从输入端到输出 端的最长路径 是两个逻辑门电路。 设计逻辑电路时,设计者可把已知变量分为输入、输出两 组,改变输入变量的状态,看看每个输入状态下 输出信号 的变化,从而推演出逻辑表达式 , 如。 1 、构造输入、输出直值表

2、推出 SOP 和 POS 表达式
将真值表中每个输出为 1 的那些行的乘积项求和,推出 SOP 表达式。

将真值表中每个输出为 0 的行求积 , 推出 POS 表达式。

3、简化方程
简化 SOP 方程 F = /A*B*/C + /A*B*C + A*B*/C – = /A*B* (/C + C)+ A*B*/C – = /A*B + A*B*/C – = B*(/A+A*/C) = B*(/A+/C)= /A*B+B*/C 或简化 POS 方程 F = (A+B+C)*(A+B+/C)*(/A+B+C)*(/A+B+/C)* (/A+/B+/C) l = (A+B)*(/A+B)*(/A+/B+/C) l = B*(/A+/C) = /A*B+B*/C

4、画出逻辑实现电路

第三节 卡诺图
卡诺图是化简逻辑用的一种比较简单的图形方法 , 适用于 几个变量的逻辑运算(少于 5 、 6 个)。 可用于逻辑化简,逻辑极小化,使表达式中乘积项或和项 以及变量数目最小。 把逻辑函数的真值表相应的填入一个特定形式的方格内, 就得出逻辑函数的卡诺图。 卡诺图是一个由多个小方块组成的方框。每个小方块用于 一个最小项。当从一个小方块移到其相邻的小 方块时,已 有一个变量被取非。 “ 相邻 ” 包括每行,每列的两端

F = A+B 真值表 F = A+B 的卡诺图

二变量卡诺位置图

填入最小项的二变量卡诺图

二变量卡诺位图

四变量卡诺位置图

四变量卡诺图

从三变量逻辑函数 Z=AC+AB/C 画卡诺图真值表填图 先把 Z 函数化为最小项表达式 – Z = AC+AB/C = ACB+/B) +AB/C = ABC+A/BC+AB/C 由表达函数表示:

卡诺位置图

卡诺图

若是逻辑函数表示最小项的列表形式,则在相应的方块中填 1 ,其它填 0 。 若是逻辑函数表示最大项的列表形式,则应在相应的方块中 填 0 ,其它填 1 。 无关变量用 X 表示,它可以为 1 ,也可为 0 ,取决于是否能将 逻辑简化得更好形式。

如: F(A,B,C)=m(0,1,5,7)

或 F(A,B,C)=M(2,3,4,6 )

用卡诺图简化逻辑表达式
相邻小方格所代表的最小项之和可合并为一 项,且可消除一个变量。 ― 相邻 ‖ 包括每行, 每列的两端。 简化步骤:先将孤立为 1 的的小方格圈起 来,再将两个相邻为 1 的方格圈起来,然后 是 4 个, 8 个 ….2 n 个圈起来。 逻辑简化的关键:适当的圈相邻的方格群, 圈数应画的最少,而圈应尽量的大。 如: l Y = /A/B/C/D+/A/B/CD+/A/BCD+/A/BC/D=/A/B – Y = /AB/C/D+/AB/D = /AB/C – Y = Y(8,9,10,11,12,13,14.15) = A

第四节 时序电路器件
复合逻辑设计(构成最基本的逻辑门电路、触发器)
– 简单组合逻辑设计;不使用存储器,输出由现行输入决定,是最基本的逻辑 门电路;多路开关 编译/译 码器、加法器、比较器 – 时序逻辑设计;包含有存储器,输出由现行输入和先前输出信号的函数决 定;触发器、移位器、计算器、 状态机、存储器、 控制器。

触发器的分类 ( 所有触发器都可由―与‖、―或‖、―非‖门构成,状态翻转由时钟控制 )
– D 触发器: Q n+1 = D n n (输出为二状态。输出信号为 D) – T 触发器: Q n+1 = (/T*Q+T*/Q) n (输出为二状态。T 为假时,Q 保持先前状态) – SR 触发器: Q n+1 = (S+/R*/S*Q) n (输出为三状态。S 为真时置位,R 为真时复位) – JK 触发器: Q n+1 = (J*/Q+/K*Q) n (输出为四状态。J 为真时置位,K 为真时复位)

可编程逻辑电路的设计方法 门阵列设计方法
标准单元法 硅编译器法 ( CAD ) 电子设计自动化( EDA ) -- VHDL 硬件描述语言 – 计算机辅助设计( CAD ) – 计算机辅助制造( CAM ) – 计算机辅助测试( CAT ) – 计算机辅助工程( CAE )

第五节 门阵列设计方法
集成电路产品分为两种形式,即标准化系列产品 ( 标准 IC) 和定制型产品 ( 定制 IC)

– 标准 IC 是指目前市面上流行的诸如 74 系列 TTL , 74 系 列 CMOS 和 10K 或 100K 系列 ECL 等产品.长期以来, 这类 IC 被用来组装各种机器系统,它们具有价格便 宜、测试方便、研制组装中小 型机器系统灵活。便于 维护、生产和更换笋优点.但是其致命的缺点是性能 差,体现在速度、功耗、体 积及可靠性等方面.因 此,标准 IC 已不能满足日益发展的高速大型机器系统 对 LSI 电路的需要。 – 定制型 IC 实质上是研究在晶片上的组装技术,它把标 准 IC 大量的外引线变成内引线,从而实现高密 度的组 装;例如, MCA2500 门阵列器件与用标准 IC 装焊的相 应系统进行比较,密度提高了 700 倍, 功耗下降到 1 / 12 .定制型 IC 又称专专用集成电路 (ASIC) ,它是 IC 生 产厂家按用户的特殊需要 研制生产的产品,具有高度 保密性,不易被抄袭和仿制.最早出现的定制型产品 是全定制 IC ,是厂家 专门为用生产的专用 LSI 或 VLSI 电 路,具备电路系统的最佳性能,如体积小、速度快、 功耗低、可 靠性高等.但研制周期长 ( 有的长达 1—2 年 ) 。并且当品种多和批量小时,研制费用十分昂贵。 于是, 就导致了半定制产品的出现。 – 半定制 IC 是指由 IC 生产厂家大批量生产的半成品芯 片, 而最后几道布线互连工序按用户的特殊需要 进 行,这就很好地解决了大规模生产和小批量需要之间 的矛盾.既满足了用户对电路性能的特殊需要, 又达 到了生产周期短、成本低的目的.特别是引进了计算 机辅助设计工具 (CAD) 后。进一步缩短了设 计生产周期 ( 设计开发叶间一般为飞一 4 周 ) ,并有效地解决了设计 可行性和产品可测性的问题,使 半定制 IC 成为实现用 户专用 LSI 电路的有效途径.半定制 IC 包括数字阵列和 线性阵列。数字阵列中 又分为门阵列 (Gate Array) 、 准单元 (Standard Cell) 和可编程逻辑器件 (Programmable Logical Devices) 标

门阵列概述
门阵列是定制 VLSI ( Very Large Scale Integration) 的一个重要分支。门阵列的应用覆盖 了从高性能计 算机到工业控制、仪器仪表、通 讯、航空航天和军事等各方面,现在门阵列方法 已成为电子工业的主力。 门阵列以其多品种、小批量和非重复性开发为支 配因素优于全定制方法.下面通过硅片制做过程 的流程 图来了解门阵列的生产过程和门阵列的概 念.

该图是经过加工的 晶片 ( Wafer ) , 它含 有很多管芯 ( Die ) , 如图中的小矩形方 块所示。 将一个管 芯 从晶片上切割下 来,封装后即成为 集成电路,被封装 的管芯也称为芯片 ( Chip ) .

管芯由导电层、半导电层和非导电材料层构成,这些层用来 形成管芯的有源元件和无源元件.每一层上元 件的几何尺寸 由掩膜确定.晶片上的每一层对应于一个掩膜,掩膜上有每 个管芯的重复图案,因此所有 管芯的加工是同时进行的。上 述过程适用于任何集成电路的生产,不管是数字的或是摸 拟,也不管是门 阵列或其他形式的 IC 。 图 2-1-2 是晶片加工的示意图。紫外光通过一张掩膜板在晶 片上形成一个图形。这个图形限制诸如杂质 的参入途径,氧 化层和金属层刻蚀方位等加工过程。当做完一层后,紫外光 又通过另一张掩膜板在晶片 上形成另一个图形,如此重复, 直到预期的生产周期全部结束。 晶片测试、切割并封装好管芯。根据标准 IC 和可编程 IC 制 成成品或半成品。 门阵列与标准 IC 之间的一个重要区别是门阵列作成半成品, 最后的金属布线层由定制人员设计,形成用 户专用掩膜板, 再将半成品定制成满足用户要求的功能器件。不同的掩膜板 图形是各不相同的,而且图 形之间必须严格地相互关联。

门阵列定义
门阵列是一种最典型、应用最早、应用最广泛的半定制设 计方法.采用门阵列方法时,集成电路制造厂家 首先设计 制造出由许多相同的、有规则排列且相互间没有连接起来 的单元电路组成的半成品芯片,称之 为 ― 母片 ‖ 。然后, IC 生产厂家按照用户的要求,进行结构和逻辑设计,通过合 适的掩膜确定管芯的 金属化层,将母片上的各单元电路连 接起来,形成具有指定功能的数字系统。 门阵列管芯是有规则排列的晶体管或其它元件,通用的输 入输出 (I/O) 单元以及有关焊接点的集合.门阵 列的特点是 具有大量的潜在内部连接点,保证了设计者能采用不同的 元件互连方案来完成电路设计 ..

门阵列芯片中的元件分为有源元件和无源元件。 有源元件是晶体管、 二极管; 无源元件则包括电阻、 电容、 扩散或多晶硅形成的 ? 层下通道 ( 0nderpass) 、连接点、焊点、电源和地总线等。通过对这些元件进 行 布线互连来完成电路设计。 门阵列大致可分为两类,即中、高速门阵列。前者主要用于通用逻辑 的替换,比如说通过替换一块由 SSI / MSI 集成电路组成的印制板来 降低生产成本。 后者则用于计算机主机和微型机的生产, 因为通过利 用 ECL 工艺可使门延时小于纳秒级,另外,门阵列潜在的应用领域是 用于高速数字信号处理。 门阵列的其它名称,如不约束的逻辑阵列 (ULAS : Uncommitted Logic Arrays) 、可结构化门阵列 (CGAS : Configurable GateArrays ) 、母 片法 ( Master Slices ) 和逻辑阵列等, Motorola 公司则使用宏 单元阵列的 名称 ( Macrocell Array ) 来表明用户只能用宏单元,而不能用分离的晶体 管来设计门阵列。

门阵列的生产流程图,

门阵列的结构
(1) 块单元方法.每个单元以有规则的间距按二维矩阵排列.单元之 间的空隙用作单元内部连接的通道, 这些通道分为垂直通道和水平通道. (2) 行单元方法.在这种情况下,各个单元背靠背地沿水平方向或垂 直方向排列,行与行或列与列之间留 有较宽的间隙,用作单元之间的内部 连接通道. (3) 邻接单元法.这里,每个单元紧密邻接,相互间不预留布线通 道.各单元间的相互连接是通过利用单 元内部预留的空隙以及芯片上未加 以利用的单元来实现的,在设计各单元的结构时应作到这一点.

在上述三种结构中, 芯片的四周是输入/输出接口单 元. 这些输人/输出功能包括电平转换、 三态门输出, 集 电极开路型输出、施密特触发器、振荡器、单稳态 , 触 发器等。一般来说,前两种结构允许单元间 的自动布线, 布线分两层进行,两层的走线相互垂直.如果一层是金属 层,则另一层是具有层下通道或 连接点形成的扩 ? 散或多晶 硅层.若采用另一种布线方法,则两层均为金属布线层, 其间带有接触孔 [ 或通道以进行层问互连.块单元结构的布 线通道占用了较大的芯片面积,芯片利用率刁但其布线难 度 较大,对 CAD 软件要求较高.方面有较好的折衷

(a) 如何使用两层金属层进行布线:下层(点划线)只在垂直方向布线;而上层 (实线)只在水平方向布 线 (b) 在芯片上预定的位置设置多晶硅或扩散层下通道,这些通道用来完成上下两 层的互连走线。实线为金 属线,小方块直通下层的连接孔。

宏单元
门阵列的最初形式是以简单的门作为基本单元.如果要生产种类 繁多、功能复杂的逻辑部件,以门为基本 单元的阵列限制了逻辑 设计的灵活性及门的利用率,从而限制了集成度的提高。 宏单元 (Macrocell) 阵列的出现是门阵列的扩充,其芯片阵列上的 单元不是门而是一些互不相连的晶体管 和电阻。宏单元阵列虽然 设计周期比门阵列长,却为用户提供了更大的设计灵活性,实现 更多样、复杂 的功能集成,提高元件利用率,减小器件体积。 引进宏单元的概念后,用户有可能把整个机器系统设计在单一晶 片上。所谓宏单元实际上是预先定义好的 逻辑功能块,即预先确 定好晶体管间互连、执行一定逻辑功能、并可重复使用的单元。 宏单元库中保存 有由生产厂家约定好的各种逻辑功能块。

如 Fairchild 公司的 FGE 系列和 Motorola 公司的 MCA2500 宏单元 库中都有 80 多种 SSI / MSI 逻辑功能块.用户只要把自己要设计 的机器电路系统进行逻辑划分 ( 又称宏定义 ) ,将其分解成宏单元 库中现有的逻辑电路块,并安排在适当的位置。计算机自动生 成宏单元内部互连图,使其构成相应的功能 部件 ( 如触发器、累 加器等 ) ,再自动生成宏单元之间的互连图,生产出所需的 VLSI 电路. 根据 宏单元 功能的复杂程度的不同,一个宏单元可由 1/4 、 1/2 、几个或几十个 基本单元 组成.例如 MCA2500 宏单元库 中, M200( 五输人或/或非 ) 由 1/4 基本单元组成; M281( 全加器 ) 由一个基 本单元组成.基本单元中的 元件 ( 电阻,三极管等 ) 。 基本单元所包含的元件数, 各厂家有不同的规定, 但其设计宗 旨是以最少的元件实现尽可能多的品种组合, 完成尽可能复杂 的功能, 并使内部单元利用率最佳. FGE2500 阵列, 如 内部单 元包含 26 个晶体管和 16 个电阻,可完成诸如 4 输入 ― 或非 ‖ 门, 4:l 多路转换器,带复位和清 0 输入端的 D 型主从触发器 等复杂的 逻辑功能。 ― 单元 ‖ 这个术语,有两重不同的含义。一是表示门阵列中一组 有源元件 ( 如晶体管等 ) ,称为阵列单 元;二是表示功能部件, 其功能是预先定义好的而且是通过晶体管之间的互连实现的。 依据布局的大小, 它可能象一个逻辑元件那么小,也可能如整 个芯片那样大,但通常是介于二者之间。一般称为 ? 宏 ' (Macro) , ― 宏单元 ‖ 或者功能单元。有时,也分大的和小的 功能单元.小的功能单元称作微单元 (Microcelll8) ,它只包含少 量的门,简单的加法器, D 型触发器等。大的功能单元称为宏

第六节 标准单元法
标准单元法又称为单元库法,是一种宏单元设计法,它更
列电路一样. 两者之间的区别是,在标准单元法中,晶片不预制,每个 宏单元的全部掩膜板设计被存储在计算机里,可 能有十几 层掩膜;而对于门阵列宏单元,一般压缩为一种掩膜层, 用于宏单元间的互连.例如,对于前 面所讨论的两层金属 布线的门阵列,只有一层用来实现晶体管之间的互连,以 形成宏单元.在进行某一 特定的系统设计时, 设计师首先 完成系统结构设计, 然后从单元库中选取合适的单元, 其按行排列. 将 行 与行之间留有足够的空隙用作单元之间的 布线通道. 下图为一种典型的标准单元布线图方案.单元行之间的连接从其 侧边自上而下地实现,并穿越布线通道。 这种标准单元 IC 的结构 适合于采用现有的布局和走线算法使布线工作更容易进行 依赖于 CAD 技术.标准单元定制法就是 把宏单元存储在计 算机中,将其互连以形成一种定制电路.正如把类似的宏 单元排列并互连来定制门阵

标准单元布线法所用的算法和印制板设计时采用的传统自动布线 算法大同小异.因此,标准单元法真正体 现了 CAD 自动布局和布 线的风格,从而广泛并成功地用于定制 VLSI 电路的研制. 标准单元法所采用的技术主要是 CMOS 工艺.因为 CMOS 具有集 成度高,低功耗和接近理想化的门传 输特性等优点。优良的门传 输特性保证了器件的强抗干扰能力和优越的输入 / 输出特性. 标准单元法的优点之一是在一个管芯上可放置比门阵列法多 20%-30% 的额外功能,从而使得系统的外部 连接尽可能减少。 一般在 I/O 缓冲器上功耗很大,减少外部连接可显著降低功耗; 同时,与 I/O 相关 的电容也减少,使芯片速度提高。常用于象微 处理器或存储器这类要求布局面积最小的器件。

第七节 硅编译器
随着 VLSI 系统的复杂性和集成度的不断提高, CAD 技术在 VLSI 技术中的地位日益重要.尤其是在 ASIC 迅速发展的今天,用户 更迫切地需要能够帮助他们进行芯片设计的软件工具.人们特别 需要这样 一种设计系统,它能够从满足 VLSI 系统结构特性要求的 高级语言描述出发,自动地完成各个阶段的设 计任务,最终完成 所设计器件的连线版图设计。硅编译器就是这样一种软件工具。

硅编译器的 ? 编译 ' 一词来源于软件术语.在语言编译时, ― 编译 ‖ 是指用编译程序将源语言变换成目 标程序的过程,也就是将高级 语言转换成低级的机器代码的过程。与此相应,如果把版图描述 看作机器 代码,而把行为级描述看作高级语言,那么把行为级描 述直接转换成版图描述的过程也可以认为是一种 ? 编译 ' 过程. 硅编译器的设计思想最先由 MartinRem 于 1978 年提出,而 Johannson 于 1979 年首先设计出数据通道 硅编译 器. 1985 年 3 月 W68CS02 芯片采用硅编译器进行设计, 该芯片与 8 位 CMOS6502 微处理 器完全兼容.按常规的设 计方法,一位芯片设计师和两位绘图员需用九个月时间才 能完成对该芯片的设 计,采用硅编译器进行设计只需不到 一个月的时间,只是芯片的面积略大一些。目前,已有其 它一些硅 编译器被研制、开发并投入应用,但多数都只限 于用在某一特定的设计任务中。如存储器设计,信号处理 单元设计等。 VLSI 的设计和制造涉及到许多完全不同的学科。在设计 一个集成电路时 , 常常是 : (1) 由系统设计人员 进行系统结 构及逻辑设计; (2) 集成电路设计师再根据逻辑图进行版 图设计 ; (3) ,进而得到生产所需 的掩膜版。对于系统设计 师来说,版图设计是件陌生而头痛的事。 以硅编译器为基础的新设计系统为 VLSI 设计开辟了一个新 的途径.系统设计师不必依赖集成电路设计 师而直接设计 集成电路,他不仅能从逻辑结构的行为级描述或门级描述 出发直接得到掩膜信息,同时还 能进行时序、逻辑和电路 的模拟.这有助于建立为确保最终设计的 ? 可查找,可追踪 的管理数据库,同 时也是 2000 门以上门阵列设计中急需解 的关键问题。

硅编译器是一种主要的半定制工具,其输入是高级的系统描 典型的硅编译器的处理过程分五步进行。

述。

– 输入描述语言 :以一定的形式支持对系统功能的描述和常规的编程约定。如整数 运算、过程定义等。 – 编译处理功能 :硅编译器对输入的高级描述语言(源程序)进行编译处理,生成 基本模块单元清单和 内连关系网络。 – 基本模块的实现 :基本模块是编译器的低级指令集,它们具有明确的物理表达形 式 - 版图。基本模块可以取自一个单元库,也可以通过组合过程实现.在 FIRST 硅编译器中,基本模块包括 乘法器、加法器、延迟线等. – 芯片的自动布局 .目的在于实现芯片平面的分配。为保证布线的高效率和提供合 适的通讯结构,必须 认真作好芯片平面布局,即按一定的规则把各个基本单元模 块配置在芯片的位置上,为优化芯片设计,将 自动地重复基本模块的单元布局和 连接。 – 芯片的布线 :在完成了对基本模块的布局之后,硅编译器自动地进行网络连接布 线,并添置必需的焊 盘和 I / O 单元,以最终完成芯片的版图设计。

定制技术的发展趋势
在不久的将来,将出现在一个芯片上存在各种定制技术的组 合,即芯片上同时有:熔丝可编程器件 ( PROMs 、 PLAs 、 PALs 等);掩膜可编程器件(门阵列、 ROM 等);软件可编 程器件及微处理 器、模拟器件及存储器件等

主要原因为:
– 要求在一块芯片上集成较为复杂的功能 – 掩膜可编程性为设计人员和操作人员广泛利用 – 从逻辑设计到生成掩膜的 CAD 工具日益成熟和广泛应用 – 与生产每个芯片的其他所有工艺过程相比,将更广泛地使用形成互连图 案、刻蚀金属线和绝缘层的制造 设备。

随着标准单元和门阵列之间竞争的加剧,没有任何理由阻 止标准单元并入门阵列。单元库中的一个或几个 标准单 元, 将可能是一个给定大小的门阵列单元. 即标准单元的 功能和集成度将达到 LSI 甚至 VLSI 的 水平,常被称为超级 单元或巨单元.这不仅是标准单元法的一个发艇趋势,还 体现了 VLSI 系统设计思 想中的层次设计方法。

第三章 PLD 器件的综述

第一节 PAL 器件的基本结构和工 作原理
PAL 器件的基本结构是把一个可编程的 ― 与 ‖ 阵列的输出乘积项馈 送至 ― 或 ‖ 阵列, PAL 器件所实 现的逻辑表达式具有 ― 积之和 ‖ 的形 式,因而可以描述任意布尔传递函数。

PAL 器件从内部结构上可分成五种基本类型
1.基本阵列结构 2.可编程 I/O 结构 3.带反馈的寄存器输出结构 4.异或结构 5.算术功能结构

下图是 PAL 器件设计的一个 2 输入、 1 输出逻辑器件,其逻辑器件的逻辑表达 式为: Output = (f1*I1+/f1)*(f2*/I1+/f2)*(f3*I2+/f3)*(f4*/I2+/f4)+ (f5*I1+/f5)*(f6*/I1+/f6)*(f7*I2+/f7)*(f8*/I2+/f8) 式中 f 项反映了 PAL 器件 ― 与 ‖ 阵列的熔断丝状态。若熔丝被烧断, f=0; 若熔丝 未烧断, f=1; 因 此,未编程的 PAL 器件的所有熔丝均完好

基本阵列结构的 PAL 器件: 单纯地由 ― 与 ‖ 阵列和 ― 或 ‖ 阵列组成。其输出 有三种配置形式:输 出高电平有效,记作 H ;输出低电平有效,记作 L ; 互补输出,记作 C 。输出形式的多样化,使得一 块 PAL 芯片就能替代许多 具有不同功能密度的组合逻辑块。

可编程 I/O 结构的 PAL 器件: 具有输出三态门和输出反馈的特点。 ― 与 ‖ 阵 列的乘积项直接控制器 件的输出。一个乘积项用来使能输出三态缓冲 器,然后三态缓冲器将 ― 积之和 ‖ 项送到输出引脚,同时 三态输出又反馈 到 ― 与 ‖ 阵列。

带反馈的寄存器输出结构的 PAL 器件: 当系统的时钟的上升沿到来时, 每个 ― 积之和 ‖ 项存入一个 D 触发器。通过使能低电平有效的输出三态缓 冲器,再将 D 触发器的输出 Q 送到输出引脚。 /Q 输出端 则反馈到 ― 与 ‖ 阵 列,这样的 PAL 器件能记忆原先的状态,从而实现状态机中的时序逻辑 功能。如 向上或向下计数、跳位、移位和分支等。

异或结构的 PAL 器件: 的特点是在输出部分增加了一个 ― 异或门 ‖ , 阵列 的乘积和分割成 2 个和项, 2 个和项在在 D 触发器的输入端 ― 异或 ‖ 后,在 系统时钟的上升沿到来时存入触发器。 异或结构的 PAL 具有寄存器型 PAL 器件的所有特性。

算术功能结构 PAL 器件: 特点是在异或结构 PAL 的基础上增加了反馈选 通电路, 2 个和项在 D 触 发器的输入端执行 ― 异或 ‖ 操作,可实现上次运算 产生的进位与此次运算产生的结果之间的的 ― 异 或 ‖ 。反馈选通电路可以 对输入项 B 和 D 触发器的输出反馈项 /A 施行二元逻辑操作,以获得几种可 能的逻辑组合,如( A+B )、( A+/B )、( /A+B )、( /A+/B )。

(A+B) 、 (A+/B) 、 (/A+B) 、 (/A+/B) 四种组合馈送到 ― 与 ‖ 阵列,并进行 逻辑组合,便可以形成算 术逻辑运算单元 ALU ) ( 或在控制器应用中所 需的 16 种可能的逻辑乘积项。 下图是通过对 PAL ― 与 ‖ 阵列编程就能实现 16 种不同的逻辑组合。

16 种逻辑组合的卡诺图:

16 种逻辑组合的产生: (A+B) 、 (A+/B) 、 (/A+B) 、 (/A+/B) 四种组合馈送到 “ 与 ” 阵列

各厂商提供的 PAL 器件有三种产品

1.FPAL : 现场可编程阵列逻辑器件, 芯片上以 PAL 作标记。 芯片中的阵列 结点采用高可靠性的 钛 - 钨 合金熔断丝 连接,用户通过对芯片的编程写入 所需要的逻辑;价格贵,适用于样机的研制和小批量使用。 2.HMSI : ( Hard Array Logic Medium Scale Integration) 器件,芯片上以 HAL 作标 记。 HMSI 是一种以掩 膜可编程 PAL 器件,采用标准的低功耗肖特基 TTL 技术。芯片中的阵列结点用 铝熔断丝 连接,价格 贵便宜。用户只须将定 义好的逻辑功能交给厂商以定制 HAL 芯片,适用于大批量使用. 3.PMSI : (PAL Medium Scale Integration) 器件,芯片上以 PMSI 作标记。 PMSI 和 HMSI 均采用 门阵 列结构 去实现逻辑功能;二者的区别在于: HMSI 是 通过掩膜来实现逻辑功能,而 PMSI 则完全通过 PAL 器件本身的结构来实现.

第二节 PAL 器件命名法
PAL 器件一般采用 助记符命名法 ,以便表示器件 的一些基本性能和它所完成的逻辑功能,这里介 绍几 个最大的 PLD 器件生产商 MMI 公司、 AMD 公 司和 NSC 采用的命名法

MMI 公司老产品命名法

注:
1 、对 ECL 器件, PAL 之后以 ― 10H ‖ 或 ― 100 ‖ 表示 ECL 系列等容性。 2 、如果反馈存在,输入引脚数包括反馈。 3 、结构代码通常用记助符(六种输出结构代码) H = 高电平有效 ; C = 互补输出 L = 低电平有效 ; R = 寄存器型输出 X = 带寄存器的 ― 异或 ‖ 门 A = 带寄存器的算术功能结构 。 4 、速度等级表示传输延时,一般有以下等级 空白 = 35ns ; A = 25ns B = 15ns ; D = 10ns 5 、功耗级有三种标志 空白 = 全功耗 180~240mA ; -2= 半功耗 90~105mA ; -4 = 1/4 功耗 45~55mA

MMI 公司新产品命名法

注:
1 、工艺标志有四种 空白 = TTL ; C = CMOS 10H = 10KHECL ; 100 = 100KECL 2 、 功耗级有四种标志 空白 = 全功耗 180~240mA H = 半功耗 90~105mA Q = 1/4 功耗 45~55mA Z = ― 0 功耗 ‖ , <0.1mA 维持电流 3 、其他同 MMI 公司的老产品命名(上图)

AMD 公司老产品命名法

注 :
1 、对 ECL 器件, PAL 之后以 101 或 100 表示 ECL 系列等容性。 2 、如果反馈存在,输入引脚数包括反馈。 3 、结构代码通常用记助符,下一节列出。 4 、速度等级表示传输延时,一般有以下等级 空白 = 35ns ; A = 25ns B = 15ns ; D = 10ns 5 、功耗级有三种标志 空白 = 全功耗 180~240mA L = 半功耗 90~105mA Q = 1/4 功耗 45~55mA

AMD 公司新产品命名法 ]

注:
1 、工艺标志有两种 空白 = TTL ; C = CMOS 2 、功耗级有三种标志 空白 = 全功耗 180~240mA L = 半功耗 90~105mA Q = 1/4 功耗 45~55mA 3 、其他同 AMD 老产品命名(上图)

AMD 产品命名法

AMD 公司军品命名法

NSC 公司产品命名法 注:
1 、 NSC 公司的 PAL 系列器件采用低功耗肖特基 TTL 工艺。 2 、输出结构有六种记助符。 H = 高电平有效; L = 低电平有效 ; C = 互补输出 R = 寄存器型输出; X = 带寄存器的 ― 异或 ‖ 门 ; A = 带寄存器的算术功能结构 3 、速度等级表示传输延时,有三中等级 空白 = 标准速度 (40ns) ; A = 低功耗 (35ns,150mA); A -1 = 高 速度,中功率 (25ns, 180mA) 4 、封装类型有 2 种 N = DIP (塑料双列直插); J = 陶瓷双列直插 5 、工作温度范围 C = 0 o C~+75 o C; M = -55 o C~+125 o C

PAL 器件的封装技术
过去集成电路常采用塑料或陶瓷的双列直插式封装 DIP ( Dual In-Line Package )随着集成度的提高和功 能的增强,以及输入 / 输出引脚的增多, 相应的封装技术也有很大的改进和提高。下面介绍几种主要的 封装技术: ( 1 ) SKINNY DIP —— 膜状的双列直插式封装。 ( 2 ) PGA ( Pin Grid Awragc )引脚网格阵列封装。 ( 3 ) FLATPACK ( Flat Package) 扁平封装 ( 4 ) PLCC ( Plastic Leaded Chip Carrier ) —— 塑料有引脚的芯片基座封装(芯片载 体)。它是一 种方形的 JEDEC 标装塑料封袋,引脚分布在组件的四周,引脚向下弯曲成 ― J 钩 ‖ 状,特殊适用于自动 化布线,有 20 、 28 、 44 、 68 、 84 引 。

( 5 ) LCC ( Leadless Chip Carrier ) —— 无引脚的芯片基座封装,它是一种方形的陶瓷 IC 封装, 没有引脚,通过与器件封装齐平的触点实现连接,有 20 、 28 、 44 、 68 。 ( 6 ) SOGP ( Small Outline Gull-wing Package ) —— 小型海鸥冀封装, 简称 SO 封装, 具有 DIP 封 装的外形和 PLCC 封装的紧凑性。 SO 封装引脚貌似 PLCC ,但向外延伸,因而焊接 容易,焊点安全 可靠,适合于表面安装工艺,对器件进行自动化装配。

MMI 和 AMD 封装助记符对照表

Plastic DIP :

PLCC :

塑封膜状双列直插式 :

塑料有引脚芯片载体 :

陶瓷封双列直插式 :

无引脚的芯片载体 :

无引脚的芯片载体俯视和电极图 :

AMD 和 MMI 公司可编程逻辑产品对照表 :

第三节

TTL 和 CMOS 的 PAL 器件

从结构上, PLD 器件可分三类:
1.一般用途的 PAL 器件(包括 GAL---FPGA 和 CPLD ) 2.用于状态机设计的可编程定序器

3.高密度的 LCA 器件

采用三种制备工艺
1.TTL 工艺 (应用最广泛,双极性器件,速度很快,但不及 ECL ) 2.CMOS 工艺 (功耗低,可以擦除,与 TTL 兼容或有兼器件) 3.ECL 工艺 (发射极耦合器件 )

PAL 器件按功能分为四类
1.简单组合型器件 2.简单寄存器型器件 3.定序器 4.异步型器件

简单组合型器件
具有基本阵列输出结构和可编程 I/O 输出结构 PAL 器件均属组合型 器件。 可提供快速、有效地简单组合逻辑功能,从众多的可选器件中, 用户能为其应用选择合适的器件 五个基本特征用来区分这些器件 1.输入端数 2.输出端数 3.每个输出后乘积项数 4.速度、传输延时 5.功耗

有些寄存器型器件可以用作组合型器件, 只要将其所带的触发器旁路 即可, PAL22V10 。 如 简单组合型器件的结构代码如下:

简单组合型器件的输出结构
― 与 ‖ 门共享的输出结构 : PAL 初级产品的输出端数和输出极性都是固定的,在输出端 之间也不存在 可共享的 ‖ 与 ― 门或乘积项。对于复杂功能的逻辑设计,该类 PAL 就显得无 能为力。其解决方法是使 与门在输出端共享,称为 ‖ 乘积项共享 ― ,这种结构使得乘积项 能在各输出之间进行分配。 典型的 2 输出共享 16 个 ‖ 与 ― 门,不论是复杂或是简单的逻辑功能,只要所需相 ― 或 ‖ 的 乘积项 小于 16 门,就可以将这两个相邻的输出端分配给它们。

― Xpandor 细胞单元输出结构: 由于 FPAL 器件的 ‖ 或 ― 阵列可编程, 它的灵活性取 决于其 ― 与 ‖ 门 可由输出端共享, 即 ― 与 ‖ 阵列输出的乘积项可由任一个或全部的 ― 或 ‖ 门所共用。 VTI 公司引入 Xpandor 细胞单元输出结构, 2 个输出可以同时使用分配 给它们的 2 组 ― 与 ‖ 门中的任意一组; 而 在 ― 与 ‖ 门共享输出结构中,每个 ― 与 ‖ 门只能 分配给共享 ― 与 ‖ 门输出端的一个。细胞单元输出 结构示意图为:

I1 、 I2 、 I3 、 I4 异或 输出,如用该结构, 只需四个与门便能实 现,否则需八个

简单组合型 PAL 器件列表 :

说明 :
1.某些器件有内部反馈,将输出引脚的信号回送用作输入,与可编 程三态功能相结合,输出引脚可用作 输出、输入双向 I/O 引脚。 2.大多数器件具有固定的输出极性; AmPAL22P10 、 AmPAL18P8 、 PAL16P8 、 PAL20S10 和 AmPAL22XP10 则具有可编 程的输出极性 3.PAL20S10 有一个特点,称为 ― 积项换向 ‖ 或 ― 积相共享,它允许乘 积项在各输出之间进行分配 4.AmPALXP 的每一输出端都有内在的异或门

简单寄存器型器件 :
一、在组合型器件的输出端加上用于信号同步的寄存器所构成的器 件等价于基本寄存器型 PAL 器件 二、所有这些器件都将触发器的输出作为输入反馈到阵列。 三、可用于非常快速的小型状态机 四、六个基本特征用来区分这些器件: 1.输入端数 2.输出端数 3.触发器数 4.每个输出的乘积项数 5.速度或最高时钟频率 n 功耗

寄存器型结构 :

说明 :
1.大多数有专用的时钟和输出使能引脚。象 PAL16K4 ,有一些专用的组合输 出端,具有可编程的三态 功能;只有寄存器型输出端由输出使能控制。 2. PAL22V10 、 AmPAL22RP10 系列及 AmPAL22XRP10 , 都有可编程的三态输 出端, 如果需要的话, 这些系列器件的时钟引脚也可用作逻辑输入。 3.PAL16X4 带有一个附加的 ― 位 - 对 ‖ 译码电路,特别适用于算术操作。 4.比较简单的器件都含有低电平有效输出端。 PAL16RP8 系列、 PAL22V10 、 PAL22RP10 系列、 AmPAL22XP10 系列、 PAL20RS10 系列及 PAL32R16 系列 具有可编程极性。 5.PAL20RS10 系列和 PAL32R16 有 ― 积项换向 ‖ 的功能。 n PAL32R16 输出端可以 8 个为一组通 过编程而变成组合型输出,此外,它还 有多个时钟,使能输入 TTL 电平预置引脚。 6.PAL22V10 有两个可编程的初始化乘积项,一个是同步预置项,另一个是 异步复位项,这两个乘积项 控制所有的触发器。

寄存器型 PAL 器件的结构
1.简单寄存器型 PAL 器件的缺陷 2.输出结构决定了难以实现复杂的逻辑功能 n 每个输出端最多能使用 8 个与门 3.输入端、寄存器输出端、非寄存器输出端之间的均衡性差 4.简单寄存器型 PAL 没有提供重要的测试特征功能,即不管输入状态如何, 输出寄存器能预置成任意 给定状态

增强的寄存器型 PAL 器件的预置功能 :
1.设计一个实际电路时,预置一般通过外围电路实现

2.预置功能的实现方法之一是选取器件的一个输入引脚,在外加信号的 驱动下控制寄存器状态的建立 如图:电源通过电阻 R 缓慢地给电容 C 充电,开始时 Pon 为 ― 低 ‖ 电平, PAL 所有的输出寄存器 均置成高电平 ― 1 ‖ , 之后 Pon 由 ― 低 ‖ 变 ― 高 ‖ , PAL 则执行正常的逻辑操作。 Q : = /Pon+Pon * NORMAL FUNCTION

异或 PAL 输出结构和算术功能 PAL 结构
在输出寄存器前设置 ― 异或 ‖ 门对于实现诸如算术运算和计数之类的操 作特别有用。 当计数器很复杂时,一般 PAL 的器件可能没有足够的 ― 与 ‖ 门来构造 它,而异或型 PAL 器件能解决 这类问题。一个四位计数器的输出假定 为 Q 3 Q 2 Q 1 Q 0 ,其最高位 Q3 的状态决定于 Q 2 、 Q 1 、 Q 0 的状态,即 Q 3 : =Q 3 与( Q 2 *Q 1 *Q 0 )异或,利用异或 PAL 很容易实现该逻辑; 在异或 PAL 器件的基础上, 增加反馈选通电路可以使算术运算更易于 实现。 PAL16X4 和 PAL16A4 都 具有反馈选通网络。

定序器型器件
几种寄存器 PAL 器件,由于增加了辅助功能,特别适用 于状态机应用。

七个基本特征用来区分
1.输入端数 2.输出端数 3.触发器的数 4.可能有的触发器类型( D , T , J-K , S-K ,锁存和 / 或掩埋)。 5.每个输出的乘积项数 6.速度最大时钟频率 7.功耗

定序器型结构

说明
1.PAL20X10 系列、 AmPAL20XRP 系列、 PAL22RX8 系列和 PAL32VX10 系 列,都带有一个异或 门,这使之能够和 D 、 T 、 J-K 、或 R-S 触发器一起 进行设计。由于 PAL20X10 的乘积项较小,最 适用于计数器一类的应 用; 2.AmPAL20XRP10 系列、 PAL22KX98 系列和 PAL320X10 具有较多的乘积 项,更适用较复杂的状 态机设计。 3. AmPAL23S8 除了 8 个输出寄存器外, 还有 6 个永久隐埋的附加触发器。 PAL32V10 和 PALC20M16 有若干触发器,如果输出端不需要它们,也 可被隐埋。如果触发器被隐埋,则对应的输出引脚可以当成输 入端使 用。对于将内部状态机作为整个设计一部分的应用,这些器件是最理 想的。 4. PAL32RX8 、 PAL32VX10 和 AmPAL23S8 具有总的预置和复位控制, 这使得系统的初始化更容易。 5.AmPALC29M16 是一种电可擦除的器件,这是有异常灵活的结构, 几乎所有的引脚都可作为输入或 输出。输入和输出都可被寄存、 锁存或组合,有两个引脚可用作时钟;器件还提供总的预置和复 位功能。 6.有几个触发器可以隐埋以提供内部的状态机,该器件与 HC 、 HCT 兼容。

异步型 PAL 器件
在有些应用中,需要异步控制的触发器,为此已设计好几种 PAL 器 件满足这样的需要 。如 PAL20RA10 、 PAL16RA8 。 这些器件的主要由可编程的 ― 与阵列 ‖ 和固定的 ‖ 或阵列 ― 所驱动的若干 个触发器三部分组成。 D 型触发器有各自的可编程时钟、置位和复位线。它们具有可编程 的极性,而且触发器能够被旁路以构 成组合型输出。 这些器件能够用来代替随机的分离逻辑、每个触发器是独立的。必 要时时钟、 位、复位线可以由逻辑门 控制。 适用于一些无规则的门电路,以及本质为异步的逻辑结构。

异步 PAL 单元
由 MMI 公司推出的 ― 状态机元细胞 ‖ 或叫 SMAC ( State-Machine-Atomic-Cell) 的异步 PAL 单元具 有灵活的结构 SMAC 含有 8 个 ― 与 ‖ 门, 只有 4 个乘积项组合起来构成用户逻辑, 其余的 4 个 ― 与 ‖ 项用来为触 发器和输出三态门提供时钟、置位、复位和输出使能信号 每个 SMAC 使用一个输入端和一个输出端,除本身特性外,还有一个全局 输出使能信号和一个并行加载 信号。

一块 20 脚的芯片可容纳 8 个 SMAC 单元, 24 脚芯片可容纳 10 个 SMAC 单元, 每个 SMAC 单元 的输出端开启或阻塞取决于全局输出使能信号和单元专用 输出使能信号的组合。这意味着每个 I/O 引脚 既能设置为输入,也能设置 为输出。 在 EP 系列中的异步 PAL 器件则使用了结构稍有变化的 ― 异步 PAL 单元 ‖ 。分 配给每个 I/O 单元 的 10 个 ― 与 ‖ 项, 8 个 ― 与 ‖ 用于实现逻辑表达式,一个 ― 与 ― 用 作触发器的清零信号,另一 个 ― 与 ‖ 用作时钟或者输出使能信号。

异步型结构

异步型 PAL 器件

第四节

CMOS 的 PAL 器件 n ECL 的 PAL 器件

1. COMOS 工艺的 PAL 器件,性能与许多双极性器件 ( TTL )不相上下,功耗更小。 2. 零功耗和低功耗的比较
零功耗:静态时基本上不消耗功率 低功耗:比较快速的器件,在静态时降低其额定的电流值,其 电流比等效 TTL 器件小得多。 差别:零功耗器件中使用了 ― 唤醒 ‖ 电路 ‖ ( wake-up), 每当信号改 变时,器件被唤醒以响应该 信号。完成信号变化后,只要没有 其它信号,器件回到 ― 睡眠 ‖ 状态。唤醒电路要损失一些速度, 大 约 5ns 。主要用于:以尽可能减小功耗为准则 PALC16R82 系列是有一个 ― turbo ‖ 乘积项,类似电路中 Turbo ,可使器件工 作于零功耗和低功耗 方式。实际使用时,就有可能命名器件在空闲时处 于零功耗方式,而当快速操作时切换到低功耗方式 特别适用于工作在突发操作,而且在二次突发操作之间有空闲周期的情 况下的那些器件。如脉冲式操 作器件。

3. HC 和 HCT 的比较
CMOS 器件以具有 HC 或 HCT 兼容性来表示其特征: HC 器件,具有的地到 V CC 变化的输出,输入阈值为 2.5 V,常用于驱动 其它 CMOS 器件。 HCT 兼容的器件具有 TTL 级的输出电压,即输出高电平 V OH 为 3.5V , 输出低电平 V OL 约为 0.5V ,输入阈值为 1.5V 。

适用于 CMOS 和 TTL 混合的系统。 HC 和 HCT 可以互联, 由于 HCT 器件输出不是从地到 V CC 变化,如果用 它驱动另一 CMOS 器 件,该器件将拉出较大的功率。 HCT 输出比较快,对锁存有较大抗干扰度。有些器件是 HC 和 HCT 都 兼容的,它们具有快速的高 驱动输出上升至 TTL 级的 V OH ,然后再缓 慢地上升至 V CC , 最终提供了从地到 V CC 的电平。

4. 紫外线可擦除与电可擦除比较
CMOS 的 PAL 器件采用两种工艺 : 紫外线可擦除( UV -Erasable );电可擦除( EE-Electricrlly Erasable ) 紫外线可擦除器件使用 PROM 工艺来实现阵列,器件被封装在一个带窗口 的管壳里,通过暴露于紫 外光下而擦除。封装比较昂贵。 器件也使用较低的塑料封装,不能用紫外线擦除,因此给为一次可偏程 或 OTP ( Ome-Time Programmafle )器件。 电可擦除器件通过向器件送入适当的电信号来进行擦除,封装上不需要 带容口,擦除时间要比紫外线 擦除器件快得多。 擦除操作由器件编程作为整个编程算法的一部分来完成。

CMOS/TTL 兼容性 :

第四章 可编程逻辑器件的设计方法
PLD 的设计方法 -设计方法和设计过程概述 -设计的构思 -PLD 器件的选择

-设计的实施 -器件的编程和测试 PAL 器件的编程 设计实例 1:组合逻辑设计-设计基本逻辑 设计实例 2:寄存器型逻辑设计-设计基本触发器 PLD 的设计方法
可编程逻辑器件 PLD 在数字系统设计中可实现各种逻辑功能, 从简单的随机逻辑替换到复杂的控制定序器。 可编程逻辑器件具有成本低、集成度高、使用简便、设计容易,以及具有其它系统设计方法所没有的调试 功能。 大多数的 PLD 器件具有可编程连接的―与—或‖阵列结构.可编程阵列意味着其连接 可由用户通过编程来 决定 。 PLD 器件的分类取决于其―阵列‖是可编程的还是固定的。

PROM:固定的‘与‘阵列和可编程的?或‘阵列,通常用作为存储器,而很少用于 实现逻辑功能 ; FPAL:―与‖阵列和―或‖阵列均可编程,使设计最富于灵活性; 最流行的 PAL:可编程的?与‘阵列和固定的?或‘阵列,它广泛用于实现各种各样的组咸寄存器型逻辑功能 ; PLS(Programmable Logic Sequencer 可编程 逻辑定序器):两个阵列都可编程,用于专门的状态机应用场 合; PROSE(PROgrammable Sequencer):将可编程阵列与专用的逻辑功能结合起来,为特定的系统应用提供最 佳性能, GAL:每个输出引脚都连到一个输出逻辑宏单元(OLMC),大大改善了输出功能的结构和灵活性。

可编程逻辑器件的选择
不同的生产工艺给 PLD 器件提供了众多的设计选择方案: 从可编程阵列的―连接线‖ 熔丝型:(ECL、TTL 双极型工艺 UV-EPROM(CMOS 工艺) E2PROM (CMOS 工艺) RAM 细胞单元 (CMOS RAM 工艺 从运行速度上 ECL 工艺的 PLD 器件用于高速运行电路的设计 CMOS 用于低功耗电路的设计 TTL 熔丝型 PLD 器件用于中档设计 工艺的选择主要取决于速度和功耗条件的限制

PLD 设计所需的条件
设计软件(PALASM) 器件编程器 软件设计过程: 建立设计文件; 定义所需的逻辑功能并用―积之和‖表示,可从真值表或时序图直接导出,也可运用状态图和卡诺图导出; 汇编设计文件,产生 JEDEC 文件 仿真、测试 将 JEDEC 文件下载到所选器件中,对器件的每一条连线编程。 将已编程的器件插到印制板中投入运行。 由于编程器与 PC 机相连,从设计文件的编辑、汇编、仿真、下载以及对器件的编程全部在 PC 机上完成。

PLD 器件的设计过程
第一步是设构思; 第二步是选择合适的器件; 第三步是设计的实施,包括使用测试向量对设计进行仿真; 对器件进行编程; 对已编程 PLD 进行测试; 并在系统板上验证其功能. 用例子说明各设计过程

68000 微处理器中的简单地址译码器
PLD 器件设计过程的第一价段是构思设计,对于 SSI/MSI 设计这也是必需的.PLD 器件的优点是在这一 阶段,设计者只需考虑期望的逻辑功能,使用 SSI/MSI 电路进行设计时,在开始设计之前必须考虑各种 器件的逻辑限制条件。显然,设计师必须根据系统设计的要求提出一个简洁完整的功能描述; 68000 微处理器除有单独的读/写信号线外, 还有 24 条地址线. 它需要 ROM 来存放系统引导代码, RAM 来存放数据和运行程序。 因此, ROM 和 RAM 在 68000 微处理器的地址空间里分配地址, 即需地址译码器。 地址译码器的作用是一次选择一个存储地址。地址译码器必须选择一个 ROM 或 RAM。当微处理器访问地 址空间中的一个地址单元时,通过将某一特定 ROM 或 RAM 的芯片选择信号置为真来执行选择操作。 在典型的微处理机系统中,也存在用来寻址 I/O 器件的电路(如软驱),当微处理器寻址这些 I/O 器件 时,同样对其发出片选信号。

一、设计构思
M86000; 接口逻辑电路;DRAM 控制电路;PROM 和 DRAM 芯片 地址线:A0-A23;其中 A21,A22,A23 与地址选通信号 AS 和读/写(RW)产生片选控制信号; RAMCS 片选信号与 A21、A22、A23 输入 DRAM 控制器产生 RAM 片选信号。 17 位数据线:D0-D16

存储器地址分配和映射表
PROM1 PROM2 DRAM1 DRAM2 DRAM3 DRAM4 备用 000000-0FFFFF 100000-1FFFFF 200000-2FFFFF 300000-3FFFFF 400000-4FFFFF 500000-5FFFFF 600000-7FFFFF

根据存储器的地址分配表和设计的功能描述推导出真值表 来自处理器的信号输入到接口逻辑块, 所产生的 输出是 ROMCS1、ROMCS2 和 RAMCS 片选信号;RAMCS 片选信号与 A21、A22、A23 输入 DRAM 控 制器产生 RAM 片选信号。

地址 (16 进制) 000000-0FFFFF 100000-1FFFFF 200000-2FFFFF 300000-3FFFFF 400000-4FFFFF

大小 1 Mbytes 1 Mbytes 1 Mbytes 1 Mbytes 1 Mbytes

A23 0 0 0 0 1

A22 0 0 1 1 0

A21 0 1 0 1 0

信号 ROMCS1 (低电平有效) ROMCS2 ROMCS3 ROMCS4 ROMCS5

500000-5FFFFF

1 Mbytes

1

0

1

ROMCS26

二、PLD 器件的选择
分析设计要求,按照是否需要使用寄存器而将其分类成组合型功能和寄存器功能 无需寄存器的逻辑设计 编码器、译码器、多路转换器、多路分配译码器、加法器和比较器等简单的组合逻辑功能块; 需寄存器的逻辑设计 计数器、定时器、控制信号产生器和状态机等 本例-简单地址译码器,不需寄存器 了解各种不同结构特征用于何处将有助于器件的选择.根据器件使用情况的历史记载和器件结构的功能特 性,PLD 器件可以分成三个基本应用类别,即: 组合型设计;(PAL 器件) 简单寄存器型设计;(PAL 器件和 PLS 可编程逻辑定序器) 复杂的寄存器型(定序器)设计 ;(PAL、PLS 和 PROSE/FPC(熔丝型可编程控制器) 不同的设计师,同样的设计可能选择不同的,本例选择 PAL 器件。

选择器件时应考虑的主要功能特性
输入引脚数 输出引脚数(如 PLD 有内部反馈,输出又可当作输入) I/O 引脚数 (特别适合于涉及总线的应用) 器件速度 对于组合器件,考虑传输延迟时间 td 来对于寄存器 型器件,考虑器件的时钟频率 fmax,, 寄存器建立时间 tpd 和时钟传输时间 tCLK 器件功耗 寄存器数(若有需要的话) 乘积项数 输出极性控制

下表分别给出了组合型和寄存器型 PLD 器件,对于本设计实例,我们挑选 PAL16L8,它有足够的输入输出 端和传输速度(延迟时间为 10ns)

组合型 PLD 器件的主要技术性能指标

寄存器型 PLD 器件的主要技术性能指标

系统临界的时序限制条件由微处理器的读/写周期和存储器可用的存取时间决定: 存储器存 取时间 2200 ns; 地址译码时间 10ns;

大多数微处理器允许的地址译码时间是 10-35ns, 即地址有效之后,正确的存储器片选信号应当有效。 对于本例,可用周期时间为 10-35ns,存储器的存取时间为 2200ns, 只有 20ns 作为地址译码时间。可选 PAL16L8, tpd =10ns

三、设计的实施
实施设计需要建立设计文件,设计文件在 PALASM 软件中称为 PAL 器件说明书(PDS:PAL Device Specification), 文件包括三类信息: 基本管理记录信息: 设计语法 仿真语法 设计文件、文件汇编、仿真、生成 JEDEC 文件、下载到器件编程器中构造器件 设计文件给出了文件编制方面的信息、所选用的器件名称、信号的名称。 所有的信号名都分配给器件引脚,并且将引脚定义为输入或输出. 设计文件的说明部分还包括按引脚号递增的顺序排列的信号名.如: Title M68000_ADDRESS_DECORDER 设计的名称 Pattern P8000 模式名或编号 Pevision A 版本号或等级号 Author ENGINEER 设计者姓名 Company MMI SUNNYVALE, CALIFORNIA 公司名称 DATE 07/21/87 建立文件日期 CHIP DECORDER (任一名称) PAL16L8 (器件型号) NC A23 A22 A21 TOP BOTTOM AS RW NC GND (1-20 引脚列表 ) OE RONCS1 RONCS2 RANCS INIT NC NC NC NC VCC 选择器件

表达设计的方法
-布尔逻辑方程 -状态机语法 汇编设计 仿真设计

下载 JEDEC 文件 PLD 编程

设计语法
两种表达设计的方法
-通过传统的布尔逻辑方程; 它是组合型设计的唯一选择方法,同时也可适用于某些寄存器型设计; 布尔方程由功能描述、真值表和/或时序图共同推导出。 -是通过状态机语法; 它是一种理想的 设计方法,适合对大型的寄存器型控制设计;也可用于 PLS 和 PROSE 器件的设计 通过功能描述、状态表、状态图和时序图等导出。

布尔方程用―积之和‖形式,适用大多数 PLD 器件的两级―与-或‖逻辑 习惯的设计方法是将设计需求用分离的逻辑(74 系列)来实现,这种用 SSI 和 MSI 的设计可方便的用 PLD 来完成,只须将 其换成积之和的布尔代数形式。 用 PLD 器件以―积之和‖形式直接完成一个设计能获得一个快速的电路, 也不必受固定 SSI 和 MSI 功能块

的限制。 布尔逻辑方程除了定义逻辑功能 外,有利于记录设计思想,可采用模块化结构。 可基于真值表或时序图进行设计

状态机方法的描述
-功能描述 -可基于状态图、状态表或时序图行设计 -编写状态机文件 -汇编设计文件

基于真值表的设计
1、根据对设计的需求功能的描述、依据地址分配映射表和片选信号真值表,推导出地址译 码器真值表。

注:另外三个附加的输入信号 RW:读写信号,微处理产生,用来区分读、写周期。ROM 数据只能读出,当 RW 为高电平 ―1‖时,发出 ROMCS1 和 ROMCS2;写周期不发出这两个信号;RAMCS 在读、写周期时都产生,不考虑 RW 状态。 AS:地址选通信号,高电平 ―1‖有效,微处理产生。仅当地址线上栽有有效的地址时才有效;所有片选信 号都要 AS 信号选通。 INIT:系统初始化信号,以便实现―热自举‖,类似 RESET;当发出 INIT 信号时,不允许发出任何片选信 号。

根据逻辑来写布尔方程非常简单和容易
/ROMCS1 = /A23*/A22*/A21*INIT*/AS*RW /ROMCS2 = /A23*/A22*A21*INIT*/AS*RW /RAMCS = /A23*A22*/A21*INIT*/AS + /A23*A22*A21*INIT*/AS + A23*/A22*/A21*INIT*/AS + A23*/A22*A21*INIT*/AS

选择器件时要保证有足够的乘积项, 每个―与‖项使用器件的一个乘积项; 以上乘积项最多为四个, PAL16L8 每一输出有 7 个乘积项。 输出极性问题:假设我们必须产生高电平有效的输出,ROMCS1 信号的输出方程为: ROMCS1 = /A23*/A22*/A21*INIT*/AS*RW 由于器件 PAL16L8 只有低电平有效的输出端, 因此方程的输出极性必须加以转换, 以符合器件的输出极性, 运用摩根定理: /ROMCS1 = A23+A22+A21+/INIT+AS+/RW

基于时序图的设计
功能描述: 在地址译码器中, INIT 是系统初始化信号, 可由 PAL16L8 几个未用的输出端中的一个产生 INIT

信号; 在内部:通过反馈,禁止片选信号产生; 在外部:可用于初始化其它系统; INIT 由连接到 PAL16L8 输入端的复位(RESET) 开关产生 为防止不必要的初始化,RESET 开关必须是防颤动的,即要求 INIT 信号维持―高‖电平直到开关与底边真 正相接触。一旦开关碰到底边,信号 INIT 应该低电平有效,且一直维持―低‖电平不变,直到再次碰到顶边。 防颤动电路的时序如下图所示,信号 TOP 和信号 BOTTOM 是可编程逻辑器件的输入,在 RESET 开关碰 到顶边和底边时,这两个信号分别被激活。

系统初始化复位开关和防颤动开关时序图:

时序图的每一事件(时刻)可写出布尔逻辑方程:
(1)常态 (2)开关从 TOP 到 BOTTOM (3)开关接触 BOTTOM (4)开关从 BOTTOM 到 TOP (5)回到常态 我们使用低电平有效器件,因此,可将两个低电平有效的事件组合成 总的布尔方程为: /INIT = /BOTTOM+/INIT*BOTTOM*TOP = /BOTTOM+/INIT*TOP INIT = /TOP INIT = TOP*BOTTOM*INIT /INIT = /BOTTOM /INIT = /INIT*BOTTOM*TOP

也可根据真值表和卡诺图来完成:

编写布尔逻辑方程应注意:
真值表和时序图方法对于编写布尔逻辑方程没有本质的差别.某些设计者喜欢使用真值表,而另外一些 设计者则宁愿从时序图出发直接进行设计。真值表方法使乘积项的利用率最佳,而时序图方法则更直观和 形象,因为它保持了设计的透明度。 在两种情况下,逻辑方程都应当由设计软件加以简化,以保证设计的可测试性。 大多数有经验的设计师都知道在进行器件选择时应如何权衡各种关系,因而在构思设计和选择器件上可 以节省许多时间. 通常的作法是:画出要设计的逻辑功能的方块图,然后依据所需的输入端。输出端,双向 I/O 端和乘积 项数目,凭经验选取满足这些条件 PLD 器件. -仿真语法 -仿真的目的在于测试在全部可能的输入信号作用下输出端的响应,以验证它们是否象系统所要求的那 样工作。 -仿真的实质是通过测试向量进行,它们指定器件每个输入端的状态,然后检查输出是否具有正确的响 应。 -仿真测试向量能够查明设计方程中的任何错误和缺陷,这些错误和缺陷会影响被编程的逻辑操作。因 此,仿真测试向量被 作,以查清有缺陷 并由设计软件重写成 用作设计的调试工具。 的任何器件。 测试向量的形式。 -仿真向量最终将成为比较大的测试向量集合的一部分。 功能测试向量用来对编程后的实际器件进行操 -仿真向量或事件可以直接从设计的真值表和时序图导出,所有信号的逻辑电平和逻辑功能可被展开,

仿真部分连同逻辑方程一起包括在设计文件中,在各种 PLD 设计软件中,尽管大多数依靠测试向量来验证 逻辑,几乎不存在标准化的仿真表达式。 PALASM2 软件提供了一种先进的事件驱动能力, 它比仿真测试向量具有更好的透明度. PALASM2 在下 ( 章介绍) 从地址译码器真值表可容易的地改写成仿真向量真值表。如下图,我们规定器件的输入(A23、A22、A21、 TOP、BOTTOM、AS、RW),并验证器件的输出 (ROMCS1、ROMCS2、RAMCS、INIT) 根据仿真向量真值表,可进行仿真测试程序设计。如下表的地址译码器 PALASM2 软件模拟仿真程序。

用来推导仿真向量的真值表

地址译码器的 PALASM2 软件模 拟仿真程序: ;读地址有效 ;不可能写 ROM ; 建立 ROMCS1 地址 ;读周期有效 ROMCS2 地址 ;不可能写 ROM2 ;建立 RAMCS 地址 ;读周期有效 RAMCS 地址 ;写地址有效 RAMCS 地址

PLD 器件的编程和测试
设计的仿真工作完成后,最终要对器件进行编程和测试.将 JEDEC 装入编程器编程器,就可对器件进行编 程。 编程器在编程周期之后,还可对各个连接进行验证,验证 PLD 器件中连线的正确性.此外,编程器还能对 已编程的器件施以读操作,并提供测试、复制器件的能力。

PLD 测试可由编程器或其它测试装置来完成,测试完成后,如果需要的话,还可对器件的保密熔丝进行编 程,以免被复制。

一旦 JEDEC 熔丝文件被下载,编程器就对器件进行编程,然后 PLD 器件便能投入使用 编程器可从各家厂商购得, 但须注意 MMI 公司确认的编程器必须具备正确的适用算法, 并且满足其它的基 本规则。在购买编程器时,注意检查一下该编程器是否适宜于要编程的器件。

现在有两种类型的编程器供设计者选用,它们是菜单驱动的编程器和基于器件代码的编程器.菜单驱动的 编程器直接指示被编程的器件类型,而后一类编程器则要求用户在编程前输入器件代码

器件的编程与测试流程图

PAL 器件的编程
PAL 器件可以使用大多数标准的 PROM 编程器进行编程, 只要给编程器配备合适的编程模块和器件插座适 配器。 从编程的角度看,PAL 器件和 PROM 器件没有任何差别。但 PROM 器件一般一次完成,而对有些 PAL 器 件,必须: 在编程期间, PAL 器件的输入引脚中有一半用于施加编程信号, 余下的一半输入引脚和输出引脚一起寻址, 实现对一部分熔丝的编程;然后,用于寻址和编程端的输出引脚相互交换,对其余的熔丝编程。 器件被编程后,如果保持编程端为低电平状态,通过与编程操作相同的步骤,便可以验证编程的正确性。 20 系列(20 脚)PAL 器件的编程 24 系列(24 脚) PAL 器件的编程

20 系列(20 脚)PAL 器件的编程

20 引脚系列的 PAL 器件采用低电压、线性选择方法对其熔断丝进行编程.编程阵列分成两组,乘积项 0-31 为一组;乘积项 32-63 为另一组.编程操作时每个组的引脚配置图如下图 ,为了对某个特定熔断丝编程, 按下列步骤选择输入行和乘积行: (1) 将输出禁止信号 OD (Output Disable)升到高电平 VIHH 。 (2) 参见下表 6-4-1,通过指定引脚 I7、 I6 、 I5 、I4,、 I3 、 I2 、I1、 I0 和 L/R 的状态来选择被编 程熔断丝所对应的输入行。 (3) 通过指定引脚 A0、A1 、 A2 的状态来选择乘积行,参见表 6-4-2.20 系列 PAL 器件最多有 8 个输出 端,每个输出端最多对应 8 个乘积行, A0--A1 用来 选取 8 个乘积中的一行。 (4) 将引脚 20 即 VCC 酌电平升至 VIHH 。 (5) 根据选定的乘积行对相应的输出引脚 On 施加编程高点平 VIHH. 以对熔 断丝编程, Y 时序图如图 6-4-2 所示 。 (6) 将引脚 20 即 VCC 的电平降至 6.0V。 (7) 对引脚 CLOCK 施加脉冲信号,由输出引脚 On 验证编程结果。对于输出低电平有效的 PAL 器件,输 出应为?低‘;对于输出高电平有效的器件,输出应为?高‘。 (8) 将引脚 20 即 VCC 电平降到 4.5V,并重复步骤(7)。 (9) 如果输出验证未通过,可重复步骤(1)-(8),多达 5 次。

重复上述步骤便可以对全部熔断丝编程,编程时序图参见图 6-4-2.为了防止进一步的验证; 将引脚 1 和引脚 10 的电平升至 VP,烧断最后两根熔断丝.在此操作过程中,引脚 20 不使 用。

L= 低电压输入电压 VIL H=高电压输入电压 VIH

HH=高电平编程电压 VIHH Z= 连至+5V 电源的 10K?电阻

24 系列(24 脚)PAL 器件的编程
24 引脚系列的 PAL 器件采用低电压、线性选择方法对其熔断丝进行编程.编程阵列分成两组,乘积项 0-39 为一组;乘积项 40-79 为另一组.编程操作时每个组的引脚配置图如 6-4-3 所示 ,为了对某个特定熔断丝 编程,按下列步骤选择输入行和乘积行: (1) 将输出禁止信号 OD (Output Disable)升到高电平 VIHH 。 (2) 参见下表 6-4-4,通过指定引脚 I9、 I8 、 I7、 I6 、 I5 、I4,、 I3 、 I2 、I1、 I0 和 L/R 的状态 来选择被编程熔断丝所对应的输入行。 (3) 通过指定引脚 A0、A1 、 A2 的状态来选择乘积行,参见表 6-4-5.24 系列 PAL 器件最多有 10 个输出 端,每个输出端最多对应 8 个乘积行, A0~A2 用来 选取 8 个乘积中的一行。 (4) 将引脚 20 即 VCC 酌电平升至 VIHH 。 (5) 根据选定的乘积行对相应的输出引脚 On 施加编程高点平 VIHH. 以对熔 断丝编程, Y 时序图如图 6-4-2 所示 。 (6) 将引脚 20 即 VCC 的电平降至 6.0V。 (7) 对引脚 CLOCK 施加脉冲信号,由输出引脚 On 验证编程结果。对于输出低电平有效的 PAL 器件,输 出应为?低‘;对于输出高电平有效的器件,输出应为?高‘。 (8) 将引脚 20 即 VCC 电平降到 4.5V,并重复步骤(7)。 (9) 如果输出验证未通过,可重复步骤(1)-(8),多达 5 次。 重复上述步骤便可以对全部熔断丝编程,编程时序图参见图 6-4-2.为了防止进一步的验证;将引脚 1 和引 脚 10 的电平升至 VP,烧断最后两根熔断丝.在此操作过程中,引脚 20 不使用。

L= 低电压输入电压 VIL H=高电压输入电压 VIH HH=高电平编程电压 VIHH

Z= 连至+5V 电源的 10K?电阻

逻辑设计的基本步骤
-设计构思 -建立布尔方程 -器件的选择 -建立设计文件 -汇编生成 JEDEC 文件 -仿真基本逻辑门 -运行仿真程序 -器件的编程

设计事例 1:组合逻辑设计-设计基 本逻辑门
1.设计构思
设计构思:将基本的逻辑门电路(非门、2 输入与门、2 输入或门、3 输入与非门、2 输入或非门、2 输入 异或门)集成在一片 PAL 器件上,构成组合逻辑电路,以节省空间和成本; 六个单独的逻辑功能,有 12 个输入端,6 个输出端,其基本的逻辑门为图 1;

当谈及―高电平有效‖或―低电平有效―时,即表明在器件的的输出端是否有一个附加的反向器(非门)。如 高电平有效的器件具有 ―与-或‖结构,而低电平有效的器件具有―与-或-非‖结构 ―高电平有效‖或―低电平有效―器件的结构差异

基本逻辑门管脚定义
输入端 A C、D F、G I、J、K M、N P、Q 输出端 B E H L O R

2.建立布尔方程
反向器:B = /A (1)

与门: E = C * D (2) 或门: H = F (PAL 器件实现的逻辑具有―积之和‖,一般每个乘积项放一行) + G (3) 与非门:L = /(I * J * K) = /I + /J + /K = /I + /J + /K (4) 或非门:O = /(M + N) = /M * /N (5) 异或门:R = P : +: Q = P * /Q + /P * Q (6) 符号 ― : +: ‖ 表示―异或‖操作 12 个输入端、6 个输出端;10 个乘积项

3.器件的选择
理解逻辑图 在 PAL 器件中,每个输入量都以―原‖和―反‖两种形式提供; ―乘积项‖又叫―与‖门。由于―与‖门的输入端可能有许多,画起来比较麻烦。因此,―乘积项‖常用带有―与‖ 门的水平线表示; ―输入线‖在逻辑图中是一些垂直线,它们是由输入量驱动的,直接连至―乘积项‖。 PAL 器件的选择 PAL12H6 有 12 个输入端 (1-12 脚) 6 个输出端, 和 其中四个输出端(引脚 14-17)有 2 个―乘积项‖连到―或―门, 而引脚 13 和 18 的输出端有 4 个―乘积项‖连到―或‖门,因此引脚 13 和 18 可用来实现比其它 4 个输出引脚 更复杂的逻辑功能。

输入的 ―原‖ 和 ―反‖、―乘积项‖ 和 ―输入线‖ 的表示

尽管在设计时不必关心这些功能在 PAL 器件内的具体实现形式,但设计者也许想知道.下图表示了反相器 和―与‖门在 PALl2H6 是怎样实现的。符号―X‖表示连接.不用的乘积项以小―与‖门内的?X‘符号来表示。

建立设计文件
可利用 edit 等编辑软件建立扩展名为. Pds 的设计文件:

第一步:给出说明文件:六个关键字
TITLE(设计的名称) ATTEN (模式名或编号) REVISION(版本号或等级号) AUTHOR(设计者姓名) COMPANY(公司名称)

第二步:使用芯片说明
CHIP 任一名字 (器件型号) 引脚列表

第三步:输入布尔方程
以关键字 EQUATIONS 开头 输入所有的布尔方程,输入顺序可以是任意的,但必须按引脚列表的顺序。 保存文件,推出编辑 TITLE Basic gates 设计名称 PATTERN P0000 模式名或编号 REVISION Palasm2 版本号号或等级号 AUTHOR Chen 设计者姓名 COMPANY Zhongshan Uni. 设计单位 DATE 10/8/2002 设计日期 CHIP GATE PAL12H6 ;PINS 1 2 3 4 5 6 7 8 9 10 管脚号 A C D F G I J K M GND 定义功能 ;PINS 11 12 13 14 15 16 17 18 19 20 管脚号 N P B E H R O L Q VCC 定义功能

EQUATIONS 布尔方程 B = /A ; Inverter E = C * D ; AND gate H = F ; OR gate +G L = /I ; NAND gate after applying DeMorgan‘s theorem + /J + /K O = /M * /N ; NOR gate after applying DeMorgan‘s theorem R = P * /Q ; XOR gate expanded SIMULATION 生成 JEDEC 文件 一旦设计文件的编辑完成后,便可对其进行汇编,其目的有两个: 确定文件中是否有基本语法,并进行程序简化 语法错误:打字、拼写、缺少说明、表达式残缺不全等 程序简化:用低有效器件去实现高有效的布尔方程、 乘积项太多、用无寄存器器件实现寄存器型的逻辑等 通过 EDIT 修改语法和程序简化中出现的问题, 重新运行。 汇编结果 得到一个汇编 JEDEC 文件,其扩展名为.dec; 同时可得到一个 XPLOT,扩展名为.xpt,它将设计实现与所用的 PLD 器件逻辑图联系起来。

本设计实例中 XPLOT 文件的一部分,反映出―反相器‖和―与‖门的实现

仿真基本逻辑门
验证了设计文件的正确性后,还应验证设计本身的正确性,通过仿真设计来完成。通过给出一系列命令和 事件,由软件来仿真,仿真结果会告知是否与期望的结果相符,若不符,问题在哪里?

仿真程序是整个设计文件的最后一部分,它不是必要的,但有利于排除设计中的错误和生成最终用于测试 的向量序列; 仿真部分有关键字 SIMULATION 引导。欲仿真的事件通过在有关的引脚上加一定的逻辑电平来指定,没 有特别指定的引脚将维持其现有的电平; 仿真过程中常用的命令和格式 SIMULATION ;引导 TRACE—ON A B C D ……. 和 TRACE —OFF 语句组 ;Look at the inverter (事件名称) ;说明语句 SETF A 设置高电平; SETF /C 设置低电平 ;设置逻辑电平 CHECK /B E…….. ; ;逻辑检查的期望值; 该语句可有可无,若有此句,执行程序时自动检查;若无此句,则须检查仿真结果; TRACE_OFF 语句组将仿真信号放在一起,生成另一文件,显示所有的命令和事件。

例如:仿真―非‖门: SETF A CHECK /B SETF /A CHECK B 仿真―与‖门 SETF /C /D CHECK /E SETF D CHECK /E SETF C /D CHECK /E SETF D CHECK E 仿真―或‖门 SETF /F /G CHECK /H SETF G CHECK H SETF F CHECK H SETF /G CHECK H ;set F, G LO ;verify H LO ;F stays LO, G goes HI ;H should go HI ;G stays HI, F goes HI ;H should stay HI ;F stays HI, G goes LO ;H should stay HI ;end of OR gate trace ; set C, D LO, ―0‖ ; verify E LO, ;C stays LO, D goes HI ;E should stay LO ;set C HI, D LO ;E should stay LO ;C stays HI, D goes HI ;E should now be HI ;end of AND gate trace ;set A HI, ―1‖ ;verify that B is LO, ―0‖ ; set A LO, ―0‖ ; verify that B is HI, ―1‖ ; end of inverter trace

基本逻辑门设计文件的模拟仿真程序

基本逻辑门设计文件的模拟仿真程序 增加了仿真部分后,设计文件必须重新加以处理,打如<F5>, 然后选按 6,即可实现对设计文件的重新处 理和对仿真程序的运行 设计文件中的仿真部分指定的每一事件都被执行,通过计算得到了输出结果。 如果使用了?CHECK‘语句,算得的输出与期望的输出加以比较。倘若两个值不符,则说明或者是期望的值 不对,或者是电路本身有问题。在任一种情况下,设计文件都必须加以修正以解决出现的问题,然后设计 文件必须重新处理。

仿真程序的主要输出是历史文件。此外,如果使用了?TRACE—ON?语句,也将产生跟踪文件。这两个文件 具有与原设计文件相同的名字,只是历史文件的扩展名为.HST,跟踪文件的扩展名为.TRF。 可以使用编辑程序来查阅历史文件和跟踪文件,或者将这两个文件打印出来仔细分析。应注意的是,历史 文件含有按引脚号递增顺序排列的每一信号和每一事件的结果,而跟踪文件包含的信号则是按 ―TRACE—ON‖命令所规定的次序排列的。 观察仿真输出的波形通常比较直瘸观。为了产生波形,打入<F7>;若要观察跟踪文件的波形,打入 6.当 波形出现在屏幕上以后、可以利用箭头键移动它们。竖条光标可用来排列各个事件;在检查了文件以后, 打入<ESC>,从波形产生器退出,然后再打<ESC>,退出主菜单。 仿真程序还将仿真结果转变成测试向量,并把测试向量附加到 JEDEC 文件中。于是就存在两个 JEDEC 文 件:一个带有测试向量,另一个则不带(.DEC)。新的 JEDEC 文件具有和原来的设计相同的文件名,只是扩 展名为.JDC,该文件可以用于提供功能测试的编程器.

续表 6-2-6

器件的编程
在对设计进行了仿真,并确信设计能正确工作后,就该对器件编程了。编程分为几步,但编程器的具体操 作则主要取决于所用编程器的型号。 在接通编程器电源后的 第一步是选择器件的型号,因而也就决定了编程器需要哪些编程数据.器件型号通常从主菜单上选择,或 通过输入器件代码来选择。 第二步,必须下载 JEDEC 文件。因此,通常用 RS-232 电缆连接编程器的端口和计算机的串行口(COM1), 并验证通讯协议的正确性。然后利用下载软件操作。 如果使用的编程器能执行功能测试,而你又希望进行这些测试,就应下载.jdc 文件,否则应下载.jed 文件。

第三步,编程器接收好数据后,将器件插入合适的插座中;按编程器的使用功能进行编程,该过程对器件 内部的连线进行编程和验证,而且如果使用.jec 文件,还将进行功能测试 最后,在编程完成之后,从编程器中取出器件,将器件插入设计系统或试验板上进行验证。

设计实例 2:寄存器型逻辑设计-设 计基本触发器
- 设计构思:设计所有基本类型的触发器(D、T、J-K、R-S)在同一块 PAL 器件上; - 先通过简略地回顾 D 型触发器的主要性能,来构思这一设计.然后再给出 T、J-K 和 R-S 触发器的设计 思。我们将只使用 D 型触发 器件; - 建立触发器的布尔方程; - 完成设计文件; - 仿真基本触发器; - 器件编程。 器,其它逻辑功能的触发器用 D 型触发器来构造。同时决定采用哪类 PAL

基本触发器的逻辑图

组合型方程: DT = D 寄存器型方程: DT : =D

建立触发器的布尔方程
D 型触发器的数据输入只有在时钟脉冲信号到来后才出现在输出端。它的基本传递函数可以表示成: DT: =D 输出信号 DT (D Trace) 输出补偿信号 DC (DC:= /D) 式中使用―:=‖而不是??=‖,表示这一方程输出是被寄存的; 触发器需增加―同步预置‖和―清零‖功能。这由 2 条引脚 PR 和 CLR 来完成。为了增加这些功能: 对触发器输出原信号 DT,每一个乘积项加上―/CLR‖因子,同时增加一个仅由 PR 组成的新乘积项; 对输出的补偿信号 DC,每一个乘积项加上―/PR‖因子,并增加一个仅由 CLR 组成的新乘积项; 因此,带有清零和预置功能的 D 型触发器的布尔方程为: DT:=D * /CLR+PR DC:=/D * /PR + CLR 真值表 这样,当触发器清零时,对于高电平有效的触发器没有乘积项为真,因而输出 DT 为―低‖电平;对于低电 平有效的触发器,其最后一个乘积项为真,因而其输出 DC 为―高‖电平。同样分析,对于触发器的预置功 能会出现相反的情况。 设计中还有一个漏洞,即如果预置和清零操作同时发生会怎样? 根据现在的布尔方程,两个输出 DT 和 DC 均为―高‖电平。这是无意义的,因为两个输出信号应当是互补的。为了纠正这一错误,可以规定清零操作 优先于预置操作。为此,只需在原输出 DT 的每一乘积项加上因子/CLR。由此可得清零操作优先的 D 型触 发器布尔方程:·

DT:= D * /CLR + PR * /CLR DC:= /D * /PR + CLR 同样,可以推导出 T 触发器的布尔方程: (真值表) TT:= T * /TT * CLR + /T * TT * /CLR+ PR * /CLR TC:= T * /TC * /PR +/T * TC * /PR + CLR 在这些方程中,有的信号本身出现在右边的函数表达式中,这是由于触发器的输出反馈信号用于确定触发 器的下一个状态。 例如 TT 方程中的反馈等效图为:

同样对其它触发器可推导出: JK 触发器(真值表) JKT:= J*/JKT*/CLR+/K*JKT*/CLR+PR*/CLR JKC:= /J*/JKC*/PR+K*JKC*/PR+CLR RS 触发器(真值表) SRT:= S * /CLR + /R * SRT * /CLR + PR * /CLR STC:= R * /PR + /S * SRC * /PR + CLR PAL 器件的选择 我们选择了 PAL16R8(需要 9 输入,8 输出) 16 个输入,8 个输出 它是输出低电平有效 具有时钟引脚 CLK 和输出选通引脚 OE 输出引脚按下图(6-3-1)那样定义,输出引脚都用斜杠―/‖定义,表示它们是―反向的‖或―负‖的引脚; 根据管脚定义和 PAL16R8 的逻辑图建立基本触发器设计的说明文件 建立设计文件

PAL16R8 逻辑图

完成设计文件 基本触发器设计的说明部分( 1 )

触发器布尔方程部分 ( 2 )

仿真基本触发器
在修正了设计中的错误,并处理了设计文件后,就应编写仿真部分。除了一条用于简化时钟信号操作的新 指令外,我们具有所需的一切仿真指令。可以将 SETF 指令和时钟引脚一起使用,但那样的话,时钟信号 的每一改变都需要两条指令:一条将时钟信号置成―高‖,另一条使之变回―低‖。

另一种办法是使用 CLOCKF 指令。这样,使用一条指令就能将脉冲加至时钟引脚。当然,寄存器型输出的 状态将在时钟信号的上升沿到来之后才会改变。由于时钟引脚巳命名为 CLK,可用指令:CLOKF CLK 来 同步器件。 因此,可用下列指令来仿真 D 型触发器的原信号: SETF D ;置 D 输入为高 CLOCKF CLK ;时钟信号同步器件操作 CHECK DT ;验证输出 DT 是否为高 SETF /D ;置 D 输入为低 CLOCKF CLK ;时钟信号同步器件操作 CHECK /DT ;验证输出 DT 是否为低 同样,对其它触发器,可进行类似的仿真处理 在寄存器型设计进行仿真以前,必须初始化两项: 时钟 CLK:由于―CLOCKF‖语句在时钟引脚上施加一个―高-低‖脉冲,因而首先必须确定开始时时钟是否被 置成―低‖电平。 输入选通引脚 OE:必须选通输出端,这通过将 OE 引脚置成―低‖电平来实现。 SETF /CLK /OE ;初始化 CLK 和 OE 初始化触发器,以验证 CLR 操作是否正确地工作。初始化工作由语句完成: SETF CLR /PR ;置清零引脚 CLR CLOCKF CLK ;触发器清零 CHECK /DT DC /TT TC /JKT JKC /SRT SRC ;验证触发器输出 SETF /CLR ;撤除清零信号 SETF PR 、SETF /PR ;设置、验证和去除预置 SETF PR CLR、SETF /PR /CLR ;设置、验证和去除清零优先 此后,就能够仿真整个电路了。设计的仿真部分示于下表,该文件的仿真操作与基本逻辑门设计中的仿真 操作相同.仿真结果可以通过检查历史文件或跟踪文件获得,也可通过观察产生的波形得到。

基本触发器模拟仿真部分( 1 )

基本触发器模拟仿真部分( 2 )

基本触发器完整的设计文件 ( 1 )

基本触发器完整的设计文件 ( 2 )

基本触发器完整的设计文件 ( 3 )

器件编程 在对基本触发器的设计进行了仿真,并确定设计能正确工作后,就可对器件进行编程,对器件编程的大致 步骤与示例 1-基本逻辑门设计 相同。

D 触发器
1. D 触发器真值表
Dn Qn+1

0 1

0 1

2. 考虑 ― 清零 ‖ 和 ― 预置 ‖ 后的 D 触发器真值表
清零 (CLR=1) 无预置(PR=0) DT:=D*/CLR+PR DC:=/D*/PR+CLR 0 1 预置 (PR=1) 无清零(CLR=0) 1 0

3. D 触发器的布尔方程:
DT : = D * /CLR + PR DC : = /D * /PR + CLR

JK 触发器
1.JK 触发器真值表
J 0 0 1 1 K 0 1 0 1 Qn+1 Qn 0 1 /Q

2. 考虑 ― 清零 ‖ 和 ― 预置 ‖ 后的 JK 触发器真值表
J 0 0 1 1 K 0 1 0 1 JKT JKT 0 1 /JKT

3.JK 触发器的布尔方程:
JKT : = J * /JKT + /K * JKT JKC : = /J * /JKC + K * JKC

RS 触发器
1. RS 触发器真值表
R 0 0 S 0 1 Qn+1 1 0

1 1

0 1

Qn X

2. 考虑 ― 清零 ‖ 和 ― 预置 ‖ 后的 RS 触发器真值表
R 0 0 1 1 S 0 1 0 1 SRT SRT 1 0 X

3. RS 触发器的布尔方程:
SRT:= S + /R * SRT SRC:= R + /S * SRC

T 触发器
1. T 触发器真值表
Tn 0 1 Qn+1 Qn /Qn

2.考虑―清零‖和―预置‖后的 T 触发器真值表
T 0 1 TT TT /TT

3.T 触发器的布尔方程:
TT:= T * /TT + /T * TT TC:= T * /TC +/T * TC

第五章 常用数字部件的设计
利用 PLD 器件可以构成具有各种逻辑功能的数字部件,如编/译码器、计数器、加法器、移位寄存器等; 这些数字部件与适当的定时系统、控制系统以及接口电路相结合,便能构成实现预(指)定逻辑功能的复杂 数字系统。

本章将详细地介绍各种常用的数字部件的设计方法。
-组合型逻辑设计 -寄存器型逻辑设计

-状态机设计被广泛应用于时序控制逻辑中,并构成数字系统的核心,因此本章也将介绍状态机的基本 理论及详细的设计过 程除特别声明外,所有设计实例均使用 PALASM2 设计软件进行设计。

组合逻辑设计
-编码器和译码器 -多路转换器 -加法器和算术运算电路 -锁存器

寄存器型逻辑设计
-同步寄存器型设计 -异步寄存器型设计

状态机设计
-状态机的基本功能和结构 -状态机的应用 -状态机的三种表达方式

1 组合逻辑设计 组合型逻辑的设计大致可以分成五个主要的分支:
-编码器: ( 2n 个输入 ? 1 个 n 位输出) -译码器: ( 1 个 n 位输入? 2n 个输出 ) -多路转换器: (从几个输入信号中选通一个作为单独的输出信号) -比较器: (比较两个二进制数相对大小) -锁存器: (用于暂存地址或数据) -加法器和算术逻辑电路: (执行算术和逻辑运算) 我们将重点讨论实现这些逻辑电路的设计方法,探讨为完成特定的逻辑功能,在选择合适的 PLD 器件时, 应满足什么要求。同时,我们也介绍对设计进行优化应采取的方法.

编码器和译码器
编码和译码是数字系统中两个最重要的功能。 数据的编码和译码广泛应用于数字通信以及计算机外围设备中。当然,在这两个应用领域中,采用了各种 各样复杂的编码和译码技术 编码器:它将依据 2n 个不同的输人数据信息,产生对应的 n 位输出信息。一个 n 位的二进制代码可以用来 表示 2n 个不同的编码数据,通过一个简单的组合型编码器可实现 译码器:其功能与编码器刚好相反,它将一个 n 位的二进制码变换成 2n 个不同输出项中的一个。译码器也 是一种组合型电路

C0 = /A * /B * C * /D C1 = /A * B * /C * /D +/A * /B * /C * D + /A * /B * /C * D C0 = /A * /B * C * /D C1 = /A * B * /C * /D +/A * /B * /C * D + /A * /B * /C * D

简单编码器的 PALASM2 设计文件:
TITLE PATTERN REVISION AUTHOR COMPANY DATE SIMPLE_ENCODER ENCODE.PDS 01 CHEN ZSU 11/17/02

;This is an example of a simple encoder. The output C1and C0 are generated ;based upon inputs A, B, C, and D. The function truth table is following: ;A ;1 ;0 ;0 ;0 B 0 1 0 0 C 0 0 1 0 0 0 0 1 D L L H H C0 L H L H C1

CHIP ENCODER PAL16H2 A NC B NC C NC D NC NC C1 NC NC NC NC NC NC GND VCC

NC C0

EQUATIONS C1 = /A * B * /C * /D + /A * /B * /C * D C0 = /A * /B * C * /D +/A * /B * /C * D SIMULATION

TRACE_ON SETF A /B /C /D CHECK /C0 /C1 SETF /A B /C /D CHECK /C0 C1 SETF /A /B C /D CHECK C0 /C1 SETF /A /B /C D CHECK C0 C1 TRACE_OFF

优先权编码器
上例中假定 A、B、C、D 中每次只有一个为―高‖电平,如果输入信号中同时有 2 个或以上的信号为―高‖电 平,就会引起冲突。因此,必须对每一个输入信号指定优先权。 当具有较高优先权的输入信号为―高‖电平有效时,所产生的输出代码就分配给该输入信号。 优先权编码器是一个类似于通用编码器的组合电路块,不同的是其输入信号指定了优先权。 -在状态机应用中,它用来检测具有最高优先权的事件是否发生。 -在微处理器应用中, 用作的中断控制器,检测具有最高优先权的中断。 -在总线控制中,其用途是允许所选取的总线通道工作.

四位编码器的框图、真值表和布尔方程

译码器
译码器的功能与编码器刚好相反,它将一个 n 位的二进制码变换成 2n 个不同输出项中的一个。 译码器也是一种组合型电路. 设计思路是:对于唯一的输入码,所有输出项中最多只有一个有效。当输入信号为四位二进制码(n=4)时, 译码器将有(24)16 个输出。 低电平有效的 4 - 16 译码器真值表如下图:每次只有一个输出信号有效,当输入信号重新组合时,对应的 另一个输出有效,最初的输出信号返回无效状态。 译码器的布尔方程可以从真值表写出:

4-16 译码器真值表

译码器的布尔方程
/Q0 = /D * /C * /B * /A /Q1 = /D * /C * /B * A /Q2 = /D * /C * B * /A /Q3 = /D * /C * B * A /Q4 = /D * C * /B * /A /Q5 = /D * C * /B * A /Q6 = /D * C * B * /A /Q7 = /D * C * B * A /Q8 = D * /C * /B * /A /Q9= D * /C * /B * A /Q10 = D * /C * B * /A /Q11 = D * /C * B * A /Q12 = D * C * /B * /A /Q13 = D * C * /B * A /Q14 = D * C * B * /A /Q15= D * C * B * A

从真值表中可见,对于所有可能的输入组合,不可能出现全部输出均为无效状态的情形。实际上,许多设 计都需满足使全部输出无效的条件。这可以通过对所有的输出―与‘‖门设置使能信号(线)来实现。诸如此类 的设计只要在已推导出的布尔方程中添加使能信号(―与‖)即可, 无需重新再列真值表。 设计编码器/译码器时的器件选择: 编码器:大量的输入引脚,较少的输出引脚; 译码器:较少的输入引脚,大量的输出引脚 输入/输出引脚数 I/O 引脚数 寄存器数目/乘积项数目 器件速度/器件功耗 输出极性控制 组合型和寄存器型 PAL 器件的主要技术性能指标可查表,据设计所需的输入端数目和输出端数目,可以从 表中选择合适的 PLD 器件。 PAL20R4 适用于优先权编码器的 PAL 器件,而 PAL6L16 则适宜于译码器应 用 。

带有使能功能的 4-16 译码器设计文件

多路转换器
多路转换器也称为数据选择器。 它是广泛应用于数字系统中的一种组合电路。 多路转换器从几个输入信号中选通一个作为单独的输出信号, 具体选择哪一个输人则由一组选择线确定。 传统的用法:在数据通信中用作分时多路转换开关,即它在各个不同的时间间隔内,选取不同的输入线作 为单独的数据传输线。在接收数据时,再通过多路分配(译码)器对数据进行译码。 多路转换器设计方法是真值表法:如一个 3 输入 1 输出(3:1)多路转换器,其选择信号是 A 和 B。根据这两 个选择码的不同组合,3 根输入线中的一根送去输出。

3 输入 1 输出(3:1)多路转换器 真值表:

布尔方程:
/O1Y = /B * /A * /I1C0 + /B * A * /I1C1 + B * /A * /I1C2

上述方法可推广于其它多路转换器上,2n:1 转换器(2n 个输入,1 个输出),同时需要 n 个选择线 (s0、 s2…..sn-1), 布尔方程: n=2: Y = /S1*/S0*(I0) + /S1*S0*(I1) + S1*/S0*(I2) + S1*S0*(I3) N=3: Y = /S2*/S1*/S0*(I0) +/S2*/S1*S0*(I1) +/S2*S1*/S0*(I2) +/S2*S1*S0*(I3) +S2*/S1*/S0*(I4) +S2*/S1*S0*(I5) +S2*S1*/S0*(I6) +S2*S1*S0*(I7) N=4:………

比较器
比较器是一个用来比较两个二进制数相对大小的组合电路; 一个基本比较器仅仅确定两个二进制数 A 和 B 是否相等,并输出 EQL 信号(表示 A=B); 而幅值比较器 还输出 LES 信号(表示 A<B)和 GTR 信号(表示 A>B) 比较器设计方法也是真值表法 从真值表导出比较器的布尔方程 然后选择比较器的器件 设计程序

二位幅值比较器的真值表:

2 位幅值比较器的布尔方程:
EQL= /A2*/A1*/B2*/B1 + /A2*A1*/B2*B1 + A2*/A1*B2*B1 + A2*A1*B2*B1 LES = /A2*/A1*/B2*B1 + /A2*/A1*B2*B1 + /A2*/A1*B2*B1 + /A2*A1*B2*/B1 + /A2*A1*B2*B1 + A2*/A1*B2*B1 = /A1*B2*B1

+ /A2*/A1*B1 + /A2*B2 GTR = /A2*A1*/B2*/B1 + A2*/A1*/B2*/B1 + A2*/A1*/B2*B1 + A2*A1*/B2*/B1 + A2*A1*/B2*B1 + A2*A1*B2*/B1 = A1*/B2*/B1 + A2*A1*/B1 + A2*/B2

比较器的布尔方程
比较器所需的乘积项数目是与要比较的位数直接相关联的。 对于 LES(小于)和 GTR(大于)功能, 需要的乘积 项数目取决与两个被比较的数的位数以及它们的值。LES 和 GTR 的布尔方程可归纳为: n=2 (2 位二进制数比较) LES = B2 * /A2 + (B2 :+: /A2) * B1 * /A1 GTR = A2 * /B2 + (A2 :+: /22) * A1 * /B1 n 位二进制数比较 LES = Bn * /An + (Bn :+: /An) * (Bn-1 :+: /An-1) * Bn-2 * /An-2 + …… + (Bn :+: /An) * Bn-1 :+: /An-1) *…. * (B2 :+: /A) * B1 * /A1 GTR = An * /Bn + (An :+: /Bn) * An-1 * /Bn-1 + (An :+: /Bn) * (An-1 :+: /Bn-1) * An-2 * Bn-2 + …….. + (An :+: /Bn) * (An-1 :+: /Bn-1) *……* (A2 :+: B2) * A1 * B1

比较器的器件选择
一个 n 位比较器需要 2n-1 个乘积项。只有能够提供大量乘积项的 PLD 才能适合构成比较器 大部分 PLD 器件不可能提供如此多的乘积项 由于比较器需要―异或‖功能,因此 PLD 器件同时能够提供―异或‖功能 PAL16X4 器件可有效的构成比较器

加法器和算术运算电路
数字计算机要进行各种各样的信息处理工作,其中最常用的是各种算术运算,而最基本的算术运算是两个 二进制数字的相加。数字计算机中的算术逻辑单元 ALU(Arithmetic Logic Unit)就是执行算术和逻辑运算的 一个装置。 二进制加法器:把两个输入的二进制数相加,并产生二进制的和: 半加器:能对两个一位二进制数进行相加,而求得―和‖及―进位‖的逻辑电路; 全加器: 如果在对两个一位二进制数相加时, 还要考虑比它低一位来的进位, 并得到―和‖及新的进位输出。

1 位二进制全加器的真值表:

全加器的布尔方程:
Y = A * /B * /C COUT = A * CIN + /A * /B * CIN + A * B + /A * B * /CIN + B * CIN Ripple 加法器(并行加法器):将若干个全加法器串联起来便构成较大的加法器,本级全加器的输出进位 作为下级全加器的输人进位。 Ripple 加法器的优点是它们可以构成任意长度的加法器;其缺点是其进位信号是由低位向高位逐级向前传 递的,即来自最低有效位的进位信号必须经过所有全加器的传输后,才能到达最高有效位.较长的进位传 输延时影响了加法器的工作效率. 为了提高 Ripple 加法器的运算速度,可以采用附加的组合逻辑电路,将进位信号同时送到各级全加器的进 位输入端,这种方法常常称为先行进位或并行进位: 先行进位全加器的布尔方程为: Y = A:+: B :+: CIN COUT = A * B + (A+B) * CIN 对于四位先行进位全加器 Y0 = A0 :+: B0 :+: CIN Y1 = A1 :+: B1 :+: C0 Y2 = A2 :+: B2 :+: C1 Y3 = A3 :+: B3 :+: C2 C0 = A0 * B0 + (A0+B0) * CIN C1 = A1 * B1 + (A1+B1) * (A0+B0) + (A1+B1) * (A0+B0) * CIN C2 = A2 * B2 + (A2+B2) * (A1+B1)

+ (A2+B2) * (A2+B2) * (A0+B0) + (A2+B2) * (A2+B2) * (A0+B0) * CIN 对于 n 位先行进位全加器 Ym= Am :+: Bm :+: Cm-1 第 m 级全加法器的和 Cm-1 = Am-1 * Bm-1 第 m-1 级的进位 + (Am-1+Bm-1) * (Am-2+Bm-2) +….. + (Am-1+Bm-1) * (Am-2+Bm-2) * …(A0+B0)*CIN Cm = Am * Bm 第 m 级的进位 + (Am+Bm) * (Am-1+Bm-1) +….. + (Am+Bm) * (Am-1+Bm-1) * …(A0+B0)*CIN

加法器的器件选择
构成先行进位加法器需要很多的乘积项.一个四位先行进位加法器的进位信号 36 个乘积项(以―积之和‖的 形式表示),而最高有效位 Y3 就需要 28 个乘积项. 现有的标准组合型 PAL 器件均无法实现这种设计。每个输出具有如此多乘积项的 PLD 不仅工作速度慢, 而且芯片利用率很低。 PALl6X4 中提供了称之为―位-对‖译码的电路,是专为算术运算而设计的。其结构实现三级不同的逻辑。 第一级逻辑是输入与反馈之间的―位 - 对‖译码; 第二级逻辑是标准的―与 - 或‖阵列; 第三级逻辑是为选定的输出端提供―异或‖门。 严格地讲,加法器是组合型功能部件;PALl6X4 还是提供了四个寄存器型输出端.这些寄存器不仅用来 存储运算结果,而且用于暂存两个被加操作数中的一个,另一个操作数则直接由输入端提供. ―位—对‖译码功能是上述逻辑得以实现的关键。存储在寄存器中的第一操作数(A)和输入端送来的第二操作 数(B)的所有位都进行―位—对‖译码。―位—对‖译码的结果分别为 A+B,/A+B、A+/B 和/A+/B,它们再作为 输入反馈到―与‖阵列.这四个输入项有 16 种―与‖的组合方式。每一种组合便形成―与 - 或‖阵列中的一个乘 积项。

16 种可能的输入逻辑组合

PAL16X4 器件逻辑与加法器逻辑方程的关系

四位加法器的设计文件

锁存器
PAL 器件常常用来构成锁存器。 锁存器通常用于暂存地址或数据。 PLD 器件锁存器在地址译码器中的应用, 使译码后的信号在某段时间内有效。锁存器在异步数字系统的设计中非常有用,并被用于实现控制和仲裁 功能. 锁存器是简单的组合逻辑电路,其输出是输入和反馈信号的函数. 常用的锁存器是 D 型锁存器,当锁存使能控制信号(LEN)为高电平时, 锁存器工作在―透明方式‖, 输入信号 /D 送至输出端。当控制信号 LEN 为低电

平时, 输人数据便锁存在输出端,直到 LEN 又变回到高电平。 在典型的地址译码器中,输入是各地址信号的组合,输出是地址的译码信号。在大多数微处理器中,地址 译码器的输出锁存信号称为地址选通 AS(Address Strobe)信号或地址锁存使能 ALE(AddressLatch Enable)信 号。

D 锁存器的真值表

D 锁存器的布尔方程 及逻辑图 /Q = /D * LEN + /Q * /LEN

险态(Hazards)
-即使一个组合逻辑电路的设计没有问题,由于险态的存在仍可能使其输出逻辑产生错误. -险态(或称冒险态)是一种持续时间很短的虚假输出信号(或称为毛刺),产生险态的原因是电路存在着传 输延迟时间。 -组合逻辑电路存在的互补输出功能:当输人状态变化时,两个互补的输出不能同时响应输入信号而改 变状态。虽然险态最终并不影响电路的输出端稳定在正确的状态,但在输入状态变化的瞬间,输出端会出 现假脉冲或毛刺。

对于锁存器来讲,险态是很危险的,因为毛刺会使错误的数据被锁存,通常把组合险态分为 两类:

静态险态:组合逻辑电路的输出端在输入变化前后具有相同的状态。

静 1 险态(或称 1 态冒险):输入状态变化前后,输出均为?0‘,而在两个输出‘0?之间出现错误的输出?1‘(即输 出时 输出 序为 0-1-0) 时序为 1-0-1) 静 0 险态(或称 0 态冒险):输入状态变化的前后,输出均为?1‘,而在两个输出‘1?之间出现错误的输出?0‘(即

动态险态:在输入状态变化的前后,电路的输出端具有不同的状态,并且在达到最终稳定状态之前,输出 端的状态要发 生三次或三次以上的奇数次变化。

在进行逻辑设计时,必须分析所设计电路的过渡过程,检查其中是否存在险态。如果存在的话,就要设法 避免和消除态. 卡诺图是寻找和消除险态的一个理想工具。在寻找静 0 险态或静 1 险态时,只需分别将含 0 的方格或含 1 的方格圈起来。如果用来形成每个乘积项的方格圈相邻但不相交,则险态可能存在 。 在 PLD 设计中,通过增加一个额外的蕴涵乘积项便能消除险态,这个乘积项在卡诺图中用点划线方格圈来 表示。其布尔方程修正为: /Q = /D * LEN + /Q * /LEN + /D * /Q (蕴涵乘积项)

2 寄存器型逻辑设计
组合型逻辑电路的输出与系统时钟无关 ;而寄存器型逻辑设计与时序有关,只有当新的时钟脉冲信号到来 时,电路的输出状态才发生变化,否则输出保持原状态不变。

能保持前一输出值的存储单元称作触发器,一组触发器构成一个寄存器,当然单个触发器也称为寄存器 。

PLD 器件类型:单块 PLD 芯片中混合着组合型输出端和寄存器型输出端,可进行组合型逻辑设计和寄
存器型逻辑设计; 同时提供寄存器型和组合型输出引脚 提供可编程的寄存器旁路功能,通过对输出编程 使其成为组合型或寄存器型输出器件选择的一般考虑 输人引脚数 输出弓 I 脚数 I/O 引脚数 器件速度 器件功耗 寄存器数目 每个输出的乘积项数 输出极性控制

在大多数组合型逻辑设计,传输延时 tpd,保证了数据从输人端传输到输出端所需的足够长时间; 在寄存器型逻辑设计中,必须考虑时钟的影响,这种影响通过最大频率 fmax 来反映。不同的设计,其最 大频率不同。 由于 PLD 器件具有各种灵活的结构,对于不同的参数,可以选择不同的器件结构来满足要求。关于寄存器 型逻辑设计,主要有三类设计: -单纯的寄存器型逻辑设计 -系统构造 -数据通道应用

单纯的寄存器型逻辑设计:为了决定寄存器的后一逻辑状态,在时钟脉冲到来前,输入信号必须出现
在输入端。所以,时钟脉冲的周期取决于: 寄存器本身的内部延时 tsu 寄存器输出经过组合逻辑反馈到寄存器输入端的延时 tcF 最大频率 fmax = 1/(tsu + tcF) 示意图:

系统构造 :由一个公共时钟信号对一些带寄存器的逻辑部件(包括 PLD 器件)进行控制, 这可能是最普遍的
一种结构。 寄存器的输出从器件外部反馈到器件输入端,或者馈送到第二个器件的输入端 建立输入状态所需的最短时间等于时钟一输出延时 tCLK 和外部信号在寄存器输人端的建立时间 tsu。 最大频率 fmax = 1/(tsu + tCLK)

示意图:

简单的数据通道应用:输人数据送到触发器,在时钟脉冲的控制传输到输出端,电路中不存在反馈。
最大频率取决于: 数据建立时间 tsu 数据保持时间 th 同时应受到最小时钟周期(TwH+tWL)的严格限制 无反馈最大频率 fmax = 1/(tsu +th) 或 1/ (TwH+tWL)

示意图:

触发器类型 :
从功能上看,触发器有四种基本类型,即 R-S、J-K、T、和 D 型触发器,其中 D 型最流行。 几乎全部 PLD 器件都提供了基本 D 型触发器,因为 D 触发器最易于设计和应用。 LD 器件还提供了将输出寄存器构造成 D、T 、J-K 或 R-S 触发器的能力。在某些可构造触发器可以减少设 计所需的乘积项数 同步与异步的比较 同步时序网络的设计:所有寄存器的时钟输入端均连至一个公共时钟信号,这是寄存器型设计中最通用的 异步时序网络的设计:触发器的时钟输入端没有连在一起,一个触发器的时钟信号可能由另一个触发器的 输出提供。

同步寄存器型设计
计数器 二进制计数器 模数计数器 带译码功能的计数器 Gary 码计数器 Johnson 计数器 移位寄存器 Barrel 移位器 计数器设计

计数器:它是最常用的时序电路。在时钟脉冲的控制下,输出状态按预定不变的顺序周期性变化的一组
寄存器 同步计数器的模型:全部触发器具有一个公共的时钟信号,其输出反馈到一个组合型逻辑阵列,该阵列又 称为下一计数状态译码 CLK

4 位计数器的时序图

4 位计数器的状态图 -小圆点表示计数的状态 -带箭头的弧线表示从一个状态到另一状态的方向

4 位二进制计数器设计

4 位二进制计数器的状态转换真值表

从真值表推导出布尔方程 X3: = /X3 * X2 * X1 * /X0 +X3 * /X2 * /X1 * X0 +X3 * /X2 * X1 * /X0 +X3 * /X2 * X1 * /X0 +X3 * X2 * /X1 * /X0 +X3 * X2 * /X1 * X0

+X3 * X2 * X1 * /X0 X2、X1、X0 可类推 最后可简化为:X0:=/X0 X1:=X1:+:X0 X2:=X2:+:(X1 * X0) X3:=X3:+:(X2 *X1 *X0) n 位向上二进制计数器的通用方程 Xn: = Xn:+:(Xn-1 *Xn-2 * …….*X0) 对高电平有效的 PLD /Xn: = /Xn:+:(Xn-1 *Xn-2 * …….*X0) 对低电平有效的 PLD n 位向下二进制计数器的通用方程 Xn: = Xn:+:(/Xn-1 * /Xn-2 * …….* /X0) 对高电平有效的 PLD /Xn: = /Xn:+:(/Xn-1 * /Xn-2 * …….* /X0) 对低电平有效的 PLD

4 位双向计数器的设计文件

二、二进制计数器的选择
首先考虑二进制计数器的布尔方程中利用的―异或‖功能 ―异或‖功能以―积之和‖的逻辑形式实现,常常需要大量的乘积项 大多数标准的 PLD 器件的输出只提供 8 个乘积项,仅有部分器件的输出能够提供 8 个以上的乘积项,如下 表 1 所示 有些 PLD 器件在输出端提供专用的―异或‖门,使逻辑功能以‖与-或-异或―的形式实现,从而减少了所需的 乘积项。如下表 2 所示

二进制计数器的串联 没有 PLD 器件能够提供 10 个以上的输出端来构成计数器,常将两个计数器串联构成大型计数器, 每个计数器都带有计数使能控制信号,当低位计数器计满时就产生一个额外的输出信号,该信号用作较高 位计数器的使能控制信号

触发器的选择
迄今为止所讨论的设计都是在带有 D 型触发器的 PLD 器件内完成的。如果使用一个具有 J-K 型或 T 型寄 存器输出端的 PLD 器件来进行计数器的设计,其设计的布尔方程可以直接从状态转换真值表中推出 对于 J-K 型寄存器,当输人信号 J 变为―高‖时,输出有效;当输入信号 K 变为―高‖时,输出则无效;对于 翻转寄存器,每来一个时钟脉冲,寄存器的输出状态改变一次,也就是翻转一次。

通常,用 J-K 型寄存器和 T 型寄存器来构造计数器比用 D 型寄存器需要较少的乘积项。使用哪种类型的触 发器最有效取决于所需的状态转换次数或者状态维持次数。当计数器从一个计数状态变到另一个计数状态 时,每个输出位的状态或者改变,或者保持不变。

D、J-K 和 T 型触发器的状态转换真值表

用 J-K、T 触发器构成二进制计数器的布尔方程

三、模数计数器

一个计数器所具有的指定状态的个数称为计数器的模数,典型的 n 位二进制计数器的最大模数是 2n. 模数不等于 2 的幂的计数器称为模数计数器 对于某些需要精确定时控制的应用,则常常选用模数计数器,模数计数器还用于波形产生器和仲裁逻辑电 路. BCD 码计数器便是一个模数计数器。当计算机要输出十进制数据时,就要用到它。—个 4 位二进制计数器 的计数范围是 0-15,而一个 BCD 码计数器只计到模数 10 模数计数器最直观的设计方法是:通过计数器的状态转换真值表直接推导出布尔方程.

BCD 码计数器的状态转换真值表

当计数器偶然进入 10 到 15 中的一个未指定状态时, 会发生什么情况? 这些未指定的状态是非法计数状态, 因此须采取措施使计数器从非法状态变回合法状态。下表是计数器由非法状态变回计数状态 0 的状态转换 真值表。

具有非法状态恢复功能的 BCD 码计数器的状态序列

对于低电平有效的输出,可直接从两个状态转换真值表推出布尔方程,并运用卡诺图或 PALASM2 软件中 的简化程序对其进行化简:如/Q3 的布尔方程 /Q3 : = /Q3 * /Q2 * /Q1 * /Q0 +/Q3 * /Q2 * /Q1 * Q0 +/Q3 * /Q2 * Q1 * /Q0 +/Q3 * /Q2 * Q1 * Q0 +/Q3 * Q2 * /Q1 * /Q0 +/Q3 * Q2 * /Q1 * Q0 +/Q3 * Q2 * Q1 * /Q0 +Q3 * /Q2 * /Q1 * Q0 +Q3 * /Q2 * Q1 * /Q0 +Q3 * /Q2 * Q1 * Q0 +Q3 * Q2 * /Q1 * /Q0 +Q3 * Q2 * /Q1 * Q0 +Q3 * Q2 * Q1 * /Q0 +Q3 * Q2 * Q1 * Q0 简化为 /Q3 = /Q3 * /Q2 + /Q3 * /Q1 + /Q2 * Q0 + Q3 * Q1 + Q3 * Q2 类推可得/Q2、/Q1、Q0

用 PLD16R8 完成的双 BCD 码计数器的逻辑

模数计数器的串接
对于较大的模数计数器,由状态转换真值表直接推导布尔方程,既繁琐又费时.一种可行的设计方法是把 较大的模数计数器分成两个较小的模数计数器,不仅设计过程得到简化,而且有助于减少所用的乘积项数 目 一个模 360 的计数器可以直接用 9 个寄存器构成(512=29).另一种实现方法是把它分成串接的两个计数 器:一个 4 位计数器(从 0 计到 14)和一个 5 位计数器(从 0 计到 23),即 15x24 = 360 如下图所示,当计数到 360 时,输出信号 MOUT 有效。该设计需要 9 个输入端,9 个输出端,1 个时钟引 脚,1 个加载(LOAD)引脚,1 个复位(RESET)引脚和 1 个 MOUT(模数输出信号)引脚。

带译码功能的计数器
前面讨论了产生二进制输出序列的计数器。大多数计算机外围设备需要预先确定好控制信号序列.通过组 合逻辑电路对二进制序列译码便能得到定制控制序列。

Gray 码也是计数器常用的输出代码。它的特点是。对于每个新的计数值,只允许一个输出位翻转(状态变 化).下表表示由二进制码产生 Gray 码的状态转换真值表.只要使用输出译码电路,就可以将一个 4 位二 进制计数器变成输出码为 Gray 码的 4 位计数器。

由该状态转换真值表可导出组合输出译码器的布尔方程如下: G3 =X3 G2 = X3:+:X2 G1 = X2:+:X1 G0 = X1:+:X0

Gray 码的计数器

Gary 码计效器的特点是每来一个时钟脉冲,只有一个输出位的状态发生变化。 采用组合译码电路可以容易地对 Gary 码计数的输出信号进行译码,而且不出现险态。

应用在:
广泛用于产生系统时钟; 在高速数据通信应用中,当数据从系统的一部分传送到另一部分,以及当传输的数据序列中两个相邻数据 间变化的位数增加而使出错的几率增大时,均应使用 Gary 码计数器; Gary 码还常用于轴角译码器和实时过程控制等应用 Gary 码计数器的实现与二进制计数器一样,从状态转换真值表便可直接推出布尔方程

4 位 Gary 码计数器的状态转换真值表

由状态转换真值表写出布尔方程
移位寄存器 移位寄存器是由触发器组成的用来寄存数码的数字电路,它与 环形计数器密切相关; 移位寄存器主要用于数据的暂存以及快速算术与乘法运算中的数据处理。它还常常用信中,比如将微处理 器中的并行数据变换成易于传输的串行数据。此外,图形系统中示监视器也使用移位寄存器将并行数据串 行化。 移位寄存器的基本用途是将数据从一个触发器移至另一个触发器。按照寄存器接收和发送数据的不同工作 方式,可以把移位寄存器分为并入-串出,并入-并出,串-并出和串人—串出等四种工作方式

通用移位寄存器的真值表

8 位 Barrel 移位器的状态转换真值(8 输入 Di、8 输出 Qi 和 3 控制端 Sj

算术逻辑单元(ALU)的典型结构

异步寄存器型设计
同步寄存器设计具有公共的系统时钟;异步寄存器设计无公共的系统时钟; 异步寄存器设计的时钟可能为 另一个寄存器的输出 若干个信号的逻辑组合 应用 定时一类的应用,异步寄存器型设计的速度较慢,因为一个寄存器的输出需要用作另一个寄存器的时钟输 入,那么全部寄存器的输出需经多级延时才能稳定; 总线仲裁之类的应用,速度则很快,因为系统对总线信号能立即响应,不必等待公共时钟信号。 异步寄存器设计比较容易,但实现时存在组合险态和逻辑竞争等问题 Ripple 计数器是一个最简单的异步寄存器设计

状态机设计 状态机:
是一种数字部件,以有序的方式经历预先确定好的状态序列,状态是指在电路的各个部分测得的一组值。 简单的状态机可由基于 PAL 器件的组合逻辑、输出寄存器和埋置的(状态)寄存器组成, 如交通灯的控 制系统 应用: 微处理器与 VLSI 外围接口芯片之间的控制 总线的仲裁和时序的产生 数据的加密和解密,以及传输协议等 状态机的基本结构

状态机的表示法: 状态图、状态表和流程图 两种标准的状态机类型:米勒(Mealy)和摩尔(Moore)

状态机的基本结构
基本结构: 输入端、输出端 组合逻辑:包含两个不同的功能块 次态译码器:决定状态机的下一个状态 输出译码器:产生实际的输出 存储器(寄存器):用于存储机器的预定状态

基本操作:
经历一系列状态,下一状态由状态译码器根据现行状态和输入条件决定; 根据状态转换给出信号序列,这些输出信号由输出译码器根据现行状态和输入条件产生 使用输入信号决定下一状态也称―转移‖;复杂的定序器还提供了重复序列(循环)、子程序功能和由一个 状态转换到另一状态的控制定序等

两种标准的状态机

Mealy 状态机:输出状态是现行状态和输入信号的函数 Moore 状态机:输出状态只是现行状态的函数

状态机的应用 数字信号处理: (DSP Digital Signal Processing), 使用快速傅立叶变换,无需微处理器;
视频控制器:使用各种不同时序和长度的计数器来产生用来扫描的地址。其优点是当给计数器设置一个初 始状态后,计数器将自动运行 外围设备控制:工业控制和机器人中的编码和译码、机械手定位; 状态机所执行的功能可归纳为: 仲裁功能 事件监视 多条件测试 定时延迟 产生控制信号

状态机的三种表示法

常用的几种状态图表示

状态转换表:是状态机的第二种表示法
首先列出全部可能的输入位组合和内部状态 然后在每一行给出下一个状态和下一个输出 状态表规定了转换函数和输出函数,不适用有大量的输入的机器,但常用于可编程逻辑定序器(PLS)器 件的设计

流程图表示法:
状态用方框图表示,可有多个入口,但只能有一个出口; 条件判断框用菱形或六边形表示,状态转换用菱形框中的条件来决定; 在图中应包含有:状态名、Moore 或 Mealy 型输出、状态码赋值和转移条件。

状态机的类型
通用的定序器模型(FSM 模型): 标记:现行状态(PS)、下一状态(NS)、状态机输出(OA,OB) 定序器有四种用法。两种用来实现 Moore 状态机,另两种用来实现 Mealy 状态机 Moore 状态机和 Mealy 状态机按时钟的情况,又分为同步和异步状态机 状态机器件的选择 从结构上分为三类:基于逻辑器件、存储器件和指令器件; 注意功能、输入输出数、速度、功率、承继项数目、触发器类型和数目等。

第六章

专题报告
FPGA circuits

(Eduardo Sanchez Laboratoire de Systèmes Logiques Ecole Polytechnique Fédérale de Lausanne)

Integrated circuits

Field Programmable Gate Arrays
Array of logic cells - Each cell is able to implement a logic function, chosen among several possible functions: the choice is one by programming - Inteconnections between cells are also programmable - Two types, depending on the cell’s complexity: - fine grain - coarse grain - Two types, depending on the programming mode: - RAM: every logic cell contains a 16-bit LUT (look-up table), accompanied by a flip-flop, and all nterconnected with programmable routing pathways - anti-fuses

-

Advantages over PLDs: enhanced flexibility reduced board space, power and cost increased performance Advantages over ASICs: reprogrammability off-the-shelf availability zero NRE (non-recurring engineering) costs reduced time-to-market

Synthesis methodology

Features of current FPGAs

- For complex FPGAs, prices can vary from some hundreds to more than 4 thousand dollars. Nevertheless, these prices can decrease from one thousand to 10 dollars in two years - An FPGA with an ARM core and 100 thousand gates could cost 15 dollars, in a near future - An FPGA with 6 millions system gates is available today: 50 millions gates will be available within 3 or 4 years - Power consumption can be more than 10W, or 200mW/MHz - Number of input/output pins can be higher than 800 - Frequency of an internal processor can vary between 25 and 125 MHz, for a complexity of about 300 thousand gates

System-on-a-chip (SOC)

Intellectual property (IP)

- A semiconductor IP block is a predesigned function to be implemented in a semiconductor device. In some cases, the functions are parametrisable, allowing a degree of customization. These functions include physical library functions (analog or digital), basic blocks (such as counters

and muxes) and system-level macros (also known as cores or virtual components) - including memory blocks - Market: 1999: 442 millions dollars (semiconductors total : 196’136 M$) - 2000: 620 millions dollars (total semiconductors total : 231’601 M$) - 2004: 2’940 millions dollars (semiconductors total : 339’545 M$)
FPGAs with microcontrollers

-

Altera: soft-core: hard-core: Xilinx: soft-core: hard-core: Atmel: hard-core: Triscend: hard-core: hard-core:

Nios processor ARM992 MicroBlaze processor PowerPC 405 8-bit microcontroller, proprietary 8032 ARM

Family APEX from Altera

-Every MegaLAB has: - 16 LABs (24 for EP20K1000E and EP20K1500E) - one ESB (Embedded System Block), used for implementing several kinds of memory - internal interconnections - One LAB has 10 LEs (Logic Element)

- Implementing an n-nit adder

- Using cascade chains:

-

LEs can be used in 3 different modes: normal mode arithmetic mode counter mode

-

ESBs allow implementation of different kinds of synchronous memories: RAM double port ROM FIFO CAM Every ESB can be configured in one of 6 different sizes: 128x16 256x8 512x4 1024x2 2048x1 32x32 in CAM mode

Programmable Logic Solutions
(Xilinx)

The Spartan-IIE Solution

Logic & Routing

-Configurable for simple to complex logic

-Excellent for fast arithmetic operations
-Flexible for logic or distributed RAM implementations

-Predictable routing delays -Core-friendly architecture -Quick Place and Route times -Internal 3-state bussing

CLB Structure

- Each slice has 2 LUT-FF pairs with associated carry logic

- Two 3-state buffers (BUFT) associated with each CLB, accessible by all CLB outputs CLB Slice Structure Each slice contains two sets of the following: – Four-input LUT
* Any 4-input logic function * Or 16-bit x 1 sync RAM * Or 16-bit shift register

– Carry & Control
* Fast arithmetic logic * Multiplier logic * Multiplexer logic

– Storage element ? Latch or flip-flop
* Set and reset * True or inverted inputs * Sync. or async. control

Four-Input LUT
Truth Table

Implements combinatorial logic
– Any 4-input logic function – Cascaded for wide-input functions

Distributed RAM

CLB LUT configurable as Distributed RAM
– A LUT equals 16x1 RAM – Implements Single and Dual-Ports – Cascade LUTs to increase RAM size

Synchronous write Synchronous/Asynchronous read
– Accompanying flip-flops used for synchronous read

CLB Arithmetic Logic

Dedicated carry logic – Provides high performance for counters & arithmetic functions – Discrete XOR component for single level sum completion – Two separate carry chains in CLB allow for 3 operand functions – Can also be used to cascade LUTs for wide- input logic functions

3 Operand Adder Function

A, B, C are two-bits wide * SUM = A + B + C or PARTIAL + C, where PARTIAL = A + B * Implementation
-First 2-operand sum ?A+B' is performed in Slice 0 - Second 2-operand sum ?PARTIAL + C' is performed in Slice 1

* Fast local feedback connection within the CLB
- Very small delay for on PARTIAL

Carry Logic for Wide Input Functions
* Higher performance

* Efficient resource utilization * Common applications
– Wide input decoding – Comparators

* HDL design entry
– LUT can be inferred – MUXCY must be instantiated

12- Input AND Function

* Utilization
– 3 LUTs and 3 MUXCYs – As opposed to 4 LUTs

* Performance
– 1 logic level – As opposed to 2 logic levels

12- Input OR Function

* Utilization
– 3 LUTs and 3 MUXCYs – As opposed to 4 LUTs

* Performance
– 1 logic level – As opposed to 2 logic levels

Logic Summary
* Flexible Configurable Logic Block (CLB) implementations

– Logic – Distributed RAM
– Shift register

* CLB configurable for simple to complex logic
– Any 6 input function into one logic level

* Excellent for fast arithmetic operations

– Specialized carry logic for arithmetic operations – Fast DSP functions FIR filters

Routing * Core-friendly vector-based routing
– Provides predictable routing delays independent of

-IP placement -Number of IP -Device size

* Superior routing – Quick Place and Route times
Design to system at 100,000 gates per minute

– Easier rerouting * Internal 3-state bussing – Eliminates bus routing contention – Reduced CLB usage by using 3 states instead of MUXs – Increases performance by reducing logic levels High-Performance Routing

* Local routing – Direct connections * General Routing Matrix (GRM) – Single line, Long line, Hex line * Dedicated routing – Internal 3-state bus * Global routing – Primary Clock Buffer lines, Secondary lines The Spartan-IIE Solution

I/O Connectivity
SelectIO TM Technology Support major I/O standards

Logic & Routing
Flexible logic implementation Vector Based Routing Internal 3-State bussing

Memory Resources
SRL16 registers Distributed Memory Block Memory External Memory

System Clock Management
Digital Delay Lock Loops (DLLs)

Spartan-IIE Memory Hierarchy
Shift Register LUT Distributed RAM Block RAMs

High-Performance Exter

- 16 registers, 1 LUT - Compact & fast

- Single-port - Dual port - Cascadable

- 4Kbit blocks - True dual-port

Interfaces

- DDR I/O - SSTL, HSTL, CTT

-Pipelining
-Buffers

-Cache Tag memory -Large FIFOs - DSP Coefficients -Small FIFOs -Packet buffers
-Scratch Pad -Video line buffers

-Collaboration with m

-IDT, Cypress, Micron, N Toshiba...

Kilobytes

Distributed RAM

* CLB LUT configurable as Distributed RAM – A LUT equals 16x1 RAM – Implements single and dual ports
– Cascade LUTs to increase RAM size

* Synchronous write * Synchronous/Asynchronous read – Accompanying flip-flops used for synchronous read

Block RAM

* Most efficient memory implementation – Dedicated blocks of memory * Ideal for most memory requirements – 8 to 72 memory blocks * 4096 bits per blocks – Use multiple blocks for larger memories * Builds both single and true dual-port RAMs * CORE Generator provides custom-sized block RAMs – Quickly generates optimized RAM implementation Block RAM * Configurable synchronous Block RAM – Single-port RAM

– True dual-port RAM – Two independent single-port RAMs * Block count increases with FPGA size

External Memory Interface

* Easy access to high- speed external memory

* SelectI/O TM provides interface to most memory types

The Spartan-IIE Solution

I/O Connectivity SelectIO TM Technology Support major I/O standards Memory Resources
SRL16 registers Distributed Memory Block Memory External Memory

Logic & Routing

Flexible logic implementation V

Routing Internal 3-State bussin

System Clock Management

Digital Delay Lock Loops (DLL

System Clock Management

* 100% Digital DLL Design – Noise insensitive – Scalable to new processes – Excellent Jitter specifications * +/- 100ps, <<50ps Typical * No cumulative phase error – Used in advanced memories * Every Spartan-IIE device has – 4 DLLs – External clock outputs

4 DLLS in every device

Delay Locked Loops Lower Board Costs System Clock Management

Delay Lock Loops (DLLs) Lower Board Costs

Generic DLL Operation
* A DLL inserts delay on the clock net until the clock input rising edge is in phase with the clock feedback rising edge * Requires a well-designed clock distribution network: the clock edges arrive simultaneously everywhere in the part

I/O

I/O Connectivity Logic & Routing
SelectIO TM Technology Support major I/O standards

Flexible logic implemen

Memory Resources
SRL16 registers Distributed Memory Block Memory External Memory

Routing Internal 3-State

System Clock Manag

Digital Delay Lock Loop

Comprehensive I/O Connectivity

*Single ended and differential – Up to 514 single-ended, 205 differential pairs – 400 Mb/sec LVDS: ideal for Consumer Applications – 19 I/O standards, 8 flexible I/O banks – PCI 32/33 and 64/66 support * Multiple package options * 3 IOB registers: in, out, 3-state * Voltages : 3.3V, 2.5V, 1.8V, 1.5V

8 I/O banks enable multiple simultaneous standards

Chip-to-Chip Interfacing:

Backplane Interfacing:

High-speed Memory Interfacing:

Basic I/O Block Structure

SelectI/O TM Standards

- V REF defines input threshold reference voltage -Available as user I/O when using internal eference

Configuration Basics

* Spartan-IIE device – Is SRAM-based and hence volatile * Needs a configuration data source * Needs to be re-configured (re-programmed) upon power-up – ISP (In-system programmable) * Re-programmable/upgradable in the field * Configuration

– Programming the device with design logic Configuration

* Configuration data source – PROM * Serial/Parallel PROMs – Hard disk – Microprocessor memory * Configuration interface – Simple serial – High-speed parallel – JTAG or boundary scan – IRL – Microprocessor
– CPLD

JTAG Basics * Also known as

– IEEE/ANSI standard 1149.1 – Boundary scan * Set of design rules that facilitate – Testing – Programming – Debug * Can be done at the chip, board, and systems level * Can also have user-defined instructions – Example: vendor -specific instructions: configure and verify Master Serial Mode

* Spartan-IIE device acts like a master – Generates configuration clock (CCLK) using internal oscillator * PROM stores the configuration data * Configuration rate selectable from 4-60 MHz – -30% to +45% variance due to process dependence Slave Serial Mode

- Spartan-IIE device acts like a slave – An external clock source drives the CCLK pin

- Configuration data is stored in PROM, flash, micro- controller or microprocessor memory - Maximum configuration rate of 66 MHz Slave Parallel Mode

Single or multiple Spartan-IIE devices connected in parallel

Slave Parallel Mode (cont'd) * Spartan-IIE device acts like a slave – An external clock source drives the CCLK pin – Microprocessor, Microcontroller or CPLD controls configuration * Configuration data is stored in parallel PROM, flash, Microcontroller or Microprocessor memory * Fastest configuration mode – 8 bits per CCLK cycle – 50MHz configuration rate (400 Mbit/sec) * Supports Readback IRL and Xilinx Online * Internet Reconfigurable Logic (IRL) – IRL is a design methodology to create field upgradable applications – Supported by products, design guidelines and reference designs * Xilinx Online – Xilinx program to enable, identify and promote field upgradable applications – Bi-directional read/write port for configuration and readback IRL Methodology Elements

Spartan II Family

Spartan II Ordering

Spartan II Price

(USD, 04.2003 Petrex92 http://xilinx.webbg.com/)

High-density FPGA Features

Leading-Edge I/O Standards parallel I/O technologies - multiple single-ended standards and differential I/O standards. I/O bandwidth @ 840 Mbps.

multi-gigabit serial transceivers (3.125 Gbps)
Rich interconnection resources Distributed and Block RAM DSP blocks Digital Clock Management Advanced Packaging
Embedded Processors

Design Security

I/O

SelectI/O-UltraTM Technology

High Bandwidth and XCITETM on-chip termination -Support 19 single-ended standards and 6 differential standards

IOB: Double Data Rate Registers

DDR registers can be clocked by -Clock and not (clock) if the duty cycle is 50/50 -CLK0 and CLK180 DLL outputs

IOB Element

Differential Signaling, up to 840 Mbps

LVDS: Low-Voltage Differential Signal -Current source drivers Bus LVDS: bidirectional LVDS communication LVPECL: Low-Voltage Positive Emitter Coupler Logic -~850 mV voltage swin

Built-In HSTL II Support

What is the advantage of using HSTL Class II? -High-speed IO interface -Bi-directional Double parallel termination

Digitally Controlled Impedance

Dynamically adjusted termination resistors
-Provides drivers that matched to the impedance of the traces -Provides on-chip termination -Transmitter or receiver

On-Chip termination advantages:
-No termination resistors on board -Improve signal integrity by eliminating stub reflection -Eliminates the need for source termination (single-ended I/O) -Reduces board routing headaches and component count Digitally Controlled Impedance

DCI and DCI_DV2 -Low voltage CMOS with adjustable impedance -3.3V, 2.5V, 1.8V and 1.5V -Two reference resistors per bank With 1% R, the impedance is in +/- 10% range Range: 25 ohms to 150 ohms (Advanced info) -DCI_DV2 is adjusted to half of the reference resistor.

On-Chip Termination – HSTL-II

Interconnection

Active Interconnect Technology

Interconnect an array of switch matrices All Virtex II features can access routing resources through the switch matrix -Simplify design and place & route

Clock Management

Sophisticated Digital Clock Manager

High-Speed 420 MHz clock generation: -Clock de-skew on-chip and off-chip

Phase Shift Effects

Note: for frequencies below 90 MHz, the minimum tap is approximately 45 ps in all cases.
DSP Blocks and Memory

18 x 18 Multiplier

Embedded 18-bit x 18-bit multiplier -2’s complement signed operation Multipliers are organized in columns

Memory Bandwidth and Flexibility

Virtex-II Family Members

Design Security

Triple DES Enables a New Level of FPGA Data Security

-Virtex-II solves design security issue for FPGAs -Bitstream secured using triple DES (56 bit keys) -Prevents SRAM FPGA design theft -Enables protected customer-specific chip-sets 2 banks of 3 DES keys, allows 2 users with different keys

Packaging

Virtex II Packaging

Wire-bond packages Flip-chip packages Higher device I/O count Higher thermal capacity Ball-grid arrays: FGxxx: wire-bond fine-pitch BGA (1.00 mm pitch) BGxxx: wire-bond BGA (1.27 mm pitch) FFxxx: flip-chip fine-pitch BGA (1.00 mm pitch) BFxxx: flip-chip BGA (1.27 mm pitch)
Flip-Chip Packaging: Best Thermals & Small Package

Virtex-II Packaging

Multi-gigabit Serial Transceivers

High-speed network and storage interface applications Gigabit / 10Gigabit Ethernet

Fiber Channel Telecom applications (SONET/SDH) Embedded Processors Xilinx - IBM PowerPC 405 Altera – Intel ARM


赞助商链接