yosys -import
plugin -i xdc
plugin -i params
# Import the commands from the plugins to the tcl interpreter
yosys -import

read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v
read_verilog -lib +/xilinx/cells_xtra.v
hierarchy -check -auto-top

# Check phase parameter values on bith PLLE2_ADV instances
set reference_phase [list 90 70]
set phase [getparam CLKOUT2_PHASE top/PLLE2_ADV_0 top/PLLE2_ADV]
if {[llength $phase] != 2} {
	error "Getparam should return a list with 2 elements"
}
set fp [open "params.txt" "w"]
puts -nonewline $fp "Phase before: "
if {$phase == $reference_phase} {
	puts $fp "PASS"
} else {
	puts $fp "FAIL: $phase != $reference_phase"
}

# Modify the phase parameter value on one of the PLLE2_ADV instances
setparam -set CLKOUT2_PHASE [expr [lindex $phase 0] * 1000] top/PLLE2_ADV

# Verify that the parameter has been correctly updated on the chosen instance 
set reference_phase [list 90000 70]
set phase [getparam CLKOUT2_PHASE top/PLLE2_ADV_0 top/PLLE2_ADV]
puts -nonewline $fp "Phase after: "
if {$phase == $reference_phase} {
	puts $fp "PASS"
} else {
	puts $fp "FAIL: $phase != $reference_phase"
}
close $fp

# Start flow after library reading
synth_xilinx -vpr -flatten -abc9 -nosrl -noclkbuf -nodsp -iopad -run prepare:check

# Map Xilinx tech library to 7-series VPR tech library.
read_verilog -lib ../techmaps/cells_sim.v
techmap -map  ../techmaps/cells_map.v

# opt_expr -undriven makes sure all nets are driven, if only by the $undef
# net.
opt_expr -undriven
opt_clean

setundef -zero -params
stat

# Write the design in JSON format.
write_json $::env(OUT_JSON)
write_blif -attr -param -cname -conn pll.eblif
