vivado 综合时间优化(多线程设置,策略选择,增量综合)

1,多线程设置

在Vivado中设置线程数量主要通过Tcl(Tool Command Language)命令来实现

1.1 查看当前线程数量

在Vivado的Tcl Console界面中,输入以下命令来查看当前的编译线程数量

get_param general.maxThreads

这将返回当前Vivado设置的最大线程数。对于Windows系统,默认可能是2线程;而Linux系统则可能默认为8线程,但这取决于Vivado的具体版本和安装配置。

1.2 修改线程数量

如果你想要修改Vivado的编译线程数量,可以使用set_param命令。在Tcl Console界面中,输入以下命令并替换[number]为你想要设置的线程数(注意线程数应在Vivado支持的范围内,通常为1到某个最大值,这个最大值可能因Vivado版本和操作系统而异):

set_param general.maxThreads [number]

例如,要将线程数设置为8,可以输入:

set_param general.maxThreads 8

      程数确实会对Vivado综合的时间产生影响。在Vivado中,综合(Synthesis)是FPGA设计流程中的一个关键步骤,它涉及将HDL(硬件描述语言)代码转换为门级网表。这个过程中,Vivado会利用多个线程来并行处理代码,以加速综合过程。

1.3 线程数对综合时间的影响:

  1. 加速综合过程:增加线程数可以使得Vivado能够同时处理更多的任务,从而缩短综合所需的总时间。这对于大型和复杂的FPGA设计尤为重要,因为这些设计通常需要更长的时间来完成综合。

  2. 系统资源利用:然而,需要注意的是,增加线程数也会增加对系统资源(如CPU和内存)的需求。如果系统资源不足以支持所设置的线程数,那么综合过程可能会因为资源争用而变慢,甚至导致系统不稳定。

  3. 默认和最大线程数:Vivado在不同操作系统上的默认线程数可能不同(如Windows上可能为2,Linux上可能为8)。同时,Vivado也支持设置最大线程数,但这个最大值也受限于系统资源和Vivado版本。 

  4. 设置线程数的建议

    • 评估系统资源:在设置线程数之前,应评估系统的CPU和内存资源,以确保能够支持所设置的线程数。
          用户设置的线程数不应超过计算机的CPU核心数,因为过多的线程会导致CPU资源争用,反而降低编译效率。
           除了CPU核心数外,内存大小也是限制线程数的一个重要因素。每个线程都需要一定的内存来存储数据和执行指令,因此过多的线程会导致内存不足,进而影响编译过程。
    • 逐步增加:可以从默认线程数开始,逐步增加线程数,并观察综合时间的变化。如果增加线程数后综合时间没有明显缩短,或者系统资源利用率过高,那么可能需要减少线程数。
    • 参考官方建议:Vivado的官方文档或技术支持可能会提供关于如何设置线程数的建议,这些建议通常基于广泛的测试和用户反馈。
  5. 其他因素:除了线程数之外,综合时间还受到多种因素的影响,包括HDL代码的质量、设计的复杂度、Vivado的版本和设置等。因此,在优化综合时间时,应综合考虑这些因素。

      综上所述,线程数是影响Vivado综合时间的一个重要因素,但并不是唯一的因素。在设置线程数时,需要综合考虑系统资源、设计需求和其他相关因素,以达到最佳的综合效果。

以下是不同线程下同一工程综合和实现所用的时间

2线程

4线程

8线程

2,策略选择

    在Vivado中,可以选择不同的综合策略来满足设计需求。例如,如果目标是减少综合时间,可以选择“RuntimeOptimized”策略,它会通过忽略一些不必要的RTL(寄存器传输级)优化来减少综合运行时间,从而在保持设计功能正确性的前提下,提高综合效率(在对设计性能有严格要求时,建议采用其他更为全面的优化策略)。

在线程都为 2的情况下

不设置 “RuntimeOptimized”策略

设置 “RuntimeOptimized”策略

