[fpv/rv_plic] regenerate auto_gen and update according to PR#2989
This PR reflects the new autogen fpv_csr_assert file in top_level
rv_plic. Sorry I forget to update this top_level module.
The change includes:
1. Regenerate top_level rv_plic fpv_csr_assertions
2. Change the naming from i_rv_plic to dut
3. add reg2hw and hw2reg in bind file
Signed-off-by: Cindy Chen <chencindy@google.com>
diff --git a/hw/ip/rv_plic/data/rv_plic_bind_fpv.sv.tpl b/hw/ip/rv_plic/data/rv_plic_bind_fpv.sv.tpl
index c0db912..de19e8c 100644
--- a/hw/ip/rv_plic/data/rv_plic_bind_fpv.sv.tpl
+++ b/hw/ip/rv_plic/data/rv_plic_bind_fpv.sv.tpl
@@ -38,8 +38,10 @@
bind rv_plic rv_plic_csr_assert_fpv rv_plic_csr_assert_fpv (
.clk_i,
.rst_ni,
- .h2d (tl_i),
- .d2h (tl_o)
+ .h2d (tl_i),
+ .d2h (tl_o),
+ .reg2hw (reg2hw),
+ .hw2reg (hw2reg)
);
endmodule : rv_plic_bind_fpv
diff --git a/hw/ip/rv_plic/data/rv_plic_fpv.sv.tpl b/hw/ip/rv_plic/data/rv_plic_fpv.sv.tpl
index 2b18edb..325524e 100644
--- a/hw/ip/rv_plic/data/rv_plic_fpv.sv.tpl
+++ b/hw/ip/rv_plic/data/rv_plic_fpv.sv.tpl
@@ -22,7 +22,7 @@
// several instances with different NumSrc and NumTarget configs here
// (in a similar way as this has been done in prim_lfsr_fpv)
// for (genvar k = 0; k < NumInstances; k++) begin : geNumInstances
- rv_plic i_rv_plic (
+ rv_plic dut (
.clk_i ,
.rst_ni ,
.tl_i (tl_i[0]),
diff --git a/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_bind_fpv.sv b/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_bind_fpv.sv
index e4d324e..376076e 100644
--- a/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_bind_fpv.sv
+++ b/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_bind_fpv.sv
@@ -38,8 +38,10 @@
bind rv_plic rv_plic_csr_assert_fpv rv_plic_csr_assert_fpv (
.clk_i,
.rst_ni,
- .h2d (tl_i),
- .d2h (tl_o)
+ .h2d (tl_i),
+ .d2h (tl_o),
+ .reg2hw (reg2hw),
+ .hw2reg (hw2reg)
);
endmodule : rv_plic_bind_fpv
diff --git a/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_csr_assert_fpv.sv b/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_csr_assert_fpv.sv
index 23d07e0..67aa2a3 100644
--- a/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_csr_assert_fpv.sv
+++ b/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_csr_assert_fpv.sv
@@ -4,17 +4,23 @@
// FPV CSR read and write assertions auto-generated by `reggen` containing data structure
// Do Not Edit directly
+// TODO: This automation does not support: shadow reg and regwen reg
+// This automation assumes that W1C and W0C are registers with 1 bit per field
`include "prim_assert.sv"
// Block: rv_plic
-module rv_plic_csr_assert_fpv import tlul_pkg::*; (
+module rv_plic_csr_assert_fpv import tlul_pkg::*; import rv_plic_reg_pkg::*; (
input clk_i,
input rst_ni,
- //tile link ports
+ // tile link ports
input tl_h2d_t h2d,
- input tl_d2h_t d2h
+ input tl_d2h_t d2h,
+
+ // reg and hw ports
+ input rv_plic_reg2hw_t reg2hw,
+ input rv_plic_hw2reg_t hw2reg
);
parameter int DWidth = 32;
@@ -32,65 +38,64 @@
h2d.a_valid && h2d.d_ready && !d2h.d_valid;
endsequence
- // this sequence is used for reg_field which has access w1c or w0c
- // it returns true if the `index` bit of a_data matches `exp_bit`
- // this sequence is under assumption - w1c/w0c will only use one bit per field
- sequence device_wc_S(logic [9:0] addr, bit exp_bit, int index);
- h2d.a_address == addr && h2d.a_opcode inside {PutFullData, PutPartialData} && h2d.a_valid &&
- h2d.d_ready && !d2h.d_valid && ((h2d.a_data[index] & a_mask_bit[index]) == exp_bit);
- endsequence
-
sequence device_rd_S(logic [9:0] addr);
h2d.a_address == addr && h2d.a_opcode inside {Get} && h2d.a_valid && h2d.d_ready &&
!d2h.d_valid;
endsequence
// declare common read and write properties
+ // for homog registers, we check by a reg; for non-homog regs, we check by field.
+ // `mask` is used for checking by field. It masks out any act_data that are not within the field
+ // `lsb` is used to check non-homog multi_reg. Because we are using a local copy `_fpv` variable
+ // to store all the multi-reg within one basefield, we need to shift the `_fpv` value to the
+ // correct bits, then compare with read/write exp_data.
+
property wr_P(bit [9:0] addr, bit [DWidth-1:0] act_data, bit regen,
- bit [DWidth-1:0] mask);
+ bit [DWidth-1:0] mask, int lsb);
logic [DWidth-1:0] id, exp_data;
(device_wr_S(addr), id = h2d.a_source, exp_data = h2d.a_data & a_mask_bit & mask) ##1
first_match(##[0:$] d2h.d_valid && d2h.d_source == id) |->
- (d2h.d_error || act_data == exp_data || !regen);
+ (d2h.d_error || (act_data << lsb) == exp_data || !regen);
endproperty
// external reg will use one clk cycle to update act_data from external
property wr_ext_P(bit [9:0] addr, bit [DWidth-1:0] act_data, bit regen,
- bit [DWidth-1:0] mask);
+ bit [DWidth-1:0] mask, int lsb);
logic [DWidth-1:0] id, exp_data;
(device_wr_S(addr), id = h2d.a_source, exp_data = h2d.a_data & a_mask_bit & mask) ##1
first_match(##[0:$] (d2h.d_valid && d2h.d_source == id)) |->
- (d2h.d_error || $past(act_data) == exp_data || !regen);
+ (d2h.d_error || ($past(act_data) << lsb) == exp_data || !regen);
endproperty
- // For W1C or W0C, first scenario: write 1(W1C) or 0(W0C) that clears the value
- property wc0_P(bit [9:0] addr, bit act_data, bit regen, int index, bit clear_bit);
- logic [DWidth-1:0] id;
- (device_wc_S(addr, clear_bit, index), id = h2d.a_source) ##1
+ property w1c_P(bit [9:0] addr, bit [DWidth-1:0] act_data, bit regen,
+ bit [DWidth-1:0] mask, int lsb);
+ logic [DWidth-1:0] id, exp_data;
+ (device_wr_S(addr), id = h2d.a_source, exp_data = h2d.a_data & a_mask_bit & mask & '0) ##1
+ first_match(##[0:$] d2h.d_valid && d2h.d_source == id) |->
+ (d2h.d_error || (act_data << lsb) == exp_data || !regen);
+ endproperty
+
+ property w1c_ext_P(bit [9:0] addr, bit [DWidth-1:0] act_data, bit regen,
+ bit [DWidth-1:0] mask, int lsb);
+ logic [DWidth-1:0] id, exp_data;
+ (device_wr_S(addr), id = h2d.a_source, exp_data = h2d.a_data & a_mask_bit & mask & '0) ##1
first_match(##[0:$] (d2h.d_valid && d2h.d_source == id)) |->
- (d2h.d_error || act_data == 1'b0 || !regen);
+ (d2h.d_error || ($past(act_data) << lsb) == exp_data || !regen);
endproperty
- // For W1C or W0C, second scenario: write 0(W1C) or 1(W0C) that won't clear the value
- property wc1_P(bit [9:0] addr, bit act_data, bit regen, int index, bit clear_bit);
- logic [DWidth-1:0] id;
- (device_wc_S(addr, !clear_bit, index), id = h2d.a_source) ##1
- first_match(##[0:$] (d2h.d_valid && d2h.d_source == id)) |->
- (d2h.d_error || $stable(act_data) || !regen);
- endproperty
-
- property rd_P(bit [9:0] addr, bit [DWidth-1:0] act_data);
+ property rd_P(bit [9:0] addr, bit [DWidth-1:0] act_data, bit [DWidth-1:0] mask, int lsb);
logic [DWidth-1:0] id, exp_data;
(device_rd_S(addr), id = h2d.a_source, exp_data = $past(act_data)) ##1
first_match(##[0:$] (d2h.d_valid && d2h.d_source == id)) |->
- (d2h.d_error || d2h.d_data == exp_data);
+ (d2h.d_error || (d2h.d_data & mask) >> lsb == exp_data);
endproperty
- property rd_ext_P(bit [9:0] addr, bit [DWidth-1:0] act_data);
+ property rd_ext_P(bit [9:0] addr, bit [DWidth-1:0] act_data, bit [DWidth-1:0] mask,
+ int lsb);
logic [DWidth-1:0] id, exp_data;
(device_rd_S(addr), id = h2d.a_source, exp_data = act_data) ##1
first_match(##[0:$] (d2h.d_valid && d2h.d_source == id)) |->
- (d2h.d_error || d2h.d_data == exp_data);
+ (d2h.d_error || (d2h.d_data & mask) >> lsb == exp_data);
endproperty
// read a WO register, always return 0
@@ -101,312 +106,400 @@
(d2h.d_error || d2h.d_data == 0);
endproperty
+ // TODO: currently not used, will use once support regwen reg
property wr_regen_stable_P(bit regen, bit [DWidth-1:0] exp_data);
(!regen && $stable(regen)) |-> $stable(exp_data);
endproperty
-// for all the regsters, declare assertion
- // define local fpv variable for the multi_reg
+ // define local fpv variable for multi-reg
logic [82:0] ip_d_fpv;
- for (genvar s = 0; s <= 82; s++) begin : gen_ip_d
- assign ip_d_fpv[s] = i_rv_plic.hw2reg.ip[s].d;
+ for (genvar s = 0; s < 83; s++) begin : gen_ip_q
+ assign ip_d_fpv[((s+1)*1-1):s*1] = hw2reg.ip[s].d;
end
- `ASSERT(ip0_rd_A, rd_P(10'h0, ip_d_fpv[31:0]))
+ // assertions for register: ip0
+ `ASSERT(ip0_rd_A, rd_P(10'h0, ip_d_fpv[31:0], 'hffffffff, 0))
+ // assertions for register: ip1
+ `ASSERT(ip1_rd_A, rd_P(10'h4, ip_d_fpv[63:32], 'hffffffff, 0))
+ // assertions for register: ip2
+ `ASSERT(ip2_rd_A, rd_P(10'h8, ip_d_fpv[82:64], 'h7ffff, 0))
- `ASSERT(ip1_rd_A, rd_P(10'h4, ip_d_fpv[63:32]))
-
- `ASSERT(ip2_rd_A, rd_P(10'h8, ip_d_fpv[82:64]))
-
- // define local fpv variable for the multi_reg
+ // define local fpv variable for multi-reg
logic [82:0] le_q_fpv;
- for (genvar s = 0; s <= 82; s++) begin : gen_le_q
- assign le_q_fpv[s] = 1 ?
- i_rv_plic.reg2hw.le[s].q : le_q_fpv[s];
+ for (genvar s = 0; s < 83; s++) begin : gen_le_q
+ assign le_q_fpv[((s+1)*1-1):s*1] = reg2hw.le[s].q;
end
- `ASSERT(le0_wr_A, wr_P(10'hc, le_q_fpv[31:0], 1, 'hffffffff))
- `ASSERT(le0_rd_A, rd_P(10'hc, le_q_fpv[31:0]))
+ // assertions for register: le0
+ `ASSERT(le0_wr_A, wr_P(10'hc, le_q_fpv[31:0], 1, 'hffffffff, 0))
+ `ASSERT(le0_rd_A, rd_P(10'hc, le_q_fpv[31:0], 'hffffffff, 0))
+ // assertions for register: le1
+ `ASSERT(le1_wr_A, wr_P(10'h10, le_q_fpv[63:32], 1, 'hffffffff, 0))
+ `ASSERT(le1_rd_A, rd_P(10'h10, le_q_fpv[63:32], 'hffffffff, 0))
+ // assertions for register: le2
+ `ASSERT(le2_wr_A, wr_P(10'h14, le_q_fpv[82:64], 1, 'h7ffff, 0))
+ `ASSERT(le2_rd_A, rd_P(10'h14, le_q_fpv[82:64], 'h7ffff, 0))
- `ASSERT(le1_wr_A, wr_P(10'h10, le_q_fpv[63:32], 1, 'hffffffff))
- `ASSERT(le1_rd_A, rd_P(10'h10, le_q_fpv[63:32]))
+ // assertions for register: prio0
+ `ASSERT(prio0_wr_A, wr_P(10'h18, reg2hw.prio0.q, 1, 'h3, 0))
+ `ASSERT(prio0_rd_A, rd_P(10'h18, reg2hw.prio0.q, 'hffffffff, 0))
- `ASSERT(le2_wr_A, wr_P(10'h14, le_q_fpv[82:64], 1, 'h7ffff))
- `ASSERT(le2_rd_A, rd_P(10'h14, le_q_fpv[82:64]))
+ // assertions for register: prio1
+ `ASSERT(prio1_wr_A, wr_P(10'h1c, reg2hw.prio1.q, 1, 'h3, 0))
+ `ASSERT(prio1_rd_A, rd_P(10'h1c, reg2hw.prio1.q, 'hffffffff, 0))
- `ASSERT(prio0_wr_A, wr_P(10'h18, i_rv_plic.reg2hw.prio0.q, 1, 'h3))
- `ASSERT(prio0_rd_A, rd_P(10'h18, i_rv_plic.reg2hw.prio0.q))
+ // assertions for register: prio2
+ `ASSERT(prio2_wr_A, wr_P(10'h20, reg2hw.prio2.q, 1, 'h3, 0))
+ `ASSERT(prio2_rd_A, rd_P(10'h20, reg2hw.prio2.q, 'hffffffff, 0))
- `ASSERT(prio1_wr_A, wr_P(10'h1c, i_rv_plic.reg2hw.prio1.q, 1, 'h3))
- `ASSERT(prio1_rd_A, rd_P(10'h1c, i_rv_plic.reg2hw.prio1.q))
+ // assertions for register: prio3
+ `ASSERT(prio3_wr_A, wr_P(10'h24, reg2hw.prio3.q, 1, 'h3, 0))
+ `ASSERT(prio3_rd_A, rd_P(10'h24, reg2hw.prio3.q, 'hffffffff, 0))
- `ASSERT(prio2_wr_A, wr_P(10'h20, i_rv_plic.reg2hw.prio2.q, 1, 'h3))
- `ASSERT(prio2_rd_A, rd_P(10'h20, i_rv_plic.reg2hw.prio2.q))
+ // assertions for register: prio4
+ `ASSERT(prio4_wr_A, wr_P(10'h28, reg2hw.prio4.q, 1, 'h3, 0))
+ `ASSERT(prio4_rd_A, rd_P(10'h28, reg2hw.prio4.q, 'hffffffff, 0))
- `ASSERT(prio3_wr_A, wr_P(10'h24, i_rv_plic.reg2hw.prio3.q, 1, 'h3))
- `ASSERT(prio3_rd_A, rd_P(10'h24, i_rv_plic.reg2hw.prio3.q))
+ // assertions for register: prio5
+ `ASSERT(prio5_wr_A, wr_P(10'h2c, reg2hw.prio5.q, 1, 'h3, 0))
+ `ASSERT(prio5_rd_A, rd_P(10'h2c, reg2hw.prio5.q, 'hffffffff, 0))
- `ASSERT(prio4_wr_A, wr_P(10'h28, i_rv_plic.reg2hw.prio4.q, 1, 'h3))
- `ASSERT(prio4_rd_A, rd_P(10'h28, i_rv_plic.reg2hw.prio4.q))
+ // assertions for register: prio6
+ `ASSERT(prio6_wr_A, wr_P(10'h30, reg2hw.prio6.q, 1, 'h3, 0))
+ `ASSERT(prio6_rd_A, rd_P(10'h30, reg2hw.prio6.q, 'hffffffff, 0))
- `ASSERT(prio5_wr_A, wr_P(10'h2c, i_rv_plic.reg2hw.prio5.q, 1, 'h3))
- `ASSERT(prio5_rd_A, rd_P(10'h2c, i_rv_plic.reg2hw.prio5.q))
+ // assertions for register: prio7
+ `ASSERT(prio7_wr_A, wr_P(10'h34, reg2hw.prio7.q, 1, 'h3, 0))
+ `ASSERT(prio7_rd_A, rd_P(10'h34, reg2hw.prio7.q, 'hffffffff, 0))
- `ASSERT(prio6_wr_A, wr_P(10'h30, i_rv_plic.reg2hw.prio6.q, 1, 'h3))
- `ASSERT(prio6_rd_A, rd_P(10'h30, i_rv_plic.reg2hw.prio6.q))
+ // assertions for register: prio8
+ `ASSERT(prio8_wr_A, wr_P(10'h38, reg2hw.prio8.q, 1, 'h3, 0))
+ `ASSERT(prio8_rd_A, rd_P(10'h38, reg2hw.prio8.q, 'hffffffff, 0))
- `ASSERT(prio7_wr_A, wr_P(10'h34, i_rv_plic.reg2hw.prio7.q, 1, 'h3))
- `ASSERT(prio7_rd_A, rd_P(10'h34, i_rv_plic.reg2hw.prio7.q))
+ // assertions for register: prio9
+ `ASSERT(prio9_wr_A, wr_P(10'h3c, reg2hw.prio9.q, 1, 'h3, 0))
+ `ASSERT(prio9_rd_A, rd_P(10'h3c, reg2hw.prio9.q, 'hffffffff, 0))
- `ASSERT(prio8_wr_A, wr_P(10'h38, i_rv_plic.reg2hw.prio8.q, 1, 'h3))
- `ASSERT(prio8_rd_A, rd_P(10'h38, i_rv_plic.reg2hw.prio8.q))
+ // assertions for register: prio10
+ `ASSERT(prio10_wr_A, wr_P(10'h40, reg2hw.prio10.q, 1, 'h3, 0))
+ `ASSERT(prio10_rd_A, rd_P(10'h40, reg2hw.prio10.q, 'hffffffff, 0))
- `ASSERT(prio9_wr_A, wr_P(10'h3c, i_rv_plic.reg2hw.prio9.q, 1, 'h3))
- `ASSERT(prio9_rd_A, rd_P(10'h3c, i_rv_plic.reg2hw.prio9.q))
+ // assertions for register: prio11
+ `ASSERT(prio11_wr_A, wr_P(10'h44, reg2hw.prio11.q, 1, 'h3, 0))
+ `ASSERT(prio11_rd_A, rd_P(10'h44, reg2hw.prio11.q, 'hffffffff, 0))
- `ASSERT(prio10_wr_A, wr_P(10'h40, i_rv_plic.reg2hw.prio10.q, 1, 'h3))
- `ASSERT(prio10_rd_A, rd_P(10'h40, i_rv_plic.reg2hw.prio10.q))
+ // assertions for register: prio12
+ `ASSERT(prio12_wr_A, wr_P(10'h48, reg2hw.prio12.q, 1, 'h3, 0))
+ `ASSERT(prio12_rd_A, rd_P(10'h48, reg2hw.prio12.q, 'hffffffff, 0))
- `ASSERT(prio11_wr_A, wr_P(10'h44, i_rv_plic.reg2hw.prio11.q, 1, 'h3))
- `ASSERT(prio11_rd_A, rd_P(10'h44, i_rv_plic.reg2hw.prio11.q))
+ // assertions for register: prio13
+ `ASSERT(prio13_wr_A, wr_P(10'h4c, reg2hw.prio13.q, 1, 'h3, 0))
+ `ASSERT(prio13_rd_A, rd_P(10'h4c, reg2hw.prio13.q, 'hffffffff, 0))
- `ASSERT(prio12_wr_A, wr_P(10'h48, i_rv_plic.reg2hw.prio12.q, 1, 'h3))
- `ASSERT(prio12_rd_A, rd_P(10'h48, i_rv_plic.reg2hw.prio12.q))
+ // assertions for register: prio14
+ `ASSERT(prio14_wr_A, wr_P(10'h50, reg2hw.prio14.q, 1, 'h3, 0))
+ `ASSERT(prio14_rd_A, rd_P(10'h50, reg2hw.prio14.q, 'hffffffff, 0))
- `ASSERT(prio13_wr_A, wr_P(10'h4c, i_rv_plic.reg2hw.prio13.q, 1, 'h3))
- `ASSERT(prio13_rd_A, rd_P(10'h4c, i_rv_plic.reg2hw.prio13.q))
+ // assertions for register: prio15
+ `ASSERT(prio15_wr_A, wr_P(10'h54, reg2hw.prio15.q, 1, 'h3, 0))
+ `ASSERT(prio15_rd_A, rd_P(10'h54, reg2hw.prio15.q, 'hffffffff, 0))
- `ASSERT(prio14_wr_A, wr_P(10'h50, i_rv_plic.reg2hw.prio14.q, 1, 'h3))
- `ASSERT(prio14_rd_A, rd_P(10'h50, i_rv_plic.reg2hw.prio14.q))
+ // assertions for register: prio16
+ `ASSERT(prio16_wr_A, wr_P(10'h58, reg2hw.prio16.q, 1, 'h3, 0))
+ `ASSERT(prio16_rd_A, rd_P(10'h58, reg2hw.prio16.q, 'hffffffff, 0))
- `ASSERT(prio15_wr_A, wr_P(10'h54, i_rv_plic.reg2hw.prio15.q, 1, 'h3))
- `ASSERT(prio15_rd_A, rd_P(10'h54, i_rv_plic.reg2hw.prio15.q))
+ // assertions for register: prio17
+ `ASSERT(prio17_wr_A, wr_P(10'h5c, reg2hw.prio17.q, 1, 'h3, 0))
+ `ASSERT(prio17_rd_A, rd_P(10'h5c, reg2hw.prio17.q, 'hffffffff, 0))
- `ASSERT(prio16_wr_A, wr_P(10'h58, i_rv_plic.reg2hw.prio16.q, 1, 'h3))
- `ASSERT(prio16_rd_A, rd_P(10'h58, i_rv_plic.reg2hw.prio16.q))
+ // assertions for register: prio18
+ `ASSERT(prio18_wr_A, wr_P(10'h60, reg2hw.prio18.q, 1, 'h3, 0))
+ `ASSERT(prio18_rd_A, rd_P(10'h60, reg2hw.prio18.q, 'hffffffff, 0))
- `ASSERT(prio17_wr_A, wr_P(10'h5c, i_rv_plic.reg2hw.prio17.q, 1, 'h3))
- `ASSERT(prio17_rd_A, rd_P(10'h5c, i_rv_plic.reg2hw.prio17.q))
+ // assertions for register: prio19
+ `ASSERT(prio19_wr_A, wr_P(10'h64, reg2hw.prio19.q, 1, 'h3, 0))
+ `ASSERT(prio19_rd_A, rd_P(10'h64, reg2hw.prio19.q, 'hffffffff, 0))
- `ASSERT(prio18_wr_A, wr_P(10'h60, i_rv_plic.reg2hw.prio18.q, 1, 'h3))
- `ASSERT(prio18_rd_A, rd_P(10'h60, i_rv_plic.reg2hw.prio18.q))
+ // assertions for register: prio20
+ `ASSERT(prio20_wr_A, wr_P(10'h68, reg2hw.prio20.q, 1, 'h3, 0))
+ `ASSERT(prio20_rd_A, rd_P(10'h68, reg2hw.prio20.q, 'hffffffff, 0))
- `ASSERT(prio19_wr_A, wr_P(10'h64, i_rv_plic.reg2hw.prio19.q, 1, 'h3))
- `ASSERT(prio19_rd_A, rd_P(10'h64, i_rv_plic.reg2hw.prio19.q))
+ // assertions for register: prio21
+ `ASSERT(prio21_wr_A, wr_P(10'h6c, reg2hw.prio21.q, 1, 'h3, 0))
+ `ASSERT(prio21_rd_A, rd_P(10'h6c, reg2hw.prio21.q, 'hffffffff, 0))
- `ASSERT(prio20_wr_A, wr_P(10'h68, i_rv_plic.reg2hw.prio20.q, 1, 'h3))
- `ASSERT(prio20_rd_A, rd_P(10'h68, i_rv_plic.reg2hw.prio20.q))
+ // assertions for register: prio22
+ `ASSERT(prio22_wr_A, wr_P(10'h70, reg2hw.prio22.q, 1, 'h3, 0))
+ `ASSERT(prio22_rd_A, rd_P(10'h70, reg2hw.prio22.q, 'hffffffff, 0))
- `ASSERT(prio21_wr_A, wr_P(10'h6c, i_rv_plic.reg2hw.prio21.q, 1, 'h3))
- `ASSERT(prio21_rd_A, rd_P(10'h6c, i_rv_plic.reg2hw.prio21.q))
+ // assertions for register: prio23
+ `ASSERT(prio23_wr_A, wr_P(10'h74, reg2hw.prio23.q, 1, 'h3, 0))
+ `ASSERT(prio23_rd_A, rd_P(10'h74, reg2hw.prio23.q, 'hffffffff, 0))
- `ASSERT(prio22_wr_A, wr_P(10'h70, i_rv_plic.reg2hw.prio22.q, 1, 'h3))
- `ASSERT(prio22_rd_A, rd_P(10'h70, i_rv_plic.reg2hw.prio22.q))
+ // assertions for register: prio24
+ `ASSERT(prio24_wr_A, wr_P(10'h78, reg2hw.prio24.q, 1, 'h3, 0))
+ `ASSERT(prio24_rd_A, rd_P(10'h78, reg2hw.prio24.q, 'hffffffff, 0))
- `ASSERT(prio23_wr_A, wr_P(10'h74, i_rv_plic.reg2hw.prio23.q, 1, 'h3))
- `ASSERT(prio23_rd_A, rd_P(10'h74, i_rv_plic.reg2hw.prio23.q))
+ // assertions for register: prio25
+ `ASSERT(prio25_wr_A, wr_P(10'h7c, reg2hw.prio25.q, 1, 'h3, 0))
+ `ASSERT(prio25_rd_A, rd_P(10'h7c, reg2hw.prio25.q, 'hffffffff, 0))
- `ASSERT(prio24_wr_A, wr_P(10'h78, i_rv_plic.reg2hw.prio24.q, 1, 'h3))
- `ASSERT(prio24_rd_A, rd_P(10'h78, i_rv_plic.reg2hw.prio24.q))
+ // assertions for register: prio26
+ `ASSERT(prio26_wr_A, wr_P(10'h80, reg2hw.prio26.q, 1, 'h3, 0))
+ `ASSERT(prio26_rd_A, rd_P(10'h80, reg2hw.prio26.q, 'hffffffff, 0))
- `ASSERT(prio25_wr_A, wr_P(10'h7c, i_rv_plic.reg2hw.prio25.q, 1, 'h3))
- `ASSERT(prio25_rd_A, rd_P(10'h7c, i_rv_plic.reg2hw.prio25.q))
+ // assertions for register: prio27
+ `ASSERT(prio27_wr_A, wr_P(10'h84, reg2hw.prio27.q, 1, 'h3, 0))
+ `ASSERT(prio27_rd_A, rd_P(10'h84, reg2hw.prio27.q, 'hffffffff, 0))
- `ASSERT(prio26_wr_A, wr_P(10'h80, i_rv_plic.reg2hw.prio26.q, 1, 'h3))
- `ASSERT(prio26_rd_A, rd_P(10'h80, i_rv_plic.reg2hw.prio26.q))
+ // assertions for register: prio28
+ `ASSERT(prio28_wr_A, wr_P(10'h88, reg2hw.prio28.q, 1, 'h3, 0))
+ `ASSERT(prio28_rd_A, rd_P(10'h88, reg2hw.prio28.q, 'hffffffff, 0))
- `ASSERT(prio27_wr_A, wr_P(10'h84, i_rv_plic.reg2hw.prio27.q, 1, 'h3))
- `ASSERT(prio27_rd_A, rd_P(10'h84, i_rv_plic.reg2hw.prio27.q))
+ // assertions for register: prio29
+ `ASSERT(prio29_wr_A, wr_P(10'h8c, reg2hw.prio29.q, 1, 'h3, 0))
+ `ASSERT(prio29_rd_A, rd_P(10'h8c, reg2hw.prio29.q, 'hffffffff, 0))
- `ASSERT(prio28_wr_A, wr_P(10'h88, i_rv_plic.reg2hw.prio28.q, 1, 'h3))
- `ASSERT(prio28_rd_A, rd_P(10'h88, i_rv_plic.reg2hw.prio28.q))
+ // assertions for register: prio30
+ `ASSERT(prio30_wr_A, wr_P(10'h90, reg2hw.prio30.q, 1, 'h3, 0))
+ `ASSERT(prio30_rd_A, rd_P(10'h90, reg2hw.prio30.q, 'hffffffff, 0))
- `ASSERT(prio29_wr_A, wr_P(10'h8c, i_rv_plic.reg2hw.prio29.q, 1, 'h3))
- `ASSERT(prio29_rd_A, rd_P(10'h8c, i_rv_plic.reg2hw.prio29.q))
+ // assertions for register: prio31
+ `ASSERT(prio31_wr_A, wr_P(10'h94, reg2hw.prio31.q, 1, 'h3, 0))
+ `ASSERT(prio31_rd_A, rd_P(10'h94, reg2hw.prio31.q, 'hffffffff, 0))
- `ASSERT(prio30_wr_A, wr_P(10'h90, i_rv_plic.reg2hw.prio30.q, 1, 'h3))
- `ASSERT(prio30_rd_A, rd_P(10'h90, i_rv_plic.reg2hw.prio30.q))
+ // assertions for register: prio32
+ `ASSERT(prio32_wr_A, wr_P(10'h98, reg2hw.prio32.q, 1, 'h3, 0))
+ `ASSERT(prio32_rd_A, rd_P(10'h98, reg2hw.prio32.q, 'hffffffff, 0))
- `ASSERT(prio31_wr_A, wr_P(10'h94, i_rv_plic.reg2hw.prio31.q, 1, 'h3))
- `ASSERT(prio31_rd_A, rd_P(10'h94, i_rv_plic.reg2hw.prio31.q))
+ // assertions for register: prio33
+ `ASSERT(prio33_wr_A, wr_P(10'h9c, reg2hw.prio33.q, 1, 'h3, 0))
+ `ASSERT(prio33_rd_A, rd_P(10'h9c, reg2hw.prio33.q, 'hffffffff, 0))
- `ASSERT(prio32_wr_A, wr_P(10'h98, i_rv_plic.reg2hw.prio32.q, 1, 'h3))
- `ASSERT(prio32_rd_A, rd_P(10'h98, i_rv_plic.reg2hw.prio32.q))
+ // assertions for register: prio34
+ `ASSERT(prio34_wr_A, wr_P(10'ha0, reg2hw.prio34.q, 1, 'h3, 0))
+ `ASSERT(prio34_rd_A, rd_P(10'ha0, reg2hw.prio34.q, 'hffffffff, 0))
- `ASSERT(prio33_wr_A, wr_P(10'h9c, i_rv_plic.reg2hw.prio33.q, 1, 'h3))
- `ASSERT(prio33_rd_A, rd_P(10'h9c, i_rv_plic.reg2hw.prio33.q))
+ // assertions for register: prio35
+ `ASSERT(prio35_wr_A, wr_P(10'ha4, reg2hw.prio35.q, 1, 'h3, 0))
+ `ASSERT(prio35_rd_A, rd_P(10'ha4, reg2hw.prio35.q, 'hffffffff, 0))
- `ASSERT(prio34_wr_A, wr_P(10'ha0, i_rv_plic.reg2hw.prio34.q, 1, 'h3))
- `ASSERT(prio34_rd_A, rd_P(10'ha0, i_rv_plic.reg2hw.prio34.q))
+ // assertions for register: prio36
+ `ASSERT(prio36_wr_A, wr_P(10'ha8, reg2hw.prio36.q, 1, 'h3, 0))
+ `ASSERT(prio36_rd_A, rd_P(10'ha8, reg2hw.prio36.q, 'hffffffff, 0))
- `ASSERT(prio35_wr_A, wr_P(10'ha4, i_rv_plic.reg2hw.prio35.q, 1, 'h3))
- `ASSERT(prio35_rd_A, rd_P(10'ha4, i_rv_plic.reg2hw.prio35.q))
+ // assertions for register: prio37
+ `ASSERT(prio37_wr_A, wr_P(10'hac, reg2hw.prio37.q, 1, 'h3, 0))
+ `ASSERT(prio37_rd_A, rd_P(10'hac, reg2hw.prio37.q, 'hffffffff, 0))
- `ASSERT(prio36_wr_A, wr_P(10'ha8, i_rv_plic.reg2hw.prio36.q, 1, 'h3))
- `ASSERT(prio36_rd_A, rd_P(10'ha8, i_rv_plic.reg2hw.prio36.q))
+ // assertions for register: prio38
+ `ASSERT(prio38_wr_A, wr_P(10'hb0, reg2hw.prio38.q, 1, 'h3, 0))
+ `ASSERT(prio38_rd_A, rd_P(10'hb0, reg2hw.prio38.q, 'hffffffff, 0))
- `ASSERT(prio37_wr_A, wr_P(10'hac, i_rv_plic.reg2hw.prio37.q, 1, 'h3))
- `ASSERT(prio37_rd_A, rd_P(10'hac, i_rv_plic.reg2hw.prio37.q))
+ // assertions for register: prio39
+ `ASSERT(prio39_wr_A, wr_P(10'hb4, reg2hw.prio39.q, 1, 'h3, 0))
+ `ASSERT(prio39_rd_A, rd_P(10'hb4, reg2hw.prio39.q, 'hffffffff, 0))
- `ASSERT(prio38_wr_A, wr_P(10'hb0, i_rv_plic.reg2hw.prio38.q, 1, 'h3))
- `ASSERT(prio38_rd_A, rd_P(10'hb0, i_rv_plic.reg2hw.prio38.q))
+ // assertions for register: prio40
+ `ASSERT(prio40_wr_A, wr_P(10'hb8, reg2hw.prio40.q, 1, 'h3, 0))
+ `ASSERT(prio40_rd_A, rd_P(10'hb8, reg2hw.prio40.q, 'hffffffff, 0))
- `ASSERT(prio39_wr_A, wr_P(10'hb4, i_rv_plic.reg2hw.prio39.q, 1, 'h3))
- `ASSERT(prio39_rd_A, rd_P(10'hb4, i_rv_plic.reg2hw.prio39.q))
-
- `ASSERT(prio40_wr_A, wr_P(10'hb8, i_rv_plic.reg2hw.prio40.q, 1, 'h3))
- `ASSERT(prio40_rd_A, rd_P(10'hb8, i_rv_plic.reg2hw.prio40.q))
-
- `ASSERT(prio41_wr_A, wr_P(10'hbc, i_rv_plic.reg2hw.prio41.q, 1, 'h3))
- `ASSERT(prio41_rd_A, rd_P(10'hbc, i_rv_plic.reg2hw.prio41.q))
+ // assertions for register: prio41
+ `ASSERT(prio41_wr_A, wr_P(10'hbc, reg2hw.prio41.q, 1, 'h3, 0))
+ `ASSERT(prio41_rd_A, rd_P(10'hbc, reg2hw.prio41.q, 'hffffffff, 0))
- `ASSERT(prio42_wr_A, wr_P(10'hc0, i_rv_plic.reg2hw.prio42.q, 1, 'h3))
- `ASSERT(prio42_rd_A, rd_P(10'hc0, i_rv_plic.reg2hw.prio42.q))
+ // assertions for register: prio42
+ `ASSERT(prio42_wr_A, wr_P(10'hc0, reg2hw.prio42.q, 1, 'h3, 0))
+ `ASSERT(prio42_rd_A, rd_P(10'hc0, reg2hw.prio42.q, 'hffffffff, 0))
- `ASSERT(prio43_wr_A, wr_P(10'hc4, i_rv_plic.reg2hw.prio43.q, 1, 'h3))
- `ASSERT(prio43_rd_A, rd_P(10'hc4, i_rv_plic.reg2hw.prio43.q))
+ // assertions for register: prio43
+ `ASSERT(prio43_wr_A, wr_P(10'hc4, reg2hw.prio43.q, 1, 'h3, 0))
+ `ASSERT(prio43_rd_A, rd_P(10'hc4, reg2hw.prio43.q, 'hffffffff, 0))
- `ASSERT(prio44_wr_A, wr_P(10'hc8, i_rv_plic.reg2hw.prio44.q, 1, 'h3))
- `ASSERT(prio44_rd_A, rd_P(10'hc8, i_rv_plic.reg2hw.prio44.q))
+ // assertions for register: prio44
+ `ASSERT(prio44_wr_A, wr_P(10'hc8, reg2hw.prio44.q, 1, 'h3, 0))
+ `ASSERT(prio44_rd_A, rd_P(10'hc8, reg2hw.prio44.q, 'hffffffff, 0))
- `ASSERT(prio45_wr_A, wr_P(10'hcc, i_rv_plic.reg2hw.prio45.q, 1, 'h3))
- `ASSERT(prio45_rd_A, rd_P(10'hcc, i_rv_plic.reg2hw.prio45.q))
+ // assertions for register: prio45
+ `ASSERT(prio45_wr_A, wr_P(10'hcc, reg2hw.prio45.q, 1, 'h3, 0))
+ `ASSERT(prio45_rd_A, rd_P(10'hcc, reg2hw.prio45.q, 'hffffffff, 0))
- `ASSERT(prio46_wr_A, wr_P(10'hd0, i_rv_plic.reg2hw.prio46.q, 1, 'h3))
- `ASSERT(prio46_rd_A, rd_P(10'hd0, i_rv_plic.reg2hw.prio46.q))
+ // assertions for register: prio46
+ `ASSERT(prio46_wr_A, wr_P(10'hd0, reg2hw.prio46.q, 1, 'h3, 0))
+ `ASSERT(prio46_rd_A, rd_P(10'hd0, reg2hw.prio46.q, 'hffffffff, 0))
- `ASSERT(prio47_wr_A, wr_P(10'hd4, i_rv_plic.reg2hw.prio47.q, 1, 'h3))
- `ASSERT(prio47_rd_A, rd_P(10'hd4, i_rv_plic.reg2hw.prio47.q))
+ // assertions for register: prio47
+ `ASSERT(prio47_wr_A, wr_P(10'hd4, reg2hw.prio47.q, 1, 'h3, 0))
+ `ASSERT(prio47_rd_A, rd_P(10'hd4, reg2hw.prio47.q, 'hffffffff, 0))
- `ASSERT(prio48_wr_A, wr_P(10'hd8, i_rv_plic.reg2hw.prio48.q, 1, 'h3))
- `ASSERT(prio48_rd_A, rd_P(10'hd8, i_rv_plic.reg2hw.prio48.q))
+ // assertions for register: prio48
+ `ASSERT(prio48_wr_A, wr_P(10'hd8, reg2hw.prio48.q, 1, 'h3, 0))
+ `ASSERT(prio48_rd_A, rd_P(10'hd8, reg2hw.prio48.q, 'hffffffff, 0))
- `ASSERT(prio49_wr_A, wr_P(10'hdc, i_rv_plic.reg2hw.prio49.q, 1, 'h3))
- `ASSERT(prio49_rd_A, rd_P(10'hdc, i_rv_plic.reg2hw.prio49.q))
+ // assertions for register: prio49
+ `ASSERT(prio49_wr_A, wr_P(10'hdc, reg2hw.prio49.q, 1, 'h3, 0))
+ `ASSERT(prio49_rd_A, rd_P(10'hdc, reg2hw.prio49.q, 'hffffffff, 0))
- `ASSERT(prio50_wr_A, wr_P(10'he0, i_rv_plic.reg2hw.prio50.q, 1, 'h3))
- `ASSERT(prio50_rd_A, rd_P(10'he0, i_rv_plic.reg2hw.prio50.q))
+ // assertions for register: prio50
+ `ASSERT(prio50_wr_A, wr_P(10'he0, reg2hw.prio50.q, 1, 'h3, 0))
+ `ASSERT(prio50_rd_A, rd_P(10'he0, reg2hw.prio50.q, 'hffffffff, 0))
- `ASSERT(prio51_wr_A, wr_P(10'he4, i_rv_plic.reg2hw.prio51.q, 1, 'h3))
- `ASSERT(prio51_rd_A, rd_P(10'he4, i_rv_plic.reg2hw.prio51.q))
+ // assertions for register: prio51
+ `ASSERT(prio51_wr_A, wr_P(10'he4, reg2hw.prio51.q, 1, 'h3, 0))
+ `ASSERT(prio51_rd_A, rd_P(10'he4, reg2hw.prio51.q, 'hffffffff, 0))
- `ASSERT(prio52_wr_A, wr_P(10'he8, i_rv_plic.reg2hw.prio52.q, 1, 'h3))
- `ASSERT(prio52_rd_A, rd_P(10'he8, i_rv_plic.reg2hw.prio52.q))
+ // assertions for register: prio52
+ `ASSERT(prio52_wr_A, wr_P(10'he8, reg2hw.prio52.q, 1, 'h3, 0))
+ `ASSERT(prio52_rd_A, rd_P(10'he8, reg2hw.prio52.q, 'hffffffff, 0))
- `ASSERT(prio53_wr_A, wr_P(10'hec, i_rv_plic.reg2hw.prio53.q, 1, 'h3))
- `ASSERT(prio53_rd_A, rd_P(10'hec, i_rv_plic.reg2hw.prio53.q))
+ // assertions for register: prio53
+ `ASSERT(prio53_wr_A, wr_P(10'hec, reg2hw.prio53.q, 1, 'h3, 0))
+ `ASSERT(prio53_rd_A, rd_P(10'hec, reg2hw.prio53.q, 'hffffffff, 0))
- `ASSERT(prio54_wr_A, wr_P(10'hf0, i_rv_plic.reg2hw.prio54.q, 1, 'h3))
- `ASSERT(prio54_rd_A, rd_P(10'hf0, i_rv_plic.reg2hw.prio54.q))
+ // assertions for register: prio54
+ `ASSERT(prio54_wr_A, wr_P(10'hf0, reg2hw.prio54.q, 1, 'h3, 0))
+ `ASSERT(prio54_rd_A, rd_P(10'hf0, reg2hw.prio54.q, 'hffffffff, 0))
- `ASSERT(prio55_wr_A, wr_P(10'hf4, i_rv_plic.reg2hw.prio55.q, 1, 'h3))
- `ASSERT(prio55_rd_A, rd_P(10'hf4, i_rv_plic.reg2hw.prio55.q))
+ // assertions for register: prio55
+ `ASSERT(prio55_wr_A, wr_P(10'hf4, reg2hw.prio55.q, 1, 'h3, 0))
+ `ASSERT(prio55_rd_A, rd_P(10'hf4, reg2hw.prio55.q, 'hffffffff, 0))
- `ASSERT(prio56_wr_A, wr_P(10'hf8, i_rv_plic.reg2hw.prio56.q, 1, 'h3))
- `ASSERT(prio56_rd_A, rd_P(10'hf8, i_rv_plic.reg2hw.prio56.q))
+ // assertions for register: prio56
+ `ASSERT(prio56_wr_A, wr_P(10'hf8, reg2hw.prio56.q, 1, 'h3, 0))
+ `ASSERT(prio56_rd_A, rd_P(10'hf8, reg2hw.prio56.q, 'hffffffff, 0))
- `ASSERT(prio57_wr_A, wr_P(10'hfc, i_rv_plic.reg2hw.prio57.q, 1, 'h3))
- `ASSERT(prio57_rd_A, rd_P(10'hfc, i_rv_plic.reg2hw.prio57.q))
+ // assertions for register: prio57
+ `ASSERT(prio57_wr_A, wr_P(10'hfc, reg2hw.prio57.q, 1, 'h3, 0))
+ `ASSERT(prio57_rd_A, rd_P(10'hfc, reg2hw.prio57.q, 'hffffffff, 0))
- `ASSERT(prio58_wr_A, wr_P(10'h100, i_rv_plic.reg2hw.prio58.q, 1, 'h3))
- `ASSERT(prio58_rd_A, rd_P(10'h100, i_rv_plic.reg2hw.prio58.q))
+ // assertions for register: prio58
+ `ASSERT(prio58_wr_A, wr_P(10'h100, reg2hw.prio58.q, 1, 'h3, 0))
+ `ASSERT(prio58_rd_A, rd_P(10'h100, reg2hw.prio58.q, 'hffffffff, 0))
- `ASSERT(prio59_wr_A, wr_P(10'h104, i_rv_plic.reg2hw.prio59.q, 1, 'h3))
- `ASSERT(prio59_rd_A, rd_P(10'h104, i_rv_plic.reg2hw.prio59.q))
+ // assertions for register: prio59
+ `ASSERT(prio59_wr_A, wr_P(10'h104, reg2hw.prio59.q, 1, 'h3, 0))
+ `ASSERT(prio59_rd_A, rd_P(10'h104, reg2hw.prio59.q, 'hffffffff, 0))
- `ASSERT(prio60_wr_A, wr_P(10'h108, i_rv_plic.reg2hw.prio60.q, 1, 'h3))
- `ASSERT(prio60_rd_A, rd_P(10'h108, i_rv_plic.reg2hw.prio60.q))
+ // assertions for register: prio60
+ `ASSERT(prio60_wr_A, wr_P(10'h108, reg2hw.prio60.q, 1, 'h3, 0))
+ `ASSERT(prio60_rd_A, rd_P(10'h108, reg2hw.prio60.q, 'hffffffff, 0))
- `ASSERT(prio61_wr_A, wr_P(10'h10c, i_rv_plic.reg2hw.prio61.q, 1, 'h3))
- `ASSERT(prio61_rd_A, rd_P(10'h10c, i_rv_plic.reg2hw.prio61.q))
+ // assertions for register: prio61
+ `ASSERT(prio61_wr_A, wr_P(10'h10c, reg2hw.prio61.q, 1, 'h3, 0))
+ `ASSERT(prio61_rd_A, rd_P(10'h10c, reg2hw.prio61.q, 'hffffffff, 0))
- `ASSERT(prio62_wr_A, wr_P(10'h110, i_rv_plic.reg2hw.prio62.q, 1, 'h3))
- `ASSERT(prio62_rd_A, rd_P(10'h110, i_rv_plic.reg2hw.prio62.q))
+ // assertions for register: prio62
+ `ASSERT(prio62_wr_A, wr_P(10'h110, reg2hw.prio62.q, 1, 'h3, 0))
+ `ASSERT(prio62_rd_A, rd_P(10'h110, reg2hw.prio62.q, 'hffffffff, 0))
- `ASSERT(prio63_wr_A, wr_P(10'h114, i_rv_plic.reg2hw.prio63.q, 1, 'h3))
- `ASSERT(prio63_rd_A, rd_P(10'h114, i_rv_plic.reg2hw.prio63.q))
+ // assertions for register: prio63
+ `ASSERT(prio63_wr_A, wr_P(10'h114, reg2hw.prio63.q, 1, 'h3, 0))
+ `ASSERT(prio63_rd_A, rd_P(10'h114, reg2hw.prio63.q, 'hffffffff, 0))
- `ASSERT(prio64_wr_A, wr_P(10'h118, i_rv_plic.reg2hw.prio64.q, 1, 'h3))
- `ASSERT(prio64_rd_A, rd_P(10'h118, i_rv_plic.reg2hw.prio64.q))
+ // assertions for register: prio64
+ `ASSERT(prio64_wr_A, wr_P(10'h118, reg2hw.prio64.q, 1, 'h3, 0))
+ `ASSERT(prio64_rd_A, rd_P(10'h118, reg2hw.prio64.q, 'hffffffff, 0))
- `ASSERT(prio65_wr_A, wr_P(10'h11c, i_rv_plic.reg2hw.prio65.q, 1, 'h3))
- `ASSERT(prio65_rd_A, rd_P(10'h11c, i_rv_plic.reg2hw.prio65.q))
+ // assertions for register: prio65
+ `ASSERT(prio65_wr_A, wr_P(10'h11c, reg2hw.prio65.q, 1, 'h3, 0))
+ `ASSERT(prio65_rd_A, rd_P(10'h11c, reg2hw.prio65.q, 'hffffffff, 0))
- `ASSERT(prio66_wr_A, wr_P(10'h120, i_rv_plic.reg2hw.prio66.q, 1, 'h3))
- `ASSERT(prio66_rd_A, rd_P(10'h120, i_rv_plic.reg2hw.prio66.q))
+ // assertions for register: prio66
+ `ASSERT(prio66_wr_A, wr_P(10'h120, reg2hw.prio66.q, 1, 'h3, 0))
+ `ASSERT(prio66_rd_A, rd_P(10'h120, reg2hw.prio66.q, 'hffffffff, 0))
- `ASSERT(prio67_wr_A, wr_P(10'h124, i_rv_plic.reg2hw.prio67.q, 1, 'h3))
- `ASSERT(prio67_rd_A, rd_P(10'h124, i_rv_plic.reg2hw.prio67.q))
+ // assertions for register: prio67
+ `ASSERT(prio67_wr_A, wr_P(10'h124, reg2hw.prio67.q, 1, 'h3, 0))
+ `ASSERT(prio67_rd_A, rd_P(10'h124, reg2hw.prio67.q, 'hffffffff, 0))
- `ASSERT(prio68_wr_A, wr_P(10'h128, i_rv_plic.reg2hw.prio68.q, 1, 'h3))
- `ASSERT(prio68_rd_A, rd_P(10'h128, i_rv_plic.reg2hw.prio68.q))
+ // assertions for register: prio68
+ `ASSERT(prio68_wr_A, wr_P(10'h128, reg2hw.prio68.q, 1, 'h3, 0))
+ `ASSERT(prio68_rd_A, rd_P(10'h128, reg2hw.prio68.q, 'hffffffff, 0))
- `ASSERT(prio69_wr_A, wr_P(10'h12c, i_rv_plic.reg2hw.prio69.q, 1, 'h3))
- `ASSERT(prio69_rd_A, rd_P(10'h12c, i_rv_plic.reg2hw.prio69.q))
+ // assertions for register: prio69
+ `ASSERT(prio69_wr_A, wr_P(10'h12c, reg2hw.prio69.q, 1, 'h3, 0))
+ `ASSERT(prio69_rd_A, rd_P(10'h12c, reg2hw.prio69.q, 'hffffffff, 0))
- `ASSERT(prio70_wr_A, wr_P(10'h130, i_rv_plic.reg2hw.prio70.q, 1, 'h3))
- `ASSERT(prio70_rd_A, rd_P(10'h130, i_rv_plic.reg2hw.prio70.q))
+ // assertions for register: prio70
+ `ASSERT(prio70_wr_A, wr_P(10'h130, reg2hw.prio70.q, 1, 'h3, 0))
+ `ASSERT(prio70_rd_A, rd_P(10'h130, reg2hw.prio70.q, 'hffffffff, 0))
- `ASSERT(prio71_wr_A, wr_P(10'h134, i_rv_plic.reg2hw.prio71.q, 1, 'h3))
- `ASSERT(prio71_rd_A, rd_P(10'h134, i_rv_plic.reg2hw.prio71.q))
+ // assertions for register: prio71
+ `ASSERT(prio71_wr_A, wr_P(10'h134, reg2hw.prio71.q, 1, 'h3, 0))
+ `ASSERT(prio71_rd_A, rd_P(10'h134, reg2hw.prio71.q, 'hffffffff, 0))
- `ASSERT(prio72_wr_A, wr_P(10'h138, i_rv_plic.reg2hw.prio72.q, 1, 'h3))
- `ASSERT(prio72_rd_A, rd_P(10'h138, i_rv_plic.reg2hw.prio72.q))
+ // assertions for register: prio72
+ `ASSERT(prio72_wr_A, wr_P(10'h138, reg2hw.prio72.q, 1, 'h3, 0))
+ `ASSERT(prio72_rd_A, rd_P(10'h138, reg2hw.prio72.q, 'hffffffff, 0))
- `ASSERT(prio73_wr_A, wr_P(10'h13c, i_rv_plic.reg2hw.prio73.q, 1, 'h3))
- `ASSERT(prio73_rd_A, rd_P(10'h13c, i_rv_plic.reg2hw.prio73.q))
+ // assertions for register: prio73
+ `ASSERT(prio73_wr_A, wr_P(10'h13c, reg2hw.prio73.q, 1, 'h3, 0))
+ `ASSERT(prio73_rd_A, rd_P(10'h13c, reg2hw.prio73.q, 'hffffffff, 0))
- `ASSERT(prio74_wr_A, wr_P(10'h140, i_rv_plic.reg2hw.prio74.q, 1, 'h3))
- `ASSERT(prio74_rd_A, rd_P(10'h140, i_rv_plic.reg2hw.prio74.q))
+ // assertions for register: prio74
+ `ASSERT(prio74_wr_A, wr_P(10'h140, reg2hw.prio74.q, 1, 'h3, 0))
+ `ASSERT(prio74_rd_A, rd_P(10'h140, reg2hw.prio74.q, 'hffffffff, 0))
- `ASSERT(prio75_wr_A, wr_P(10'h144, i_rv_plic.reg2hw.prio75.q, 1, 'h3))
- `ASSERT(prio75_rd_A, rd_P(10'h144, i_rv_plic.reg2hw.prio75.q))
+ // assertions for register: prio75
+ `ASSERT(prio75_wr_A, wr_P(10'h144, reg2hw.prio75.q, 1, 'h3, 0))
+ `ASSERT(prio75_rd_A, rd_P(10'h144, reg2hw.prio75.q, 'hffffffff, 0))
- `ASSERT(prio76_wr_A, wr_P(10'h148, i_rv_plic.reg2hw.prio76.q, 1, 'h3))
- `ASSERT(prio76_rd_A, rd_P(10'h148, i_rv_plic.reg2hw.prio76.q))
+ // assertions for register: prio76
+ `ASSERT(prio76_wr_A, wr_P(10'h148, reg2hw.prio76.q, 1, 'h3, 0))
+ `ASSERT(prio76_rd_A, rd_P(10'h148, reg2hw.prio76.q, 'hffffffff, 0))
- `ASSERT(prio77_wr_A, wr_P(10'h14c, i_rv_plic.reg2hw.prio77.q, 1, 'h3))
- `ASSERT(prio77_rd_A, rd_P(10'h14c, i_rv_plic.reg2hw.prio77.q))
+ // assertions for register: prio77
+ `ASSERT(prio77_wr_A, wr_P(10'h14c, reg2hw.prio77.q, 1, 'h3, 0))
+ `ASSERT(prio77_rd_A, rd_P(10'h14c, reg2hw.prio77.q, 'hffffffff, 0))
- `ASSERT(prio78_wr_A, wr_P(10'h150, i_rv_plic.reg2hw.prio78.q, 1, 'h3))
- `ASSERT(prio78_rd_A, rd_P(10'h150, i_rv_plic.reg2hw.prio78.q))
+ // assertions for register: prio78
+ `ASSERT(prio78_wr_A, wr_P(10'h150, reg2hw.prio78.q, 1, 'h3, 0))
+ `ASSERT(prio78_rd_A, rd_P(10'h150, reg2hw.prio78.q, 'hffffffff, 0))
- `ASSERT(prio79_wr_A, wr_P(10'h154, i_rv_plic.reg2hw.prio79.q, 1, 'h3))
- `ASSERT(prio79_rd_A, rd_P(10'h154, i_rv_plic.reg2hw.prio79.q))
+ // assertions for register: prio79
+ `ASSERT(prio79_wr_A, wr_P(10'h154, reg2hw.prio79.q, 1, 'h3, 0))
+ `ASSERT(prio79_rd_A, rd_P(10'h154, reg2hw.prio79.q, 'hffffffff, 0))
- `ASSERT(prio80_wr_A, wr_P(10'h158, i_rv_plic.reg2hw.prio80.q, 1, 'h3))
- `ASSERT(prio80_rd_A, rd_P(10'h158, i_rv_plic.reg2hw.prio80.q))
+ // assertions for register: prio80
+ `ASSERT(prio80_wr_A, wr_P(10'h158, reg2hw.prio80.q, 1, 'h3, 0))
+ `ASSERT(prio80_rd_A, rd_P(10'h158, reg2hw.prio80.q, 'hffffffff, 0))
- `ASSERT(prio81_wr_A, wr_P(10'h15c, i_rv_plic.reg2hw.prio81.q, 1, 'h3))
- `ASSERT(prio81_rd_A, rd_P(10'h15c, i_rv_plic.reg2hw.prio81.q))
+ // assertions for register: prio81
+ `ASSERT(prio81_wr_A, wr_P(10'h15c, reg2hw.prio81.q, 1, 'h3, 0))
+ `ASSERT(prio81_rd_A, rd_P(10'h15c, reg2hw.prio81.q, 'hffffffff, 0))
- `ASSERT(prio82_wr_A, wr_P(10'h160, i_rv_plic.reg2hw.prio82.q, 1, 'h3))
- `ASSERT(prio82_rd_A, rd_P(10'h160, i_rv_plic.reg2hw.prio82.q))
+ // assertions for register: prio82
+ `ASSERT(prio82_wr_A, wr_P(10'h160, reg2hw.prio82.q, 1, 'h3, 0))
+ `ASSERT(prio82_rd_A, rd_P(10'h160, reg2hw.prio82.q, 'hffffffff, 0))
- // define local fpv variable for the multi_reg
+ // define local fpv variable for multi-reg
logic [82:0] ie0_q_fpv;
- for (genvar s = 0; s <= 82; s++) begin : gen_ie0_q
- assign ie0_q_fpv[s] = 1 ?
- i_rv_plic.reg2hw.ie0[s].q : ie0_q_fpv[s];
+ for (genvar s = 0; s < 83; s++) begin : gen_ie0_q
+ assign ie0_q_fpv[((s+1)*1-1):s*1] = reg2hw.ie0[s].q;
end
- `ASSERT(ie00_wr_A, wr_P(10'h200, ie0_q_fpv[31:0], 1, 'hffffffff))
- `ASSERT(ie00_rd_A, rd_P(10'h200, ie0_q_fpv[31:0]))
+ // assertions for register: ie00
+ `ASSERT(ie00_wr_A, wr_P(10'h200, ie0_q_fpv[31:0], 1, 'hffffffff, 0))
+ `ASSERT(ie00_rd_A, rd_P(10'h200, ie0_q_fpv[31:0], 'hffffffff, 0))
+ // assertions for register: ie01
+ `ASSERT(ie01_wr_A, wr_P(10'h204, ie0_q_fpv[63:32], 1, 'hffffffff, 0))
+ `ASSERT(ie01_rd_A, rd_P(10'h204, ie0_q_fpv[63:32], 'hffffffff, 0))
+ // assertions for register: ie02
+ `ASSERT(ie02_wr_A, wr_P(10'h208, ie0_q_fpv[82:64], 1, 'h7ffff, 0))
+ `ASSERT(ie02_rd_A, rd_P(10'h208, ie0_q_fpv[82:64], 'h7ffff, 0))
- `ASSERT(ie01_wr_A, wr_P(10'h204, ie0_q_fpv[63:32], 1, 'hffffffff))
- `ASSERT(ie01_rd_A, rd_P(10'h204, ie0_q_fpv[63:32]))
+ // assertions for register: threshold0
+ `ASSERT(threshold0_wr_A, wr_P(10'h20c, reg2hw.threshold0.q, 1, 'h3, 0))
+ `ASSERT(threshold0_rd_A, rd_P(10'h20c, reg2hw.threshold0.q, 'hffffffff, 0))
- `ASSERT(ie02_wr_A, wr_P(10'h208, ie0_q_fpv[82:64], 1, 'h7ffff))
- `ASSERT(ie02_rd_A, rd_P(10'h208, ie0_q_fpv[82:64]))
+ // assertions for register: cc0
+ `ASSERT(cc0_wr_A, wr_ext_P(10'h210, reg2hw.cc0.q, 1, 'h7f, 0))
+ `ASSERT(cc0_rd_A, rd_ext_P(10'h210, hw2reg.cc0.d, 'hffffffff, 0))
- `ASSERT(threshold0_wr_A, wr_P(10'h20c, i_rv_plic.reg2hw.threshold0.q, 1, 'h3))
- `ASSERT(threshold0_rd_A, rd_P(10'h20c, i_rv_plic.reg2hw.threshold0.q))
+ // assertions for register: msip0
+ `ASSERT(msip0_wr_A, wr_P(10'h214, reg2hw.msip0.q, 1, 'h1, 0))
+ `ASSERT(msip0_rd_A, rd_P(10'h214, reg2hw.msip0.q, 'hffffffff, 0))
- `ASSERT(cc0_wr_A, wr_ext_P(10'h210, i_rv_plic.reg2hw.cc0.q, 1, 'h7f))
- `ASSERT(cc0_rd_A, rd_ext_P(10'h210, i_rv_plic.hw2reg.cc0.d))
-
- `ASSERT(msip0_wr_A, wr_P(10'h214, i_rv_plic.reg2hw.msip0.q, 1, 'h1))
- `ASSERT(msip0_rd_A, rd_P(10'h214, i_rv_plic.reg2hw.msip0.q))
endmodule
diff --git a/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_fpv.sv b/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_fpv.sv
index 2b18edb..325524e 100644
--- a/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_fpv.sv
+++ b/hw/top_earlgrey/ip/rv_plic/fpv/autogen/rv_plic_fpv.sv
@@ -22,7 +22,7 @@
// several instances with different NumSrc and NumTarget configs here
// (in a similar way as this has been done in prim_lfsr_fpv)
// for (genvar k = 0; k < NumInstances; k++) begin : geNumInstances
- rv_plic i_rv_plic (
+ rv_plic dut (
.clk_i ,
.rst_ni ,
.tl_i (tl_i[0]),