第五章 可编程器件

44
第第第 第第第第第 5.1 第第第第第第第 PLD 第第 5.2 第第第第第第第CPLD5.3 第第第第第第第第 FPGA5.4 第第第第第第第第第第ispPAC 5.5 第第第第第第第第第第第第 教教教教教 【】 教教教教教 【】 第第第第第第第第第第 第第第 第第第第第 第第第 、、、 第第第第第第第第

Upload: dennis

Post on 23-Jan-2016

96 views

Category:

Documents


0 download

DESCRIPTION

第五章 可编程器件. 【教学内容】. 5.1 可编程逻辑器件 PLD 概述. 5.2 复杂可编程器件( CPLD). 5.3 现场可编程门阵列 ( FPGA). 5.4 在系统可编程模拟器件( ispPAC). 5.5 可编程逻辑器件的设计流程. 【教学目的】. 可编程逻辑器件的分类、特点、基本结构、工作原 理和完整设计流程。. 5.1 可编程逻辑器件 PLD 概述. 可编程逻辑器件( Programmable Logic Device, 简称 PLD) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第五章   可编程器件

第五章 可编程器件

5.1 可编程逻辑器件PLD概述5.2 复杂可编程器件(CPLD)5.3 现场可编程门阵列(FPGA) 5.4 在系统可编程模拟器件(ispPAC )5.5 可编程逻辑器件的设计流程

【教学内容】

【教学目的】

可编程逻辑器件的分类、特点、基本结构、工作原

理和完整设计流程。

Page 2: 第五章   可编程器件

5.1 可编程逻辑器件 PLD 概述 可编程逻辑器件( Programmable Logic Device, 简称PLD)是一种由用户根据自己要求来构造逻辑功能的数字集成电路。和具有固定逻辑功能的 74 系列数字电路不同, PLD 本身没有确定的逻辑功能,就如同一张白纸或是一堆积木,要由用户利用计算机辅助设计,即用原理图或硬件描述语言( HDL )的方法来表示设计思想,经过编译和仿真,生成相应的目标文件,再由编程器或下载电缆将设计文件配置到目标器件中,这时可编程器件( PLD )就可以作为满足用户要求的专用集成电路使用了,同时还可以利用 PLD 的可重复编程能力,随时修改器件的逻辑功能,而无须改变硬件电路。

Page 3: 第五章   可编程器件

1 .基本结构 PLD 的基本结构如图 5.1 所示。它由输入缓冲、与

阵列、或阵列和输出结构等四部分组成。其中输入缓冲电路可以产生输入变量的原变量和反变量,与阵列由与门构成用来产生乘积项,或阵列由或门构成用来产生乘积项之和形式的函数。输出结构相对于不同的PLD 有所不同,有些是组合输出结构,可产生组合电路,有些是时序输出结构,可形成时序电路。输出信号还可通过内部通路反馈到与阵列的输入端。

5 . 1 . 1 PLD 基本结构与电路表示法

图 5.1 PLD 的基本结构框图

Page 4: 第五章   可编程器件

2 . PLD 电路表示法 PLD 电路表示法与传统表示法有所不同,主要因为 PLD的阵列规模十分庞大,如用传统表示法极不方便。在 x 下图中给出了 PLD 的三种连接方式。连线交叉处有实点的表示固定连接;有符号“×” 的表示编程连接;连线单纯交叉表示不连接。

下图中是一个三输入与门的两种表示法,即传统表示法和 PLD电路表示法。在输入项很多的情况下, PLD 表示法显得简洁方便。

5 . 1 . 1 PLD 基本结构与电路表示法

Page 5: 第五章   可编程器件

由于历史的原因,可编程逻辑器件的分类没有一个统一的标准。按其结构的复杂程度及性能的不同。可编 程 逻 辑 器 件 一 般 可 分 为 四 种 :SPLD、 CPLD、 FPGA及 ISP 器件。

1 .简单可编程逻辑器件( SPLD) 简单可编程逻辑器件 SPLD( Simple Programmable

Logic Device )是可编程逻辑器件的早期产品。最早出现 在 20 世 纪 70 年 代 , 主 要 是 可 编 程 只 读 存 储 器( PROM)、可编程逻辑阵列( PLA)、可编程阵列逻辑( PAL )及通用阵列逻辑( GAL )器件等。简单 PLD 的典型结构是由与阵列及或阵列组成的,能有效实现以“乘积和”为形式的布尔逻辑函数。

