基于fpga的预测控制器设计_毕业设计(编辑修改稿)内容摘要:
及低功耗: FPGA 的现场可编程性,使用户可以反复地编程、擦除、使用,或者保持在外围电路不变的情况下,采用不同设计就可以实现不同的功能。 这种现场可编程性给产品的快速开发及产品的升级带来了极大的灵活性。 此外,随着半导体技术的发展, FPGA 的功耗不断降低,非常适合于要求低功耗设备的场合。 因此,利用 FPGA 实现预测控制器,能满足 新应用对预测控制器高实时性、微型化、高可靠性和低成本的需要,基于 FPGA 的预测控制器能进一步扩大预测控制的应用领域。 7 主要内容 本文主要完成了以下工作: 1. 广义预测控制算法,并进行了 Matlab/Simulink 数字仿真; 2. 采用基于 Nios II 嵌入式软核处理器的 FPGA/SOPC 方案,利用 SOPC Builder 在 FPGA 芯片上构建 SOPC 系统,完成其硬件系统与软件系统的设计,主要包括 Nios II 内核及标准组件的配置、自定制指令设计及自定制组件设计等,设计完 成基于 FPGA 的预测控制器。 8 第 2 章 基础知识 基于 FPGA 的预测控制器实现涉及到预测控制和 FPGA/SOPC 开发技术等多方面的内容,因此本章主要介绍关于预测控制和 FPGA/SOPC 开发的一些重要基础知识和关键技术。 FPGA 技术 FPGA 是由可配置(或者可编程)逻辑块组成的数字集成电路,用户可根据功能需求对其进行重新配置,以实现用户的功能。 FPGA 产生于 80 年代中期,是在 PAL、 GAL 等可编程器件的基础上进一步发展的产物。 FPGA 的出现既解决了原有可编程器件门电路数有限的缺点,又克服了 ASIC( Application Specfic Integrated Circuit,专用集成芯片)的不足,是一种新型的电路实现技术。 它具有集成度高、研制时间短、体积小、保密性强、可靠性高及设计灵活等优点。 FPGA 在通信、数据处理、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用;随着功耗和成本的进一步降低, FPGA 还将进入更多的应用领域。 FPGA 结构 目前 FPGA 的生产厂商主要有 Xilinx、 Altera、 Actel、 Lattice、 QuickLogic。 尽管这些厂商生产的 FPGA 品种和型号繁多,具体结构和性能指标各有特色,但它们都有一个共同之处,即由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块,从而实现不同的设计。 典型的 FPGA 通常包含三类基本资源:可编程逻辑功能块、可编程输入 /输出块和可编程互连资源。 可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片;可编程输入 /输出块完成 9 芯片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周;可编程内 部互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入 /输出块连接起来,构成特定功能的电路。 用户可以通过编程决定每个单元的功能以及它们的互连关系,从而实现所需的逻辑功能。 此外,还包含其他一些模块,如 RAM、 PLL、硬件乘法器、 DSP 模块等。 不同厂家或不同型号的 FPGA,在可编程逻辑块的内部结构、规模、内部互连的结构等方面经常存在一定的差异。 图 为 Xilinx 公司的 FPGA 结构示意图。 图 Xilinx 公司的 FPGA 结构示意图 每个单元的基本概念如下 : 1) 基本可编程逻辑单元 基本可编程逻辑单元是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,从而完成不同的逻辑功能。 目前, FPGA 一般是基于 SRAM 工艺的, 10 其基本可编程逻辑单元几乎都是由查找表( LUT, Look Up Table)和寄存器( Register)等模块组成的。 2) 可编程输入 /输出单元 输入 /输出( Input/Output)单元简称 I/O 单元,它们是芯片与外界电路的接口部分完成不同电气特性下对输入 /输出信号的驱动与匹配需求。 为了使 FPGA 有更灵活的应用,目前大多 数 FPGA 的 I/O 单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与 I/O 物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。 3) 丰富的布线资源 布线资源连通 FPGA 内部所有的单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输的速度。 有全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位 /置位的布线;有长线资源,用以完成器件 Bank(分区)间的一些高速信号和一些第二全局时钟信号的布线;还有短线资源,用以完成基本逻辑单元之间的逻辑互联 与布线。 4) 底层嵌入功能单元 底层嵌入功能单元这里指的是那些通用程度较高的嵌入式功能模块,比如硬件乘法器、 PLL( Phase Locked Loop)、 DLL( Delay Locked Loop)、 DSP 等。 FPGA 内部嵌入 CPU 或 DSP 等处理器,使 FPGA 在一定程度上具备了实现软硬件联合系统的能力, FPGA 正逐步成为 SOPC( System On Programmable Chip)的高效设计平台。 11 FPGA 特点 在二十几年的发展过程中, FPGA 的硬件体系结构和软件开 发工具都在不断的完善,日趋成熟。 从最初的 1200 个可用门, 90 年代时几十万个可用门,发展到目前数百万门至上千万门的单片 FPGA 芯片, Xilinx、 Altera 等世界顶级厂商已经将 FPGA 器件的集成度提高到一个新的水平。 FPGA 结合了微电子技术、电路技术、 EDA 技术,使设计者可以集中精力进行所需逻辑功能的设计,缩短设计周期,提高设计质量。 与专用集成电路 ASIC 相比, FPGA 具有灵活性高、设计周期短、成本低、风险小等优势,因而得到了广泛应用,各项相关技术也迅速发展起来,FPGA 目前已 经成为数字系统设计的重要硬件基础。 FPGA 的基本特点主要有: 1) 采用 FPGA 设计 ASIC 电路,用户不需要投片生产,就能得到合适的芯片; 2) FPGA 可做其他全定制或半定制 ASIC 电路的中试样片; 3) FPGA 有丰富的逻辑资源和大量的 I/O 引脚,能满足不同的功能需求; 4) FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一; 5) FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、 TTL 电平兼容。 可以说, FPGA 芯片是目前小批量系统 提高系统集成度、可靠性的最佳选择之一。 FPGA 的品种和型号很多,主要有 Xilinx 的 Virtex、 Spartan 系列、 Altera 公司的 Stratix、 Cyclone 系列等。 SOPC 技术 可编程片上系统( System On Programmable Chip, SOPC)是一种特殊的嵌入式系统,是由美国 Altera 公司于 20xx 年最早提出的。 SOPC 技术提供了一种有 12 效的解决方案,即用大规模可编程器件 —— FPGA 来实现 SoC( System On Chip)的功能, SOPC 基于 FPGA 芯片,将处理器、存储器、 I/O 口等系统设计需要的模块集成在一起,完成整个系统的主要逻辑功能,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件可编程的功能。 SOPC 结合了 SoC 和 FPGA 各自的优点,具备以下基本特征: 1) 至少包含一个以上的嵌入式处理器 IP Core; 2) 具有小容量片内高速 RAM 资源; 3) 丰富的 IP Core 资源可供灵活选择; 4) 足够的片上可编程逻辑资源; 5) 单芯片、低功耗、微封装。 SOPC 技术的实现方式一般分为三种: ( 1)基于 FPGA 嵌入 IP( Intellectual Property)硬核的 SOPC 系统。 目前最常用的嵌入式系统大多采用了含有 ARM 的 32 位 IP 处理器核的器件。 Altera 公司 Excalibur 系列的 FPGA 中就植入了 ARM922T 嵌入式系统处理器;Xilinx 的 VirtexII Pro 系列中则植入了 IBM PowePC405 处理器。 这样就能使得 FPGA 灵活的硬件设计和硬件实现与处理器强大的软件功能结合,高效地实现 SOPC 系统。 ( 2)基于 FPGA 嵌 入 IP 软核的 SOPC 系统。 在第一种实现方案中,由于硬核是预先植入的,其结构不能改变,功能也相对固定,无法裁减硬件资源,而且此类硬核多来自第三方公司,其知识产权费用导致成本地增加。 如果利用软核嵌 13 入式系统处理器就能有效克服这些不利因素。 最具有代表性的嵌入式软核处理器是 Altera 公司的 NiosII 软核处理器。 ( 3)基于 HardCopy 技术的 SOPC 系统。 HardCopy 就是利用原有的 FPGA 开发工具,将成功实现于 FPGA 器件上的 SOPC 系统通过特定的技术直接向 ASIC 转化, 从而克服传统 ASIC 设计中普遍存在的问题。 Nios II 嵌入式软核处理器 Nios II 系列软核处理器是 Altera 的第二代 FPGA 嵌入式软核处理器,其性能超过 200DMIPS,在 Altera FPGA 中实现仅需 35 美分。 Altera 的 Stratix、Stratix GX、 StratixII 和 Cyclone II、 Cyclone III 系列 FPGA 全面支持 Nios II 处理器,以后推出 的 FPGA 器件也将全面支持 Nios II 处理器。 Nios II 嵌 入式处理器是一款通用的 RISC 结构的 CPU,它定位于广泛的嵌入式应用。 Nios II 处理器系列包括了三种核心 —— 快速型( Nios II/f)、经济型( Nios II/e)和标准型( Nios II/s)内核 —— 每种都针对不同的性能范围和成本而优化。 这三种内核使用共同的 32 位的指令集结构( ISA),并具有百分之一百的二进制代码兼容性。 Nios II 处理器具有完善的软件开发套件,包括编译器、集成开发环境( IDE)、JTAG调试器、实时操作系统( RTOS)和 TCP/IP 协议栈。 设计者能够用 SOPC Builder 系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加 Nios II 处理器的数量,可以轻松的将 Nios II 处理器嵌入到他们的系统中。 Nios II 处理器系统中包含两类可以在 FPGA 中实现的外设:标准外设和定制外设。 标准外设是指 Altera 公司提供的标准外围设备库,比如定时器、串行通信接口、 SDRAM 控制器等。 定制外设可由设计者自行设计并集成到 Nios II 处 14 理器系统。 标准外设和定制外设与 Nios II 处理器核通过与 Avalon Switch Fabric 连接进行通信。 Avalon 总线是一种相对简单的总线结构,主要用于连接片内处理器与外设,以构成可编程片上系统。 它描述了主从组件外设间的端口连接关系,以及组件间通信的时序关系。 Nios II 嵌入式处理器的特性: II 处理器核 Nios II 处理器系列由三个不同的内核组成,可以灵活地控制成本和性能,从而拥有广泛的应用空间; 开发人员可以在 Nios II 处理器核内增加硬件,用来执行复杂运算任务,为时序要求紧张的软件提供加速算法; 调试 模块 JTAG 调试模块提供了通过本地或远端 PC 主机实现 Nios II 处理器的在芯片控制、调试和通讯功能,这是 Nios II 处理器的一个极具竞争力的特性; Nios II 开发套件包括一套标准外围设备库,在 Altera 的 FPGA 中可以免费使用。 FPGA/SOPC 开发工具 FPGA 的领导厂商 Altera 公司提供了一套完整的 FPGA/SOPC 开发工具,包括 Quartus II 设计软件、 SOPC Builder 系统开发工具、 Mode1SimAltera 仿真软件、 Nios II IDE( Integrated Development Environment,集成开发环境)和 SingalTap II 嵌入式逻辑分析仪。 Quartus II 软件是 Altera 公司的综合开发工具,它集成了 Altera 的 FPGA/CPLD 开发流程中所涉及的所有工具和第三方软件接口。 通过使用此综合开发工具,设计者可以创建、组织和管理自己的设计。 15 Quartus II 设计软件具有很高的性能和易用性。 采用 Quartus II 软件,可以在 Altera 器件中完成从设 计、综合、仿真到布局布线、测试的整个过程,并可以轻松设计、优化并验证 SOPC 设计。 SOPC Builder 是 SOP。基于fpga的预测控制器设计_毕业设计(编辑修改稿)
相关推荐
XIV The Design of Handhold Interphone Based on FX224 Student : school of electronic information engineering Teacher: school of electronic information engineering [ABSTRACT] In this paper, I
图如图 33 所示。 输入信号通过脉冲形成电路进入进行放大与整形(可由放大器与们电路组成),然后送到单片机入口,单片机计数脉冲的输入个数,计数结果经由 LED 数码管显示,从而得到被测信号的参数。 图 33 基于单片机的脉冲宽度测量原理框图 其中单片机可选择 AT89C2051 为核心的脉宽测量装置,充分利用 AT89C2051 单片机内部资源,精确测量连续 N 个脉冲的平均宽 度,减小误差
量为 e 和 ec,因此它相当于是非线性的 PD 控制,k1,k2分别是比例项和导数项前面的比例系数[8],它们对系统性能有很大影响,要仔细加以选择。 k3串联于系统的回路中,它直接影响整个回路的增益,因此 k3也对系统的性能有很大的影响,一般说来,k3选得大,系统反应快。 但过大有可能使系统不稳定。 (3)将己经变换到论域范围的输入量进行模糊处理,使原先精确的输入量变成模糊量
reg[6:0] count2。 reg[7:0] count3。 reg[5:0] count4。 reg cin1,cin2。 always @(posedge clk66MHz) if(count1[9:0]==1039。 d999) begin count1[9:0]=1039。 d0。 cin1=139。 d1。 //产生进位信号 1 end else begin count1[9
y,clk66MHz)。 input clk66MHz。 output clk,clkss,clksy。 reg clk,clkss,clksy。 reg[9:0] count1。 reg[6:0] count2。 reg[7:0] count3。 reg[5:0] count4。 reg cin1,cin2。 always @(posedge clk66MHz) if(count1[9
INT82DEV_OE83IN484GCLCK11IN12DEV_OE3VCCINT4I/O0/DATA75I/O1/DATA66I/O2/DATA57I/O3/DATA48I/O4/DATA39I/O5/DATA210I/O6/DATA111D A T A 012D C L K13n C E14T D I15I / O 716I / O 817I / O 918I / O 1019V C C