Skip to content

Commit

Permalink
[hw,kmac,rtl] Parametrize the number of app interfaces
Browse files Browse the repository at this point in the history
Signed-off-by: Robert Schilling <[email protected]>
  • Loading branch information
Razer6 committed Nov 8, 2024
1 parent b1459ab commit 755e658
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 17 deletions.
15 changes: 14 additions & 1 deletion hw/ip/kmac/data/kmac.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,19 @@
local: "false"
expose: "true"
}
{ name: "NumAppIntf"
type: "int"
default: "3"
desc: "Number of words for the secret key"
local: "true",
expose: "true"
}
{ name: "NumAppIntfLocal"
type: "int"
default: "3"
desc: "Number of words for the secret key"
local: "true"
}
{ name: "NumWordsKey"
type: "int"
default: "16"
Expand Down Expand Up @@ -196,7 +209,7 @@
name: "app"
act: "rsp"
package: "kmac_pkg"
width: "3"
width: "NumAppIntf"
}
{ struct: "edn"
type: "req_rsp"
Expand Down
18 changes: 9 additions & 9 deletions hw/ip/kmac/doc/interfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ Referring to the [Comportable guideline for peripheral device functionality](htt

## [Inter-Module Signals](https://opentitan.org/book/doc/contributing/hw/comportability/index.html#inter-signal-handling)

| Port Name | Package::Struct | Type | Act | Width | Description |
|:---------------|:-----------------------|:--------|:------|--------:|:--------------|
| keymgr_key | keymgr_pkg::hw_key_req | uni | rcv | 1 | |
| app | kmac_pkg::app | req_rsp | rsp | 3 | |
| entropy | edn_pkg::edn | req_rsp | req | 1 | |
| idle | prim_mubi_pkg::mubi4 | uni | req | 1 | |
| en_masking | logic | uni | req | 1 | |
| lc_escalate_en | lc_ctrl_pkg::lc_tx | uni | rcv | 1 | |
| tl | tlul_pkg::tl | req_rsp | rsp | 1 | |
| Port Name | Package::Struct | Type | Act | Width | Description |
|:---------------|:-----------------------|:--------|:------|:------------------------------------------------|:--------------|
| keymgr_key | keymgr_pkg::hw_key_req | uni | rcv | 1 | |
| app | kmac_pkg::app | req_rsp | rsp | <reggen.params.Parameter object at 0x105ce36f0> | |
| entropy | edn_pkg::edn | req_rsp | req | 1 | |
| idle | prim_mubi_pkg::mubi4 | uni | req | 1 | |
| en_masking | logic | uni | req | 1 | |
| lc_escalate_en | lc_ctrl_pkg::lc_tx | uni | rcv | 1 | |
| tl | tlul_pkg::tl | req_rsp | rsp | 1 | |

## Interrupts

Expand Down
3 changes: 2 additions & 1 deletion hw/ip/kmac/rtl/kmac.sv
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ module kmac
parameter int SecCmdDelay = 0,

// Accept SW message when idle and before receiving a START command. Useful for SCA only.
parameter bit SecIdleAcceptSwMsg = 1'b0,
parameter bit SecIdleAcceptSwMsg = 1'b0,
parameter int unsigned NumAppIntf = 3,

parameter lfsr_perm_t RndCnstLfsrPerm = RndCnstLfsrPermDefault,
parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault,
Expand Down
1 change: 1 addition & 0 deletions hw/ip/kmac/rtl/kmac_reg_pkg.sv
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
package kmac_reg_pkg;

// Param list
parameter int NumAppIntfLocal = 3;
parameter int NumWordsKey = 16;
parameter int NumWordsPrefix = 11;
parameter int NumEntriesMsgFifo = 10;
Expand Down
53 changes: 49 additions & 4 deletions hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -6530,6 +6530,15 @@
expose: "true"
name_top: SecKmacIdleAcceptSwMsg
}
{
name: NumAppIntf
desc: Number of words for the secret key
type: int
default: 3
local: "true"
expose: "true"
name_top: KmacNumAppIntf
}
{
name: RndCnstLfsrSeed
desc: Compile-time random data for PRNG default seed
Expand Down Expand Up @@ -6591,7 +6600,16 @@
package: kmac_pkg
type: req_rsp
act: rsp
width: 3
width:
{
name: NumAppIntf
desc: Number of words for the secret key
param_type: int
default: 3
local: true
expose: true
name_top: KmacNumAppIntf
}
inst_name: kmac
default: ""
end_idx: -1
Expand Down Expand Up @@ -20311,7 +20329,16 @@
package: kmac_pkg
type: req_rsp
act: rsp
width: 3
width:
{
name: NumAppIntf
desc: Number of words for the secret key
param_type: int
default: 3
local: true
expose: true
name_top: KmacNumAppIntf
}
inst_name: kmac
default: ""
end_idx: -1
Expand Down Expand Up @@ -23417,7 +23444,16 @@
package: kmac_pkg
struct: app_req
signame: kmac_app_req
width: 3
width:
{
name: NumAppIntf
desc: Number of words for the secret key
param_type: int
default: 3
local: true
expose: true
name_top: KmacNumAppIntf
}
type: req_rsp
end_idx: -1
act: rsp
Expand All @@ -23428,7 +23464,16 @@
package: kmac_pkg
struct: app_rsp
signame: kmac_app_rsp
width: 3
width:
{
name: NumAppIntf
desc: Number of words for the secret key
param_type: int
default: 3
local: true
expose: true
name_top: KmacNumAppIntf
}
type: req_rsp
end_idx: -1
act: rsp
Expand Down
6 changes: 4 additions & 2 deletions hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ module top_earlgrey #(
// local parameters for aes
// local parameters for hmac
// local parameters for kmac
localparam int KmacNumAppIntf = 3;
// local parameters for otbn
// local parameters for keymgr
// local parameters for csrng
Expand Down Expand Up @@ -640,8 +641,8 @@ module top_earlgrey #(
keymgr_pkg::hw_key_req_t keymgr_aes_key;
keymgr_pkg::hw_key_req_t keymgr_kmac_key;
keymgr_pkg::otbn_key_req_t keymgr_otbn_key;
kmac_pkg::app_req_t [2:0] kmac_app_req;
kmac_pkg::app_rsp_t [2:0] kmac_app_rsp;
kmac_pkg::app_req_t [KmacNumAppIntf-1:0] kmac_app_req;
kmac_pkg::app_rsp_t [KmacNumAppIntf-1:0] kmac_app_rsp;
logic kmac_en_masking;
prim_mubi_pkg::mubi4_t [3:0] clkmgr_aon_idle;
jtag_pkg::jtag_req_t pinmux_aon_lc_jtag_req;
Expand Down Expand Up @@ -2357,6 +2358,7 @@ module top_earlgrey #(
.SwKeyMasked(KmacSwKeyMasked),
.SecCmdDelay(SecKmacCmdDelay),
.SecIdleAcceptSwMsg(SecKmacIdleAcceptSwMsg),
.NumAppIntf(KmacNumAppIntf),
.RndCnstLfsrSeed(RndCnstKmacLfsrSeed),
.RndCnstLfsrPerm(RndCnstKmacLfsrPerm),
.RndCnstBufferLfsrSeed(RndCnstKmacBufferLfsrSeed),
Expand Down

0 comments on commit 755e658

Please sign in to comment.