5 . 1 . 2 PLD 的分类

Page 6: 第五章   可编程器件

5 . 1 . 2 PLD 的分类2 .复杂可编程逻辑器件( CPLD) 复杂可编程逻辑器件 CPLD( Complex

Programmable Logic Device )出现在 20 世纪 80 年代末期。其结构上不同于早期 SPLD 的逻辑门编程,而是采用基于乘积项技术和 E2PROM (或 Flash )工艺的逻辑块编程,不但能实现各种时序逻辑控制,更适合做复杂的组合逻辑电路。如 Altera 公司的 MAX 系列,Lattice 公司的大部分产品, Xilinx 公司的 XC9500 系列等。

Page 7: 第五章   可编程器件

3 .现场可编程门阵列( FPGA)

现场可编程门阵列 FPGA( Field Programmable Gate Array )是由美国 Xilinx (赛灵思)公司率先开发的一种通用型用户可编程器件。 FPGA与 SPLD和 CPLD 的结构完全不同,它不包括与门和或门,目前应用最多的 FPGA 是采用对基于查找表技术和 SRAM 工艺的逻辑块编程来实现所需的逻辑功能的。同CPLD 相比,它的逻辑块的密度更高、触发器更多、设计更灵活,多用于大规模电路的设计,尤其更适合做复杂的时序逻辑。但由于 FPGA 采用的是 SRAM 工艺,掉电后数据会丢失,因此实际应用时还须外挂一个 E2PROM或 Flash Memory 来存储编程数 据 。 典 型 的 器 件 如 Altera 公 司 的 所 有FLEX 、 ACEX 、 APEX 、 Cyclone (飓风) 、 Stratix 系列, Xilinx的 Spartan、 Virtex 系列等。

5 . 1 . 2 PLD 的分类

Page 8: 第五章   可编程器件

4 .在系统可编程逻辑器件( ISP)

在系统可编程逻辑器件 ISP( In-System Programmable PLD , 通常简称 ISP-PLD )是 1992 年由美国的 Lattice (莱迪思)公司率先推出的。它是一种采用了在系统可编程技术的 PLD ,与传统编程技术的最大区别是它不使用编程器,而是通过下载电缆与计算机直接相连,用户在自己设计的目标系统中直接对器件编程。这种全新的设计方法可以使可编程逻辑器件先装配后编程,成为产品后还可以反复编程,使生产维护和系统更新都发生了革命性的变化。

在系统编程是使用一根下载电缆一端连在计算机的并行打印口上,另一端接在装配了可编程逻辑器件的 PCB板上的插头中(目前大都使用 JTAG口),早期的 PLD 是不支持 ISP 技术的,目前的 CPLD、 FPGA都支持 ISP 技术可实现在线编程。

5 . 1 . 2 PLD 的分类

Page 9: 第五章   可编程器件

5 . 2 复杂可编程逻辑器件( CPLD) 复杂可编程器件 CPLD 是随着用户对可编程器件的集成

度要求不断提高的形式下发展起来的,其基本结构与PAL/GAL 相仿,是基于与或阵列的乘积项结构,但集成度要高得多。 CPLD 大都是由 E2PROM和 Flash 工艺制造的,可反复编程,一上电就可以工作,无须其他芯片配合。采用这种结构的商用 CPLD 的芯片较多,其性能也各有特点 .

Altera 公司是全球最大的 CPLD和 FPGA供应商之一,它的 PLD 器件和开发软件在国内应用的非常广泛,本节将以 Altera 公司应用较为广泛的 MAX7000 系列器件为例来介绍 CPLD 的基本结构和原理。

Page 10: 第五章   可编程器件

5 . 2 复杂可编程逻辑器件( CPLD)1 . Altera 公司 MAX7000 系列简介 MAX7000 系列是高密度、高性能的 CMOS CPLD ,是在Altera 公司的第二代 MAX 结构基础上构成,采用了 CMOS E2PROM 技术制造的, MAX7000 系列 CPLD包括了从含有32 个宏单元的 7032 到含有 512 个宏单元的 7512 一系列芯片。同时它又可细分为MAX7000,MAX7000E,MAX7000S,MAX7000A 四个品种。 MAX7000 系列可以用于混合电压的系统中,其开发系统主要是 Altera 公司的 MAX+PLUSII及 QuartusII软件。

Page 11: 第五章   可编程器件

