在Flow Navigator中,确保 HLS 组件处于活动状态,或者在Component(组件)菜单中将其选中,在该工具中将其设为活动组件。当 HLS 组件为活动组件时,Flow Navigator支持运行 C 语言仿真、C 语言综合、C/RTL 协同仿真、封装与实现来构建和分析该 HLS 组件。选中Flow Navigator的IMPLEMENTATION(实现)标题下的Run(运行)。
当 HLS 编译器报告高层次综合的结果时,它会提供估算结果,包括预测的时钟频率和资源利用率(LUT、DSP、BRAM 等)。之所以仅预测这些结果,原因是该工具无从知晓最终综合或实现后的设计中的最优化或布线延迟。为了能更准确分析 RTL 设计,您可以在生成的 RTL 设计上实际运行 Vivado 综合和布局布线,并复查时序和资源利用率的结果。但这些也只是改进后的估算结果,因为如果使用当前 IP 或内核的更大的设计中还包含其他 IP 或内核,则会产生不同的结果。
配置实现
您可先配置 Vivado 综合与实现,然后再使用Config File Editor(配置文件编辑器)的Implementation(实现)部分(如下所示)或者直接编辑 HLS 配置文件来运行综合与实现。
Implementation的配置命令包括:
- vivado.flow
- 指定仅运行综合或者同时运行综合与实现。仅运行综合比同时运行综合与实现更快,但缺少实现运行的部分详细信息。默认值为
syn
。 - vivado.rtl
- 指定运行 Vivado 非关联流程时使用的语言。默认为 Verilog。
- vivado.clock
- 用于指定综合或实现期间使用的时钟周期。如不指定此项,则使用创建 HLS 组件时指定的默认时钟。
- vivado.impl_strategy
- 用于指定要在实现运行期间采用的策略。这仅在运行实现用于估算资源利用率和时序期间才适用,并且不影响生成的 Vivado IP 或 Vitis 内核。
- vivado.max_timing_paths
- 用于指定要从“Timing Summary”(时序汇总)报告抽取的时序路径数量。它会返回指定数量的最差情况路径。
- vivado.optimization_level
- 这是用于管理 Vivado 工具所执行的最优化的通用功能特性。设置越高,采用的最优化越多,运行时间也越长。
- vivado.pblock
- 指定 Pblock 范围或值,用于在布局布线期间限制设计可用面积。
- vivado.phys_opt
- 用于指定要运行的物理最优化。选项包括:
none
、place
、route
和all
- vivado.report_level
- 用于定义综合或实现期间生成的报告级别。此报告可包含使用情况和时序汇总信息、时序路径详细信息或 Failfast(快速失败)报告(默认)。
- vivado.synth_design_args
- 用于为
synth_design
命令指定选项。 - vivado.synth_strategy
- 用于指定要在 Vivado 综合运行期间采用的策略。
Run Implementation
在配置文件中定义实现设置后,即可从Flow Navigator中选择Run(运行)。您可在Output(输出)窗口中跟踪实现运行的进度。运行的转录文本所含顶层函数名为 <component-name>::implementation
,如下所示。
完成实现后,应在转录文本底部显示Implementation finished successfully(实现成功完成)消息。在IMPLEMENTATION报头下的Reports(报告)文件夹中,还会填充以下报告:
- Summary(汇总):报告使用的命令行和结果的时间戳
- RTL Synthesis(RTL 综合):报告综合结果,包括资源利用率和时序
- Place and Route(布局布线):如 实现报告 中所述