在 Vivado 中,Synthesis Strategy(综合策略)是指 Vivado 综合工具在将 RTL(寄存器传输级)代码转换为门级网表时所采用的优化方法和配置,不同的综合策略会影响设计的性能、资源利用率和综合时间,Vivado 提供了多种预定义的综合策略,用户也可以自定义策略以满足特定需求。
Vivado 提供了多种预定义的综合策略,适用于不同的设计目标,以下是 Vivado 中常见的综合策略及其特点:
1. 预定义的综合策略
Default (Vivado Synthesis Defaults)
特点:平衡性能和资源利用率。
适用场景:大多数设计场景的默认选择。
Flow_AreaOptimized_high
特点:侧重于减少资源使用(面积优化),可能会牺牲一些性能。
适用场景:资源受限的设计。
Flow_AreaOptimized_medium
特点:在面积优化和性能之间取得平衡。
适用场景:中等资源优化的设计。
Flow_PerfOptimized_high
特点:侧重于提高性能(时序优化),可能会增加资源使用。
适用场景:高性能设计。
Flow_PerfThresholdCarry
特点:针对高性能设计,优化时序并减少进位链延迟。
适用场景:对时序要求极高的设计。
Flow_RuntimeOptimized
特点:优化综合运行时间,减少综合时间。
适用场景:快速迭代设计。
Flow_PowerOptimized_high
特点:侧重于降低功耗。
适用场景:低功耗设计。
2. 如何选择综合策略
在 Vivado 中,可以通过以下步骤选择综合策略:
1. 打开 Vivado 项目。
2. 在 Flow Navigator 面板中,点击 Synthesis Settings。
3. 在 Synthesis 设置页面中,找到 Strategy 选项。
4. 从下拉菜单中选择所需的综合策略。
5. 点击 OK 保存设置。
3. 自定义综合策略
如果预定义的策略无法满足需求,可以创建自定义的综合策略:
1. 在 Flow Navigator 面板中,点击 Synthesis Settings。
2. 在 Synthesis 设置页面中,点击 Strategy 旁边的 Edit 按钮。
3. 在弹出的对话框中,选择 Create a New Strategy。
4. 根据需要调整以下参数:
Optimization Effort :优化力度(低、中、高)。
Resource Sharing :是否启用资源共享。
Control Set Optimization :控制集优化。
FSM Encoding :状态机编码方式。
RAM Style :RAM 实现方式。
DSP Utilization :DSP 使用优化。
Clock Gating :时钟门控优化。
5. 保存自定义策略并应用。
4. 综合策略的影响
选择不同的综合策略会对设计产生以下影响:
资源利用率 :面积优化策略会减少 LUT、FF、BRAM 等资源的使用。
性能 :性能优化策略会提高设计的运行频率,但可能增加资源使用。
功耗 :功耗优化策略会降低动态和静态功耗。
综合时间 :运行时间优化策略会减少综合时间,但可能牺牲一些优化效果。
5. 综合策略的建议
如果设计对时序要求较高,选择 Flow_PerfOptimized_high 或 Flow_PerfThresholdCarry 。
如果设计资源受限,选择 Flow_AreaOptimized_high 。
如果设计需要快速迭代,选择 Flow_RuntimeOptimized 。
如果不确定,使用默认策略 Vivado Synthesis Defaults 。