基于fpga的抢答器设计_本科毕业设计(编辑修改稿)内容摘要:

M 中的数据决定。 SRAM 型开关的 FPGA 是易失性的,每次重新加电, FPGA 都要重新装入配置数据。 SRAM 型 FPGA 的突出优点是可反复编程,系统上电时,给 FPGA 加载不同的配置数据,即可令其完成不同的硬件功能。 这种配置的改变甚至可以在系统的运行中进行,实现系统功能的动态重构。 采用快闪 EPROM 控制开关的 FPGA 具有非易失性和可重复编程的双重优点,但在再编程的灵活性上较 SRAM 型 FPGA 差一些,不能实现动态重构。 此外,其静态功耗较反熔丝型及 SRAM 型的 FPGA高。 167。 FPGA 芯片结构 FPGA 采用了 逻辑单元 阵列 LCA( Logic Cell Array)这样一个概念,内部包括可配置逻辑模块 CLB( Configurable Logic Block)、输出输入模块 IOB( Input Output Block)和内部连线( Interconnect)三个部分。 现场可编程门阵列( FPGA)是可 编程器 件,与传统逻辑 电路 和门阵列(如 PAL, GAL 河南科技大学本科毕业设计(论文) 9 及 CPLD 器件)相比, FPGA 具有不同的结构。 FPGA 利用小型查找表( 161RAM)来实现组合逻辑,每个查找表连接到一个 D 触发器 的输入端,触发器再来驱动其他逻辑电路或驱动 I/O,由此构成了既可实现组合逻辑 功能又可实现时序逻辑功能的基本 逻辑单元 模块,这些模块间利用金属连线互相连接或连接到 I/O 模块。 FPGA 的逻辑是通过向内部静态 存储单元 加载编程数据来实现的,存储在存储器单元中的值决定了 逻辑单元 的逻辑功能以及各模块之间或模块与 I/O 间的联接方式,并最终决定了 FPGA 所能实现的功能, FPGA 允许无限次的编程。 FPGA 是在 PAL、 GAL、 EPLD、 CPLD 等可编程器件的基础上进一步发展的产物。 它是作为 ASIC 领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 由于 FPGA 需要被反复烧写,它实现组合逻辑的基本结构不可能像 ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。 查找表可以很好地满足这一要求,目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构,也有一些军品和宇航级 FPGA 采用 Flash 或者熔丝与反熔丝工艺的查找表结构。 通过烧写文件改变查找表内容的方法来实现对 FPGA 的重复配置。 根据数字电路的基本知识可以知道,对于一个 n 输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在 2n 种结果。 所以如果事先将相应的结果存放于一 个存贮单元,就相当于实现了与非门电路的功能。 FPGA 的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。 查找表( LookUpTable)简称为 LUT, LUT 本质上就是一个 RAM。 目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 的 RAM。 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,PLD/FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输 入一个地址进行查表,找出地址对应的内容,然后输出即可。 目前主流的 FPGA 仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如 RAM、时钟管理和 DSP)的硬核( ASIC 河南科技大学本科毕业设计(论文) 10 型)模块。 FPGA 芯片 主要由 7 部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式 RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。 每个模块功能如下: 1) 可编程输入输出单元( IOB) 可编程输入 /输出单元简称 I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输 入 /输出信号的驱动与匹配要求, FPGA 内的 I/O 按组分类,每组都能够独立地支持不同的 I/O 标准。 通过软件的灵活配置,可适配不同的电气标准与 I/O 物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。 外部输入信号可以通过 IOB 模块的存储单元输入到 FPGA 的内部,也可以直接输入 FPGA 内部。 当外部输入信号经过 IOB 模块的存储单元输入到FPGA 内部时,其保持时间( Hold Time)的要求可以降低,通常默认为 0。 为了便于管理和适应多种电器标准, FPGA 的 IOB 被划分为若干个组( bank),每个 bank 的接口 标准由其接口电压 VCCO 决定,一个 bank 只能有 一种VCCO,但不同 bank 的 VCCO 可以不同。 只有相同电气标准的端口才能连接在一起, VCCO 电压相同是接口标准的基本条件。 2) 可配置逻辑块( CLB) CLB 是 FPGA 内的基本逻辑单元。 CLB 的实际数量和特性会依器件的不同而不同,但是每个 CLB 都包含一个可配置开关矩阵,此矩阵由 4 或 6个输入、一些选型电路(多路复用器等)和触发器组成。 开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或 RAM。 数字时钟管理模块( DCM)。 业内大多数 FPGA 均提供数字时钟管理( Xilinx 的全部 FPGA 均具有这种特性)。 Xilinx 推出最先进的 FPGA 提供数字时钟管理和相位环路锁定。 相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。 3) 丰富的布线资源 布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。 FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为 4 类不同的类别。 第一类是 河南科技大学本科毕业设计(论文) 11 全局布线资源,用于芯片内部全局时钟和全局复位 /置位的布线;第二类是长线资源,用以完成芯片 Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。 4) 底层内嵌功能单元 内嵌功能模块主要指 DLL( Delay Locked Loop)、 PLL( Phase Locked Loop)、 DSP 和 CPU 等软处理核( SoftCore)。 现在越来越丰富的内嵌功能单元,使得单片 FPGA 成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向 SOC 平台过渡。 5) 内嵌专用硬核 内嵌专用硬核是相对底层嵌 入的软核而言的,指 FPGA 处理能力强大的硬核( Hard Core),等效于 ASIC 电路。 为了提高 FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。 6) 嵌入式块 RAM( BRAM) 大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA 的应用范围和灵活性。 块 RAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器 ( CAM)以及 FIFO 等常用存储结构。 RAM、 FIFO 是比较普及的概念,在此就不冗述。 CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM 中的数据会和内部的每一个数据进行比 较,并返回与端口数据相同的所有数据的地址,因而在 路由 的地址交换器中有广泛的应用。 除了块RAM,还可以将 FPGA 中的 LUT 灵活地配置成 RAM、 ROM 和 FIFO 等结构。 在实际应用中,芯片内部块 RAM 的数量也是选择芯片的一个重要因素。 单片块 RAM 的容量为 18k 比特,即位宽为 18 比特、深度为 1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽 深度)不能大于 18k 比特;其次,位宽最大不能超过 36 比特。 当然,可以将多片块 RAM 级联起来形成更大的 RAM,此时只受限于芯片内块 RAM的数量 ,而 不再受上面两条原则约束。 7) 数字时钟管理模块( DCM) 业内大多数 FPGA 均提供数字时钟管理( Xilinx 的全部 FPGA 均具有这种特性)。 Xilinx 推出最先进的 FPGA 提供数字时钟管理和相位环路锁定。 河南科技大学本科毕业设计(论文) 12 相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。 167。 FPGA 设计流程 一般来说,完整的 FPGA/CPLD 设计流程包括: (1) 电路功能设计,系统设计之前,首要的是方案论证、系统设计和FPGA 芯片选择等准备工作。 一般采用自顶向下的设计方法将系统分成若干基本单元,然后将基本单元划分 成下一层的基本单元,一直这样就行下去,直到可以直接使用 EDA 元件库为止。 (2) 设计输入,常用的方法是硬件描述语言和原理图输入方式。 (3) 功能仿真,验证设计电路的逻辑功能。 (4) 综合优化( synthesis),综合优化是指将 HDL 语言、原理图等设计输入翻译成由与、或、非门、 RAM、触发器等基本逻辑单元组成的逻辑网表,并根据目标与要求(约束条件)优化生成的逻辑网表,输出 edf 和 edn 等文件,供 FPGA/CPLD 厂家的布局布线器进行实现。 (5) 综合后仿真,检查综合结果是否与原设计一致,仿 真时把综合生成 的标准延时文件反标注到综合仿真模型中,可估计门延时带来的影响。 但这一步骤不能 估计线延时,因此和布线后的仿真情况还有一定的差距,并不十分准确。 (6) 实现( Implementation),实现是将综合生成的逻辑网表配置到具体的 FPGA 芯片上, Xilinx 的实现过程分为翻译( Translate)、映射( Map)、和布局布线( Placeamp。 Route)。 布局布线是其中最重要的过程,布局是将逻辑网表中的硬件原语和底层单元合理得配置到芯片内部的硬件结构上,并且需要在速度最优和面积最优之间做出选择。 布线 时根据布局的拓扑结构,利用芯片内部的各种连线资源合理准确的连接各个元件。 (7) 时序仿真与验证,将布局布线后的延时信息反标注到网表中用来检测时序工作情况,时序仿 真包括的延时信息最全,也最精确,能较好的反映芯片的实际工作情况。 有是为了保证设计的可靠性,在时序仿真后还要做一些验证,可以用 ISE 内嵌的时序分析工具完成静态时序分析( STA, Static Timing Analyzer),也可以用第三方验证工具(如 Synopsys 的 Formality 验证工具, PrimeTime 静态时序分析工具等)进行验证。 可以用 ISE 内嵌的 FPGA 河南科技大学本科毕业设计(论文) 13 Editor 和 Chip Viewer 观察芯片内部的连接于配置情况,或者使用 ISE 内嵌的 ChipScope Pro 进行在线逻辑分析。 (8) 调试与加载配置,就是在线调试或者将生成的配置文件写入芯片中进行测试。 在 ISE 中对应的工具就是 iMPACT。 FPGA 设计流程图如图 21 所示。 系 统 设 计 电 路 构 思电 路 设 计 与 输 入( H D L 代 码 、 原 理图 、 波 形 、 状 态 机 )功 能 仿 真 是 否 正 确。 综 合 优 化综 合 后 仿 真 是 否 正 确。 实 现 与 布 局 布 线布 局 布 线 后 仿 真 与 验证 是 否 正 确。 板 级 仿 真 与 验 证 是否 正 确。 加 载 配 置 在 线 调 试是 否 为 综 合 优 化 的 问 题。 是 否 为 实 现 的 问 题。 是否是 否否是是是是否否否 图 21 FPGA设计流程图 167。 FPGA 软件设计 FPGA 软件设计可分为两大块:编程语言和编程工具。 编程语言主要有VHDL 和 Verilog两种硬件 描述语言;编程工具主要是两大厂家 Altera 和 Xilinx的集成综合 EDA 软件 QuartusII 以及第三方工具。 具体的设计输入方式有以下几种: 河南科技大学本科毕业设计(论文) 14 (1) HDL 语言方式。 HDL 既可以描述底层设计,也可以描述顶层的设计, 但它不容易做到较高的工作速度和芯片利用率。 用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。 (2) 图形方式。 可以分为电路原理图描述,状态机描述和波形描述 3 种 形式。 电路原理图方式描述比较直观和高效,对综合软件的要求不高;状态机描述主要用来设计基于状态机思 想的时序电路;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。 167。 FPGA 的应用 FPGA 的应用可分为三个层面:电路设计,产品设计,系统设计。 1) 电路设计中 FPGA 的应用 连接逻辑,控制逻辑是 FPGA 早期发挥作用比较大的领域也是 FPGA 应用的基石.事实上在电路设计中应用 FPGA 的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。