5 . 2 复杂可编程逻辑器件( CPLD )

2.MAX7000 系列器件的结构 MAX7000CPLD 的总体结构及外引脚如图所示

Page 12: 第五章   可编程器件

5 . 2 复杂可编程逻辑器件( CPLD)

由内部结构图可以看出, MAX7000CPLD 主要分为三个部分:宏单元Macrocell ,可编程连线 PIA( Programmable Interconnect Array )和 I/O 控制块。宏单元是 CPLD 的基本结构 , 由它来实现基本的逻辑功能, 16 个宏单元组成一个逻辑阵列块 LAB( Logic Array Block)。可编程连线 PIA负责信号的传递,连接所有的宏单元。 I/O 控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,三态输出等。

Page 13: 第五章   可编程器件

3. 宏单元( MACROCELL)宏单元是 MAX7000CPLD 的基本结构,它能够单独地配置为时序逻辑和组合逻辑工作方式。宏单元由三个功能块组成:逻辑阵列、乘积项选择矩阵和可编程触发器。其具体结构见x 下图所示,图中左侧是逻辑阵列又叫乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。图右侧是一个可编程D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输出给 PIA 或输出到 I/O脚。

5 . 2 复杂可编程逻辑器件( CPLD)

Page 14: 第五章   可编程器件

5 . 2 复杂可编程逻辑器件( CPLD)

对于一个简单的组合或时序电路,只需要一个宏单元就可以完成它的逻辑功能,但对于一个复杂的电路,一个宏单元是不可能实现的,这是就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再作为另一个宏单元的输入。这样 CPLD 就可以实现更复杂的逻辑功能了。

Page 15: 第五章   可编程器件

5 . 3 现场可编程门阵列( FPGA ) 现场可编程门阵列 FPGA 是 20 世纪 80 年代出现的一种新型可编程逻辑器件。它由若干独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接成所需要的数字系统。因为这些模块的排列形式和门阵列( Gate Array )中单元的排列形式相似,所以沿用了门阵列的名称。 FPGA属高密度的PLD ,其集成度非常高,多用于大规模逻辑电路的设计。

商用的 FPGA 是基于查找表 LUT( Look-Up Table )技术和 SRAM 工艺的 FPGA ,它使用的最为广泛,也是我们学习的重点,本节还是以 Altera 公司的基于 LUT 技术和SRAM 工艺的 FLEX10K 系列器件为例来介绍 FPGA 的基本结构和原理。

Page 16: 第五章   可编程器件

5 . 3 现场可编程门阵列( FPGA )1 . Altera 公司 FLEX10K 系列简介

FLEX10K是 Altera 公司 1995 年推出的一个新的产品系列,并首次集成了嵌入式存储块,可为用户提供多达 24KB 的片内 RAM ,以满足存储器密集型应用的需要。 FLEX10K 系列 FPGA包括了从 10K10 到 10K250 一系列芯片,它们分别提供了 1万到 25万个门,其结构类似于嵌入式门阵列,每个 FLEX10K 器件包括一个嵌入式阵列和一个逻辑阵列。嵌入式阵列用来实现各种不同的存储功能或复杂的逻辑功能。如数字信号处理、微控制器、宽数据路径处理和数据传输功能。逻辑阵列完成与门阵列中的门海一样的功能 。如计数器、加法器、多路选择器等通用逻辑。嵌入式阵列和逻辑阵列的结合提供了嵌入式门阵列的高性能和高密度,可以使设计者在某个器件上实现一个完整的系统。

Page 17: 第五章   可编程器件

5 . 3 现场可编程门阵列( FPGA )2 . FLEX10K 系列器件的结构下 图 示 出 了 FLEX10K 系 列 FPGA 的 结 构 框图。 FLEX10K 的结构主要由逻辑阵列块 LAB( Logic Array Block ) ,输 入 输 出 单 元 IOE ( In Out Element),可编程的行 /列连线以及带有 RAM 的嵌入式阵列块 EAB( Embedded Array Block )等几部分组成。 LAB和 EAB是 FPGA 的最主要结构,它们由可编程行 /列连线相连接,这些连线同样也连接着芯片的输入输出管脚。

Page 18: 第五章   可编程器件

5 . 3 现场可编程门阵列( FPGA) 每个 FLEX10K 器件包含一个实现存储和专用逻辑

功能的嵌入阵列和一个实现一般逻辑的逻辑阵列。 嵌入阵列由一系列嵌入阵列块 EAB 构成。实现存

储功能时,每个 EAB提供 2048bit, 可用来完成RAM、 ROM 、双口 RAM 或者 FIFO 功能。实现逻辑功能时,每个 EAB 可提供 100到 600门以实现复杂的逻辑功能,如实现乘法器、微控制器、状态机和数字信号处理功能。 EAB 可以单独使用或多个 EAB联合使用以实现更强的功能。

Page 19: 第五章   可编程器件

5 . 3 现场可编程门阵列( FPGA) 3 . 查找表 LUT( Look-Up Table )的原理与结构目前广泛使 用 的 FPGA 大 多 是 基 于查找表 LUT 结 构的, LUT 本质上就是一个 RAM 。目前 FPGA 中多使用4输入的 LUT ,所以每一个 LUT 可以看成一个有 4位地址线 16×1的 RAM 。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后, FPGA 的开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM ,这样每输入一个信号进行逻辑计算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。表 5.3是一个四输入与门 LUT 的例子 

Page 20: 第五章   可编程器件

5 . 3 现场可编程门阵列( FPGA)

表 5.3 四输入与门 LUT

Page 21: 第五章   可编程器件

5 . 3 现场可编程门阵列( FPGA) 由于 LUT 主要适合 SRAM 工艺生产,所以目前大

部分 FPGA都是基于 SRAM 工艺的,而 SRAM 工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候。由这个专用配置芯片把数据加载到 FPGA 中,然后 FPGA 就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA 采用反熔丝或 Flash 工艺,对这种 FPGA ,就不需要外加专用的配置芯片。

Page 22: 第五章   可编程器件

5 . 4 在系统可编程模拟器件( ispPAC)

ispPAC 是 1999 年 11 月由美国 Lattice 公司推 出 的 在 系 统 可 编 程 模 拟 电 路 (In-System Programmability Programmable Analog Circuits) ,从而 翻 开 了 模 拟 电 路 设 计 方 法 的 新 篇 章 。 为 电 子 设 计 自 动 化 (EDA) 技 术 的 应 用 开 拓 了 更 广 阔 的 前 景 。 与 数 字 的 在 系 统 可 编 程 大 规 模 集 成 电 路 (ispLSI) 一 样 , 在 系 统 可 编 程 模 拟 器 件 允 许 设 计 者 使 用 开 发 软 件 在 计 算 机 中 设 计、 修 改 模 拟 电 路 , 进 行 电 路 特 性 模 拟 , 最 后 通 过 编 程 电 缆 将 设 计 方 案 下 载 至 芯 片 中 。

目前 Lattice 公司已推出了七种可编程模拟器件 : ispPAC10, ispPAC20, ispPAC30, ispPAC80, ispPAC81, ispPAC-POWR1208和 ispPAC-POWR604 。

Page 23: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

1. ispPAC10 的结构与原理 ( 1 )内部结构 ispPAC10 器 件 的 内部结构如下图所示 , 由 四 个 基 本 单 元 电 路 : 模 拟 布 线 池 , 配 置 存 储 器 , 参 考 电 压 , 自 动 校 正 单 元 和 ISP 接 口 所 组 成 。其 基 本 单 元 电 路 称 为 PAC 块( PAC block ),模拟信号的输入与 PAC 块和 PAC 块之间的连接通过模拟布线池进行可编程连接;配置存储器是电擦除的 ECOMS 存储器,可重复编程,设计方案以数据的形式存储在配置存储器中; ISP 接口电路是为计算机与 ispPAC 器件之间进行信息传输而设置的。

Page 24: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

该器 件采 用 + 5V 单 电 源 供 电 ,无需外围元件就可以灵活实现诸如精密滤波、求和 / 求差、增益 /衰减和积分等基本模拟功能。

Page 25: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

( 2) PAC 块结构 ispPAC10 的基 本 单 元 电 路 称 为 PAC 块 (PACblock) , 它 由

