案例1: 常数边界的循环合并

期待的情形:
Vivado_HLS 学习笔记5-多个循环的并行

HLS综合的结果
Vivado_HLS 学习笔记5-多个循环的并行

做的操作:循环合并
Vivado_HLS 学习笔记5-多个循环的并行

操作的结果
Vivado_HLS 学习笔记5-多个循环的并行

循环边界均为常数,但不相等时,按最大的边界进行循环合并

案例2: 变量边界的循环合并

Vivado_HLS 学习笔记5-多个循环的并行

能合并的循环,边界必须相同!

案例3: 数据流

HLS默认综合结果
Vivado_HLS 学习笔记5-多个循环的并行

使用Dataflow的结果
Vivado_HLS 学习笔记5-多个循环的并行
Vivado_HLS 学习笔记5-多个循环的并行

案例4: 数据流

HLS综合结果
Vivado_HLS 学习笔记5-多个循环的并行

使用DataFlow
Vivado_HLS 学习笔记5-多个循环的并行

案例5: 数据流

HLS综合结果
Vivado_HLS 学习笔记5-多个循环的并行

使用DataFlow
Vivado_HLS 学习笔记5-多个循环的并行

提醒

  • 对于scalar,指针,或引用和返回值, HLS会综合为FIFO
  • 对于数组,HLS如果判断出有顺序,则综合为FIFO; 如果是随机访问,会实现为ping-pong RAM.
  • 可以手动设置config_dataflow

相关文章:

  • 2022-12-23
  • 2021-04-03
  • 2022-12-23
  • 2021-11-29
  • 2021-11-04
  • 2021-08-06
  • 2021-11-21
  • 2021-08-29
猜你喜欢
  • 2021-11-19
  • 2021-12-31
  • 2021-08-19
  • 2021-09-07
  • 2021-12-02
  • 2021-10-27
  • 2021-10-28
相关资源
相似解决方案