mirror of
https://github.com/lowRISC/ibex.git
synced 2025-06-27 17:00:41 -04:00
[syn] Enable synthesis for SecureIbex config
This commit adds the new `ibex_secure_ibex` variable that allows the user to configure whether the SecureIbex configuration is synthesized. By default, the non-SecureIbex version is synthesized. Signed-off-by: Pascal Nasahl <nasahlpa@lowrisc.org>
This commit is contained in:
parent
0d1b172325
commit
a92221ae22
3 changed files with 24 additions and 0 deletions
|
@ -33,7 +33,16 @@ source syn_setup.sh
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
LR_DEP_SOURCES=(
|
LR_DEP_SOURCES=(
|
||||||
|
"../vendor/lowrisc_ip/ip/prim/rtl/prim_count.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim/rtl/prim_onehot_check.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim/rtl/prim_onehot_enc.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim/rtl/prim_onehot_mux.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim/rtl/prim_secded_inv_39_32_dec.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim/rtl/prim_secded_inv_39_32_enc.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim/rtl/prim_lfsr.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim_generic/rtl/prim_generic_and2.sv"
|
||||||
"../vendor/lowrisc_ip/ip/prim_generic/rtl/prim_generic_buf.sv"
|
"../vendor/lowrisc_ip/ip/prim_generic/rtl/prim_generic_buf.sv"
|
||||||
|
"../vendor/lowrisc_ip/ip/prim_generic/rtl/prim_generic_clock_mux2.sv"
|
||||||
"../vendor/lowrisc_ip/ip/prim_generic/rtl/prim_generic_flop.sv"
|
"../vendor/lowrisc_ip/ip/prim_generic/rtl/prim_generic_flop.sv"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -47,9 +56,17 @@ for file in "${LR_DEP_SOURCES[@]}"; do
|
||||||
|
|
||||||
sv2v \
|
sv2v \
|
||||||
--define=SYNTHESIS --define=YOSYS \
|
--define=SYNTHESIS --define=YOSYS \
|
||||||
|
../vendor/lowrisc_ip/ip/prim/rtl/prim_count_pkg.sv \
|
||||||
|
../vendor/lowrisc_ip/ip/prim/rtl/prim_cipher_pkg.sv \
|
||||||
-I../vendor/lowrisc_ip/ip/prim/rtl \
|
-I../vendor/lowrisc_ip/ip/prim/rtl \
|
||||||
"$file" \
|
"$file" \
|
||||||
> "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
> "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
|
# Make sure auto-generated primitives are resolved to generic primitives
|
||||||
|
# where available.
|
||||||
|
sed -i 's/prim_and2/prim_generic_and2/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
|
sed -i 's/prim_buf/prim_generic_buf/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
|
sed -i 's/prim_clock_mux2/prim_generic_clock_mux2/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
|
sed -i 's/prim_flop/prim_generic_flop/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
done
|
done
|
||||||
|
|
||||||
# Convert core sources
|
# Convert core sources
|
||||||
|
@ -73,7 +90,9 @@ for file in ../rtl/*.sv; do
|
||||||
|
|
||||||
# Make sure auto-generated primitives are resolved to generic primitives
|
# Make sure auto-generated primitives are resolved to generic primitives
|
||||||
# where available.
|
# where available.
|
||||||
|
sed -i 's/prim_and2/prim_generic_and2/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
sed -i 's/prim_buf/prim_generic_buf/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
sed -i 's/prim_buf/prim_generic_buf/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
|
sed -i 's/prim_clock_mux2/prim_generic_clock_mux2/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
sed -i 's/prim_flop/prim_generic_flop/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
sed -i 's/prim_flop/prim_generic_flop/g' "$LR_SYNTH_OUT_DIR"/generated/"${module}".v
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ set_flow_bool_var flatten 1 "flatten"
|
||||||
set_flow_bool_var timing_run 0 "timing run"
|
set_flow_bool_var timing_run 0 "timing run"
|
||||||
set_flow_bool_var ibex_branch_target_alu 0 "Enable branch target ALU in Ibex"
|
set_flow_bool_var ibex_branch_target_alu 0 "Enable branch target ALU in Ibex"
|
||||||
set_flow_bool_var ibex_writeback_stage 0 "Enable writeback stage in Ibex"
|
set_flow_bool_var ibex_writeback_stage 0 "Enable writeback stage in Ibex"
|
||||||
|
set_flow_bool_var ibex_secure_ibex 0 "Enable SecureIbex configuration"
|
||||||
set_flow_var ibex_bitmanip 0 "Bitmanip extenion setting for Ibex (see ibex_pkg::rv32b_e for permitted values. Enum names are not supported in Yosys.)"
|
set_flow_var ibex_bitmanip 0 "Bitmanip extenion setting for Ibex (see ibex_pkg::rv32b_e for permitted values. Enum names are not supported in Yosys.)"
|
||||||
set_flow_var ibex_multiplier 2 "Multiplier extension setting for Ibex (see ibex_pkg::rv32m_e for permitted values. Enum names are not supported in Yosys.)"
|
set_flow_var ibex_multiplier 2 "Multiplier extension setting for Ibex (see ibex_pkg::rv32m_e for permitted values. Enum names are not supported in Yosys.)"
|
||||||
set_flow_var ibex_regfile 2 "Register file implementation selection for Ibex (see ibex_pkg::regfile_e for permitted values. Enum names are not supported in Yosys.)"
|
set_flow_var ibex_regfile 2 "Register file implementation selection for Ibex (see ibex_pkg::regfile_e for permitted values. Enum names are not supported in Yosys.)"
|
||||||
|
|
|
@ -24,6 +24,10 @@ if { $lr_synth_ibex_writeback_stage } {
|
||||||
yosys "chparam -set WritebackStage 1 $lr_synth_top_module"
|
yosys "chparam -set WritebackStage 1 $lr_synth_top_module"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if { $lr_synth_ibex_secure_ibex } {
|
||||||
|
yosys "chparam -set SecureIbex 1 $lr_synth_top_module"
|
||||||
|
}
|
||||||
|
|
||||||
yosys "chparam -set RV32B $lr_synth_ibex_bitmanip $lr_synth_top_module"
|
yosys "chparam -set RV32B $lr_synth_ibex_bitmanip $lr_synth_top_module"
|
||||||
|
|
||||||
yosys "chparam -set RV32M $lr_synth_ibex_multiplier $lr_synth_top_module"
|
yosys "chparam -set RV32M $lr_synth_ibex_multiplier $lr_synth_top_module"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue