@@ -34,6 +34,8 @@ module ibex_top import ibex_pkg::*; #(
3434 parameter bit DbgTriggerEn = 1'b0 ,
3535 parameter int unsigned DbgHwBreakNum = 1 ,
3636 parameter bit SecureIbex = 1'b0 ,
37+ parameter bit MemECC = SecureIbex,
38+ parameter int unsigned MemDataWidth = MemECC ? 32 + 7 : 32 ,
3739 parameter bit ICacheScramble = 1'b0 ,
3840 parameter int unsigned ICacheScrNumPrinceRoundsHalf = 2 ,
3941 parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault,
@@ -162,7 +164,21 @@ module ibex_top import ibex_pkg::*; #(
162164 output logic core_sleep_o,
163165
164166 // DFT bypass controls
165- input logic scan_rst_ni
167+ input logic scan_rst_ni,
168+
169+ // Lockstep signals
170+ output ibex_mubi_t lockstep_cmp_en_o,
171+
172+ // Shadow core data interface outputs
173+ output logic data_req_shadow_o,
174+ output logic data_we_shadow_o,
175+ output logic [3 : 0 ] data_be_shadow_o,
176+ output logic [31 : 0 ] data_addr_shadow_o,
177+ output logic [31 : 0 ] data_wdata_shadow_o,
178+
179+ // Shadow core instruction interface outputs
180+ output logic instr_req_shadow_o,
181+ output logic [31 : 0 ] instr_addr_shadow_o
166182);
167183
168184 localparam bit Lockstep = SecureIbex;
@@ -172,8 +188,6 @@ module ibex_top import ibex_pkg::*; #(
172188 localparam bit RegFileWrenCheck = SecureIbex;
173189 localparam bit RegFileRdataMuxCheck = SecureIbex;
174190 localparam int unsigned RegFileDataWidth = RegFileECC ? 32 + 7 : 32 ;
175- localparam bit MemECC = SecureIbex;
176- localparam int unsigned MemDataWidth = MemECC ? 32 + 7 : 32 ;
177191 // Icache parameters
178192 localparam int unsigned BusSizeECC = ICacheECC ? (BUS_SIZE + 7 ) : BUS_SIZE ;
179193 localparam int unsigned LineSizeECC = BusSizeECC * IC_LINE_BEATS ;
@@ -1123,7 +1137,16 @@ module ibex_top import ibex_pkg::*; #(
11231137 .alert_major_bus_o (lockstep_alert_major_bus_local),
11241138 .core_busy_i (core_busy_local),
11251139 .test_en_i (test_en_i),
1126- .scan_rst_ni (scan_rst_ni)
1140+ .scan_rst_ni (scan_rst_ni),
1141+
1142+ .lockstep_cmp_en_o (lockstep_cmp_en_o),
1143+ .data_req_shadow_o (data_req_shadow_o),
1144+ .data_we_shadow_o (data_we_shadow_o),
1145+ .data_be_shadow_o (data_be_shadow_o),
1146+ .data_addr_shadow_o (data_addr_shadow_o),
1147+ .data_wdata_shadow_o (data_wdata_shadow_o),
1148+ .instr_req_shadow_o (instr_req_shadow_o),
1149+ .instr_addr_shadow_o (instr_addr_shadow_o)
11271150 );
11281151
11291152 prim_buf u_prim_buf_alert_minor (
@@ -1145,6 +1168,16 @@ module ibex_top import ibex_pkg::*; #(
11451168 assign lockstep_alert_major_internal = 1'b0 ;
11461169 assign lockstep_alert_major_bus = 1'b0 ;
11471170 assign lockstep_alert_minor = 1'b0 ;
1171+
1172+ assign lockstep_cmp_en_o = IbexMuBiOff;
1173+ assign data_req_shadow_o = 1'b0 ;
1174+ assign data_we_shadow_o = 1'b0 ;
1175+ assign data_be_shadow_o = '0 ;
1176+ assign data_addr_shadow_o = '0 ;
1177+ assign data_wdata_shadow_o = '0 ;
1178+ assign instr_req_shadow_o = 1'b0 ;
1179+ assign instr_addr_shadow_o = '0 ;
1180+
11481181 logic unused_scan;
11491182 assign unused_scan = scan_rst_ni;
11501183 end
0 commit comments