潘吉华
( 贵州航天天马机电科技有限公司, 贵州遵义,563000)
摘要:由于当前FPGA 技术呈现出迅猛发展的态势,这也就会存在更多的继承FPGA 逻辑资源,相应也就会存在更大的配置FPGA 文件。从这就能够了解到,在当前科学技术背景下,相应也就会存在更大的高端配置FPGA 文件,相应也会使得极大的增加加载FPGA 时间,导致启动单板时间缩短,必须提升FPGA 加载速度。本文在此背景下,通过对FPGA 加载过程的分析,提到方法能够将FPGA 加载速度加快,另外凭借相应工程实践实施的证明,借助这一描述方法能够做到缩减加载速度为优化和之前的五分之一以下。
关键词:逻辑资源;FPGA 技术;加载速度
Study on the method of loading speed of FPGA
Pan Jihua
(Guizhou Aerospace Tianma Electromechanical Technology Co. Ltd. Guizhou Zunyi 563000)
Abstract :Due to the current FPGA technology showing a rapid development trend,it will also exist more inherited FPGA logical resources,accordingly there will be a larger configuration FPGA file.From this can be learned,under the background of the current science and technology,there will be more high-end FPGA configuration file,the corresponding will also make great FPGA loading time increases,resulting in start single board time relationship,it is necessary to improve the loading speed of FPGA.Under this background, this paper,through on FPGA loading process analysis,mentioned method can to accelerate FPGA loading speed, also with the corresponding engineering practice implementation of proof,with the aid of this method can do reduce the load speed optimization and before a fifth of the following.
Keywords :logical resources;FPGA technology;loading speed
根据当前相对来说使用比较广泛的Xilinx 这种 FPGA 芯片选择的加载模式往往是Slave SelectMAP (parallel,x8) 配置模式,将这一过程具体化,这也就是凭借着相应所具备的CPU 当中的GPIO 模拟localbus 总线,从而可以做到有效的读写EPLD 当中的城乡定义的寄存器,通常EPLD 引脚上面映射部分寄存器的Bit, 以便能够让这些引脚与相关FPGA 配置引脚相连接,针对这样的情况,这也就能够凭借着CPU 对EPLD 的寄存器读写,从而可以将相关FPGA 配置引脚进行控制,使得满足配置FPGA 的目的。
根据对某个单板实施分析就能够发现,其中存在着多块的FPGA 芯片,凭借这种方法的使用加载一块FPGA,往往从时间上必须达到三十秒左右的时间,那么如果是加载四块FPGA 的时间则累积达到两分钟以上,要想做到将加载速度提升,这就应该做出一系列的分析讨论,从而提出三个层次优化。
1 一般方法加载FPGA 时序
根据对FPGA 实施加载的EPLD 寄存器实施控制主要存在着两种类型,第一种类型是做好数据寄存器FPGA_CFGDATA_REG 的配置,CPU 能够做到将这一寄存器当中写入所有的配置数据,立足于此基础,这一寄存器的数值则是在所有配置时钟的上升写入FPGA。另外的一个寄存器则是做好寄存器FPGA_CFG_REG 的控制配置,在这一寄存器当中存在着五个Bits。那么在这一单板当中,进行FPGA 配置数据时序的加载则为以下两步:第一个步骤是通过CPU 向FPGA_CFGDATA_REG 写入配置数据;第二个步骤则是凭借着三次读写FPGA_CFG_REG,以便能够做到让FPGA_ CFGCLK 从低到高再到底的顺序实施,导致FPGA_CFGCLK 面临上升沿,这也就会导致相应的配置数据在FPGA_CFGCLK 的上升沿写入FPGA。。从这就能够了解到,将一个配置数据写入到FPGA 当中,这就应该让CPU 针对EPLD 寄存器执行三个读操作与四个写操作,其中总共耗费的时间大致是3018ns,型号XC6VLX240T 的FPGA 配置数据为9232444 字节,则加载一块FPGA 时间大约为3018ns*9232444=27.8s。在这里需要值得重点关注的问题是,全部耗费的时间数值则是出于仿真的环境下,凭借着TSC 计数器进行测量获得,在进行编译代码的过程当中,选择出的是03 优化。
2 自动产出配置时钟
根据以上所进行的分析就能够了解到,将一个配置数据写入到AFPGA,这必须借助于CPU 对于EPLD 寄存器执行三个读操作与四个写操作,在这一环节当中,后面的三次写操作与三次读操作知识为了产生一个配置时钟的上升沿。党在CPU 将一个配置数据写入到EPLD 的时候,EPLD 可以自动产生出一个周期的配置时钟, 那么一个配置数据价值只是需要CPU 针对EPLD 及寻求执行一个写操作就可以了,这也就可以将加载FPGA 的时间最大限度的缩短。根据这样的思路,如果CPU 写入一个数据到EPLD 的时候,那么EPLD 则是会做到一个配置时钟的自动产生。如果CPU 写入数据到EPLD 的时候,这也就会导致呈现一个WR 的低脉冲,相应的时钟配置则是属于一个高脉冲,除此之外,还处于WR 低脉冲的基础的后面,针对这样的情况,那么就能够考虑取反WR,另外还对其实施延时。根据对某单板进行分析,这也就会存在着四块FPGA,每个FPGA 配置时钟FPGA_CFGCLK 和片选FPGA_CFGCS 保持着独立的状态,在进行数据的配置过程当中则会存在着八条数据线。要想在实际应用环节当中做到分开四个FPGA_CFGCLK,在这里必须做到把WR 取反另外延时之后的信号与CFGCS 取反后的信号相与。凭借着现实25
理论与算法
2016.10
环节当中进行的测试结果现实,一个配置数据写入从时间上则是从3018ns 缩短至633ns,加载XC6VLX240T 型号的FPGA 时的加载总时间则是从之前的27.8 秒减少到5.85 秒。
3 CPU 连续写EPLD 寄存器
从XC6VLX240T 型号的FPGA 角度进行分析就能够发现,那么所配置的数据字节数是9232444 个,CPU 则是做到在EPLD 的同一个寄存器当中写入全部的配置数据,也就是FPGA_CFGDATA_ REG。那么在进行这一寄存器的写入的过程当中,CPU 往往是率先将这一寄存器的地址写入,基于此基础随后将数据进行写入。通常来说,寄存器是存在着固定的地址,针对这样的情况,我们能够考虑只是在第一次写FPGA_CFGDATA_REG 的过程当中提供相应的寄存器地址,EPLD 寄存地址,随后CPU 在进行这一寄存器的写入过程并不提供地址,只是在比较低的WR 的过程当中,将有效数据提供给EPLD 就行。如果使用这一方式,那么一块FPDA 加载的时间是3.01 秒,而一个配置数据加载的时间则是325ns。
4 FPDA 配置数据压缩
根据对FPDA 配置数据进行观察就能够了解到,大量的连续值存在于数据当中,比如连续1000 个0x00。在这里则是将某一个单板下行FPDA 当成例子,处于050d 这一版本之下,那么在下行FPDA 代码当中的0x00 的连续个数超过512 的就有31 处之多, 最多一处为连续1215388 个字节0x00 ;在某单板上,下行FPGA 连通性测试代码中,0x00 连续个数超过512 的也有271 处之多, 最多一处为2428942 个字节0x00。根据这样的i 情况,我们能够考虑通过CPU 对某个数值连续个数进行统计,立足于此基础,向EPLD 告诉这一数值与连续个数,那么EPLD 则存在着不变的配置数据,那么随后就会呈现N 个配置时钟,也就是将加载N 个配置数据完成。凭借着以上所提到的方法优化实施测试之后,那么下行FPDA 加载的时间则是减少至0.75 秒。
根据相应的理论分析与实际测试,那么以上所提到的三个层次优化方法显得十分有效。通过对比以上的三种优化方式,其特征为:
第一种方式能够将CPU 部分代码进行简化,仅仅只是做到把配置数据顺序写入到EPLD 配置数据寄存器,EPLD 能够增加自动检测WR,另外还会导致产生CCLK 逻辑,相对来说,要想实现这一方式显得比较简单,提升加载速度则是大致五倍。
第二种方式则是立足于第一章方式的基础之上,稍微改动CPU 代码,确保EPLD 代码不变,相对来说实现这一方式也比较简单,可以进一步提升加载速度大致是两倍。
第三种方式比较大幅度的改动CPU 与EPLD 代码,除此之外, 在进行FPDA 版本的制作过程当中,应该进行相应的处理,相对来说实现这一方式比较复杂,能够进一步提升一倍至十五倍的加载速度。
参考文献
[1] 刘远华. 极大规模集成电路测试技术发展[J]. 电子与封装. 2014(07)
[2] 王高峰, 赵文生. 三维集成电路中的关键技术问题综述[J]. 杭州电子科技大学学报. 2014(02)
[3] 樊丽春, 李群. 模拟集成电路设计的自动化综合流程研究[J]. 科技资讯. 2013(07)