VivadoAndTcl: synth_design

该命令用于综合vivado工程并打开那个综合后的设计。其可以添加非常多的综合设计选项,列举如下:

  1. name: 给综合设计起一个名字。
  2. part: 指定综合设计所使用的芯片。
  3. constrset: 指定综合设计时所使用的约束文件。
  4. top: 指定综合设计的顶层文件。
  5. include_dirs: 指定代码里`include文件的目录,可以通过创建列表来包含多个目录。
  6. generic: 用于指定顶层模块的parameter参数的值。
  7. verilog_define: 定义一些代码中要用到的常量或者符号。
  8. flatten_hierarchy: 在进行LUT映射的时候,对结构进行一定程度的打平。
    1. rebuilt: 该选项为默认选项,其功能是重新生成RTL代码原有的层级。
    2. full: 完全打平整个设计的层级结构。
    3. none: 对原设计不做任何层级改变。
  9. gated_clock_conversion: 门控时钟综合选项(不建议使用门控时钟,除非时钟资源不够用)。
  10. directive: 指定综合设计的策略。
    1. default: 运行默认综合过程。
    2. runtimeoptimized: 以运行时间为主的优化策略。
    3. AreaOptimized_high: 面积优化,主要会应用AreaMapLargeShiftRegToBRAM和AreaThresholdUseDSP策略。
    4. AreaOptimized_medium: 执行一般的面积优化,对加法、进位链等进行优化。
    5. AlternateRoutability: 通过减少使用MUXFs和CARRYs来提升整体的可布通性,同时该方法会减少LUT combining来降低部分区域布线的拥塞(对整体也许并不会有大的提升,因为降低了LUT的复用会增加LUT的用量)。
    6. AreaMapLargeShiftRegToBRAM: 将大型移位寄存器映射为BRAM
    7. AreaMultThresholdDSP: 优化乘法器,更多地使用dsp来进行乘法运算
    8. FewerCarryChains: 使用LUTs来代替进位链。
    9. PerformanceOptimized: 通过使用更大面积来获得逻辑级数的减少。
    10. LogicCompaction: 通过对乘法器的LUTs和进位链进行trade-off,以将乘法器模块在一个更小的区域里进行布线。
  11. rtl: 评估HDL源代码并打开RTL设计。
  12. lint: 在源文件上运行rtl linter来检查代码语法正确性。
  13. dataflow: 评估HDL源代码并打开数据流设计。数据流设计是RTL设计的一个抽象,可以轻松的跟踪设计里的高带宽数据路径,数据流设计仅仅展示RAMs、DSPs和其他IP blocks。
  14. rtl_skip_ip: 字面意思,跳过ip核打开rtl设计。
  15. rtl_skip_constraints: 字面意思,跳过约束打开rtl设计。
  16. bufg: 指定最多使用多少个bufg.
  17. no_lc: 禁止进行LUT combining。
  18. shreg_min_size: 指定最少用于SRL的寄存器数量。
  19. mode: (default or out_of_context)指定综合的模式。
  20. fsm_extraction: 指定状态机编码格式(off、one_hot、sequential、johnson、gray、auto),选择auto即可,vivado会自动选择最优的状态机编码格式。
  21. keep_equivalent_registers: 保持等效寄存器。
  22. resource_sharing: 不同信号之间共享加法器或者减法器来降低面积。
  23. cascade_dsp: 指定在DSP输出结果中添加加法器。
  24. control_set_opt_threshold: 根据control_set_opt_threshold设置来优化控制集。
  25. incremental: 指定增量编译的DCP文件。
  26. max_bram: 设置综合时最大可使用的BRAM。
  27. max_uram: 设置综合时最大可使用的URAM。
  28. max_dsp: 设置综合时最大可使用的DSP。
  29. max_bram_cascade_height: 设置BRAM最大级联高度。
  30. max_uram_cascade_height: 设置URAM最大级联高度。
  31. retiming: 重定时(Retiming)是一种时序优化技术,用在不影响电路输入/输出行为的情况下跨组合逻辑寄存器从而提高设计性能。
  32. no_retiming: 关闭自动调整时序功能。
  33. no_srlextract: 使用简单寄存器而不是移位寄存器来实现设计。
  34. no_timing_driven: 关闭时序驱动综合算法来获得更好的编译速度。

你可能感兴趣的:(#,VivadoAndTcl,fpga开发,硬件工程,fpga)