mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-25 06:17:39 -04:00
Can now control writeback stage inclusion, bitmanip extension and multiplier implementation.
64 lines
1.7 KiB
Tcl
64 lines
1.7 KiB
Tcl
# Copyright lowRISC contributors.
|
|
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
source ./tcl/yosys_common.tcl
|
|
|
|
if { $lr_synth_flatten } {
|
|
set flatten_opt "-flatten"
|
|
} else {
|
|
set flatten_opt ""
|
|
}
|
|
|
|
if { $lr_synth_timing_run } {
|
|
write_sdc_out $lr_synth_sdc_file_in $lr_synth_sdc_file_out
|
|
}
|
|
|
|
yosys "read_verilog -sv ./rtl/prim_clock_gating.v $lr_synth_out_dir/generated/*.v"
|
|
|
|
if { $lr_synth_ibex_branch_target_alu } {
|
|
yosys "chparam -set BranchTargetALU 1 ibex_core"
|
|
}
|
|
|
|
if { $lr_synth_ibex_writeback_stage } {
|
|
yosys "chparam -set WritebackStage 1 ibex_core"
|
|
}
|
|
|
|
if { $lr_synth_ibex_bitmanip } {
|
|
yosys "chparam -set RV32B 1 ibex_core"
|
|
}
|
|
|
|
yosys "chparam -set MultiplierImplementation \"$lr_synth_ibex_multiplier\" ibex_core"
|
|
|
|
yosys "synth $flatten_opt -top $lr_synth_top_module"
|
|
yosys "opt -purge"
|
|
|
|
yosys "write_verilog $lr_synth_pre_map_out"
|
|
|
|
yosys "dfflibmap -liberty $lr_synth_cell_library_path"
|
|
yosys "opt"
|
|
|
|
set yosys_abc_clk_period [expr $lr_synth_clk_period - $lr_synth_abc_clk_uprate]
|
|
|
|
if { $lr_synth_timing_run } {
|
|
yosys "abc -liberty $lr_synth_cell_library_path -constr $lr_synth_abc_sdc_file_in -D $yosys_abc_clk_period"
|
|
} else {
|
|
yosys "abc -liberty $lr_synth_cell_library_path"
|
|
}
|
|
|
|
yosys "clean"
|
|
yosys "write_verilog $lr_synth_netlist_out"
|
|
|
|
if { $lr_synth_timing_run } {
|
|
# Produce netlist that OpenSTA can use
|
|
yosys "setundef -zero"
|
|
yosys "splitnets"
|
|
yosys "clean"
|
|
yosys "write_verilog -noattr -noexpr -nohex -nodec $lr_synth_sta_netlist_out"
|
|
}
|
|
|
|
yosys "check"
|
|
yosys "log ======== Yosys Stat Report ========"
|
|
yosys "tee -o $lr_synth_out_dir/reports/area.rpt stat -liberty $lr_synth_cell_library_path"
|
|
yosys "log ====== End Yosys Stat Report ======"
|
|
|