目标板
目标板上被重构的FPGA由支持重构的Xilinx公司的VIRTEX-4系列FPGA来实现,以菊花链方式串联,支持JTAG边界扫描模式配置。
JTAG边界扫描配置的FPGA实现
TAP控制器是16个状态的有限状态机,主要为JTAG接口提供控制逻辑。主要有四大状态:复位(RESET),空闲(idle),数据寄存器移位(SDR)和指令寄存器移位(SIR)状态, 在TCK,TMS的控制下,根据输入的配置指令实现状态的转移。Xlinx公司Virtex4系列 FPGA器件的边界扫描指令集中有三条专用于配置的边界扫描指令:CFG_IN、BYPASS和JSTART(10个bit位)。其中CFG_IN的代码:0101001111;BYPASS的代码:1111111111;JSTART的代码:0011001111。执行CFG_IN指令可以访问器件内部的配置总线,通过串行移入配置文件中的命令和数据执行对内部配置寄存器的读写,从而完成对FPGA的配置。BYPASS指令在对多个目标器件配置时可以旁路不需要重配置的器件。JSTART指令使用TCK时钟触发启动时序,使FPGA完成从配置状态到操作状态的转换,激活FPGA。图3为可重构控制器模拟TAP状态机配置指令执行的状态转移图。
系统仿真
仿真在Active-HDL7.1软件下运行,所有仿真是基于对单器件配置的过程。
图4为JTAG边界扫描方式核心控制TAP状态机仿真波形 ,本文把整个下载模拟过程设计为三步,分别为TAP_Reset、TAP_CFG、TAP_JStart,ARM分别给三步提供一个启动命令,三个步骤分时按顺序由自己独立的状态机实现,由图可以看出状态衔接正确。
图5为各状态机个状态下接口输出波形,TCK、TMS、TDI时序和输出值满足JTAG扫描方式配置Virtex-4系列FPGA接口激励要求。
本系统ARM工作时钟为50MHz,TCK输出为25MHz,为便于观察,TAP_CFG部分状态机中SDR状态项实际由配置方案文件bit位数决定,仿真图有所压缩。
如果目标板FPGA是Virtex-4 XC4VLX25,其配置方案文件为995KB,整个配置过程大约所需时间327ms。
结语
本文介绍的重构控制器具有相对通用性,适用于对同一类FPGA芯片实现可编程器件在系统配置,使得硬件信息(可编程器件的配置信息)也可以象软件程序一样被动态调用或修改,从而动态的改变电路的结构和功能,对电路中出现的错误和故障进行实时动态重构,达到高可靠性的目的,有效节省逻辑资源,通过设计和仿真验证了此方法的可行性。