|  | // Copyright lowRISC contributors. | 
|  | // Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | // SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | `include "prim_assert.sv" | 
|  |  | 
|  | package rom_ctrl_pkg; | 
|  |  | 
|  | parameter int AlertFatal = 0; | 
|  |  | 
|  | typedef struct packed { | 
|  | prim_mubi_pkg::mubi4_t done; | 
|  | prim_mubi_pkg::mubi4_t good; | 
|  | } pwrmgr_data_t; | 
|  |  | 
|  | parameter pwrmgr_data_t PWRMGR_DATA_DEFAULT = '{ | 
|  | done: prim_mubi_pkg::MuBi4True, | 
|  | good: prim_mubi_pkg::MuBi4True | 
|  | }; | 
|  |  | 
|  | typedef struct packed { | 
|  | logic [255:0] data; | 
|  | logic         valid; | 
|  | } keymgr_data_t; | 
|  |  | 
|  | // | 
|  | // Encoding generated with: | 
|  | // $ ./util/design/sparse-fsm-encode.py -d 3 -m 7 -n 6 -s 2 --language=sv | 
|  | // | 
|  | // Hamming distance histogram: | 
|  | // | 
|  | //  0: -- | 
|  | //  1: -- | 
|  | //  2: -- | 
|  | //  3: |||||||||||||||||||| (57.14%) | 
|  | //  4: ||||||||||||||| (42.86%) | 
|  | //  5: -- | 
|  | //  6: -- | 
|  | // | 
|  | // Minimum Hamming distance: 3 | 
|  | // Maximum Hamming distance: 4 | 
|  | // Minimum Hamming weight: 1 | 
|  | // Maximum Hamming weight: 4 | 
|  | // | 
|  | // However, we glom on an extra 4 bits to hold a mubi4_t that encodes "state == Done". The idea is | 
|  | // that we can use them for the rom_select_bus_o signal without needing an intermediate 1-bit | 
|  | // signal which would need burying. | 
|  |  | 
|  | typedef enum logic [9:0] { | 
|  | ReadingLow  = {6'b001100, prim_mubi_pkg::MuBi4False}, | 
|  | ReadingHigh = {6'b001011, prim_mubi_pkg::MuBi4False}, | 
|  | RomAhead    = {6'b111001, prim_mubi_pkg::MuBi4False}, | 
|  | KmacAhead   = {6'b100111, prim_mubi_pkg::MuBi4False}, | 
|  | Checking    = {6'b010101, prim_mubi_pkg::MuBi4False}, | 
|  | Done        = {6'b100000, prim_mubi_pkg::MuBi4True}, | 
|  | Invalid     = {6'b010010, prim_mubi_pkg::MuBi4False} | 
|  | } fsm_state_e; | 
|  |  | 
|  |  | 
|  | endpackage |