一种基于FPGA加速配置的设计
2018-04-25庄雪亚
庄雪亚,蔡 翔
(中国电子科技集团公司第五十八研究所,江苏无锡 214072)
1 引言
目前FPGA规模越来越大,配置时间很长,而且在使用FPGA时,每个项目对FPGA内模块所使用的资源各有不同,绝大部分时候不会用完所有资源,即使要全部使用完资源也会存在布线布不通的问题[1]。故大部分时候只是使用了FPGA内的部分资源。目前的设计中,不管使用FPGA内部多少资源,都会为每一个配置位生成一位配置数据,软件生成的配置数据大小也是固定的,用来存储配置数据的配置芯片也必须有相应大小的容量,下载配置数据的速度也是固定的。如果把空闲资源默认配置为零,不再为空闲资源专门生成配置数据,就可以减少配置数据的大小,用更小的存储器来存储配置数据,相应的下载时间也会缩短。
2 加速配置原理
FPGA 内部有 IOB、BRAM、CLB、DSP等资源,软件根据不同工程使用FPGA内部不同资源生成不同的配置数据,这里称为bitstream,如图1所示存储在Flash(11)内。CTRL(1)是数据下载的控制系统,用来解析bitstream中每个数据的具体含义,并协调控制DSR(2)、ADDR(3)。DSR(2)是一个数据移位寄存器,因为数据通过CTRL(1)出来的数据是32位宽的,需要通过DSR(2)实现将1312位宽的数据提供给配置模块SRAM的BL(Bit_Line)上。ADDR(3)是一个地址译码器,通过CTRL(1)解析出来的地址译出相应的WL(Word_Line),提供给配置模块SRAM的WL上。当BL准备好1312位数据时,打开WL,即1312位数据会被成功配置到配置模块的SRAM内。

图1 传统配置流程
目前的控制系统设计都是从左到右依次打开WL,也即从左到右依序为配置模块SRAM配置bitstream。没用到的那部……
