blob: 618670463826aac7f0747e0793ed1b3f671d1b07 [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
#
# waiver file for aes
waive -rules COMBO_READ_WRITE -location {aes_key_expand.sv} -regexp {'regular\[[0-9]+:?[0-9]*\]\[2:1|4:2|6:5\]' is read from within the same combinational process block} \
-comment "regular\[*\] is assigned in a for loop, regular\[*\]\[1|2|5\] depends on regular\[*\]\[0|1|4\]"
waive -rules {CLOCK_USE} -location {aes_cipher_core.sv} -regexp {clk_i' is connected to 'aes_sub_bytes' port} \
-comment "when using fully combinational S-Box implementations, no clock is used inside aes_sub_bytes"
waive -rules {CLOCK_USE} -location {aes_sub_bytes.sv} -regexp {clk_i' is connected to 'aes_sbox' port} \
-comment "when using fully combinational S-Box implementations, no clock is used inside aes_sbox"
waive -rules {CLOCK_USE} -location {aes_key_expand.sv} -regexp {clk_i' is connected to 'aes_sbox' port} \
-comment "when using fully combinational S-Box implementations, no clock is used inside aes_sbox"
waive -rules {RESET_USE} -location {aes_sub_bytes.sv} -regexp {'rst_ni' is connected to 'aes_sbox' port} \
-comment "when using fully combinational S-Box implementations, no reset is used inside aes_sbox"
waive -rules {RESET_USE} -location {aes_key_expand.sv} -regexp {'rst_ni' is connected to 'aes_sbox' port} \
-comment "when using fully combinational S-Box implementations, no reset is used inside aes_sbox"
waive -rules {CLOCK_USE} -location {aes_core.sv} -regexp {clk_i' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {CLOCK_USE} -location {aes_control.sv} -regexp {clk_i' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {CLOCK_USE} -location {aes_cipher_core.sv} -regexp {clk_i' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {CLOCK_USE} -location {aes_cipher_control.sv} -regexp {clk_i' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {CLOCK_USE} -location {aes_sub_bytes.sv} -regexp {clk_i' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {CLOCK_USE} -location {aes_key_expand.sv} -regexp {clk_i' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {CLOCK_USE} -location {aes_ctr.sv} -regexp {clk_i' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {RESET_USE} -location {aes_cipher_core.sv} -regexp {'rst_ni' is connected to 'aes_sub_bytes' port} \
-comment "when using fully combinational S-Box implementations, no reset is used inside aes_sub_bytes"
waive -rules {RESET_USE} -location {aes_core.sv} -regexp {'rst_ni' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {RESET_USE} -location {aes_control.sv} -regexp {'rst_ni' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {RESET_USE} -location {aes_cipher_core.sv} -regexp {'rst_ni' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {RESET_USE} -location {aes_cipher_control.sv} -regexp {'rst_ni' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {RESET_USE} -location {aes_sub_bytes.sv} -regexp {'rst_ni' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {RESET_USE} -location {aes_key_expand.sv} -regexp {'rst_ni' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {RESET_USE} -location {aes_ctr.sv} -regexp {'rst_ni' is connected to 'aes_sel_buf_chk' port} \
-comment "clock and reset are just used for assertions inside aes_sel_buf_chk"
waive -rules {ONE_BRANCH} -location {aes_sel_buf_chk.sv} -regexp {unique case statement has only one branch} \
-comment "check for legal combinations only, assert error signal otherwise"
waive -rules {MIXED_SIGN} -location {aes_control_fsm.sv} -regexp {Signed operand '(prng_reseed_rate_i == PER_1 ? BlockCtrWidth'(0) : prng_reseed_rate_i == PER_64 ? BlockCtrWidth'(63) : prng_reseed_rate_i == PER_8K ? BlockCtrWidth'(8191) : BlockCtrWidth'(0))' and unsigned operand 'block_ctr_decr ? gen_block_ctr.block_ctr_q - BlockCtrWidth'(1) : gen_block_ctr.block_ctr_q' encountered in a conditional expression} \
-comment "In line with our style guide, BlockCtrWidth'(x) results in a signed operand"