两 个 仪 用 放 大 器 和 一 个 输 出 放 大 器 所 组 成 , 配 以 电 阻 、 电 容 构 成 一 个 真 正 的 差 分 输 入 , 差 分 输 出 的 基 本 单 元 电 路 , 如 图 5.12 所 示 。 所 谓 真 正 的 差 分 输 入 , 差 分 输 出 是 指 每 个 仪 用 放 大 器 有 两 个 输 入 端 , 输 出 放 大 器 的 输 出 也 有 两 个 输 出 端 。 电 路 的 输 入 阻 抗 为 10 9 , 共 模 抑 制 比 为 6 9d b , 增 益 调 整 范 围 为- 10 至+ 10 。 PAC 块 中 电 路 的 增 益 和 特 性 都 可 以 用 可 编 程 的 方 法 来 改 变 , 可 配 置 成 1 至 10000 倍 的 各 种 增 益 。 输 出 放 大 器 中 的 电 容 CF 有 128 种 值 可 供 选 择 。 反 馈 电 阻 RF 可 以 断 开 或 连 通 。器 件 中 的 基 本 单 元 可 以 通 过 模 拟 布 线 池 (Analog Routing Pool) 实 现 互 联 , 以 便 实 现 各 种 电 路 的 组 合 。

Page 26: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构 2. ispPAC20 的结构与原理 ( 1 )       内部结构 ispPAC20 器 件 由 两 个 基 本 单 元 电 路 PAC 块 、

两 个 比 较 器 、 一 个 8 位 的 D/A 转 换 器 、 配 置 存 储 器 、 参 考 电 压 、 自 动 校 正 单 元 和 ISP 接 口 所 组 成 。 其 内 部 结 构 框 图 如下 图 所 示 。

Page 27: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

ispPAC20 器件有 44 个端子的 PLCC和 TQFP 两中封装形式。除了模拟输入、模拟输出端子,电源、接地端子, isp接口电路输入、输出端子以及自动校准使能端子 CAL 、参考电压输出 VREFOUT 、外部模拟电压输入端子 CMVIN ,还有数模转换器 DAC 的数字输入端子 D7~D0 、模拟差分输出端子DACOUT+/DACOUT- ,比较器的差分输入端子 CPIN+/CPIN- 和逻辑输出端子 CP1OUT、 CP2OUT ,此外还有片选信号 CS 、多路输入控制端 MSEL 、极性控制端 PC、 DAC模式选择输入端 DMODE 等特殊用途的端子。

Page 28: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

3. ispPAC30 的结构与原理 ispPAC30 提 供 可 编 程 、 多 个 单 端 , 差 分 输 入

方 式 、 能 设 置 精 确 的 增 益 , 具 有 补 偿 调 整 、 滤 波 、 和 比 较 功 能 。 除 了 E2CMOS 配 置 存 储 器 外 ,它 最 主 要 的 特 性 是 能 够 通 过 SPI 对 器 件 进 行 实 时 动 态 重 构 。 设 计 者 可 以 改 变 和 重 构 ispPAC30 无 数 次 , 用 于 放 大 器 增 益 控 制 或 其 他 需 要 动 态 改 变 电 路 参 数 的 应 用。其内部结构如下图所示。

Page 29: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

( 1 )输入单元 任 何 输 入 引 脚 都 可 联 接 至 4 个 输 入 仪 表 放 大 器

(IA) , 两 个 二 选 一 选 择 器 , 或 者 MDAC 。 输 出 放 大 器 可 以 联 接 至 所 有 输 入 单 元 。 因 此 , ispPAC30 具 有 很 大 的 灵 活 性 , 能 方 便 地 构 成 信 号 求 和 , 级 联 增 益 块 , 复 杂 反 馈 电 路 。 直 接 接 至 输 入 引 脚 的 输 入 信 号 范 围 为 0- 2.8V 。 使 用 差 分 输 入 时 , 信 号 可 以 是 任 意 极 性 , 只 要 最 终 输 出 放 大 器 的 输 出 不 低 于 0V 。 采 用 单 端 输 入 时 , 把 引 脚 Vin - 接 地 。 四 个 输 入 放 大 器 中 的 两 个 前 端 带 有 二 选 一 选 择 器 。 IA1 , IA4 的 输 入 通 道 由 外 部 引 脚 MSEL1 和MSEL2 分 别 来 控 制 。

Page 30: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

( 2)内 部 参 考 电 压 器 件 中 含 有 两 个 独 立 的 参 考 电 压 VREF1 和

VREF2 , 用 以 向 四 个 输 入 仪 表 放 大 器 (IA) 、 两 个 MDAC 提 供 固 定 的 参 考 电 压 。 每 个 VREF 有 7 种 不 同 的 电 平 , ( 3)MDAC

