blob: 8853dd4c0e6550b34bb62fa7ac2adfec3709319e [file] [log] [blame] [edit]
proc run_yosys {args} {
set ::env(CURRENT_STAGE) synthesis
TIMER::timer_start
try_catch yosys \
-c $::env(SYNTH_SCRIPT) \
-l $::env(yosys_log_file_tag).log \
|& tee $::env(TERMINAL_OUTPUT)
try_catch sta $::env(SCRIPTS_DIR)/sta.tcl \
|& tee $::env(TERMINAL_OUTPUT) $::env(opensta_log_file_tag).log
TIMER::timer_stop
exec echo "[TIMER::get_runtime]" >> $::env(yosys_log_file_tag)_runtime.txt
}
proc run_synthesis {args} {
# in-place insertion
run_yosys
if {$::env(RUN_SIMPLE_CTS)} {
simple_cts \
-verilog $::env(yosys_result_file_tag).v \
-fanout $::env(CLOCK_BUFFER_FANOUT) \
-clk_net $::env(CLOCK_NET) \
-root_clk_buf $::env(ROOT_CLK_BUFFER) \
-clk_buf $::env(CLK_BUFFER) \
-clk_buf_input $::env(CLK_BUFFER_INPUT) \
-clk_buf_output $::env(CLK_BUFFER_OUTPUT) \
-output $::env(yosys_result_file_tag).v
}
}
proc verilog_elaborate {args} {
set synth_script_old $::env(SYNTH_SCRIPT)
set ::env(SYNTH_SCRIPT) $::env(SCRIPTS_DIR)/synth_top.tcl
run_yosys
set ::env(SYNTH_SCRIPT) $synth_script_old
}
package provide openlane 0.9