基于ARM与FPGA的可重构设计

发布者:快乐球球最新更新时间:2011-12-15 来源: 中电网关键字:可重构  FPGA  ARM 手机看文章 扫描二维码
随时随地手机看文章
      可重构技术是指利用可重用的软硬件资源,根据不同的应用需求,灵活地改变自身体系结构的设计方法。常规SRAM工艺的FPGA都可以实现重构,利用硬件复用原理,本文设计的可重构控制器采用ARM核微控制器作为主控制器,以FPGA芯片作为协处理器配合主控制器工作。用户事先根据需求设计出不同的配置方案,并存储在重构控制器内部的存储器中,上电后,重构控制器就可以按需求将不同设计方案分时定位到目标可编程器件内,同时保持其他部分电路功能正常,实现在系统灵活配置,提高系统工作效率。
 1 SVF格式配置文件

  很多嵌入式系统中都用到了FPGA/CPLD等可编程器件,在这些系统中利用SVF格式配置文件就可以方便地通过微控制器对可编程器件进行重新配置。目前可编程芯片厂商的配套软件都可以生成可编程器件的SVF格式配置文件,串行矢量格式(SVF)是一种用于说明高层IEEE 1149.1(JTAG)总线操作的语法规范。SVF由Texas Instruments开发,并已成为数据交换标准而被Teradyne,Tektronix等JTAG测试设备及软件制造商采用。Xilinx的 FPGA以及配置PROM可通过JTAG接口中TAP控制器接收SVF格式的编程指令。由于SVF文件由ASCII语句构成,它要求较大的存储空间,并且存储效率很低,无法胜任嵌入式应用。为了在嵌入式系统中充分利用其有限的存储空间,并不直接利用SVF文件对可编程器件进行在系统编程,而是将SVF文件转换成另一种存储效率比较高的二进制格式的文件,把它存储在数据存储器中。Xilinx公司提供用于创建器件编程文件的iMPACT工具,该工具随附于标准Xilinx ISETM软件内。iMPACT软件能自动读取标准的BIT/MCS器件编程文件,并将其转换为紧凑的二进制XSVF格式。

  本设计是基于“ARM处理器+FPGA”结构的重构控制器,重构控制器中的FPGA能够根据ARM处理器传送来的命令,对目标可编程器件 JTAG接口进行控制,并负责解译XSVF格式的配置文件信息,生成xilinx器件所用的编程指令、数据和控制信号(TMS,TDI,TCK序列)向目标可编程器件的JTAG TAP控制器提供所需的激励,从而执行最初在XSVF文件内指定的编程和(可选的)测试操作。使目标可编程器件内的TAP状态机进行状态转换,将指令和数据扫描到FPGA内部边界扫描电路指令寄存器和数据寄存器中。完成一次目标可编程器件配置,实现用户此时所要求功能,在下一时段,可根据用户新的要求,调用重构控制器内部存储器中不同方案在系统重新配置目标可编程器件,这样就实现了硬件复用,减少成本。

  2边界扫描(JTAG)原理

  2.1 JTAG接口基本结构

  JTAG(Joint Test,Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),其工作原理是在器件内部定义一个测试访问端口(TestAccess Port,TAP),通过专用的JTAG测试工具对内部节点进行测试和调试。TAP是一个通用的端口,外部控制器通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器。现在JTAG接口还常用于芯片的在线配置(In-System Programmable,ISP),对PLD,FLASH等器件进行配置。JTAG允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,实现对各个器件分别测试和在系统配置。

  JTAG主要由三部分构成:TAP控制器、指令寄存器和数据寄存器,如图1所示。标准的JTAG接口有四组输出线:TMS,TCK,TDI,TDO,以及1个可选信号TRST。


  TCK:JTAG测试时钟输入,当TCK保持在零状态时,测试逻辑状态应保持不变;

  TMS:测试模式选择,控制JTAG状态,如选择寄存器、数据加载、测试结果输出等,出现在TMS的信号在TCK的上升沿由测试逻辑采样进入TAP控制器;

  TDI:测试数据输入,测试数据在TCK的上升沿采样进入移位寄存器(SR);

  TDO:测试数据输出,测试结果在TCK的下降沿从移位寄存器(SR)移出,输出数据与输入到TDI的数据应不出现倒置;

  TRST:可选复位信号,低电平有效。

  Xilinx器件接受使用JTAG TAP的编程指令和测试指令。在IEEE 1149.1的标准中,用于CPLD,FPGA以及配置PROM的常见指令有:旁路(BYPASS)指令,通过用1 b长的BYPASS寄存器将TDI与TDO直接连接,绕过(即旁路)边界扫描链中的某个器件;EXTEST指令,将器件I/O引脚与内部器件电路分离,以实现器件间的连接测试,它通过器件引脚应用测试值并捕获结果;IDCODE指令,返回用于定义部件类型、制造商和版本编号的32位硬件级别的识别码; HIGHZ指令,使所有器件引脚悬置为高阻抗状态;CFG_IN/CFG_OUT指令,允许访问配置和读回所用的配置总线;JSTART,当启动时钟= JTAGCLK时为启动时序提供时钟。

  2.2 Tap状态机时序介绍

  JTAG边界扫描测试由测试访问端口的TAP控制器管理。TMS,TRST和TCK引脚管理TAP控制器的操作,TDI和TDO位数据寄存器提供串行通道。TDI也为指令寄存器提供数据,然后为数据寄存器产生控制逻辑。对于选择寄存器、装载数据、检测和将结果移出的控制信号,由测试时钟 (TCK)和测试模式(TMS)选择两个信号控制。测试复位信号(TRST,一般以低电平有效)一般作为可选的第五个端口信号。

  如图2所示,所有基于JTAG的操作都必须同步于JTAG时钟信号TCK。所有测试逻辑的变化(例如指令寄存器,数据寄存器等)必须出现在 TCK的上升沿或下降沿。关键时序关系是:TMS和TDI采样于TCK的上升边沿,一个新的TDO值将于TCK下降边沿后出现,因此一般情况下JTAG的时钟不会太高。


  图3表示了IEEE 1149.1标准定义的TAP控制器的状态图,TAP控制器是16个状态的有限状态机,为JTAG接口提供控制逻辑。TAP状态转移如图3所示,箭头上的 1或0,表示TMS在TCK上升沿的值(高电平TMS=1,低电平TMS=0),同步时钟TCK上升沿时刻TMS的状态决定状态转移过程。对于TDI端输入到器件的配置数据有两个状态变化路径:一个用于移指令到指令寄存器中,另一个用于移数据到有效的数据寄存器,该寄存器的值由当前执行的JTAG指令决定。当TAP控制器处于指令寄存器移位(SHIFT-IR)状态时,对于每一个TCK的上升沿,连接在TDI和TDO之间的指令寄存器组中的移位寄存器向串行输出方向移一位。

