Synthesis-phase rules: vivado_synthesize and vivado_synthesis_optimize.

Rules

vivado_synthesis_optimize

load("@rules_vivado//vivado:synthesis.bzl", "vivado_synthesis_optimize")

vivado_synthesis_optimize(name, checkpoint, opt_directive, synthesis_optimize_template, threads,
                          with_probes)

Run post-synthesis optimization on a synthesis checkpoint.

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
checkpointSynthesis checkpoint.Labelrequired
opt_directiveThe optimization directive.Stringoptional"Explore"
synthesis_optimize_templateThe synthesis optimization tcl templateLabeloptional"@rules_vivado//vivado/private:synth_optimize.tcl.template"
threadsThreads to pass to vivado which defines the amount of parallelism.Integeroptional8
with_probesCreate debug probes.BooleanoptionalFalse

vivado_synthesize

load("@rules_vivado//vivado:synthesis.bzl", "vivado_synthesize")

vivado_synthesize(name, create_project_tcl_template, ip_blocks, jobs, module, module_top,
                  part_number, synth_strategy)

Create a Vivado project and run synthesis on it.

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
create_project_tcl_templateThe create project tcl templateLabeloptional"@rules_vivado//vivado/private:create_project.tcl.template"
ip_blocksIp blocks to include in this design.List of labelsoptional[]
jobsJobs to pass to vivado which defines the amount of parallelism.Integeroptional4
moduleThe top level build.Labelrequired
module_topThe name of the top level verilog module.Stringrequired
part_numberThe targeted xilinx part.Stringrequired
synth_strategyThe synthesis strategy to use.Stringoptional"Vivado Synthesis Defaults"