通过修改调试核 (ILA) 来进行增量编译
增量编译是高级设计流程 , 用于接近完成且需要少量更改的设计。重新综合这些少量修改后 , 流程将能够 :
• 加速完成布局布线运行时。
• 保留 QoR 可预测性 , 因为它复用先前来自参考设计的布局布线。当综合更改与参考设计的相似性达到至少 95%
时 , 此流程最有效。
通过使用“增量编译”设计流程来重新实现设计 , 即可将增量调试更改应用于已布局布线的设计。在以下情况下建议使
用此流程 :
• 已实现的现有设计中无调试核 , 或者
• 您需要修改现有调试核 , 更改探针宽度、数据深度等 ,或者
• 您需要从设计中删除调试核。
增量编译流程设计
“增量编译 (Incremental Compile) ”流程涉及 2 种不同设计 , 参考设计与含调试核修改的当前设计。
参考设计
参考设计通常为已完成综合和布局布线的当前设计的早期迭代或变体。但您可使用检查点 , 且不限其中所含布局和 / 或
布线数量。参考设计检查点 (DCP) 可以是大量设计迭代的产物 , 其中涉及达成时序收敛所需的代码变更、布局规划和
约束修改。加载完当前设计后 , 使用 read_checkpoint -incremental <dcp> 命令即可加载参考设计检查点。
使用 -incremental 选项来加载参考设计检查点即可支持增量编译设计流程 , 以便后续执行布局布线操作。
当前设计
当前设计相比参考设计 , 具有少量调试相关的设计更改或变动。这些更改或变动可包括 :
• 调试核 RTL 例化更改
• 调试核插入更改
• 调试核相关 RTL 更改和插入更改
要在已实现的现有设计中插入、删除或修改调试核 , 请打开已综合的 DCP 或设计 , 然后使用调试插入流程。在“使用
网表插入调试探测流程”中可找到有关调试插入流程的详细信息。
您也可以修改现有调试核 , 或者将新的调试核例化到现有 RTL 设计中。“增量编译”流程复用来自参考设计的布局布
线并附带新的调试相关修改。在“ HDL 例化调试探测流程概述”中可找到有关调试例化流程的详细信息。
相关信息
使用网表插入调试探测流程
HDL 例化调试探测流程概述
使用递增编译
在工程模式和非工程模式下 , 使用 read_checkpoint -incremental <reference_dcp_file> 命令加载参考
设计检查点时会进入增量布局布线模式 , 此命令中 , <reference_dcp_file> 用于指定参考设计检查点的路径和文
件名。使用 -incremental 选项来加载参考设计检查点即可支持增量编译设计流程 , 以便后续执行布局布线操作。在
非工程模式下 , read_checkpoint -incremental 的执行应 : (1) 晚于 opt_design 且 (2) 早于
place_design 。如果使用调试插入流程 , 那么调试核相关的 XDC 命令应先于 opt_design 执行。
在非工程模式下使用增量编译
要在非工程模式下指定使用某个设计检查点文件 (DCP) 作为参考设计并运行增量布局 , 请执行以下操作 :
1. 加载当前设计。
2. 运行调试核命令。
3. 运行 opt_design 。
重要提示 ! 确保 opt_design 选项和指令与原始参考运行中所使用的选项和指令尽可能匹配
4. 运行 read_checkpoint -incremental <reference_dcp_file> 。
5. 运行 place_design 。
6. 运行 route_design 。
# to load the current design
link_design;
#Create the debug core
create_debug_core u_ila_0 ila
#set debug core properties
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
#connect the probe ports in the debug core to the signals being probed
in the design
set_property port_width 1 [get_debug_ports u_ila_0/clk]
connect_debug_port u_ila_0/clk [get_nets [list clk ]]
set_property port_width 1 [get_debug_ports u_ila_0/probe0]
connect_debug_port u_ila_0/probe0 [get_nets [list A_or_B]]
create_debug_port u_ila_0 probe
opt_design
read_checkpoint -incremental <reference_dcp_file>
place_design
route_design
重要提示 ! 您必须打开已综合的检查点才能修改设计中的调试核。不支持通过打开布线后检查点来插入调试
核。
在工程模式下使用增量编译
在工程模式下 , 您可在“ Design Runs ”窗口中设置增量编译选项。
要设置增量编译选项 , 请执行以下操作 :
1. 在“设计运行 (Design Runs) ”窗口中 , 选择运行。
2. 单击上下文菜单中的“ Set Incremental Compile ”。
3. 在“设置增量编译”窗口中 , 选择参考设计检查点。这样即可启用运行增量编译模式。
4. 打开综合后网表 , 在其中可选择修改或添加 RTL 中已例化的调试核。
5. 使用“设置调试 (Set Up Debug) ” Wizard 来对已插入设计的调试核执行插入、删除或修改操作。
6. 实现设计。
重要提示 ! 您必须打开已综合的设计才能修改设计中的调试核。不支持通过打开布线后设计来插入调试核。
如需了解有关“增量编译”功能的更多信息 , 请访问此 链接 , 以参阅《 Vivado Design Suite 用户指南 : 实现》 ( UG904 )
中的相应内容。
检验参考设计与当前设计之间的相似性
运行 report_incremental_reuse 以检验并报告参考设计检查点文件与当前设计之间的相似性。
report_incremental_reuse 命令可将来自参考设计检查点的网表与当前存储器内的设计进行比较并报告单元、信
号线和端口的匹配百分比。
设计相似性程度越高 , 则复用来自参考设计的布局布线的效率越高。参考设计与当前设计之间相似性百分比越高 , 则布
局布线复用机会越大。