基于fpga的图像数据传输控制系统的设计_本科毕业设计(编辑修改稿)内容摘要:

时钟综合,还具有降 低抖动和实现过滤功能。 嵌入式块 RAM( BRAM)。 大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA的应用范围和灵活性。 BRAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器 ( CAM)以及 FIFO 等常用存储结构。 CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM 中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。 除了块 RAM,还可以将 FPGA 中的 LUT 灵活地配置成 RAM、 ROM 和 FIFO 等结构。 丰富的布线资 源。 FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为 4 类不同的类别。 第一类是全局布线资源,用于芯片内部全局时钟和全局复位 /置位的布线;第二类是长线资源,用以完成芯片 Bank 间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。 布 线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。 底层内嵌功能单元。 内嵌功能模块主要指延迟锁定环( DLL)、相位锁定换( PLL)、数字信号处理器( DSP)和中央处理单元( CPU)等软处理核( SoftCore)。 现在越来越丰富的内嵌功能单元,使得单片 FPGA 成为了系统级的设计工具,使其具备了COUT SHIFT CIN CIN COUT Switch Matrix Slice X1Y1 Slice X1Y0 Slice X1Y0 Slice X1Y1 TBUF X0Y1 TBUF X0Y0 快速连接 到邻近区 武汉理工大学毕业设计(论文) 6 软硬件联合设计的能力,逐步向 SOC 平台过渡。 DLL 和 PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。 PLL 和DLL 可以通过 IP 核生成的工具方便地进行管理和配置。 内嵌专用硬核。 内嵌专用硬核是相对底层嵌入的软核而言的,指 FPGA 处理能力强大的硬核( Hard Core),等效于 ASIC 电路。 为了提高 FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。 例如:为了提高 FPGA 的乘法速度,主流的 FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的 FPGA 内部都集成了串并收发器( SERDES),可以达到数十 Gbps 的收发速度。 FPGA 的应用 FPGA 器件自身的高度灵活性使得它的应用范围极其广泛。 目前在电子信息领域,FPGA 的应用表现在以下几个方面 [1113]。 FPGA 在逻辑控制电路中的应用。 这应该是 FPGA 最基本的应用,通过对 FPGA 的逻辑编程,可以轻易生 成任意组合逻辑电路的时序,对逻辑电路中的其他芯片起控制作用。 FPGA 在数字信号处理技术中有重大应用。 由于 FPGA 具有强大的运算和数据处理能力,故当今基于 FPGA 的数字信号处理能够很好地解决一些无法简单运用 DSP 处理的问题,数字信号处理中常须用到的一些模块如乘法器、除法器、滤波器、延时器、锁相器、比较器等等在 FPGA 中都能很容易的实现。 因此数字信号处理中常见的复杂计算如傅里叶变换、拉普拉斯变换等都可轻易解决。 此外,在一些特定场合, FPGA 对 DSP 也有很好的辅助作用。 FPGA 在微机系统中的应用。 由于 FPGA 丰富的 I/O 口资源和强大的模块化功能,使得其几乎可以取代微机系统中现有的全部微机接口芯片,实现微机系统中的总线控制、地址译码、中断和 DMA 控制、 DRAM 管理和 I/O 接口电路功能。 并且,利用 FPGA 可把微机系统的功能集成在同一芯片中,实现 “功能集成 ”。 此外, FPGA 可用于产品设计上 [14]。 FPGA 因为具备接口,控制,功能 IP,内嵌 CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计。 因此,在产品设计领域, FPGA 前景广阔。 FPGA 开发过程 对于基于 FPGA 的系统,其开发过 程有分析设计, EDA 仿真设计等步骤,具体如下图所示。 武汉理工大学毕业设计(论文) 7 图 5 FPGA 开发分析流程 图 6 软件平台上的开发流程 Cyclone II 系列芯片 此次系统设计的核心芯片就是 Cyclone II 系列的 FPGA 芯片。 Cyclone II 采用全铜层、低 K 值、 伏 SRAM 工艺设计,裸片尺寸被尽可能最小的优化。 采用 300 毫米晶圆,以 TSMC 成功的 90nm 工艺技术为基础, 如图 7 所示。 任务分析,确定系统逻辑功能 权衡比较,选定功能实现算法 逻辑划分,绘制系统结构框图 选择器件,完成 EDA工 程设计 化整为零,逐个设计功能模块 设计输入 综 合 FPGA/CPLD适配 FPGA/CPLD编程下载 在线测试 时序仿真 功能仿真 武汉理工大学毕业设计(论文) 8 图 7 CycloneII 系列 FPGA 的内部结构示意图 器件主要由以行列形式排列的逻辑阵列块 (Logic Array Block,LAB)、嵌入式存储器块及嵌入式乘法器组成,锁相环 (PLL)为 FPGA 提供时钟,输入/输出单元 (Input/ Output Element,IOs)提供输入输出接口逻辑。 逻辑阵列、嵌入式存储器块、嵌入式乘法器、输入输出单元及锁相环之间可实现各种速度的信号互联。 逻辑单元是 Cyclone II 系列中可实现用户逻辑定制的最小单元, Cyclone II 器件提供 了 4608 到 68416 个逻辑单元( LE),并具有一整套最佳的功能,包括嵌入式 18 比特 18 比特乘法器、专用外部存储器接口电路、4kbit 嵌入式存储器块、锁相环( PLL)和高速差分 I/O 能力。 每 16 个 LE 组成一个逻辑阵列块 (LAB)。 LAB 以行列形式在 FPGA 器件中排列。 CycloneII 系列 FPGA 有片内 PLL,并有多达 16 个全局时钟网络为逻辑阵列块、嵌入式存储器块、嵌入式乘法器和输入输出单元提供时钟。 M4K 嵌入式存储器块由带校验的 4K 位 (4096 位 ) 真双口 (Ture Dual. Port)RAM 组 成,可配置成真双口模式、简单双口模式或单口模式的存储器,位宽最高可达 36 位,存取速度最高 260MHz。 M4K 嵌入式存储器分布于逻辑阵列块之间。 Cyclone II 系列 FPGA 的 M4K 嵌入式存储器的容量为 119K~ 1152K 位不等。 每个嵌入式乘法器可以配置成两个 99 或一个 1818 的乘法器,处理速度最高可达 250MHz。 Cyclone II 的嵌入式乘法器在 FPGA 上按列排列。 输入输出单元排列在逻辑阵列块的行或列的末端,可以提供各种类型的单端或差分逻辑输入输出。 Quartus II 简介 Quartus II 是 Altera 公司在 MAX PLUS II 基础上研发出的新一代 PLD 开发软件。 它具有易学易用、运行速度快、可视化、集成化设计环境等优点,支持原理图、 VHDL、 Verilog HDL 及 AHDL 等多种设计输入形式,内嵌自有的综合器以及仿真器,可以实现从设计输入到硬件配置的完整 PLD 设计流程。 它提供了一种与结构无关的设计环境,使得设计人 PLL PLL PLL PLL Logic Array M4K Blocks Logic Array Logic Array M4K Blocks Logic Array IOEs IOEs IOEs IOEs Embedded Multipliers 武汉理工大学毕业设计(论文) 9 员无须精通器件的内部结构,只需运用自己熟悉的输入工具(原理图输入或高级行为描述语言)进行设计 [15]。 Quartus II 系统把这些设计转换成最终结构所需的格式,供实 际使用。 Quartus II 的设计输入方法 Quartus II 具有多种设计输入方法,如原理图输入、 VHDL、 Verilog HDL 及 AHDL 等多种设计输入形式。 现在对应用比较多的两种输入形式做以介绍。 原理图输入法。 如图 8 所示,这是一种最为直接的输入方法,用 Quartus II 图库里提供的各种原理图库进行设计输入。 采用这种方法的时候,可以从上到下将逻辑分块,即把大规模的电路划分成若干小块的方法,这样可以提高输入效率。 图 8 原理图输入界面 硬件描述语言 HDL 输入法。 这也是本次设计将 用到的方法。 Quartus II 平台支持VHDL, Verilog HDL 及 AHDL 等多种语言描述。 这种输入方法的优点是输入效率高,结果易仿真,信号易观察。 但语言输入必须依赖综合器,只有好的综合器才能把语言综合成优化的电路,因此对综合器的要求较高。 这种方法适用于大量的规范的、易于用语言描述的、易于综合的电路设计,如图 9 所示。 武汉理工大学毕业设计(论文) 10 图 9 HDL 描述语言输入界面 编译和仿真 在设计输入完成之后,可继续在 Quartus II 上对设计进行编译和仿真。 FPGA 的编译和仿真分两步进行。 首先是功能的验证。 电 路设计输入完成后先需要检查输入是否正确, Quartus II 提供了功能编译的选项。 此时的仿真由于未作布局布线,故其中不含延时信息,而且可以预测所有信号,故对于初步功能的检测非常方便,只需加入激励信号,即自设的时钟信号,观察各个节点的信号,看与预测是否相同,并进行修正。 功能检测完成后,需要进行后仿真。 选择带有延时的完全编译。 对每一个设计项目的ACF 配置文件里的参数进行修改,包括器件的类型、管脚的设置、速率及面积的比重、时间参数要求和布线等设置。 编译完成后的仿真就是后仿真。 HDL 描述语言简介 HDL( Hardware Description Language)即硬件描述语言,这是一种硬件设计人员用来进行电子自动化设计( EDA)的工具。 其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。 即在计算机系统和相应的软件上用 Verilog HDL或 VHDL建模对复杂的数字逻辑进行仿真,然后自动生成相应的数字逻辑网表,根据网表和选定工艺的器件自动生成具体电路,接着生成该工艺条件下上述具体电路德延时模型。 仿真验证无误后用于制造武汉理工大学毕业设计(论文) 11 ASIC芯片或写入 FPGA器件中。 在 EDA 技术领域中把用 HDL 语言建立 的数字模型称为软核 ( Soft Core),把用 HDL 建模和综合后生成的网表称为固核( Hard Core)对这些模块的重复利用缩短了开发时间,提高了产品开发率提高了设计效率。 硬件描述语言有多种,如 Verilog HDL、 VHDL、 AHDL等,本次设计将是采用 Verilog HDL语言来实现。 相比之下, Verilog HDL语言具有语法简单、程序简洁、容易掌握等优点,因而,它是一种被广泛使用的标准硬件描述语言,用于从算法级到开关级得多种抽象设计层次的数字系统建模。 被建模的数字系统对象的复杂性可以介于简单的门 级和整体的电子数字系统之间。 Verilog HDL语言有一套系统的语法规则,并且有许多语法规则跟 C语言一致。 因此在有 C语言基础的情况下去学习 Verilog HDL语言比较容易 [16]。 具体说来这种行为描述语言具有以下八项功能: • 可描述顺序执行或并行执行的程序结构。 • 用延迟表达式或事件表达式来明确地控制过程的启动时间。 • 通过命名的事件来触发其它过程里的激活行为或停止行为。 • 提供了条件、 ifelse、 case、循环程序结构。 • 提供了可带参数且非零延续时间的任务。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。