| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| // Interface: csrng_assert_if |
| // Description: Asserts interface to turn off assertions that have long paths |
| |
| `define PATH1 \ |
| tb.dut.u_csrng_core.gen_cmd_stage[2].u_csrng_cmd_stage |
| `define PATH2 \ |
| tb.dut.u_csrng_core.u_csrng_block_encrypt.u_aes_cipher_core.u_aes_cipher_control |
| `define PATH2_1 \ |
| gen_fsm[0].gen_fsm_p.u_aes_cipher_control_fsm_i.u_aes_cipher_control_fsm |
| `define PATH2_2 \ |
| gen_fsm[1].gen_fsm_p.u_aes_cipher_control_fsm_i.u_aes_cipher_control_fsm |
| `define PATH2_3 \ |
| gen_fsm[2].gen_fsm_n.u_aes_cipher_control_fsm_i.u_aes_cipher_control_fsm |
| `define PATH3 \ |
| tb.dut.u_csrng_core.u_prim_mubi4_sync_cs_enable |
| `define PATH4 \ |
| tb.dut.u_csrng_core.u_prim_mubi4_sync_sw_app_enable |
| `define PATH5 \ |
| tb.dut.u_csrng_core.u_prim_mubi4_sync_read_int_state |
| `define PATH6 \ |
| tb.dut.u_csrng_core.u_csrng_ctr_drbg_upd |
| `define PATH7 \ |
| tb.dut.u_csrng_core.u_csrng_ctr_drbg_gen |
| `define PATH8 \ |
| tb.dut.u_csrng_core.u_csrng_main_sm |
| |
| interface csrng_assert_if |
| ( |
| input csrng_cmd_i |
| ); |
| |
| task automatic assert_off (); |
| $assertoff(0, `PATH1.u_state_regs_A); |
| $assertoff(0, `PATH1.u_prim_count_cmd_gen_cntr.CntErrBackward_A); |
| $assertoff(0, `PATH2.`PATH2_1.AesCipherControlStateValid); |
| $assertoff(0, `PATH2.`PATH2_2.AesCipherControlStateValid); |
| $assertoff(0, `PATH2.`PATH2_3.AesCipherControlStateValid); |
| $assertoff(0, `PATH2.`PATH2_1.u_state_regs_A); |
| $assertoff(0, `PATH2.`PATH2_2.u_state_regs_A); |
| $assertoff(0, `PATH2.`PATH2_3.u_state_regs_A); |
| $assertoff(0, `PATH6.u_outblk_state_regs_A); |
| $assertoff(0, `PATH6.u_blk_enc_state_regs_A); |
| $assertoff(0, `PATH7.u_state_regs_A); |
| $assertoff(0, `PATH8.u_state_regs_A); |
| endtask // assert_off |
| |
| task automatic assert_on (); |
| $asserton(0, `PATH1.u_state_regs_A); |
| $asserton(0, `PATH1.u_prim_count_cmd_gen_cntr.CntErrBackward_A); |
| $asserton(0, `PATH2.`PATH2_1.AesCipherControlStateValid); |
| $asserton(0, `PATH2.`PATH2_2.AesCipherControlStateValid); |
| $asserton(0, `PATH2.`PATH2_3.AesCipherControlStateValid); |
| $asserton(0, `PATH2.`PATH2_1.u_state_regs_A); |
| $asserton(0, `PATH2.`PATH2_2.u_state_regs_A); |
| $asserton(0, `PATH2.`PATH2_3.u_state_regs_A); |
| $asserton(0, `PATH6.u_outblk_state_regs_A); |
| $asserton(0, `PATH6.u_blk_enc_state_regs_A); |
| $asserton(0, `PATH7.u_state_regs_A); |
| $asserton(0, `PATH8.u_state_regs_A); |
| endtask // assert_on |
| |
| task automatic assert_off_alert (); |
| |
| endtask // assert_off_alert |
| |
| task automatic assert_on_alert (); |
| endtask // assert_on_alert |
| endinterface |