0中国集成电路
设计♦China lntegrated Circult
多片FPGA动态加载方案实现
张宏科i王志浩】,张乾恒2
1.中国电子科技集团公司第五十四研究所;2•河北工业大学
摘要:FPGA通常与FLASH配合使用,可以在上电之后自动加载并执行特定功能的逻辑程序。这种方式简单可靠,但无法实现系统在不掉电的情况下更换FPGA内部逻辑。针对这一问题,本文实现一种基于CPU与C PLD配合动态构造FPG A程序的使用方式,此方式使得FPG A在不掉电的条件下加载并执行新的程序,适合FPGA的远程配置及自动化应用场景。本系统利用FPGA提供的动态构造接口,使得CPU与CPLD相配合产生满足FPGA的构造接口的时序,从而实现FPGA的程序更新。
关键词:FPGA构造;动态加载;远程配置
The Implementation of multiple FPGAs dynamic loading
ZHANG H ong-ke1,W ANG Zhi-hao1,ZHANG Q ian-heng2
1.The54th R esearch Institute ofCETC;
2.H ebeiUniversity ofTechnology
Abstract:FPGA is usually used with flash,so it can auKom aticaUy load and execute logic program s with specific functions afterpoweron.This m ethod issim ple and elhble,butFPGA can notupdate intemalbgic wilhoutpower down.In orderto sohe this prob]em,Khispaper im p]em entsam ethod of dynam ic construction ofFPGA program based on CPU and CPLD,which m akesFPGA bad and execute new logic withoutpowerdown,which issuitable idrrem ote configuration and autom atic application scenarios ofFPGA.This system m akes CPU and CPLD cooperate to produce the tim ing thatm eets the configure interface ofFPGA,soasto update the inner logic ofFPGA w ilhoutpowerdown. Keywords:FPGA Configuration;DynamicLoading;RemoteConfiguration
www.cicmag渊总第262期)51
中国集成电路
China  lntegrated  Circult
设计
0引言
FPGA 是一种广泛使用的现场可编程门阵列,
深受软硬件开发人员喜爱。在FPGA 逻辑定版之后,
绝大多数FPGA 会与一片FLASH 配合使用,FPGA  上电后会自动加载FLASH 中逻辑并执行。这种通过
直连FLASH 的使用方式经济、简单、可靠,但却有一
定使用场景的局限性。当FPGA 中的逻辑程序需要 更新时,则必须手动连接仿真器,在线对FLA  SH 重
新写入,这种使用方式极大降低了 FPGA 应用的灵
活性。本文介绍一种动态配置FPG  A 的使用方式,即
通过CPU 与CPLD 的配合,对FPGA 进行灵活构
造,使得FPG  A 无需仿真器重新下载逻辑,即可执行 新的逻辑。本系统由CPU 及其外围电路、CPLD 、
FPGA 等器件组成,在系统中可以存储多个版本的
FPGA 逻辑程序,随时根据需要对FPGA 进行逻辑
的加载。当CPU 在联网条件下,还可远程接收逻辑 文件,对FPGA 进行逻辑加载。
1 系统设计
本系统中采用嵌入式板卡设计,采用CPU (北
京君正X  1000)作为主控制器,搭配512M  B  LPDDR2
RAM 、4GB  emm  c  Flash 作为板载内存和存储单元。
君正X1000通过GPIO 与CPLD 相连,CPLD 采用
Alda 公司的EPM240I100型号遥 君正X1000与
EPM  240I100之间设计有Localbus 总线结构,进行命
令与数据交互。Localbus 总线由8位数据总线、5位
地址总线及4位控制总线构成.CPLD 与FPGA 的构 造接口连接,CPLD 接收CPU 命令,创建与FPGA 构
造接口相吻合的时序,从而将数据送入FPGA ,本系 统中采用Xfldnx 的XC7K35T 型号芯片,FPGA 中运
行对应的逻辑程序。最后,X1000通过LAN7500i 引 出一个10400M 自适应网口,与外界进行网络通信,
可以实现逻辑文件远程传输。整体硬件设计框图如
图1所示。
图1硬件结构框图
2 CPU 软件设计
主控CPU 采用嵌入式Linux 作为操作系统。
Linux 作为系统基础软件用来管理整个系统资源的, 它直接利用嵌入式硬件并为用户提供使用和编程接 口。X1000采用最小Linux 系统内核,内核版本为
4.4.30°Linux 嵌入式系统进行了必要的裁剪,只保留
系统所需要的最小功能。系统采用Ram  disk 文件系
统机制,提供系统的完整性及保护功能。软件中设计
有Localbus 的驱动文件,驱动文件以模块形式在系
统启动完成后加载至内核中,向上提供API 接口供
应用程序进行调用。在应用程序中设计了 FPGA 的
构造流程。完整的应用程序流程如图2所示。
3 CPLD 设计
CPLD 通过寄存器定义的方式接受CPU 控制。 CPLD 定义5个寄存器,包括构造标识寄存器、初始 化控制寄存器、初始化状态寄存器、构造数据寄存
器、构造状态寄存器,如表1所示。构造目标寄存器
作为FLAG 标识,定义FPGA 是否会被构造。当初始 化控制寄存器数值变化时,CPLD 会对相应FPGA 的 program 信号进行对应操作。CPLD 会实时收集4片
FPGA 的初始化mit 信号响应,将状态值通过初始化
状态寄存器进行呈现。CPU 可以通过查看初始化状 态寄存器,获得相应FPGA 的构造初始化"响应状态。
当构造数据寄存器收到数据后, CPLD  程序会将数
据进行并串转换,将收到的数据以串行的方式发送
52 (总第262期)http : //
www.cicmag
I 中国集成电路
China  lntegrated  Circultlinux内核设计与实现 pdf
设计-
点帥bl 02
I^IIM3L*J  AU m OF
FUUriHJ  ; AtMK
Rr 传虐的塔E^A J
歩扛缶谦
”*比j :"J 蛤化:1:收
'」Mt 他______
.” W 、》
Jntt  tl i
KlSlllTtlt
图2应用程序构造流程图
表1 CPLD 寄存器列表
WT 征踊
打小4
i
2
I
001
FPGA4_
PROGRAM FRGA3_
FRgRA 则
FPGAS.PROGRAM FPGA1,
PROGRAM ».Wi
FPQA4_ 1NIT FPQU_
iHlT FPGA2JNIT
FPGA1_
IMIT
0304
FPGA4_
DONE FPGA3_ DDNE FFGA2_ □CWME
FPGA1.
DONE 05
FPGA4_
COMFEG CONFIG FPGA2_
CONFIG
FPGA1_CONFIG
FPGA, 由构造目标寄存器决定控制对应的FPGA 的
DATA 信号。CPLD 逻辑会实时检测构4片FPGA 的
构造done 信号,通过构造状态寄存器呈现.FPGA 构
造成功后,会将DONE 置为1,否则为0o
4测试验证
通过串口登录系统,将系统地址设置为
192.168.0.2/24。将本机地址设置为 192.168.0.1/24,
将二者通过交换机相连。在主机侧,使用表2中指令 1、指令2进行逻辑文件传输,然后通过ssh 远程登
录系统。在系统侧,开始执行构造指令,使用指令3
进行第一版FPG  A 程序构造,然后查看系统状态,显
示4片FPGA 都在运行第一版逻辑功能。使用指令
4进行第二版FPGA 程序构造,然后查看4片FPGA
都在运行第二版逻辑功能。
表2远程操作指令列表
带令1
scp  RgFb: r-DQt@ 192.1 &S.O.2:.*c pL i fpga 1,
35匚p  "pgaJ  h  * ront@ 192,158 D  2 .'cpIiMpga 1拾些3
CfuF (x^u  iurgitfl  4 HI 。I'opMFpggi'fpaal  .biL
托參0
CfgF^a  target  "1
卄P^Nbit
5结语
本次设计中,主控CPU 选择通过CPLD 将数据
转存之后送入FPGA 进行构造,而未直接使用GPIO
进行FPGA 时序构造的方式。如此设计避免了直接
使用GPIO 带来的延时精度不足,从而引发的时序错
乱问题,同时可以解决GPIO 的最大翻转速率带来的
构造速率问题。主控CPU 使用Localbus 将8位数据 并行传输给CPLD 可使构造时间缩短为使用GPIO
直接构造的1/4。本设计中引入的CPLD 可为后续
FPGA 数量的扩展提供足够的IO 端口,使得本系统
支持对大量FPGA 同时进行程序升级。本设计为 FPGA 程序灵活加载提供了完整的设计方案与测试
结果,提高了 FPGA 应用的灵活性,对某些需要远程
更新FPGA 程序的场景提出了根本性的解决方案。33
作者简介
张宏科,硕士,中国电子科技集团公司第五十四研究
所,工程师。研究方向:嵌入式系统设计。
王志浩,硕士,中国电子科技集团公司第五十四研究
所,工程师°研究方向:嵌入式硬件设计。
张乾恒,本科在读,河北工业大学。研究方向:人工智
能系统。
http : //www.cicmag
总第262期)53