@@ -659,30 +659,31 @@ module cv32e40x_cs_registers import cv32e40x_pkg::*;
659
659
always_comb
660
660
begin
661
661
662
- jvt_n = csr_wdata_int & CSR_JVT_MASK ;
662
+ jvt_n = csr_next_value ( csr_wdata_int, CSR_JVT_MASK , JVT_RESET_VAL ) ;
663
663
jvt_we = 1'b0 ;
664
664
665
- mscratch_n = csr_wdata_int;
665
+ mscratch_n = csr_next_value ( csr_wdata_int, CSR_MSCRATCH_MASK , MSCRATCH_RESET_VAL ) ;
666
666
mscratch_we = 1'b0 ;
667
667
668
- mepc_n = csr_wdata_int & CSR_MEPC_MASK ;
668
+ mepc_n = csr_next_value ( csr_wdata_int, CSR_MEPC_MASK , MEPC_RESET_VAL ) ;
669
669
mepc_we = 1'b0 ;
670
670
671
- dpc_n = csr_wdata_int & CSR_DPC_MASK ;
671
+ dpc_n = csr_next_value ( csr_wdata_int, CSR_DPC_MASK , DPC_RESET_VAL ) ;
672
672
dpc_we = 1'b0 ;
673
673
674
- dcsr_n = '{
675
- xdebugver : dcsr_rdata.xdebugver,
676
- ebreakm : csr_wdata_int[15 ],
677
- ebreaku : dcsr_ebreaku_resolve(dcsr_rdata.ebreaku, csr_wdata_int[DCSR_EBREAKU_BIT ]),
678
- stepie : csr_wdata_int[11 ],
679
- stopcount : csr_wdata_int[10 ],
680
- mprven : dcsr_rdata.mprven,
681
- step : csr_wdata_int[2 ],
682
- prv : dcsr_prv_resolve(dcsr_rdata.prv, csr_wdata_int[DCSR_PRV_BIT_HIGH : DCSR_PRV_BIT_LOW ]),
683
- cause : dcsr_rdata.cause,
684
- default : 'd0
685
- } ;
674
+ dcsr_n = csr_next_value (dcsr_t'{
675
+ xdebugver : dcsr_rdata.xdebugver,
676
+ ebreakm : csr_wdata_int[15 ],
677
+ ebreaku : dcsr_ebreaku_resolve (dcsr_rdata.ebreaku, csr_wdata_int[DCSR_EBREAKU_BIT ]),
678
+ stepie : csr_wdata_int[11 ],
679
+ stopcount : csr_wdata_int[10 ],
680
+ mprven : dcsr_rdata.mprven,
681
+ step : csr_wdata_int[2 ],
682
+ prv : dcsr_prv_resolve (dcsr_rdata.prv, csr_wdata_int[DCSR_PRV_BIT_HIGH : DCSR_PRV_BIT_LOW ]),
683
+ cause : dcsr_rdata.cause,
684
+ default : 'd0
685
+ } ,
686
+ CSR_DCSR_MASK , DCSR_RESET_VAL );
686
687
dcsr_we = 1'b0 ;
687
688
688
689
dscratch0_n = csr_wdata_int;
@@ -1224,8 +1225,9 @@ module cv32e40x_cs_registers import cv32e40x_pkg::*;
1224
1225
1225
1226
cv32e40x_csr
1226
1227
# (
1227
- .WIDTH (32 ),
1228
- .RESETVALUE (32'd0 )
1228
+ .WIDTH (32 ),
1229
+ .MASK (CSR_JVT_MASK ),
1230
+ .RESETVALUE (JVT_RESET_VAL )
1229
1231
)
1230
1232
jvt_csr_i
1231
1233
(
@@ -1268,7 +1270,8 @@ module cv32e40x_cs_registers import cv32e40x_pkg::*;
1268
1270
1269
1271
cv32e40x_csr
1270
1272
# (
1271
- .WIDTH (32 ),
1273
+ .WIDTH (32 ),
1274
+ .MASK (CSR_DCSR_MASK ),
1272
1275
.RESETVALUE (DCSR_RESET_VAL )
1273
1276
)
1274
1277
dcsr_csr_i
@@ -1282,8 +1285,9 @@ module cv32e40x_cs_registers import cv32e40x_pkg::*;
1282
1285
1283
1286
cv32e40x_csr
1284
1287
# (
1285
- .WIDTH (32 ),
1286
- .RESETVALUE (32'd0 )
1288
+ .WIDTH (32 ),
1289
+ .MASK (CSR_DPC_MASK ),
1290
+ .RESETVALUE (DPC_RESET_VAL )
1287
1291
)
1288
1292
dpc_csr_i
1289
1293
(
@@ -1303,8 +1307,9 @@ module cv32e40x_cs_registers import cv32e40x_pkg::*;
1303
1307
1304
1308
cv32e40x_csr
1305
1309
# (
1306
- .WIDTH (32 ),
1307
- .RESETVALUE (32'd0 )
1310
+ .WIDTH (32 ),
1311
+ .MASK (CSR_MEPC_MASK ),
1312
+ .RESETVALUE (MEPC_RESET_VAL )
1308
1313
)
1309
1314
mepc_csr_i
1310
1315
(
@@ -1317,8 +1322,9 @@ module cv32e40x_cs_registers import cv32e40x_pkg::*;
1317
1322
1318
1323
cv32e40x_csr
1319
1324
# (
1320
- .WIDTH (32 ),
1321
- .RESETVALUE (32'd0 )
1325
+ .WIDTH (32 ),
1326
+ .MASK (CSR_MSCRATCH_MASK ),
1327
+ .RESETVALUE (MSCRATCH_RESET_VAL )
1322
1328
)
1323
1329
mscratch_csr_i
1324
1330
(
0 commit comments