@@ -124,7 +124,11 @@ ConstantBoot: assume property (boot_addr_i == $past(boot_addr_i));
124
124
// 3. Always fetch enable
125
125
FetchEnable: assume property (fetch_enable_i == IbexMuBiOn);
126
126
// 4. Never try to sleep if we couldn't ever wake up
127
- WFIStart: assume property (`IDC .ctrl_fsm_cs == SLEEP | - > `CSR .mie_q.irq_software | `CSR .mie_q.irq_timer | `CSR .mie_q.irq_external);
127
+ WFIStart: assume property (`IDC .ctrl_fsm_cs == SLEEP | - > (
128
+ `CSR .mie_q.irq_software |
129
+ `CSR .mie_q.irq_timer |
130
+ `CSR .mie_q.irq_external
131
+ ));
128
132
// 5. Disable clock gating
129
133
TestEn: assume property (test_en_i);
130
134
// See protocol/* for further assumptions
@@ -169,7 +173,7 @@ TestEn: assume property (test_en_i);
169
173
// //////////////////// Abstract State //////////////////////
170
174
171
175
// Pre state is the architectural state of Ibex at the start of the cycle
172
- logic [31 : 0 ] pre_regs[31 : 0 ];
176
+ logic [31 : 0 ] pre_regs[32 ];
173
177
logic [31 : 0 ] pre_nextpc;
174
178
logic [31 : 0 ] pre_mip;
175
179
@@ -262,10 +266,11 @@ assign lsu_had_first_resp = `LSU.ls_fsm_cs == `LSU.WAIT_GNT && `LSU.split_misali
262
266
// //////////////////// Wrap signals //////////////////////
263
267
264
268
logic spec_en; // The specification is being queried in this cycle
265
- logic has_spec_past; // There is a previous step to compare against. Will become 0 on uncheckable CSRs and at reset.
269
+ logic has_spec_past; // There is a previous step to compare against.
270
+ // Will become 0 on uncheckable CSRs and at reset.
266
271
267
272
// The previous specification output to be compared with the new input
268
- logic [31 : 0 ] spec_past_regs[31 : 0 ];
273
+ logic [31 : 0 ] spec_past_regs[32 ];
269
274
logic [31 : 0 ] spec_past_has_reg; // Registers will have past values only when they are written to.
270
275
`define X (n) spec_past_``n
271
276
`X_EACH_CSR_TYPED
@@ -286,7 +291,8 @@ logic wbexc_illegal; // EXC has an illegal instruction
286
291
logic wbexc_compressed_illegal; // EXC has an illegal instruction
287
292
logic wbexc_err; // EXC has an error
288
293
logic instr_will_progress; // Instruction will finish EX
289
- logic wfi_will_finish; // WFI instruction retire by flushing the pipeline, but that isn't an exception
294
+ logic wfi_will_finish; // WFI instruction retire by flushing the pipeline,
295
+ // but that isn't an exception.
290
296
logic wbexc_csr_pipe_flush; // The pipeline is being flushed due to a CSR write
291
297
logic wbexc_handling_irq; // Check the results of handling an IRQ
292
298
@@ -326,7 +332,8 @@ logic spec_post_wX_en;
326
332
327
333
logic spec_int_err;
328
334
329
- logic spec_fetch_err; // The specification has experienced a fetch error, regardless of whether or not it was told to.
335
+ logic spec_fetch_err; // The specification has experienced a fetch error,
336
+ // regardless of whether or not it was told to.
330
337
assign spec_fetch_err =
331
338
(main_mode == MAIN_IFERR && spec_api_i.main_result == MAINRES_OK ) ||
332
339
spec_api_i.main_result == MAINRES_IFERR_1 || spec_api_i.main_result == MAINRES_IFERR_2 ;
@@ -386,10 +393,14 @@ assign lsu_waiting_for_misal =
386
393
((`LSU .data_type_q == 2'b01 ) && (`LSU .rdata_offset_q == 2'b11 ));
387
394
388
395
logic addr_last_matches;
389
- assign addr_last_matches = `ID .rf_rdata_a_fwd + (ex_is_store_instr? `ID .imm_s_type : `ID .imm_i_type) == `LSU .addr_last_q;
396
+ assign addr_last_matches = `ID .rf_rdata_a_fwd +
397
+ (ex_is_store_instr? `ID .imm_s_type : `ID .imm_i_type) ==
398
+ `LSU .addr_last_q;
390
399
391
400
logic addr_last_d_matches;
392
- assign addr_last_d_matches = `ID .rf_rdata_a_fwd + (ex_is_store_instr? `ID .imm_s_type : `ID .imm_i_type) == `LSU .addr_last_d;
401
+ assign addr_last_d_matches = `ID .rf_rdata_a_fwd +
402
+ (ex_is_store_instr? `ID .imm_s_type : `ID .imm_i_type) ==
403
+ `LSU .addr_last_d;
393
404
394
405
// //////////////////// Compare //////////////////////
395
406
0 commit comments