0 引 言
因为数字逻辑体系功用杂乱化的需求,单片体系的芯片正朝着超大规划、高密度的方向开展。关于一个大规划的数字体系而言,体系规划是依据各种逻辑功用模块的组合。可是,无论是时序逻辑体系,仍是组合逻辑体系,或许组合/时序混合体系,从时刻轴上来看,体系中的各个功用模块并不是时刻都在作业,而是依据体系外部的全体要求,轮番或循环地被激活或作业。而且,跟着数字逻辑规划的扩展,在相同速度条件下,在必定的时刻区间,其功用模块的均匀运用率将下降。因而,体系规划应该从传统寻求大规划、高密度的方向,转向怎么进步资源运用率,用有限的资源完结更大规划的逻辑规划上来。可重构核算技能可以供给硬件的功率和软件的可编程性,它归纳了微处理器和ASIC的特色,在空间维和时刻维上均可变。
1 可重构技能概述
1.1 可重构的界说
可重构便是在电子体系的作业状况下,动态地改动电路的结构。这首要经过对体系中的可编程逻辑器材进行从头装备或许部分从头装备来完结。运用可重构技能,能在只添加少数硬件资源的情况下,使体系一起具有软件完结和硬件完结的长处。
1.2 可重构办法的分类
依照重构的办法,体系重构可以分为静态体系重构(Static ReconfiguraTIon)和动态体系重构(Dynamic ReconfiguraTIon)。
1.2.1 静态体系重构
静态体系重构是指方针体系的逻辑功用静态重载,只能在运转前装备的体系,如图1所示。
FPGA功用在外部逻辑的操控下,经过存储于存储器中不同的方针体系数据从头下载,然后完结芯片逻辑功用的改动。
1.2.2 动态体系重构
动态体系重构是指能在运转进程中实时装备的可重构体系,如图2所示。
关于时序改变的数字逻辑体系,其时序逻辑的产生不是经过调用芯片内不同区域、不同逻辑资源组合而成的,而是经过对具有专门缓存逻辑资源的FPGA进行部分或大局的芯片逻辑的动态重构而快速完结的。动态体系结构的FPGA具有缓存逻辑(Cache Logic),在外部逻辑的操控下,经过缓存逻辑对芯片逻辑进行大局或部分的快速修正,经过有操控从头布局布线的资源装备来加快完结体系的动态重构。就动态重构完结面积的不同,又可以分为大局重构和部分重构。
(1)大局重构。对FPGA器材或体系能且只能进行悉数的从头装备。在装备进程中,核算的中心成果有必要取出寄存在额定的存储区,直到新的装备功用悉数下载完停止,重构前后电路彼此独立,没有相关。
(2)部分重构。对重构器材或体系的部分从头装备,与此一起,其他部分的作业状况不受影响。部分重构对减小重构的规划和单元数目,大大缩短重构时刻,占有适当的优势。
2 依据FPGA的部分动态可重构技能
2.1 具有部分动态可重构功用的FPGA
曩昔我们遍及进行动态重构研讨的FPGA首要有Xilinx公司的XC6200系列和Atmel公司的AT6000系列等。它们也是依据SRAM结构,可是SRAM的各个单元可以独自拜访装备,即部分重构。它们的功用互不影响,因而具有部分重构的特征。这样做的长处明显,但也会支付增大硬件电路规划和功耗的价值。终究要完结电子体系的彻底实时重构,应选用结构上具有动态部分重构功用的FPGA器材,如Xilinx公司的Virtex-4系列。
2.2 依据FPGA部分动态可重构技能首要特征及典型原理
FPGA部分动态可重构技能的特征便是将全体按功用或按时序分解为不同的组合,并依据实际需求,分时对芯片进行部分动态重构,以较少的硬件资源完结较大的时序体系全体功用。图3给出一种典型的FPGA部分动态可重构。由图3可以看出,在外部逻辑的操控下,可以实时动态地对芯片逻辑完结部分重构。经过操控布局、布线的资源,完结体系的动态重构。
2.3 FPGA完结部分动态可重构的结构要求
要使FPGA有效地完结实时体系动态重构,FPGA在结构上有必要满意以下要求:
(1)不只具有可从头编程才能,一起可动态进行体系资源地从头装备,而不会损坏器材中大局或部分逻辑操作才能。许多传统的FPGA把装备数据寄存在外部的串行EPROM中。这种办法有3个缺陷:重构之前整个FPGA有必要停止作业;仅仅对整个FPGA进行重构;重构时FPGA中曾经的内部状况无法保存。新的可以完结动态可重构的FPGA不需求在重构之前触发复位信号,而是将FPGA芯片中的一部分逻辑电路的时钟封闭,然后从头装备逻辑电路,最终康复时钟信号。
(2)FPGA内部装备信息对称,记载任何时刻,任何通用的根本逻辑功用可以装备于器材的任何一个方位,运用简略模型组合去完结设汁中的杂乱功用。
3 依据FPGA的可重构演示体系的规划与完结
3.1 演示验证体系的硬件组成及各部分功用
(1)演示验证体系的硬件组成,如图4所示。ARM处理器片内具有256 KB的片上SRAM存储器、2 MB容量FLAsH存储器。首要是对sPARTEN-3AN系列的FPGA进行操控,操控其调取FLASH存储器中的重构计划;FLAsH存储器的并行数据经过ARM转化成串行;ARM中自带的FLAsH存储器用来寄存程序;
(2)SPARTEN3AN系列的FPGA,是依据非易失性存储的FPGA,首要作为PCI总线和ARM处理器之间的双端口;放置Spw IP核、UART IP核、1553 IP核;模仿JTAG口;
(3)两个XCVSX55的FPGA专用JTAG,进行装备文件的下载。Xilinx FPGA依据SRAM技能,因而是易失性的。假如关掉器材的电源,其装备就会丢掉。在生产型环境中,FPGA一般运用外部存储器材(如PROM)防止停电时丢掉装备数据;
(4)FLASH存储器容量为16 M×32 b,用于处理器的上电引导和寄存多个用于模块级FPGA重构计划;
(5)两个PROM-XCF32P。Virtex4系列XC4-VSX55FPGA,其装备PROM为XCF32P,32 Mb存储容量。运用XCF32P的规划修订(Design.Revisiorling)功用将FPGA多种装备存储为不同的修订版别,然后简化FPGA装备更改。上电时,由装备PROM的内部逻辑对规划修订版别挑选输入(引脚或操控位)进行采样;
(6)两组测验线,每组4根,cl_Test[3..O]和C2-Testl[3..O]别离测验两个XCVSX55系列FPGA的重构和反应重构成果;
(7)两通道的PROM操控信号线,C1(C2)_PROG,C1(C2)_DIN,C1(C2)_DONE,C1(C2)_INT,C1(C2)_CCLK用于完结两个XCVSX55系列FPGA的PROM办法的下载。因为JTAG(鸿沟扫描)链在其间一个部件产生毛病时会影响整个JTAG链的正常功用,因而多运用:PROM的下载办法备用;
(8)一路RS-232驱动接收器,完结和外部通讯的接口;
(9)PCI总线,经过该总线完结核算机与外界交互的外部接口。
3.2 演示验证体系的作业原理
3.2.1 上电复位
在上电复位时,要确保ARM和FPGA同步复位。Xilinx公司的FPGA上电时需求200 ms左右的装备时刻,在此期间I/O引脚处于三态状况,因而对要害的输入/输出信号(如IRQx,NWAIT,2.56兆输出数据及输出时钟)有必要采纳的上下拉,以确保ARM及外围接口信号处于正常的状况,防止信号抵触。
3.2.2 初始化
首要的初始化作业有2部分,别离由ARM和FPGA完结。
(1)ARM履行的初始化作业。包含监控程序自举→监控程序履行ARM内部寄存器初始化→硬件自检→加载标志检测→(软件更新加载)→FPGA参数设定→用户软件加载及完整性正确性校验→操控权叫用户软件→用户软件初始化→用户软件运转。
(2)FPGA履行的初始化作业。首要有FPGA内部寄存器和逻辑状况的初始值、内部缓冲区数据清零依托复位信号来完结。其间的“FPGA参数设定”由监控程序担任履行或由FPGA运用缺省参数完结。数据交融格局、输入/输出码速率等FPGA参数存储在ARM的片内FLASH中的FPGA参数区中,上电或复位时有监控软件担任加载和初始化。
3.2.3 重构进程
可重构演示验证体系的结构如图4所示,当呈现过错和产生毛病时,由ARM处理器读取FLASH存储器中的重构计划。可是,FLASH存储器取舍很多重构计划却是受外部1553B,Spw,UART的操控。由ARM处理器更新FLASH存储器或给完结并/串转化的FPGA宣布操控指令来对可重构运用单元进行操作。模仿JTAG口的FPGA与两个运用FPGA的JTAG口鸿沟扫描链(Boundary-Scan Chain),在ARM处理器的操控下,对被重构的FPGA进行重构。FPGA的首要任务是经过ARM操控器将事前存入FLASH中逻辑体系的不同功用装备信息,按用户的体系时序要求和外部操控,逐个下载到SRAM编程的FPGA之中,以完结体系功用的动态部分重构。在体系作业进程中,FPGA将依据不同的要求,在处理器的操控下,不断重构其逻辑功用,经过模板级重构,满意不同数字图画处理和其他逻辑运算的要求。
3.3 完结部分动态可重构的FPGA的选型和装备形式
3.3.1 Xilinx公司的Virtex-4系列FPGA
在挑选器材时,有必要确保器材资源留有必定余量,这样不只可以防止布线拥堵,也便于测验修正和功用扩展。依据体系的需求和扩展性,挑选Virtex-4系列FPGA。它是Xilinx公司推出的一系列完结动态部分重构的FPGA芯片,也是依据查找表的。Virtex-4系列芯片将高档硅片组合模块(ASMBL)架构与品种繁复的灵敏功用相结合,大大进步了可编程逻辑规划才能,然后成为代替ASIC技能的强有力产品。选用Virtex-4选用Xilinx公司的Virtex-4系列产品XC4VSX55。XC4VSX55具有128列×48行阵列,55 296个逻辑单元,24 576个Slice,最大分布式RAM384 KB,512个XtremeDSPSlice),320个18 KB块RAM,最大块RAM存储容量5 760 KB,8个DCM,4个相位匹配时钟分频器(PMCD),13个I/O组,最大用户I/O数640个。依据现在已有的算法,其功用和资源可以较好地满意图画匹配算法和方针辨认算法对硬件资源(逻辑门数、RAM巨细、乘法加法器等)的需求。Virtex-4硬IP核块的巨大阵列包含PowerPC处理器(带有新式APU接口)、三态以太网MAC,622 Mb/s到6.5 Gb/s串行收发器、专用DSP S1ice、高速时钟办理电路和源同步接口块。
3.3.2 Virtex-4系列FPGA在该体系中的装备形式
Virtex-4器材的装备办法是用串行从形式、串行主形式、SelectMAP从形式、SelectMAP主形式、鸿沟扫描形式(JTAG)之一将比特流载入内部装备存储器的:在该体系中选用可重构运用单元的FPGA装备形式有两种:
(1)JTAG办法(鸿沟扫描办法)
经过SPARTEN-3AN系列中FPGA供给的外部逻辑驱动JTAG专用引脚与相同4个JTAG引脚的两个运用FPGA及装备它们的PRROM串联起来,构成鸿沟扫描链(Boundary-Scan Chain)将装备数据下载到FPGA中。在这种形式下,数据以每TCK一位的速度加载,如图5所示。
JTAG或鸿沟扫描形式是一种行业标准的(IEEE1149.1或1532)串行编程形式。该形式经过电缆、微处理器或其他器材供给的外部逻辑驱动JTAG专用引脚TCK和JTAG测验时钟输入。当TCK坚持在零状况时,测验逻辑状况应坚持不变;TMS为测验形式挑选,操控JTAG状况。呈现在TMS的信号在TCK的上升沿由测验逻辑采样进入测验拜访口(Test AccessPort,TAP)操控器;TDI:测验数据输入,测验数据在TCK的上升沿采样进入移位寄存器(SR);TD0:测验数据输出,测验成果在TCK的下降沿从移位寄存器(SR)移出,输出数据与输入到TDI的数据应不呈现倒置。这种形式因其标准化程度和可经过相同4个JTAG引脚为FPGA编程的才能而广泛运用。JTAG办法常用于完结在线编程(In-System Programma-ble,ISP),对FPGA进行编程。
JTAG在线编程的特征也改动了传统生产流程,将曾经先对芯片进行预编程再装到板上的工艺简化为先固定器材到电路板上,再用JTAG口进行编程。Xilinx的Virtex-4系列支撑在一个鸿沟扫描(JTAG)链中装备多个FPGA,每次,只装备链中的1个FPGA,大大降低了完结难度。
(2)PROM装备形式,是由SPARTEN3AN系列FPGA为每一个Virtex-4系列FPGA装备一组PROM操控线完结FPGA的下载。SPARTEN3AN系列FPGA和可重构运用单元的每一个virtex-4系列FPGA之间别离有一组PROM的操控线,每组都包含DIN(装备数据输入)、CCLK(装备时钟)、DONE(FP-GA装备完结)、PROG(触发重装备)、INT(装备初始化)5个信号,经过这些信号将装备数据下载到Virtex-4系列FPGA中去。两种办法互补,在鸿沟扫描链产生开裂影响到整个链的功用时,可以运用PROM形式候补,进步了重构进程的可靠性。
4 结 语
依据SRAM的FPGA的面世标志着现代可重构技能的初步,并极大地推动了其开展。可编程FPGA可以依据不同算法规划合理的硬件结构,以到达进步履行功率的意图。动态可重构FPGA可以在程序运转中动态完结FPGA的不同装备电路功用,在不一起段履行不同的算法,完结了虚拟硬件可重构核算技能。这儿提出的经过微处理器加FPGA结合串行菊花链完结可重构的办法,完结了动态可重构FPGA结构规划的一种运用。别的,该验证演示了体系中可重构操控器还可以结构模块化,可以工程化运用于其他规划中,具有灵敏及可移植性强的长处。