3,增量综合

    从Vivado 2019.1版本开始,Vivado支持增量综合,增量综合(Incremental Synthesis)是Vivado设计套件中一项强大的功能,它允许用户在设计发生局部变化时,仅对发生更改的部分进行重新综合,而不是对整个设计进行重新综合。这种方式可以显著减少综合时间,特别是对于大型设计或频繁修改的设计场景尤为有效。

3.1通过Vivado IDE图形界面设置增量综合

  1. 打开Vivado并加载设计
    • 启动Vivado软件,并打开或创建一个FPGA设计项目。
  2. 进行综合设置
    • 在Vivado IDE中,找到综合设置选项。这通常位于“Flow Navigator”中的“Synthesis”部分,或者通过右键点击设计文件并选择“Synthesis Settings”来访问。
    • 在综合设置窗口中,找到与增量综合相关的选项。从Vivado 2019.1版本开始,Vivado支持增量综合,但具体的选项名称可能因版本而异。通常,你需要确保“Write Incremental Synthesis”或类似的选项被勾选,以便在综合过程中生成带有增量综合信息的DCP文件。
  3. 执行初始综合
    • 在完成综合设置后,执行初始综合以生成DCP文件。这个DCP文件将作为后续增量综合的参考。
  4. 修改设计
    • 在设计过程中,对设计进行必要的修改。
  5. 启用增量综合
    • 当需要再次进行综合时,Vivado将自动检测是否存在可用的DCP文件,并询问是否使用增量综合。你也可以在综合设置中手动选择使用增量综合。
    • 如果需要手动选择DCP文件,可以在综合设置窗口中找到相应的选项,并指定DCP文件的路径。
  6. 执行增量综合
    • 启动综合过程,Vivado将仅对发生更改的部分进行重新综合,而不是对整个设计进行重新综合。

3.2 通过Tcl脚本设置增量综合

 以下是一个简化的Tcl脚本示例,用于设置和执行增量综合:

# 加载设计  
open_project my_project.xpr  
  
# 设置综合选项(假设存在增量综合选项)  
set_property steps.synth_1.args.write_checkpoint 1 [get_runs synth_1]  
set_property steps.synth_1.args.incremental_synth 1 [get_runs synth_1]  
  
# 执行初始综合(如果需要)  
launch_runs synth_1 -to_step synth_design  
wait_on_run synth_1  
  
# 修改设计(这里通常是修改源代码或约束文件)  
# ...  
  
# 加载增量综合的参考DCP文件  
read_checkpoint -incremental my_reference.dcp  
  
# 执行增量综合(注意:这里可能需要自定义Tcl命令或流程来实际执行增量综合,因为Vivado的Tcl命令可能不直接支持“增量综合”这一命令)  
# 通常,Vivado会自动检测DCP文件并在综合过程中应用增量综合  
# 如果需要,可以通过Tcl命令调整综合策略或设置其他相关参数来优化增量综合过程  
  
# 注意:上述Tcl脚本中的命令和参数可能需要根据Vivado的实际版本和设置进行调整

        要确认该工具是否读取了增量 checkpoint,请在生成的综合日志文件中查看“Command: read_checkpoint -incremental ./top.dcp”的消息。

3.3 增量综合的优势和注意事项

  1. 节省时间:通过仅重新综合更改的部分,增量综合可以大幅减少综合阶段所需的时间,特别是在设计实例超过一定规模时,效果尤为显著。
  2. 减少QoR波动:对于小的改动,增量综合能够尽可能地减小质量结果(Quality of Results, QoR)的波动,保持设计的稳定性和一致性。
  3. 增量综合的效果可能受到设计更改的具体内容和范围的影响。如果设计更改较大或涉及关键部分,增量综合可能无法完全满足需求,此时可能需要考虑进行全面综合

     

使用增量综合后

       减少Vivado综合时间需要从多个方面入手,包括优化代码和设计、使用Vivado的高级功能、调整综合设置、管理约束、增量综合以及分析和优化等。通过综合运用这些策略,可以有效地减少综合时间,提高设计效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值