blob: 0d0e47c3fd10cc5ce0ea27e75b632d0e66b934fc [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// This interface implements liveness assertions for sha3pad.
interface sha3pad_assert_if # (
parameter bit EnMasking = 1
)(
input clk_i,
input rst_ni,
input logic process_i,
input logic keccak_complete_i,
input logic keccak_run_o,
input lc_ctrl_pkg::lc_tx_t lc_escalate_en_i
);
localparam int Share = (EnMasking) ? 2 : 1;
// If `process_i` is asserted, eventually sha3pad trigger run signal
`ASSERT(ProcessToRun_A, process_i |-> strong(##[2:$] keccak_run_o),
clk_i, !rst_ni || lc_escalate_en_i != lc_ctrl_pkg::Off)
// Keccak control interface
// Keccak run triggered -> completion should come
`ASSUME(RunThenComplete_M,
keccak_run_o |-> strong(##[24*Share:$] keccak_complete_i),
clk_i, !rst_ni || lc_escalate_en_i != lc_ctrl_pkg::Off)
endinterface