1 / 44

第五章 可编程器件

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

dennis
Télécharger la présentation

第五章 可编程器件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. 5.1.1 PLD基本结构与电路表示法 2 .PLD电路表示法 PLD电路表示法与传统表示法有所不同,主要因为PLD的阵列规模十分庞大,如用传统表示法极不方便。在x下图中给出了PLD的三种连接方式。连线交叉处有实点的表示固定连接;有符号“×”的表示编程连接;连线单纯交叉表示不连接。 下图中是一个三输入与门的两种表示法,即传统表示法和PLD电路表示法。在输入项很多的情况下,PLD表示法显得简洁方便。

  5. 5.1.2 PLD的分类 由于历史的原因,可编程逻辑器件的分类没有一个统一的标准。按其结构的复杂程度及性能的不同。可编程逻辑器件一般可分为四种:SPLD、CPLD、FPGA及ISP器件。 1.简单可编程逻辑器件(SPLD) 简单可编程逻辑器件SPLD(Simple Programmable Logic Device)是可编程逻辑器件的早期产品。最早出现在20世纪70年代,主要是可编程只读存储器(PROM)、可编程逻辑阵列(PLA)、可编程阵列逻辑(PAL)及通用阵列逻辑(GAL)器件等。简单PLD的典型结构是由与阵列及或阵列组成的,能有效实现以“乘积和”为形式的布尔逻辑函数。

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

  7. 5.1.2 PLD的分类 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系列等。

  8. 5.1.2 PLD的分类 4.在系统可编程逻辑器件(ISP) 在系统可编程逻辑器件ISP(In-System Programmable PLD ,通常简称ISP-PLD)是1992年由美国的Lattice(莱迪思)公司率先推出的。它是一种采用了在系统可编程技术的PLD,与传统编程技术的最大区别是它不使用编程器,而是通过下载电缆与计算机直接相连,用户在自己设计的目标系统中直接对器件编程。这种全新的设计方法可以使可编程逻辑器件先装配后编程,成为产品后还可以反复编程,使生产维护和系统更新都发生了革命性的变化。 在系统编程是使用一根下载电缆一端连在计算机的并行打印口上,另一端接在装配了可编程逻辑器件的PCB板上的插头中(目前大都使用JTAG口),早期的PLD是不支持ISP技术的,目前的CPLD、FPGA都支持ISP技术可实现在线编程。

  9. 5.2 复杂可编程逻辑器件(CPLD) 复杂可编程器件CPLD是随着用户对可编程器件的集成度要求不断提高的形式下发展起来的,其基本结构与PAL/GAL相仿,是基于与或阵列的乘积项结构,但集成度要高得多。CPLD大都是由E2PROM和Flash工艺制造的,可反复编程,一上电就可以工作,无须其他芯片配合。采用这种结构的商用CPLD的芯片较多,其性能也各有特点. Altera 公司是全球最大的CPLD和FPGA供应商之一,它的PLD器件和开发软件在国内应用的非常广泛,本节将以Altera 公司应用较为广泛的MAX7000系列器件为例来介绍CPLD的基本结构和原理。

  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软件。

  11. 5.2 复杂可编程逻辑器件(CPLD) 2.MAX7000系列器件的结构 MAX7000CPLD的总体结构及外引脚如图所示

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

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

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

  15. 5.3 现场可编程门阵列(FPGA) 现场可编程门阵列FPGA是20世纪80年代出现的一种新型可编程逻辑器件。它由若干独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接成所需要的数字系统。因为这些模块的排列形式和门阵列(Gate Array)中单元的排列形式相似,所以沿用了门阵列的名称。FPGA属高密度的PLD,其集成度非常高,多用于大规模逻辑电路的设计。 商用的 FPGA是基于查找表LUT(Look-Up Table)技术和SRAM工艺的FPGA,它使用的最为广泛,也是我们学习的重点,本节还是以Altera 公司的基于LUT技术和SRAM工艺的FLEX10K系列器件为例来介绍FPGA的基本结构和原理。

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

  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的最主要结构,它们由可编程行/列连线相连接,这些连线同样也连接着芯片的输入输出管脚。

  18. 5.3 现场可编程门阵列(FPGA) 每个FLEX10K器件包含一个实现存储和专用逻辑功能的嵌入阵列和一个实现一般逻辑的逻辑阵列。 嵌入阵列由一系列嵌入阵列块EAB构成。实现存储功能时,每个EAB提供2048bit,可用来完成RAM、ROM、双口RAM或者FIFO功能。实现逻辑功能时,每个EAB可提供100到600门以实现复杂的逻辑功能,如实现乘法器、微控制器、状态机和数字信号处理功能。EAB可以单独使用或多个EAB联合使用以实现更强的功能。

  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的例子

  20. 5.3 现场可编程门阵列(FPGA) 表5.3四输入与门LUT

  21. 5.3 现场可编程门阵列(FPGA) 由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候。由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。

  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。

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

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

  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) 实 现 互 联 , 以 便 实 现 各 种 电 路 的 组 合 。

  26. 5.4.1 在系统可编程模拟器件的电路结构 2.ispPAC20 的结构与原理 (1)内部结构 ispPAC20 器 件 由 两 个 基 本 单 元 电 路 PAC 块 、 两 个 比 较 器 、 一 个 8 位 的 D/A 转 换 器 、 配 置 存 储 器 、 参 考 电 压 、 自 动 校 正 单 元 和 ISP 接 口 所 组 成 。 其 内 部 结 构 框 图 如下图 所 示 。

  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等特殊用途的端子。

  28. 5.4.1 在系统可编程模拟器件的电路结构 3.ispPAC30 的结构与原理 ispPAC30 提 供 可 编 程 、 多 个 单 端 , 差 分 输 入 方 式 、 能 设 置 精 确 的 增 益 , 具 有 补 偿 调 整 、 滤 波 、 和 比 较 功 能 。 除 了E2CMOS 配 置 存 储 器 外 ,它 最 主 要 的 特 性 是 能 够 通 过 SPI 对 器 件 进 行 实 时 动 态 重 构 。 设 计 者 可 以 改 变 和 重 构 ispPAC30 无 数 次 , 用 于 放 大 器 增 益 控 制 或 其 他 需 要 动 态 改 变 电 路 参 数 的 应 用。其内部结构如下图所示。

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

  30. 5.4.1 在系统可编程模拟器件的电路结构 (2)内 部 参 考 电 压 器 件 中 含 有 两 个 独 立 的 参 考 电 压 VREF1 和 VREF2, 用 以 向 四 个 输 入 仪 表 放 大 器(IA)、 两 个 MDAC 提 供 固 定 的 参 考 电 压 。 每 个 VREF 有7 种 不 同 的 电 平 , (3)MDAC 器 件 中 有 两 个8 位 的 MDAC, 它 接 受 参 考 输 入 信 号、 外 部 信 号 、 内 部 信 号 和 固 定 的 直 流 电 压 ( 如 内 部 的VREF )。MDAC 的 功 能 是 用 一 个 值 乘 以( 实 际 上 是 衰 减) 输 入 信 号 , 这 个 值 对 应 于DAC 设 置 的 码 。并 可 独 立 地 编 程 。

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

  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滤波器。

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

  34. 5.4.1 在系统可编程模拟器件的电路结构 5.ispPAC81 的结构与原理 与ispPAC80器件极为相似,ispPAC81器件亦是用于实现五阶、连续时间、低通模拟滤波器。所不同的是用ispPAC81可实现更低频率的滤波器,其频率范围从10kHz到75kHz。PAC-Designer 1.3版本的软件支持ispPAC81器件,其设计操作与ispPAC80器件基本相同。 其内部结构如下图所示。

  35. 5.5 可编程逻辑器件的设计流程 可编程逻辑器件的设计是指利用开发软件和编程工具对器件进行开发的过程。它包括设计准备、设计输入、设计处理和器件编程四个步骤以及相应的功能仿真、时序仿真和器件测试三个设计验证过程。如下图所示。

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

  37. 5.5 可编程逻辑器件的设计流程 2.设计输入 设计者将所设计的系统或电路以开发软件要求的某种形式表现出来,并过程称为设计输入。设计输入通常有以下几种方式。 (1)原理图输入方式 这是一种最直接的输入方式,它使用软件系统提供的元器件库及各种符号和连线画出原理图,形成原理图输入文件。这种方式大多用在对系统及各部分电路很熟悉的情况,或在系统对时间特性要求较高的场合。当系统功能较复杂时,输入方式效率低,它的主要优点是容易实现仿真,便于信号的观察和电路的调整。

  38. 5.5 可编程逻辑器件的设计流程 (2)硬件描述语言输入方式 硬件描述语言用文本方式描述设计,它分为普通硬件描述语言和行为描述语言。 普通硬件描述语言有ABEL-HDL、CUPL等,它们支持逻辑方程、真值表、状态机等逻辑表达方式,目前在逻辑电路设计中已较少使用。 行为描述是目前常用的高层次硬件描述语言,有VHDL和Verlog-HDL等,它们都已成为IEEE标准,并且有许多突出的优点:如工艺的无关性,可以在系统设计、逻辑验证阶段便可确立方案的可行性:如语言的公开可利用性,使它们便于实现大规模系统的设计等;同时硬件描述语言具有较强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间转换非常方便。因此,运用VHDL、Verilog-HDL硬件描述语言设计已是当前的趋势。

  39. 5.5 可编程逻辑器件的设计流程 (3)原理图和硬件描述语言混合输入方式 原理图和硬件描述语言混合输入方式是一种层次化的设计输入方法。在层次化设计输入中,硬件描述语言常用于底层的逻辑电路设计,原理图常用于顶层的电路设计。这是在设计较复杂的逻辑电路时的一种常用的描述方式。 (4)波形输入方式 波形输入主要用于建立和编程波形设计文件及输入仿真向量和功能测试向量。 波形设计输入适合于时序逻辑和有重复性的逻辑函数。系统软件可以根据用户的输入输出波形自动生成逻辑关系。

  40. 5.5 可编程逻辑器件的设计流程 3.设计处理 这是器件设计中的核心环节。在设计,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动进行适配,最后产生编程用的编程文件。 (1)语法检查和设计规则检查 设计输入完成之后,在编译过程首先进行语法检验,如检查原理图有无漏连信号线,信号有无双重来源,文本输入文件中的关键字有无输错等各种语法错误,并及时列出错误信息报告供设计者修改;然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制并将编译报告列出,指明违反规则情况供设计者纠正。

  41. 5.5 可编程逻辑器件的设计流程 (2)逻辑优化和综合 化简所有的逻辑方程和用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块设计文件合并为一个网表文件,并使层次化设计平面化(即展平)。 (3)适配和分割 确定优化以后的逻辑能否与器件中的宏单元和I/0单元适配,然后将设计分割为多个适配的逻辑小块形式影射到器件相应的宏单元中。如果不能装入一片器件时,可以将整个设计自动分割成多块并装入同一系列的多片器件中去。

  42. 5.5 可编程逻辑器件的设计流程 (4)布局和布线 布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的互连。 布线以后软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。 (5)生成编程数据文件 设计处理的最后一步是产生可供器件编程使用的数据文件。对CPLD来说,是产生熔丝图文件,即JEDEC文件(电子器件工程联合制定的标准格式,简称JED文件);对于FPGA来说,是生成位数据文件(Bitstream Generation)。

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

  44. 5.5 可编程逻辑器件的设计流程 5.器件编程 器件编程是指将编程数据下载到可编程逻辑器件中去。对CPLD器件来说是将JED文件“下载(Down Load)”到CPLD器件中去,对FPGA来说是将位流数据BG文件“配置”到FPGA中去。 器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。较早的CPLD器件和一次性编程的FPGA需要专用的编程器完成器件的编程工作。采用在系统可编程技术的器件)则不需要专用的编程器,只要一根下载编程电缆就可以了。基于SRAM的FPGA还要由EPROM、Flash Memory或其他专配置芯片进行配置。

More Related