sk2400

EAPR(Early-Access Partial Reconfiguration)

0
阅读(2566)

APR是Xilinx公司提供的用来做DPR的工具,安装后将ISE中的工具链替换。

EAPR支持一种新的DPR方法,目前可以使用EAPR做DPR的些列是v2, v2p, v4 (v5, s3, s3e虽然提供了slice总线宏,但是EAPR文档中并没有写是否支持。我用EAPR做s3e的重构,局部bitstream可以生成,但是 bitstream中99%都是00,重配置后没效果,芯片内逻辑和重配置前一样。后来在网上查,有人说s3e不能使用EAPR,只能用以前流程的基于差 异的)。
新的流程和旧的流程有一下几点不同:
1、在旧流程中固定区域和重配置区域一样是在ngdbuild -modular module时完成的布局布线。在新的流程中FPGA内的固定区域称为base,这部分区域是在ngdbuild -modular initial步骤中完成布局布线的,而且如果base布线时使用了PRR中的布线资源也是可以的,这些在PRR中被base使用的布线资源会被记录在static.used中,在PRM布线时会参考static.used,不使用已经被base使用的布线资源。
2、新流程中允许PRR为任意矩形。在xilinx某些系列的FPGA中使用了glitchless(忘了是怎么拼写 的,好像是g*less)技术。使用了这种技术的FPGA当向配置存储器中写入同样的数据时,不会产生尖脉冲。这样在配置PRM时,即使对base的某些 区域进行了配置,只要新配置到base的某些区域的bitstream和原配置存储器中的bitstream相同就不会对原base区域产生任何影响。这 样就可以使PRR的长度小于frame,做到任意矩形都可以配置。
3、总线宏使用slice做的bus macro。这个在以前的流程中也支持,只不过在新流程中写到了官方文档中。slice的bus macro允许总线的密度更密。
目前就发现这几点与原流程不同。还有就是,布局布线时没有再出现布不通的情况。
 

EAPR的目录结构:
 
EAPR命令:

cd top

ngdbuild -modular initial -uc top.ucf top.ngc

 

cd ..\base

copy ..\top\top.ucf

ngdbuild -modular initial -uc top.ucf ..\top\top.ngc

map top.ngd

par -w top.ncd base_routed.ncd

 

cd ..\reconfigmodules\t_and

copy ..\..\top\top.ucf

copy ..\..\base\static.used arcs.exclude

ngdbuild -modular module -active reconfig_t -uc top.ucf ..\..\top\top.ngc

map top.ngd

par -w top.ncd PRM_t.ncd

 

cd ..\b_and

copy ..\..\top\top.ucf

copy ..\..\base\static.used arcs.exclude

ngdbuild -modular module -active reconfig_b -uc top.ucf ..\..\top\top.ngc

map top.ngd

par -w top.ncd PRM_b.ncd

......

 

cd ..\..\merges\t_and_b_or

copy ..\..\base\base_routed.ncd

copy ..\..\reconfigmodules\t_and\PRM_t.ncd

copy ..\..\reconfigmodules\b_or\PRM_b.ncd

pr_verifydesign base_routed.ncd PRM_t.ncd PRM_b.ncd

pr_assemble base_routed.ncd PRM_t.ncd PRM_b.ncd

 

cd ..\..\merges\t_or_b_and

copy ..\..\base\base_routed.ncd

copy ..\..\reconfigmodules\b_and\PRM_t.ncd

copy ..\..\reconfigmodules\t_or\PRM_b.ncd

pr_verifydesign base_routed.ncd PRM_t.ncd PRM_b.ncd

pr_assemble base_routed.ncd PRM_t.ncd PRM_b.ncd