• VivadoAndTcl: opt_design


    该命令能够优化当前的网表文件,可以指定的参数如下:

    1. retarget: 其主要功能是将当前设计从一个器件家族重定向到另一个器件家族。举例,将MUXCY实例或者XORCY实例重定向为CARRY4块。
    2. Constant Propagation: 针对电路里的常量输入进行优化,去掉冗余的组合逻辑,从而生成一个更简单的网表。
    3. sweep: 清除无用电路,除去无负载的cells和nets。
    4. bram_power_opt: bram的功耗优化。
    5. remap: 将多个LUTs重新映射到一个LUT来降低逻辑的深度。
    6. aggressive_remap: 执行和remap类似的操作但是更加激进,需要用更多的优化时间来降低更多的LUT级数。
    7. resynth_area: 在area mode进行重新综合来降低LUTs的数量。
    8. resynth_seq_area: 进行重新综合来降低组合逻辑和时序逻辑。
    9. resynth_remap: 通过重新映射来降低逻辑的深度,从而提升关键路径的时序。这种基于时序驱动的方式可以通过复制LUTs的方式降低 LUTs的扇出,并且可以将多个小的LUTs合并为一个大的功能,但是需要的编译时间也更多了。
    opt_design -sweep -retarget

    需要注意的是,在命令行选择了指定的优化方法后,其他的优化手段均会失效。

    opt_design命令可以添加directive参数,可以使用的策略如下:

    1. explore: 运行额外的优化手段来提升结果。
    2. exploreArea: 运行resynth_area来降低LUTs的使用量。
    3. exploreWithRemap: 运行aggressive_remap来压缩逻辑级数。
    4. ExploreSequentialArea: 运行resynth_seq_area优化来降低寄存器和相关联的组合逻辑用量。
    5. runtimeOptimized: 运行除去bram_power_opt的default策略,应用最少的优化来达到更快的编译速度。
    6. RQS: 该方法用于帮助选择opt_design用那种策略。
    7. default: 默认策略,包括以下策略:
      1. retarget
      2. constant propagation
      3. sweep
      4. global buffer(BUFG) optimizations
      5. dsp register optimizations
      6. shift-register logic optimizations
      7. block ram power optimizations
      8. implement mig cores
      9. implement debug cores

     使用directive参数例子如下:

    opt_design -directive Explore
  • 相关阅读:
    物联网安全挑战
    Linux系统编程 day03 Makefile、gdb、文件IO
    跟我学UDS(ISO14229) ———— 0x29(Authentication)
    ALTERA FPGA IPCORE核之单口RAM详细教程
    机器学习-4
    uniapp项目搭建 请求配置
    数据结构:线性表之-队列
    Prometheus监控mysql nginx tomcat 黑盒监控
    裸辞后吊打大厂面试官,四面拿到阿里offer后我还是选择了美团
    Docker ——Docker基本管理
  • 原文地址:https://blog.csdn.net/bzh19940620/article/details/134546703