Entity: csrng_track_sm

Diagram

int Cmd int StateId clk_i rst_ni [StateId-1:0] inst_id_i acmd_hdr_capt_i [Cmd-1:0] acmd_i [StateId-1:0] shid_i ctr_drbg_cmd_req_i ctr_drbg_cmd_req_rdy_i [Cmd-1:0] ctr_drbg_cmd_ccmd_i [StateId-1:0] ctr_drbg_cmd_inst_id_i updblk_arb_vld_i updblk_arb_rdy_i [Cmd-1:0] updblk_arb_ccmd_i [StateId-1:0] updblk_arb_inst_id_i benblk_arb_vld_i benblk_arb_rdy_i [Cmd-1:0] benblk_arb_ccmd_i [StateId-1:0] benblk_arb_inst_id_i benblk_updblk_ack_i updblk_benblk_ack_rdy_i [Cmd-1:0] benblk_cmd_i [StateId-1:0] benblk_inst_id_i updblk_cmdblk_ack_i cmdblk_updblk_ack_rdy_i [Cmd-1:0] updblk_cmdblk_ccmd_i [StateId-1:0] updblk_cmdblk_inst_id_i ctr_drbg_gen_req_i ctr_drbg_gen_req_rdy_i [Cmd-1:0] ctr_drbg_gen_ccmd_i [StateId-1:0] ctr_drbg_gen_inst_id_i benblk_genblk_ack_i genblk_benblk_ack_rdy_i updblk_genblk_ack_i genblk_updblk_ack_rdy_i [Cmd-1:0] updblk_ccmd_i [StateId-1:0] updblk_inst_id_i state_db_wr_req_i state_db_wr_req_rdy_i genbits_stage_vld_i genbits_stage_rdy_i [Cmd-1:0] state_db_wr_ccmd_i [StateId-1:0] state_db_wr_inst_id_i cmd_core_ack_i cmd_stage_ack_i [7:0] track_sm_o

Description

Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0

Description: csrng command tracking state machine module

provides debugging of command flow through csrng

Generics

Generic name Type Value Description
Cmd int 3
StateId int 4

Ports

Port name Direction Type Description
clk_i input
rst_ni input
inst_id_i input [StateId-1:0] ins req interface
acmd_hdr_capt_i input
acmd_i input [Cmd-1:0]
shid_i input [StateId-1:0]
ctr_drbg_cmd_req_i input
ctr_drbg_cmd_req_rdy_i input
ctr_drbg_cmd_ccmd_i input [Cmd-1:0]
ctr_drbg_cmd_inst_id_i input [StateId-1:0]
updblk_arb_vld_i input
updblk_arb_rdy_i input
updblk_arb_ccmd_i input [Cmd-1:0]
updblk_arb_inst_id_i input [StateId-1:0]
benblk_arb_vld_i input
benblk_arb_rdy_i input
benblk_arb_ccmd_i input [Cmd-1:0]
benblk_arb_inst_id_i input [StateId-1:0]
benblk_updblk_ack_i input
updblk_benblk_ack_rdy_i input
benblk_cmd_i input [Cmd-1:0]
benblk_inst_id_i input [StateId-1:0]
updblk_cmdblk_ack_i input
cmdblk_updblk_ack_rdy_i input
updblk_cmdblk_ccmd_i input [Cmd-1:0]
updblk_cmdblk_inst_id_i input [StateId-1:0]
ctr_drbg_gen_req_i input
ctr_drbg_gen_req_rdy_i input
ctr_drbg_gen_ccmd_i input [Cmd-1:0]
ctr_drbg_gen_inst_id_i input [StateId-1:0]
benblk_genblk_ack_i input
genblk_benblk_ack_rdy_i input
updblk_genblk_ack_i input
genblk_updblk_ack_rdy_i input
updblk_ccmd_i input [Cmd-1:0]
updblk_inst_id_i input [StateId-1:0]
state_db_wr_req_i input
state_db_wr_req_rdy_i input
genbits_stage_vld_i input
genbits_stage_rdy_i input
state_db_wr_ccmd_i input [Cmd-1:0]
state_db_wr_inst_id_i input [StateId-1:0]
cmd_core_ack_i input
cmd_stage_ack_i input
track_sm_o output [7:0]

Signals

Name Type Description
ben_ack_cntr_inc logic signals
ben_ack_cntr_clr logic
ben_ack_cntr_q logic [1:0] flops
ben_ack_cntr_d logic [1:0] flops
state_d state_e
state_q state_e
state_raw_q logic [StateWidth-1:0]

Constants

Name Type Value Description
StateWidth int 8

Types

Name Type Description
state_e enum logic [StateWidth-1:0] {
Idle = 8'h00,
InsCmdCap = 8'h11,
InsDrbgCmdIn = 8'h12,
InsDrbgUpdIn = 8'h13,
InsBlkEncIn = 8'h14,
InsDrbgCmdRtn = 8'h15,
InsStateDBIn = 8'h16,
InsCmdStageRtn = 8'h17,
InsAppCmdBus = 8'h18,
ResCmdCap = 8'h21,
ResDrbgCmdIn = 8'h22,
ResDrbgUpdIn = 8'h23,
ResBlkEncIn = 8'h24,
ResDrbgCmdRtn = 8'h25,
ResStateDBIn = 8'h26,
ResCmdStageRtn = 8'h27,
ResAppCmdBus = 8'h28,
GenCmdCap = 8'h31,
GenDrbgCmdIn = 8'h32,
GenDrbgUpd1In = 8'h33,
GenBlkEnc1In = 8'h34,
GenDrbgUpd1Rtn = 8'h35,
GenDrbgCmd1Rtn = 8'h36,
GenDrbgGenIn = 8'h37,
GenDrbgUpd2In = 8'h38,
GenBlkEnc2In = 8'h39,
GenDrbgUpd2Rtn = 8'h3a,
GenDrbgGen1Rtn = 8'h3b,
GenBlkEnc3In = 8'h3c,
GenDrbgGen2Rtn = 8'h3d,
GenStateDBIn = 8'h3e,
GenAppCmdBus = 8'h3f,
UpdCmdCap = 8'h41,
UpdDrbgCmdIn = 8'h42,
UpdDrbgUpdIn = 8'h43,
UpdBlkEncIn = 8'h44,
UpdDrbgCmdRtn = 8'h45,
UpdStateDBIn = 8'h46,
UpdCmdStageRtn = 8'h47,
UpdAppCmdBus = 8'h48,
UniCmdCap = 8'h51,
UniDrbgCmdIn = 8'h52,
UniDrbgUpdIn = 8'h53,
UniBlkEncIn = 8'h54,
UniDrbgCmdRtn = 8'h55,
UniStateDBIn = 8'h56,
UniCmdStageRtn = 8'h57,
UniAppCmdBus = 8'h58 }

Processes

Type: always_ff

Type: always_comb

Instantiations

Description
This primitive is used to place a size-only constraint on the
flops in order to prevent FSM state encoding optimizations.