[论文解读] Using Vivado-HLS for Structural Design: a NoC Case Study
本文展示了Xilinx Vivado-HLS能够有效实现周期精度和位精度的片上网络(NoC)路由器及完整NoC,作为参考RTL设计的精确替代品。通过使用C++与编译指令,并采用规范的编码方法,作者在资源利用率和关键路径延迟方面达到了与RTL相当的水平,同时在功能验证和结构探索方面显著提升了生产力,尽管在层次化设计中引入了复杂性挑战。
There have been ample successful examples of applying Xilinx Vivado's "function-to-module" high-level synthesis (HLS) where the subject is algorithmic in nature. In this work, we carried out a design study to assess the effectiveness of applying Vivado-HLS in structural design. We employed Vivado-HLS to synthesize C functions corresponding to standalone network-on-chip (NoC) routers as well as complete multi-endpoint NoCs. Interestingly, we find that describing a complete NoC comprising router submodules faces fundamental difficulties not present in describing the routers as standalone modules. Ultimately, we succeeded in using Vivado-HLS to produce router and NoC modules that are exact cycle- and bit-accurate replacements of our reference RTL-based router and NoC modules. Furthermore, the routers and NoCs resulting from HLS and RTL are comparable in resource utilization and critical path delay. Our experience subjectively suggests that HLS is able to simplify the design effort even though much of the structural details had to be provided in the HLS description through a combination of coding discipline and explicit pragmas. The C++ source code can be found at https://github.com/zhipengzhaocmu/HLS_NoC.
研究动机与目标
- 评估Vivado-HLS在结构化硬件设计中的有效性,特别是针对同步寄存器和组合逻辑密集型设计。
- 确定使用C/C++与HLS是否能够以周期级和位级精度复现复杂的参数化RTL设计,如NoC路由器。
- 评估HLS相较于传统RTL流程在功能正确性与结构优化分离方面的生产力优势。
- 识别在从单个路由器模块扩展到使用HLS的层次化NoC设计时所面临的局限性与挑战。
- 比较HLS生成与RTL生成的NoC实现的质量结果(QoR),包括LUT、触发器(FF)和关键路径延迟。
提出的方法
- 作者使用Vivado-HLS在C++中实现NoC路由器与完整NoC,目标为Xilinx Virtex-7 FPGA器件。
- 应用Vivado-HLS编译指令以控制数据流、流水线和资源共享,确保结构确定性。
- 强制执行编码规范,将路由器子模块表示为C++对象,支持模块化层次化设计。
- 使用HLS流程的“evaluate”选项,将综合与实现合并为单次运行。
- 通过CONNECT NoC生成器生成等效RTL设计,并使用标准Vivado RTL流程以相同策略进行综合。
- 在多种配置下比较性能与资源利用率,包括不同数据宽度和网络拓扑。
实验结果
研究问题
- RQ1Vivado-HLS是否可用于实现涉及同步寄存器和组合逻辑的结构化设计,并实现周期级与位级精度?
- RQ2HLS生成的NoC路由器在LUT、FF和关键路径延迟方面的质量结果(QoR)与等效RTL设计相比如何?
- RQ3在结构化设计中,使用C语言与HLS进行功能验证和结构探索的生产力增益体现在哪些方面?
- RQ4在使用HLS进行层次化模块化设计时,特别是为多个路由器子模块生成网表时,会遇到哪些挑战?
- RQ5在HLS中使用C++对象与编码规范是否能够在不牺牲QoR的前提下,实现可扩展、可维护的结构化设计?
主要发现
- HLS生成的NoC路由器相比等效的CONNECT RTL路由器,LUT数量为1.33倍,FF数量为0.42倍,关键路径延迟为0.87倍。
- FF数量的减少归因于HLS更高效的寄存器状态编码与优化。
- 在128位宽配置下,HLS路由器的LUT数量有所增加,原因在于虚拟通道数据包缓冲区路径逻辑的差异,但存储资源本身相当。
- 对于环形、网格和环面等NoC拓扑,HLS NoC的布局布线资源比在LUT方面最高为1.23倍,在FF方面最高为0.46倍,与RTL对应物相当。
- 尽管分配器逻辑完全相同,HLS路由器的关键路径延迟有时优于RTL,可能由于综合优化策略的差异。
- 生产力提升最显著体现在功能验证和结构探索阶段,得益于C语言的顺序语义与调试环境。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。