综合设计步骤和分析
一、综合报告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所有关键循环都实现了 II1启动间隔为 1即每周期可处理一个数据满足最高吞吐需求4.资源绑定警告表明用户可能使用 #pragma HLS RESOURCE 指定了某种存储资源如 BRAM但 HLS 推断用 LUTRAM 更简单因此忽略了该指示。从后续日志看line_buff_V 确实被实现为分布式 RAMRAM_2P_LUTRAM因为深度或位宽不大。5.假 RAW 依赖False DependencyHLS 检测到 line_buff 存在假读后写依赖这通常会影响性能或阻止流水。不过后续成功流水线化且 II1说明工具已通过优化消除或绕过了该假依赖。6.多条 [SYN 201-210] 重命名警告