| // Copyright lowRISC contributors. | |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
| // SPDX-License-Identifier: Apache-2.0 | |
| // | |
| package sram_ctrl_pkg; | |
| //////////////// | |
| // Parameters // | |
| //////////////// | |
| // The width of this RAM is currently restricted to 32. | |
| parameter int Width = 32; | |
| // This is later on pruned to the correct width at the SRAM wrapper interface. | |
| parameter int AddrWidth = 32; | |
| ///////////// | |
| // RndCnst // | |
| ///////////// | |
| parameter otp_ctrl_pkg::sram_key_t RndCnstSramKeyDefault = | |
| 128'hbecda03b34bc0418a30a33861a610f71; | |
| parameter otp_ctrl_pkg::sram_nonce_t RndCnstSramNonceDefault = | |
| 64'he73363ee4fedb75c; | |
| ///////////////////// | |
| // Interface Types // | |
| ///////////////////// | |
| typedef struct packed { | |
| // TL-UL transactions to the SRAM will not be granted if valid = 0. | |
| logic valid; | |
| logic [otp_ctrl_pkg::SramKeyWidth-1:0] key; | |
| logic [otp_ctrl_pkg::SramNonceWidth-1:0] nonce; | |
| } sram_scr_req_t; | |
| typedef struct packed { | |
| logic [1:0] rerror; // Bit1: Uncorrectable, Bit0: Correctable | |
| logic [AddrWidth-1:0] raddr; // Read address for error reporting. | |
| } sram_scr_rsp_t; | |
| endpackage : sram_ctrl_pkg |