DATAFLOW
最优化属于动态最优化,只有在完成 RTL 协同仿真后才能完全理解。有鉴于此,完成 C 语言综合后,“Dataflow”(数据流)查看器允许您查看工具推断所得的数据流结构、检查通道 (FIFO/PIPO) 并检验通道深度对于性能的影响。完成协同仿真后,将在“Dataflow”查看器中给性能数据添加反标注解。重要: 您无需运行 RTL 协同仿真亦可打开“Dataflow”查看器,但这样视图中将不包含重要的性能信息,例如读/写阻塞时间、协同仿真深度和停滞时间。
您必须向设计应用 DATAFLOW
编译指示或指令方可在“Dataflow Viewer”报告中生成这些信息。您可将数据流应用于顶层函数,或者应用于函数或循环的特定区域。“Dataflow”查看器会显示数据流计算图结构表示法,以显示不同进程和底层生产者/使用者连接。“Synthesis Summary”(综合汇总)、“Module Hierarchy”(模块层级)和“Function Call Graph”(函数调用计算图)将在顶层函数旁显示 图标,以表明存在 DATAFLOW 编译指示。
图 1. 数据流查看器
“Dataflow”查看器的功能特性包括:
- 源代码浏览器
- 从进程/通道到源代码的自动交叉探测。
- 筛选端口和通道类型。
- “Process and Channel”(进程和通道)表详列了设计的特性:
- “Channel Profiling”,即“通道剖析”(FIFO 大小等),在“Config File Editor”(配置文件编辑器)的C/RTL Cosimulation(C/RTL 协同仿真)设置中启用。重要: 您必须在 HLS 配置文件中使用
cosim.enable_dataflow_profiling=true
为“Dataflow”查看器捕获数据,并且测试激励文件必须运行顶层函数的至少 2 次迭代。 - RTL 协同仿真后报告进程读取阻塞/写入阻塞/停滞时间。
- 显示进程时延和 II。
- 通道类型和宽度均显示在“Channel”表中。
- 从“Process”和“Channel”表到“Graph”和“Source”浏览器之间的自动交叉探测。
- 悬停于通道或进程上即可显示工具提示(含设计信息)。
- “Channel Profiling”,即“通道剖析”(FIFO 大小等),在“Config File Editor”(配置文件编辑器)的C/RTL Cosimulation(C/RTL 协同仿真)设置中启用。
“Dataflow”查看器可帮助设计进行性能调试。RTL 协同仿真期间,如果设计发生死锁,那么 GUI 将打开“Dataflow”查看器并高亮死锁所设计的通道和进程,以便您判定原因,如 FIFO 深度不足等。
如果设计表现不及预期,那么“Process”和“Channel”表还能帮助您了解原因。进程可能发生停滞并等待读取输入,或者可能无法写入输出而导致停滞。“Channel”表可以提供停滞百分比并识别进程是处于“读取阻塞”还是“写入阻塞”状态。
“Dataflow Viewer”(数据流查看器)会在报告顶部显示一个菜单栏,其中包含以下功能特性:
- Zoom In(放大)、Zoom Out(缩小)/Zoom Fit(缩放适应)命令
- Toggle Table(切换表格)命令,用于显示或隐藏计算图下方的表格
- Group All/Ungroup All(全部组合/全部取消组合)用于将关联的通道组合在一起以简化此图例
- Legend(图例)命令用于显示图例。