器 件 中 有 两 个 8 位 的 MDAC , 它 接 受 参 考 输 入 信 号、 外 部 信 号 、 内 部 信 号 和 固 定 的 直 流 电 压 ( 如 内 部 的 VREF )。MDAC 的 功 能 是 用 一 个 值 乘 以( 实 际 上 是 衰 减 )  输 入 信 号 , 这 个 值 对 应 于 DAC 设 置 的 码 。并 可 独 立 地 编 程 。

Page 31: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

( 4 )输出放大器 ispPAC30 有 两 个 输 出 放 大 器 (OA) 。 放 大 器 的 输 出 范 围 从 0V 到+ 5V 。 输 出 放 大 器 的 输 出 端 已 在 器 件 内 部 联 接 至 输 出 引 脚 。 输 出 可 以 联 接 至 任 意 一 个 输 入 仪 表 放 大 器 IA 或 MDAC 的 输 入。 每 个 OA 都 可 配 置 成 全 带 宽 放 大 器 、 低 通 滤 波 器 、 积 分 电 路 或 者 比 较 器 。

Page 32: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

4. IspPAC80 的结构与原理 ispPAC80 可实现五阶、连续时间、低通模拟滤波器。无需外部元件或时钟。在 PAC-Designer 设计软件中的集成滤波器数据库提供数千个模拟滤波器,频率范围从 50kHz到 750kHz 。可对任意一个五阶低通滤波器执行仿真和编程 , 滤 波 器 类 型 为 :Gaussian、 Bessel、 Butterworth、 Legendre 、两个 线 性 相位等纹波延迟误差滤波器 ( Linear Phase Equiripple Delay Error filter ) , 3 个Chebyshev, 12 个有不同脉动系数的 Elliptic滤波器。

Page 33: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

ispPAC80 内部结构如下图所示,内含一个增益为 1 、2 、 5 或 10 可选的差分输入仪表放大器( IA),和一个多放大器差分滤波器 PACblock ,此 PACblock包括一个差分输出求和放大器( OA)。通过片内非易失 E2CMOS 可配置增益设置和电容器值。器件配置由 PAC-Designer软件设定,经由 JTAG 下载电缆下载到 ispPAC80。

Page 34: 第五章   可编程器件

5 . 4 . 1 在系统可编程模拟器件的电路结构

5. ispPAC81 的结构与原理 与 ispPAC80 器件极为相似, ispPAC81 器件亦是用于实

现 五阶、 连续时间、低通 模拟滤波器 。 所 不 同 的 是 用ispPAC81 可 实 现 更低频率的滤波器 , 其频率范围从10kHz 到 75kHz。 PAC-Designer 1.3 版本的软件支持ispPAC81 器件,其设计操作与 ispPAC80 器件基本相同。

其内部结构如下图所示。

Page 35: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程 可编程逻辑器件的设计是指利用开发软件和编程工具对器

件进行开发的过程。它包括设计准备、设计输入、设计处理和器件编程四个步骤以及相应的功能仿真、时序仿真和器件测试三个设计验证过程。如下图所示。

Page 36: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程1 .设计准备 在对可编程逻辑器件的芯片进行设计之前,设计者要根据任务的要求,进行功能描述及逻辑划分,按所设计任务的形式划分为若干模块,并画出功能框图,确定输入和输出管脚。再根据系统所要完成功能的复杂程度,对工作速度和器件本身的资源、连线的可布通性等方面进行权衡,选择合适的设计方案。在前面已经介绍过,数字系统的设计方法通常采用从顶向下的设计方法,这也是基于芯片的系统设计的主要方法。由于高层次的设计与器件及工艺无关,而且在芯片设计前就可以用软件仿真手段验证系统可行性,因此它有利于在早期发现结构设计中发现错误,避免不必要的重复设计,提高设计的一次成功率。自顶向下的设计采用功能分割的方法从顶向下逐次进行划分,这种层次化设计的另一个优点是支持模块化,从而可以提高设计效率。

Page 37: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程2 .设计输入 设计者将所设计的系统或电路以开发软件要求的某种形式表

现出来,并过程称为设计输入。设计输入通常有以下几种方式。

( 1 )原理图输入方式 这是一种最直接的输入方式,它使用软件系统提供的元器

件库及各种符号和连线画出原理图,形成原理图输入文件。这种方式大多用在对系统及各部分电路很熟悉的情况,或在系统对时间特性要求较高的场合。当系统功能较复杂时,输入方式效率低,它的主要优点是容易实现仿真,便于信号的观察和电路的调整。

