| yosys -import | |
| if { [info procs read_sdc] == {} } { plugin -i sdc } | |
| yosys -import ;# ingest plugin commands | |
| read_verilog $::env(DESIGN_TOP).v | |
| read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v | |
| read_verilog -lib +/xilinx/cells_xtra.v | |
| hierarchy -check -auto-top | |
| # Start flow after library reading | |
| synth_xilinx -flatten -abc9 -nosrl -nodsp -iopad -run prepare:check | |
| # Read the design's timing constraints | |
| read_sdc $::env(DESIGN_TOP).input.sdc | |
| # Propagate the clocks | |
| propagate_clocks | |
| # Write the clocks to file | |
| set fh [open [test_output_path "counter.txt"] w] | |
| puts $fh [get_clocks] | |
| puts $fh [get_clocks -include_generated_clocks] | |
| close $fh | |
| # Clean processes before writing JSON. | |
| yosys proc | |
| # Write out the SDC file after the clock propagation step | |
| write_sdc [test_output_path "counter.sdc"] | |
| write_json [test_output_path "counter.json"] |