当TMS保持为高电平时,在TCK的上升沿TAP控制器进入到“EXIT1-IR”状态;当TMS为低电平时,TAP控制器保持在“指令寄存器移位”状态。

  3重构控制器设计

  3.1硬件系统组成

  其主要功能是控制按照用户不同需求控制调用不同的方案配置目标可编程器件。它主要包括ARM处理器、FPGA、FLASH存储器和对外总线接口,各功能部件主要功能如下:

  (1)ARM处理器选用AT91FR40162S,其主要功能是控制模拟JTAG接口的FPGA读取FLASH存储器中的重构方案,实现在系统配置;

 (2)FPGA协处理器选用Xilinx公司SPARTEN3AN系列的XC3S700AN-FGG484,是基于非易失性存储的FPGA,自身带有PROM,它作为外部总线和ARM控制器之间的双端口,主要功能是模拟JTAG接口实现TAP控制器时序,完成配置方案数据的并串转换并输出至外部总线;

  (3)FLASH存储器容量为32M×16 b,用于处理器的上电引导、存放多种重构配置方案。由于要求的存储容量较大,采用SPANSION公司S29GL512P(32M×16 b)的存储空间,访问速度为110 ns,可以达到25 ns快速页存取和相应的90 ns随机存取时间,FBGA封装;

  (4)外部总线接口,可采用1路RS 232驱动接收器,实现和外部通信的接口;

  (5)测试线TCK,TMS,TDI和TDO,是重构控制器向目标可编程器件提供所需的JTAG TAP激励,分别控制目标多个FPGA的重构配置和反馈重构信息。

  3.2重构控制器工作原理

  ARM执行的初始化工作包括程序更新加载运行,FPGA参数设定等;FPGA设定内部寄存器和逻辑状态的初始值、内部缓冲区数据清零等。

  重构控制器示意图如图4所示。图中ARM处理器一方面通过ARM总线读取外部FLASH中的配置方案,对其进行并串转化操作,将其存储到 FLASH存储器中;另一方面重构控制器中模拟TAP控制器的FPGA,从ARM内置的FLASH存储器中读取配置文件,并执行ARM处理器发出的指令解译该文件,重构控制器解释二进制文件方法如下:在ARM处理器的控制下,从装载配置文件的FLASH中读出一个字节,判断是哪条JTAG指令,然后根据指令的格式作具体的处理,产生TCK,TMS,TDI和TDO信号,作为目标可编程器件的JTAG接口激励,与目标可编程器件的JTAG口串联成菊花链,在 ARM处理器的控制下,对目标可编程器件进行在系统编程。被重构的FPGA由支持局部动态重构的Xilinx公司的Virtex-4系列FPGA来实现。


  4  结  语

  本文介绍的重构控制器既具有ARM微控制器所拥有的高速处理器核、体积小、集成度高、运算速度快、存储器容量大、功耗低等特点,又具有FPGA 强大的并行计算能力和方便灵活的动态可重构性,使硬件信息(可编程器件的配置信息)像软件程序一样被动态调用或修改。对于特定的目标FPGA芯片,在一定控制逻辑的驱动下,对芯片的全部或部分逻辑资源重新进行动态配置,从而实现硬件的时分复用,灵活快速地改变系统功能,节省逻辑资源,满足大规模应用需求。