Page 38: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程( 2 )硬件描述语言输入方式 硬件描述语言用文本方式描述设计,它分为普通硬件描述

语言和行为描述语言。普通硬件描述语言有 ABEL-HDL、 CUPL 等,它们支持逻辑

方程、真值表、状态机等逻辑表达方式,目前在逻辑电路设计中已较少使用。

行为描述是目前常用的高层次硬件描述语言,有 VHDL和 Verlog-HDL 等,它们都已成为 IEEE 标准,并且有许多突出的优点:如工艺的无关性,可以在系统设计、逻辑验证阶段便可确立方案的可行性:如语言的公开可利用性,使它们便于实现大规模系统的设计等 ; 同时硬件描述语言具有较强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间转换非常方便。因此,运用 VHDL、 Verilog-HDL 硬件描述语言设计已是当前的趋势。

Page 39: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程 ( 3 )原理图和硬件描述语言混合输入方式 原理图和硬件描述语言混合输入方式是一种层次化的设计

输入方法。在层次化设计输入中,硬件描述语言常用于底层的逻辑电路设计,原理图常用于顶层的电路设计。这是在设计较复杂的逻辑电路时的一种常用的描述方式。

( 4 )波形输入方式 波形输入主要用于建立和编程波形设计文件及输入仿真向

量和功能测试向量。波形设计输入适合于时序逻辑和有重复性的逻辑函数。系统软

件可以根据用户的输入输出波形自动生成逻辑关系。

Page 40: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程3 .设计处理 这是器件设计中的核心环节。在设计,编译软件将对设计

输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动进行适配,最后产生编程用的编程文件。

( 1 )语法检查和设计规则检查 设计输入完成之后,在编译过程首先进行语法检验,如检查

原理图有无漏连信号线,信号有无双重来源,文本输入文件中的关键字有无输错等各种语法错误,并及时列出错误信息报告供设计者修改 ;然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制并将编译报告列出,指明违反规则情况供设计者纠正。

Page 41: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程( 2 )逻辑优化和综合 化简所有的逻辑方程和用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块设计文件合并为一个网表文件,并使层次化设计平面化(即展平)。

( 3 )适配和分割 确定优化以后的逻辑能否与器件中的宏单元和 I/0 单元适

配,然后将设计分割为多个适配的逻辑小块形式影射到器件相应的宏单元中。如果不能装入一片器件时,可以将整个设计自动分割成多块并装入同一系列的多片器件中去。

Page 42: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程( 4 )布局和布线 布局和布线工作是在设计检验通过以后由软件自动完成的,

它能以最优的方式对逻辑元件布局,并准确地实现元件间的互连。

布线以后软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。

( 5 )生成编程数据文件 设计处理的最后一步是产生可供器件编程使用的数据文

件。对 CPLD 来说,是产生熔丝图文件,即 JEDEC 文件(电子器件工程联合制定的标准格式,简称 JED 文件) ; 对于 FPGA 来说,是生成位数据文件( Bitstream Generation )。

Page 43: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程4 .设计校验 设计校验过程包括功能仿真和时序仿真,这两项工作是在

设计处理过程中间同时进行的。 功能仿真又称为前仿真,此时的仿真没有延时信息,对于初步的功能检测非常方便。仿真前,要先利用波形编辑器或硬件描述语言等建立波形文件或测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。若发现错误,则返回设计输入中修改逻辑设计。时序仿真又称后仿真或延时仿真。由于不同器件的内部延时不一样,不同的布局、布线方案也给延时造成不同的影响,设计后,对系统和各模块,分析其时序关系,估计设计的性能以及消除竞争冒险是必要的。这是和器件实际工作情况基本相同的仿真。

Page 44: 第五章   可编程器件

5 . 5 可编程逻辑器件的设计流程5 .器件编程 器件编程是指将编程数据下载到可编程逻辑器件中去。对 CPLD 器 件 来说是 将 JED 文 件 “ 下 载 ( Down Load ”) 到 CPLD 器件中去,对 FPGA 来说是将位流数据 BG 文件“配置”到 FPGA 中去。

器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。较早的 CPLD 器件和一次性编程的 FPGA需要专用的编程器完成器件的编程工作。采用在系统可编程技术的器件)则不需要专用的编程器,只要一根下载编程电缆就可以了。基于 SRAM的FPGA 还要由 EPROM、 Flash Memory 或其他专配置芯片进行配置。