ug909 - partial - config - christine(3)

2019-09-01 09:52

set_property HD.RECONFIGURABLE true [get_cells inst_count] set_property HD.RECONFIGURABLE true [get_cells inst_shift]

画矩形:draw Pblock

report drc write xdc

write_xdc d:/xilinx/vivado_prj/led_shift_count/sources/xdc/top_fplan.xdc

实现

(read_checkpoint -cell shift shift_right.dcp

Command: read_checkpoint -cell shift shift_right.dcp WARNING: [Vivado 12-156] No cells matched 'shift'

ERROR: [Common 17-162] Invalid option value specified for '-cell'.)即不承认cell。 为了至少将任一个可重配置模块实现一次需创建尽可能多的配置。第一个配置为顶层和第一个可重配置模块载入综合结果。你必须将模块标记为可重构的,然后运行实现。为完全布好线的配置write 一个checkpoint,也可以选择性的为可重配置模块wirte a checkpoint以便以后会用。最后,删除可重配置模块(update_design -cell -black_box),为静态设计单独write a checkpoint. Configuration 1:

cd d:/xilinx/vivado_prj/led_shift_count/Checkpoint open_checkpoint top_synth.dcp //read_xdc top_impl.xdc

read_checkpoint -cell inst_shift shift_right.dcp

set_property HD.RECONFIGURABLE true [get_cells inst_shift] opt_design place_design route_design

write_checkpoint config1_routed.dcp(为完整布线的生成checkpoint) write_checkpoint -cell shift shift_route_design.dcp update_design -cell shift -black_box lock_design -level routing

write_checkpoint static_routed.dcp Configuration 2:

open_checkpoint static_routed.dcp

read_checkpoint -cell rp1 rp1_b_synth.dcp opt_design place_design route_design

write_checkpoint config2_routed.dcp

write_checkpoint -cell rp1 rp1_b_route_design.dcp //**********************//

read_checkpoint -cell inst_shift d:/Xilinx/vivado_prj/led_shift_count/synth/shift_left/shift_left.dcp read_checkpoint -cell inst_count d:/Xilinx/vivado_prj/led_shift_count/synth/count_down/count_down.dcp

要为每个独立的配置建立一个不同的文件夹,这样所有中途过渡的checkpoint,日志,报告文件,比特文件和其他的一些输出才会不被覆盖。

生成比特文件

设计规则

设计层次

静态设计与重配置模块的接口一定是相同的,无论逻辑上还是物理上。分区边界和边界自身都不能优化。

Reconfigurable Partition Interfaces

综合后要尽可能的减少常量和未连接的端口。通过清除死逻辑,资源利用率会减少,布线冲突和时序紧张也可以避免。

1 静态和重构模块都有active逻辑(适用于输入和输出) 这是理想情况。会插入partition pin.

然而要是重构模块的输入是VCC或者GND,强烈建议在RM模块里面。这样会降低LUT利用率。

2 static有active driver,但是RM没有active loads(适用于partition inputs) 可以接受,会插入partition pin,不用的输入端口会不连。 例如一个模块需要CLKA,另一个需要CLKB。 3 static有active load,RM没有active driver 也是可以接受的。static的输入为GND。 4 RM需要输入,但是static没给 报错

5 RM有输出,但是Static不接受 不会错,但是不好

低电平有效的复位和时钟使能

对于PR模块,避免使用低电平有效的控制信号。在不可避免的情况下,产生一个新的等价信号,并且在所有地方都使用这个新信号。 reset_n <= !reset;

解耦功能

因为可重配逻辑是FPGA运行过程中修改的,所以在部分可重配过程中静态逻辑要忽略RM模块的输出。直到PR完成,R逻辑复位RM模块才会输出有效数据。最好是在静态逻辑一侧,将所有的RM模块的输出数据都寄存。一个使能信号可用于隔离未配置完成的逻辑,其他的方法也包括对于每个输出端口使用2选1的开关MUX。

静态逻辑应该包括数据和接口管理的逻辑。例如握手或者禁用逻辑。

黑匣子

RP在静态设计(从自底向上综合结果或者运行update_design -black_box指令)中必须是一个黑匣子。黑匣子通过update_design -buffer_ports可以在所有的输入输出上放置LUT1

buffer。

所有插入的LUT1 buffer都会连到地。如果必须连到逻辑1(Vcc),可以控制RP管脚的属性HD.PARTPIN_TIEOFF。默认是0,设置为1输出1.

set_property HD.PARTPIN_TIEOFF 1 [get_pins /]这个属性可以在任何时刻设置()。

黑匣子除了LUT1 buffer外没有任何用户逻辑。

使用黑匣子可以减少完整配置比特文件的大小,因此减少了初始配置时间。

在build可重配置设计时,最先build最难的那一个。确保选中的物理区域有足够多的资源(特别是BRAM和DSP48)。然后为每个RP选择最苛刻的RM。 如果不容易看出哪个配置是最难的,那就与静态逻辑一起实现,检查资源利用率和时序报告看哪个设计最容易满足设计标准且有最严格的允许范围或者差的最多。

建立实现需求

