[source]

Module ibex_lockstep

LockstepOffsetPMPEnablePMPGranularityPMPNumRegionsPMPRstCfgPMPRstAddrPMPRstMsecCfgMHPMCounterNumMHPMCounterWidthRV32ERV32MRV32BBranchTargetALUWritebackStageICacheICacheECCBusSizeECCTagSizeECCLineSizeECCBranchPredictorDbgTriggerEnDbgHwBreakNumResetAllRndCnstLfsrSeedRndCnstLfsrPermSecureIbexDummyInstructionsRegFileECCRegFileDataWidthMemECCMemDataWidthDmBaseAddrDmAddrMaskDmHaltAddrDmExceptionAddrclk_ilogicrst_nilogichart_id_i[31:0]logicboot_addr_i[31:0]logicinstr_req_ilogicinstr_gnt_ilogicinstr_rvalid_ilogicinstr_addr_i[31:0]logicinstr_rdata_i[MemDataWidth-1:0]logicinstr_err_ilogicdata_req_ilogicdata_gnt_ilogicdata_rvalid_ilogicdata_we_ilogicdata_be_i[3:0]logicdata_addr_i[31:0]logicdata_wdata_i[MemDataWidth-1:0]logicdata_rdata_i[MemDataWidth-1:0]logicdata_err_ilogicdummy_instr_id_ilogicdummy_instr_wb_ilogicrf_raddr_a_i[4:0]logicrf_raddr_b_i[4:0]logicrf_waddr_wb_i[4:0]logicrf_we_wb_ilogicrf_wdata_wb_ecc_i[RegFileDataWidth-1:0]logicrf_rdata_a_ecc_i[RegFileDataWidth-1:0]logicrf_rdata_b_ecc_i[RegFileDataWidth-1:0]logicic_tag_req_i[IC_NUM_WAYS-1:0]logicic_tag_write_ilogicic_tag_addr_i[IC_INDEX_W-1:0]logicic_tag_wdata_i[TagSizeECC-1:0]logicic_tag_rdata_i[TagSizeECC-1:0]logicic_data_req_i[IC_NUM_WAYS-1:0]logicic_data_write_ilogicic_data_addr_i[IC_INDEX_W-1:0]logicic_data_wdata_i[LineSizeECC-1:0]logicic_data_rdata_i[LineSizeECC-1:0]logicic_scr_key_valid_ilogicic_scr_key_req_ilogicirq_software_ilogicirq_timer_ilogicirq_external_ilogicirq_fast_i[14:0]logicirq_nm_ilogicirq_pending_ilogicdebug_req_ilogiccrash_dump_icrash_dump_tdouble_fault_seen_ilogicfetch_enable_iibex_mubi_tcore_busy_iibex_mubi_ttest_en_ilogicscan_rst_nilogicalert_minor_ologicalert_major_internal_ologicalert_major_bus_ologic

Block Diagram of ibex_lockstep

SEC_CM

LOGIC.SHADOW

Parameters

Name

Default

Description

LockstepOffset

2

PMPEnable

1'b0

PMPGranularity

0

PMPNumRegions

4

PMPRstCfg

ibex_pkg::PmpCfgRst

PMPRstAddr

ibex_pkg::PmpAddrRst

PMPRstMsecCfg

ibex_pkg::PmpMseccfgRst

MHPMCounterNum

0

MHPMCounterWidth

40

RV32E

1'b0

RV32M

RV32MFast

RV32B

RV32BNone

BranchTargetALU

1'b0

WritebackStage

1'b0

ICache

1'b0

ICacheECC

1'b0

BusSizeECC

BUS_SIZE

TagSizeECC

IC_TAG_SIZE

LineSizeECC

IC_LINE_SIZE

BranchPredictor

1'b0

DbgTriggerEn

1'b0

DbgHwBreakNum

1

ResetAll

1'b0

RndCnstLfsrSeed

RndCnstLfsrSeedDefault

RndCnstLfsrPerm

