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