可重配分区的逻辑和物理接口保持一致性。 可重配部分的逻辑必须完全包含在物理区域内。

如果使用了专用的初始化特性,静态逻辑必须不能再可重配区域内。 推荐一次一个配置的实现。

1不带Pblock实现设计。采用自底向上的综合,遵循分层次设计原则,如寄存一次边界。 2添加Pblock。添加的过程中,HD.RECONFIGURABLE属性和RESET_AFTER_RECONFIG属性可以暂时加上好做DRC检查。这样会保证创建的floorplan满足PR大小和对齐的需求。 3建立好floorplan后,通过EXCLUSIVE_PLACEMENT属性分离静态设计资源。 4通过CONTAIN_ROUTING属性保持布线局限在Pblock中。

5最后,标记HD.RECONFIGURABLE属性。此时,EXCLUSIVE_PLACEMENT和CONTAIN_ROUTING已经冗余了,可以移除了。

定义边界

部分重配按帧配置。

每个物理可配置帧中只能有一个分区。一个配置帧是可重配置的最小的物理面积,它的高度与时钟区域和I/O边界相同。一个配置帧不能包含多于一个可重配置分区的逻辑。

设计版本检查

BITSTREAM.CONFIG.USR_ACCESS属性允许你向比特文件中直接输入一个修改版本号。ID放在USER_ACCESS寄存器中。通过一个同样名字的库原语可以通过FPGA逻辑访问。部分逻辑设计可以读取这个值然后与局部比特文件进行对比。

配置FPGA

部分配置大部分与标准的完全配置是相同的。 可以进行部分比特文件下载的配置端口为:SelectMAP,Serial, JTAG, or ICAP。Zynq 7000 AP SoC可以使用JTAG和PCAP。UltraScale器件可以使用MCAP。

要使用SelectMAP或者Serial下载比特文件,这些管脚必须要保留成初始化后使用。通过BITSTREAM.CONFIG.PERSIST保持双向I/O和设置配置宽度。语法是 set_property BITSTREAM.CONFIG.PERSIST [current_design]

value的值可以是No, Yes, CTLReg, X1, X8, X16, X32, SPI1, SPI2, SPI4,BPI8, BPI. 一个部分配置控制器从非易失性存储器中提取部分比特文件然后传递给配置端口。部分配置

控制逻辑或者在外部器件(如一个处理器)或者在FPGA逻辑中。用户自定义的内部PR通过ICAP接口加载比特文件。

内部配置由自定义的状态机或者一个类似于MicroBlaze的嵌入式处理器构成。

配置模式

ICAP - A good choice for user configuration solutions. Requires the creation of an ICAP controller as well as logic to drive the ICAP interface.

? MCAP - (UltraScale only) Provides a dedicated connection to the ICAP from one specific PCIE block per device.

? PCAP - The primary configuration mechanism for Zynq-7000 AP SoC designs. ? JTAG - A good interface for quick testing or debug. Can be driven using the Vivado Hardware Manager or ChipScope? Analyzer using a Xilinx configuration cable that supports JTAG.

? Slave SelectMAP or Slave Serial - A good choice to perform full configuration and Partial Reconfiguration over the same interface。主模式不支持。

partial bit file有一个简化的头,没有使FPGA进入用户模式的startup序列。比特文件只含有帧地址和配置数据,外加校验和。如果使用了Reset After Reconfiguration,DONE脚在配置开始时为低,完成后拉高。

如果没用Reset After Reconfiguration,必须监控发送的数据。比特文件尾有个去同步字0000000D。这个命令是在一系列填充空指令后面,确保去同步字监控到的时候所有的配置数据已经发送完成。一旦完整的比特文件发送到配置端口,释放可重配置端口为使能状态。

UltraScale器件的清除比特文件

举例:

一个设计有两个可重配置分区:RP1 RP2.每个分区各有两个可重配置模块。RP1含有A1和B1。RP2含有A2和B2,已经实现了。两个配置都经过布线了,pr_verify通过了。当比特文件产生时,每个配置都产生5个比特文件。对于configA:

configA.bit-完整的比特文件,用于上电配置。包含静态设计包含A1、A2功能。 configA_RP1_A1_partial.bit:功能A1的比特文件。当另一个RM从这个RP中清掉后要加载的。

configA_RP1_A1_partial_clear.bit:为A1功能的清除比特文件。在加载任何其他部分比特文件之前,必须加载这个文件 configA_RP2_A2_partial.bit

configA_RP2_A2_partial_clear.bit

如果清除比特文件不下载的话,去哪聚复位GSR不会起作用。如果下载了不正确的清除文件,甚至静态逻辑都可能崩溃。直到下一个部分比特文件加载。

配置FPGA的系统设计

在完全配置时需要在下载之前使INIT和PROG信号有效,但是对于部分比特文件配置时,千万不能有效。因为两个信号有效意味着full比特文件。

可以使用ICAP接口下载程序,它与Select MAP一样。ICAP库原语可以在HDL中实例化。

配置帧

配置帧是最小的可寻址的单元。

Base Regions in 7 series FPGAs are:


ug909 - partial - config - christine(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:某钢结构施工组织设计方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: