Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: m-labs/migen
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 8c7472b59938
Choose a base ref
...
head repository: m-labs/migen
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 5ccee6c62a6b
Choose a head ref
  • 3 commits
  • 1 file changed
  • 1 contributor

Commits on Jun 25, 2017

  1. Copy the full SHA
    46feda9 View commit details
  2. Copy the full SHA
    9d19ccb View commit details
  3. vivado: run opt_design before place

    * recommended as per
    https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_2/ug894-vivado-tcl-scripting.pdf
    * does not appear to be too expensive but beneficial to do here
    jordens committed Jun 25, 2017
    Copy the full SHA
    5ccee6c View commit details
Showing with 5 additions and 2 deletions.
  1. +5 −2 migen/build/xilinx/vivado.py
7 changes: 5 additions & 2 deletions migen/build/xilinx/vivado.py
Original file line number Diff line number Diff line change
@@ -90,8 +90,6 @@ def __init__(self):

def _build_batch(self, platform, sources, build_name):
tcl = []
tcl.append("create_project -force -part {} {}".format(
platform.device, build_name))
tcl.append("create_property ars_ff cell")
tcl.append("create_property ars_false_path net")
for filename, language, library in sources:
@@ -107,17 +105,22 @@ def _build_batch(self, platform, sources, build_name):
tcl.append("synth_design -top top -part {} -include_dirs {{{}}}".format(platform.device, " ".join(platform.verilog_include_paths)))
else:
tcl.append("synth_design -top top -part {}".format(platform.device))
tcl.append("write_checkpoint -force {}_synth.dcp".format(build_name))
tcl.append("report_timing_summary -file {}_timing_synth.rpt".format(build_name))
tcl.append("report_utilization -hierarchical -file {}_utilization_hierarchical_synth.rpt".format(build_name))
tcl.append("report_utilization -file {}_utilization_synth.rpt".format(build_name))
tcl.append("opt_design")
tcl.append("place_design")
if self.with_phys_opt:
tcl.append("phys_opt_design -directive AddRetime")
tcl.append("write_checkpoint -force {}_place.dcp".format(build_name))
tcl.append("report_utilization -hierarchical -file {}_utilization_hierarchical_place.rpt".format(build_name))
tcl.append("report_utilization -file {}_utilization_place.rpt".format(build_name))
tcl.append("report_io -file {}_io.rpt".format(build_name))
tcl.append("report_control_sets -verbose -file {}_control_sets.rpt".format(build_name))
tcl.append("report_clock_utilization -file {}_clock_utilization.rpt".format(build_name))
tcl.append("route_design")
tcl.append("write_checkpoint -force {}_route.dcp".format(build_name))
tcl.append("report_route_status -file {}_route_status.rpt".format(build_name))
tcl.append("report_drc -file {}_drc.rpt".format(build_name))
tcl.append("report_timing_summary -datasheet -max_paths 10 -file {}_timing.rpt".format(build_name))