RndCnstLfsrPermDefault

SecureIbex

1'b0

DummyInstructions

1'b0

RegFileECC

1'b0

RegFileDataWidth

32

MemECC

1'b0

MemDataWidth

MemECC?32+7:32

DmBaseAddr

32'h1A110000

DmAddrMask

32'h00000FFF

DmHaltAddr

32'h1A110800

DmExceptionAddr

32'h1A110808

Ports

Name

Type

Direction

Description

clk_i

wire logic

input

rst_ni

wire logic

input

hart_id_i

wire logic [31 : 0]

input

boot_addr_i

wire logic [31 : 0]

input

instr_req_i

wire logic

input

instr_gnt_i

wire logic

input

instr_rvalid_i

wire logic

input

instr_addr_i

wire logic [31 : 0]

input

instr_rdata_i

wire logic [MemDataWidth - 1 : 0]

input

instr_err_i

wire logic

input

data_req_i

wire logic

input

data_gnt_i

wire logic

input

data_rvalid_i

wire logic

input

data_we_i

wire logic

input

data_be_i

wire logic [3 : 0]

input

data_addr_i

wire logic [31 : 0]

input

data_wdata_i

wire logic [MemDataWidth - 1 : 0]

input

data_rdata_i

wire logic [MemDataWidth - 1 : 0]

input

data_err_i

wire logic

input

dummy_instr_id_i

wire logic

input

dummy_instr_wb_i

wire logic

input

rf_raddr_a_i

wire logic [4 : 0]

input

rf_raddr_b_i

wire logic [4 : 0]

input

rf_waddr_wb_i

wire logic [4 : 0]

input

rf_we_wb_i

wire logic

input

rf_wdata_wb_ecc_i

wire logic [RegFileDataWidth - 1 : 0]

input

rf_rdata_a_ecc_i

wire logic [RegFileDataWidth - 1 : 0]

input

rf_rdata_b_ecc_i

wire logic [RegFileDataWidth - 1 : 0]

input

ic_tag_req_i

wire logic [IC_NUM_WAYS - 1 : 0]

input

ic_tag_write_i

wire logic

input

ic_tag_addr_i

wire logic [IC_INDEX_W - 1 : 0]

input

ic_tag_wdata_i

wire logic [TagSizeECC - 1 : 0]

input

ic_tag_rdata_i

wire logic [TagSizeECC - 1 : 0]

input

ic_data_req_i

wire logic [IC_NUM_WAYS - 1 : 0]

input

ic_data_write_i

wire logic

input

ic_data_addr_i

wire logic [IC_INDEX_W - 1 : 0]

input

ic_data_wdata_i

wire logic [LineSizeECC - 1 : 0]

input

ic_data_rdata_i

wire logic [LineSizeECC - 1 : 0]

input

ic_scr_key_valid_i

wire logic

input

ic_scr_key_req_i

wire logic

input

irq_software_i

wire logic

input

irq_timer_i

wire logic

input

irq_external_i

wire logic

input

irq_fast_i

wire logic [14 : 0]

input

irq_nm_i

wire logic

input

irq_pending_i

wire logic

input

debug_req_i

wire logic

input

crash_dump_i

wire crash_dump_t

input

double_fault_seen_i

wire logic

input

fetch_enable_i

wire ibex_mubi_t

input

alert_minor_o

var logic

output

alert_major_internal_o

var logic

output

alert_major_bus_o

var logic

output

core_busy_i

wire ibex_mubi_t

input

test_en_i

wire logic

input

scan_rst_ni

wire logic

input

Structs

typedef struct delayed_inputs_t

//////////////// Input delays // ////////////////

typedef struct delayed_outputs_t

///////////////// Output delays // /////////////////

Always Blocks

always_ff @(posedge clk_i or negedge rst_ni)

Delay the inputs

always_ff @(posedge clk_i)

Delay the outputs

always_ff @(posedge clk_i)

Register the shadow core outputs