blob: 275c2f0f88a3b83bb22d51ab71645c9ccb22fc23 [file] [log] [blame]
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"]