关键字:可重构  FPGA  ARM 引用地址:基于ARM与FPGA的可重构设计

上一篇:基于FPGA的高动态范围图像信号处理
下一篇:基于FPGA脑机接口实时系统

推荐阅读最新更新时间:2024-05-02 21:47

基于DSP和FPGA的ARINC429机载总线接口板的硬件设计
机载 数据 总线 ARINC429在当代的运输机和相当数量的民航客机 (如A310、A300、A600、B757、B767)中有着广泛的应用。目前国内对ARINC429总线接口板的设计一般都是基于HARRIS公司的HS3282芯片完成的,它的缺点是路数有限、非常不灵活。因此对ARINC429总线接口板的研制,实现多 通道 ARINC429总线数据的接收和 发送 ,成为目前对飞机机载总线接口研究的重点,具有非常重要的现实意义和应用前景。 1 ARINC429总线简介   在现代民用飞机上,系统与系统之间、系统与部件之间需要传输大量信息。ARINC规范就是为了在航空电子设备之间传输数字数据信息而制定的一个航空运输的工业标准。
[应用]
采用FPGA和以太网技术的X射线安检设备控制器设计
    本文设计了基于FPGA的X射线安检设备控制器,该控制器通过加载Thin TCP/IP接入以太网,使得多台PC共同对可疑物品的图像数据进行分析,进而提高鉴别精度。   工作原理及控制要求   X射线安检设备主要由X射线源、传送装置、控制器、X射线线性阵列探测卡、以太网控制器(CS8900A)、屏蔽辐射所需的机械装置、装有该设备配套软件的PC等组成,X射线安检设备原理如图1所示。   图1中,当控制器产生X射线触发信号时,X射线源发出圆锥形X射线束,该射线束经准直器后变为扇形平面射线束。射线束穿过传送带上待检测物,X射线部分能量被吸收,最后轰击X射线线性阵列探测卡上的晶体管。被检测物体以某一速度相对于探测卡和X射线源移动
