|  | // Copyright lowRISC contributors. | 
|  | // Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | // SPDX-License-Identifier: Apache-2.0 | 
|  | // | 
|  |  | 
|  | package csrng_pkg; | 
|  |  | 
|  | //------------------------- | 
|  | // Application Interfaces | 
|  | //------------------------- | 
|  |  | 
|  | parameter int unsigned   GENBITS_BUS_WIDTH = 128; | 
|  | parameter int unsigned   CSRNG_CMD_WIDTH = 32; | 
|  | parameter int unsigned   FIPS_GENBITS_BUS_WIDTH = entropy_src_pkg::FIPS_BUS_WIDTH + | 
|  | GENBITS_BUS_WIDTH; | 
|  |  | 
|  | // instantiation interface | 
|  | typedef struct packed { | 
|  | logic         csrng_req_valid; | 
|  | logic [CSRNG_CMD_WIDTH-1:0]  csrng_req_bus; | 
|  | logic         genbits_ready; | 
|  | } csrng_req_t; | 
|  |  | 
|  | typedef struct packed { | 
|  | logic         csrng_req_ready; | 
|  | logic         csrng_rsp_ack; | 
|  | logic         csrng_rsp_sts; | 
|  | logic         genbits_valid; | 
|  | logic         genbits_fips; | 
|  | logic [GENBITS_BUS_WIDTH-1:0] genbits_bus; | 
|  | } csrng_rsp_t; | 
|  |  | 
|  | parameter csrng_req_t CSRNG_REQ_DEFAULT = '{default: '0}; | 
|  | parameter csrng_rsp_t CSRNG_RSP_DEFAULT = '{default: '0}; | 
|  |  | 
|  | typedef enum logic [2:0] { | 
|  | INV = 3'h0, | 
|  | INS = 3'h1, | 
|  | RES = 3'h2, | 
|  | GEN = 3'h3, | 
|  | UPD = 3'h4, | 
|  | UNI = 3'h5, | 
|  | GENB = 3'h6, | 
|  | GENU = 3'h7 | 
|  | } acmd_e; | 
|  |  | 
|  | parameter int CsKeymgrDivWidth = 384; | 
|  | typedef logic [CsKeymgrDivWidth-1:0] cs_keymgr_div_t; | 
|  |  | 
|  | endpackage : csrng_pkg |