综合设计步骤和分析
一、综合报告
1.开始进行C综合设计
2.D:/xxx/vivado_hls.bat D:/xxx/solution1/csynth.tcl运行综合的tcl文件
二、INFO信息
1.应用HLS patch补丁
2.runing vivado_hls.exe可执行文件
3.in directory xxx目录
4.opening project打开工程
5.add design file设计文件top.cpp文件到project工程
6.add test bench file顶层文件到工程
7.opening solution打开方案设计
8.设置默认的clock时钟
9.设置target device目标器件
三、关键优化与警告分析
1.浮点优化忽略 NaN
说明设计中很可能使用了浮点常量或运算,HLS 在不影响功能的前提下,默认移除了对 NaN/带符号零的处理,以节省资源。需确认设计逻辑是否确实不依赖 NaN。
2.数组分区与数据流停滞风险(重要)
extra_info 被当作数据流通道读取。如果在数据流管道中间读取这个值,可能会导致管线停顿,因为生产者可能尚未写完,消费者已在读取。这暗示 extra_info 可能是一个参数,应在数据流启动前固化,而不是在流中动态读取。需要检查此处在代码中是否过早或过晚地访问了该参数。
3.时序与流水线(Pipeline)
所有关键循环都实现了 II=1(启动间隔为 1),即每周期可处理一个数据,满足最高吞吐需求
4.资源绑定警告
表明用户可能使用 #pragma HLS RESOURCE 指定了某种存储资源(如 BRAM),但 HLS 推断用 LUTRAM 更简单,因此忽略了该指示。从后续日志看,line_buff_V 确实被实现为分布式 RAM(RAM_2P_LUTRAM),因为深度或位宽不大。
5.假 RAW 依赖(False Dependency)
HLS 检测到 line_buff 存在假读后写依赖,这通常会影响性能或阻止流水。不过后续成功流水线化且 II=1,说明工具已通过优化消除或绕过了该假依赖。
6.多条 [SYN 201-210] 重命名警告
