Implementation-phase rules: placement, physical optimization, routing.

Rules

vivado_place_optimize

load("@rules_vivado//vivado:implementation.bzl", "vivado_place_optimize")

vivado_place_optimize(name, checkpoint, phys_opt_directive, place_optimize_template, threads)

Run post-placement physical optimization.

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
checkpointPlacement checkpoint.Labelrequired
phys_opt_directiveThe optimization directive.Stringoptional"AggressiveExplore"
place_optimize_templateThe placement tcl templateLabeloptional"@rules_vivado//vivado/private:place_optimize.tcl.template"
threadsThreads to pass to vivado which defines the amount of parallelism.Integeroptional8

vivado_placement

load("@rules_vivado//vivado:implementation.bzl", "vivado_placement")

vivado_placement(name, checkpoint, placement_directive, placement_template, threads)

Run placement on a (synthesis-optimized) checkpoint.

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
checkpointSynthesis checkpoint.Labelrequired
placement_directiveThe optimization directive.Stringoptional"Explore"
placement_templateThe placement tcl templateLabeloptional"@rules_vivado//vivado/private:placement.tcl.template"
threadsThreads to pass to vivado which defines the amount of parallelism.Integeroptional8

vivado_routing

load("@rules_vivado//vivado:implementation.bzl", "vivado_routing")

vivado_routing(name, checkpoint, route_directive, route_template, threads)

Run routing on a placement checkpoint.

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
checkpointPlacement checkpoint.Labelrequired
route_directiveThe routing directive.Stringoptional"Explore"
route_templateThe routing tcl templateLabeloptional"@rules_vivado//vivado/private:route.tcl.template"
threadsThreads to pass to vivado which defines the amount of parallelism.Integeroptional8