Block RAM内容(初始值) LUT programing
一些IOB的性质:转换极性的mux, flip-flop的初始化和复位值,上拉下拉,或者block RAM的写模式。
File->Main Progperties,然后选择 Edit Mode变为Read Write。 创建局部重构比特流
-g ActiveReconfig: Yes如果这个开关关闭的话,包含Shutdown和AGHIGH命令的partial 比特文件用于使DONE信号无效。
使用SelectMAP模式的partial Reconfig需要打开-g Persist: Yes开关。
这个开关允许配置完成后依然使用,因此可以继续用于partial Reconfig。-g Persist: Yes设置用于initial 比特流。对于initial bitstream , -g security:none设置必须用。
一个partial Reconfiguration bitstream可以使用其他的BitGen选项,包括-b选项或者-g选项。加密过的bitstream不能被Reconfig。可以用-r开关创建bitstream.
bitgen -g ActiveReconfig:Yes -g Persist:yes -r
bitgen -g ActiveReconfig:Yes -g Persist:Yes -r and_test.bit and_test2.ncd
and_test2_partial.bit
创建一个partial bitstream来恢复原有的设计
bitgen -g ActiveReconfig:Yes -g Persist:yes -r and_test2.bit and_test.ncd and_test_partial.bit
下载and_test2_partial.bit文件时,and_test配置文件必须已经下载进器件中。建议执行DRC检查除非-d option已经选上了。
UG702
设计需求
PR只支持Planahead或者命令行,不支持Project形式 Floorplanning
需要定义可重配置区域 ? 对齐到时钟区域边界
? bottom-up synthesis(创建多个网表文件),管理多个网表文件。(综合可以选择第三方工
具)
? 强烈建议解耦逻辑
? 如果RESET_AFTER_RECONFIG特性不使能,必须使用local reset ? 支持标准的时序约束
? 不是所有的实现选项都适用于PR。如优化要禁止边界优化。
? In the case of a black box RM (no logic) all partition pin outputs will be driven by a constant
Logic 1. In the case of a logic RM where there are unused partition pins, these outputs will be tied to constants, but the value may be a Logic 0 or a Logic 1. If your design requires a specific value, these ports should be tied off to the required values in the RM.
设计性能
设计性能因设计而异,一般 时钟频率降低10%;
slice利用率不超过80%;
如果可重构区域太小或者非矩形形状,有可能布线不成功
设计考虑
可重构资源 非可重构资源
Some component types can be reconfigured and some cannot. ? Clocks and Clock Modifying Logic must reside in the static region. - Includes BUFG, BUFR, MMCM, PLL, DCM, and similar ? The following components must reside in the static region: - I/O and I/O related components
- Serial transceivers (MGTs) and related components
- Individual architecture feature components (such as BSCAN, STARTUP, XADC, etc.) must remain in the static region of the design
? Global clocking resources to Reconfigurable Partitions are limited, depending on the device and on the clock regions occupied by these Reconfigurable Partitions. See Global Clocking Rules in Chapter 7 for more information.
? IP restrictions may occur due to components used to implement the IP. Examples include:
? ChipScope ICON (BUFG) ? EDK blocks with global buffers ? MIG controller (MMCM)
Reconfigurable Modules must be locally reset to ensure a predictable starting condition after reconfiguration. You can do this manually, or via dedicated GSR events by selecting the RESET_AFTER_RECONFIG feature. For more information, see Reset After Reconfiguration in Chapter 7.
Clock and other inputs to reconfigurable modules should be decoupled to prevent spurious writes to memories during reconfiguration. For more information, see Decoupling Functionality in Chapter 7.
? No bidirectional interfaces are permitted between static and reconfigurable regions, except in the case where there is a dedicated route. For example, a bidirectional I/O buffer (such as IOBUF) in the reconfigurable region routed to a top level I/O pad in the static logic can cross between the reconfigurable region and static logic via a bidirectional interface.
软件工具操作流程
综合 约束
面积约束从左下角到右上角:如
INST “reconfig_red” AREA_GROUP = “pblock_reconfig_red”;
AREA_GROUP “pblock_reconfig_red” RANGE = SLICE_X20Y76:SLICE_X25Y79; INST “reconfig_blue” AREA_GROUP = “pblock_reconfig_blue”;
AREA_GROUP “pblock_reconfig_blue” RANGE = SLICE_X28Y64:SLICE_X33Y67; INST “reconfig_green” AREA_GROUP = “pblock_reconfig_green”;
AREA_GROUP “pblock_reconfig_green” RANGE = SLICE_X20Y50:SLICE_X25Y53;
RP的边界落在CLB的边界上。对于V5器件,遵循这个原则要包含完整CLB。 minX是偶数,maxX是奇数。
分区的引脚
Path A) Static net input to a Partition Pin
Path B) Reconfigurable net output of a Partition Pin Path C) Reconfigurable net input to a Partition Pin Path D) Static net output of a Partition Pin
Paths X, Y and Z) Register-to-register paths that contain a Partition Pin in the path
在创建时序约束之前,需要使用PIN-TPSYNC约束来进行输入输出分组。 语法为:
例子:
PIN “RP_A.1” TPSYNC = group_RP_A_input; PIN “RP_A.2” TPSYNC = group_RP_A_output;
TPSYNC 用于将那些不是管脚和同步元件的组件定义成同步元件,以便可以利用任意点来作为时序规范的终点和起点。其相应的语法为:
{NET|INST|PIN}“ ob_name” TPSYNC=“ New_part”;
将TPSYNC 约束附加在网线上,则该网线的驱动源为同步点;附加在同步元件的输出管脚上,则同步元件中驱动该管脚的源为同步点;附加在同步元件上,则输出管脚为同步点;附加在同步元件的输入管脚上,则该引脚被定义成同步点。
PIN-TPSYNC组约束支持标准的UCF通配符。例如,有一个输入数据线,可以加入到输入组中,可以通过以下约束:
PIN “RP_A.data*” TPSYNC = group_RP_A_input;
为了给RPA模块的1脚的静态输入网络和重构输出网络创建时序约束,使用: TIMESPEC TS_from_static_to_PP_input = TO “group_RP_A_input” 4.5 ns; TIMESPEC TS_from_PP_input_to_RM = FROM “group_RP_A_input” 4.5 ns;
(特定约束就是用FROM TO约束来定义两个TIMEGROUPs之间的延时,路径的起点和终点可以是PAD、寄存器、锁存器、LUT、RAM及乘法器等。在使用FROM TO约束分析时,工具会考虑Clock Skew因素。因此对于同步路径FROM TO约束就像是对特定路径的周期约束)
xilinx建议所有的往返RP的路径都是同步 的。如果FPGA管脚和RP中的同步元素直连的话,使用OFFSET约束路径。
如果是输入管脚驱动RP中的同步元素,使用OFFSET IN约束。 OFFSET = IN 3 ns VALID 8 ns BEFORE “clk”;
如果RP中的同步元素驱动输出管脚,使用OFFSET OUT约束。 OFFSET = OUT 5 ns AFTER “clk”;
将FPGA输入输出管脚与Partition pins直接相连,效果不是最佳,Partition Pins由组合逻辑组成,增加了路径延迟。Partition Pins禁止IOB packing。
虽然Partition Pins物理上在RR区域,逻辑是属于static逻辑,任何关于他们的约束都应该放在顶层UCF文件中。
实现
ngdbuild -sd ../red_fast -sd ../blue_fast –sd ../green_fast -uc ../UCF/design.ucf ../Static/top.edf FFF.ngd
map -w -o FFF_map.ncd FFF.ngd FFF.pcf par -w FFF_map.ncd FFF.ncd FFF.pcf 不能用的选项: -global_opt
-power high & xe BoundaryOpt属性 SmartGuide
RP面积组比平坦设计的面积组需要的面积大; RP布线有可能因为3个约束导致布线失败;
产生比特文件