[嵌入式]
基于ARM的嵌入式最小系统的架构研究
随着嵌入式相关技术的迅速发展,嵌入式系统的功能越来越强大,应用接口更加丰富,根据实际应用的需要设计出特定的嵌入式最小系统和应用系统,是嵌入式系统设计的关键。目前在嵌入式系统开发的过程中,开发者往往把大量精力投入到嵌入式微处理器MPU(Micro Processing Unit)与众多外设的连接方式以及应用代码的开发之中,而忽视了对嵌入式系统最基本、最核心部分的研究。 当前在嵌入式领域中,ARM(Advanced RISC Machines)处理器被广泛应用于各种嵌入式设备中。由于ARM嵌入式体系结构类似并且具有通用的外围电路,同时ARM内核的嵌入式最小系统的设计原则及方法基本相同,这使得对嵌入式最小系统的研究在整个系统的开发中
[单片机]
基于<font color='red'>ARM</font>的嵌入式最小系统的架构研究
使用FPGA实现ADAS设计的功能安全考虑
基于雷达和摄像机的应用现在也被用于安全驾驶领域。最初,自适应巡航控制和道路偏离报警等这些高级辅助驾驶系统(ADAS)只是一些非常便利的特性。而现在,它们在车辆控制上扮演了更积极主动的角色,支持实现道路辅助保持(LKA)等功能。以前的高性能CPU被认为是最适合这些应用的器件,但是综合考虑计算性能和低功耗之后,促使工程师转而采用FPGA器件。 ADAS需要满足特殊的功能安全要求。2011年,载重3.5吨以下客车的ISO26262标准发布,其目的是降低系统出现故障后造成危险状态的风险。这一标准要求采用严密的设计过程,在应用执行过程中探测随机硬件故障,以减少系统性故障。 应用开发人员定义了专门的安全目标,针对每一目标分配了相应的汽车
[嵌入式]
恩智浦推出双电源电压ARM Cortex-M0微控制器
恩智浦半导体NXP Semiconductors N.V.近日宣布推出LPC1100LV系列,这是全球首款支持1.65V至1.95V VDD和1.65V至3.6V VIO双电源电压的ARM® Cortex™-M0微控制器。LPC1100LV系列采用2mm x 2mm微型封装,性能达到50 MIPS,功耗比同类3.3V VDD器件低三倍以上。LPC1100LV平台专门针对电池供电型终端应用而设计,包括手机、平板电脑、超级本(Ultrabooks™)以及有源电缆、相机和便携式医疗电子设备的移动配件。 恩智浦半导体微控制器业务部市场总监Jan Jaap Bezemer表示:“通常,在单个微型封装中目前还无法实现高性能双电源电压的产品。L
[单片机]
ARM微处理器的工作状态
ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: —第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令; —第二种为Thumb状态,此时处理器执行16位的,半字对齐的Thumb指令。 当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。 (如果不懂,简单的理解ARM处理器工作时有两种状态(方式)一是ARM状态二是Thumb状态,并且两种状态可以互相切换) 状态切换方法: (由于还未学习寄存器、ARM指令、异常处理等。所以暂时了解ARM工作状态间的切换) ARM指令集和Thumb指令集均有切换处理器状态的
[单片机]
赛灵思7系列FPGA开发套件已开始供货,赶紧来尝鲜
Xilinx 7 目标设计平台是业界最全面的开发套件,包含开发板、 ISE®设计工具、IP 核、 参考设计以及FPGA夹层卡 (FMC) 支持。立即订购 7系列 FPGA 开发套件。 目前,全新的7系列FPGA开发套件,可由安富利Express在线购买。 Kintex-7 FPGA KC705 评估套件 (官方报价1695美元) Kintex-7 FPGA KC705 评估套件是一款面向 Kintex-7 XC7K325T FPGA 的评估开发平台。亮点包括 DDR3 SODIMM 内存、2 x FMC 扩展槽、8信道 PCI Express ® 接口、 1 x tri-mode Ethernet PHY、1 x SFP/S
[嵌入式]
ARM 的指令结构和寄存器结构
ARM 微处理器的在较新的体系结构中支持两种指令集: ARM 指令集和 Thumb 指令集。其中,ARM 指令为 32 位的长度, Thumb 指令为 16 位长度。 Thumb 指令集为 ARM 指令集的功能子集,但与等价的 ARM 代码相比较,可节省 30 %~ 40 %以上的存储空间,同时具备 32 位代码的所有优点 ARM 处理器共有 37 个寄存器,被分为若干个组( BANK ),这些寄存器包括: - 31 个通用寄存器,包括程序计数器( PC 指针),均为 32 位的寄存器。 - 6 个状态寄存器,用以标识 CPU 的工作状态及程序的运行状态,均为 32 位,目前只使用了其中的一部分。 同时, ARM 处理器又有
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved