Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add -reference_checkpoint option to aws_build_dcp_from_cl.sh #43

Draft
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

timsnyder-siv
Copy link
Contributor

@timsnyder-siv timsnyder-siv commented Aug 4, 2021

If passed, the path given to -reference_checkpoint is used to
read_checkpoint -incremental at the appropriate place in the
design flow for Vivado to do an incremental implementation

Also adds report_incremental_reuse -hierarchical reporting
at the various stages of the flow.

If we end up wanting to use this, with newer Vivado we should probably:

  • support incremental synthesis

If passed, the path given to -reference_checkpoint is used to
`read_checkpoint -incremental` at the appropriate place in the
design flow for Vivado to do an incremental implementation

Also adds `report_incremental_reuse -hierarchical` reporting
at the various stages of the flow.
@timsnyder-siv timsnyder-siv marked this pull request as draft August 4, 2021 21:30
@timsnyder-siv
Copy link
Contributor Author

@davidbiancolin this is the changeset I made so that I could buildafi a configuration that didn't have assertions and then in the recipe where I mix-in WithSynthesizedAsserts, I could also provide the path to the un-encrypted SH_CL_routed.dcp of the "without Asserts" build and it should load it as the reference checkpoint for incremental implementation.

However, when I try to use the new option to the script, I hit this:

[192.168.1.181] out: Running synth_design for cl_firesim /home/centos/federation_210721/firesim/platforms/f1/aws-fpga/hdk/cl/developer_designs/cl_FireSim-LBP124_tile2GHzTwoToOne_WithoutTLMonitors_FireSimP55HighPerf-WithSynthAsserts_F60MHz_BaseF1Config/build/scripts [Fri Jul 30 22:37:07 2021]
[192.168.1.181] out: 
[192.168.1.181] out: synth_design -top cl_firesim -verilog_define XSDB_SLV_DIS /home/centos/federation_210721/firesim/deploy/results-build/2021-07-30--04-52-47-FireSim-LBP124_tile2GHzTwoToOne_WithoutTLMonitors_FireSimP55HighPerf-F60MHz_BaseF1Config-P55HP-LBP-F60MHz/cl_firesim/build/checkpoints/21_07_30-053242.SH_CL_routed.dcp -part xcvu9p-flgb2104-2-i -mode out_of_context -no_lc -shreg_min_size 5 -fsm_extraction one_hot -resource_sharing auto -max_uram_cascade_height 2 -retiming -directive default
[192.168.1.181] out: ERROR: [Common 17-165] Too many positional options when parsing 'default', please type 'synth_design -help' for usage info.
[192.168.1.181] out: 
[192.168.1.181] out:     while executing
[192.168.1.181] out: "source -notrace ./synth_${CL_MODULE}.tcl"
[192.168.1.181] out:     invoked from within
[192.168.1.181] out: "if {${cl.synth}} {
[192.168.1.181] out:    source -notrace ./synth_${CL_MODULE}.tcl
[192.168.1.181] out:    set synth_dcp ${timestamp}.CL.post_synth.dcp
[192.168.1.181] out: } else {
[192.168.1.181] out:    open_checkpoint ../checkpoi..."
[192.168.1.181] out:     (file "create_dcp_from_cl.tcl" line 228)
[192.168.1.181] out: INFO: [Common 17-206] Exiting Vivado at Fri Jul 30 22:37:07 2021...
[192.168.1.181] out: 
Warning: run() received nonzero return code 1 while executing './aws_build_dcp_from_cl.sh -foreground -reference_checkpoint /home/centos/federation_210721/firesim/deploy/results-build/2021-07-30--04-52-47-FireSim-LBP124_tile2GHzTwoToOne_WithoutTLMonitors_FireSimP55HighPerf-F60MHz_BaseF1Config-P55HP-LBP-F60MHz/cl_firesim/build/checkpoints/21_07_30-053242.SH_CL_routed.dcp'!

I see what's happening now that I look at this again. The reference_checkpoint path is getting pulled into the VDEFINES variable and messing up the synth_design command. I'll figure that out and push a fixup to this branch.

@timsnyder-siv
Copy link
Contributor Author

It's my standard favorite thing to hate where the empty string needs to be passed and parsed correctly because the AWS vivado TCL script uses only positional arguments and doesn't support -<option> style option flags.

Needing to pass the empty-string and getting the quoting correct is fraught.

trying to do it after link_design or after CL_synthesis leads to an error
saying

  ERROR: [Vivado 12-4846] Found memory core that needs to be (re)generated. Please run opt_design or
  implement_mig_cores prior to launching 'read_checkpoint -incremental'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant