摘自 wp311 Improving Performance in Spartan-6 FPGA Designs v1.2
RTL:
· 使用同步复位。
利于把寄存器综合入 DSP 和 BRAM。
综合:
· 检查综合报告,确保逻辑层次(logic level)较少。
利于提高 PAR 性能。
· 使用约束。
利于优化。
· 寄存器平衡(register balancing (retiming))。
进一步优化。
· FSM 优化(state machine optimizations)。
进一步优化。
· 禁止“LUT-combining(会将一对 LUT 打包到 SPARTAN6 slice 的双输出 LUT)”。
Synplify pro 设置:
XST 设置:
· 若关键路径横跨多个模块,要打平网表(flatten netlist)。
利于优化在模块间进行。
实现:
· 首先不更改任何选项:
若设计结果接近预期,则:
a. 禁止 MAP的“LUT-combining”。
防止区域优化。
b. 设置高级网表优化。
便于重新综合并优化扇出系数。
· 使用 smartXplorer 进行不同选项结果的生成。
可以并行实现。
· 使LUT 使用率低于80%。
利于 PAR,防止性能退化。
性能分析和改进措施:
· 若逻辑层次太多,返回 RTL 代码设计,用流水线或重新定义时序(retiming,即降低时钟频率或更改寄存器结构等)
· 若关键路径有长延迟:
a. 用 PlanAhead 查看,确保没有在 GTP 或 PCI-E 终点周围 进行PAR。如下图所示:
b. 若长延迟的线网有高扇出,复制该线网。也可以用 floorplan 来控制 placement。
c. 若长延迟中有IO,使用IO 寄存器。若 IO 寄存器已使用,确保放在 IO 附近。为确保访问性能,关键IO不要放在专用 IP 附近。
d. 若长延迟中有 DSP48 或 BRAM,要使用流水线。若流水线也不能保证性能,用 floorplan 或 LOC 约束确保这些块优化放置。
其他:
· 使用针对 SPARTAN6 的 IP。
使用3系速度的器件,会比2系的高出30%。
文章评论(0条评论)
登录后参与讨论