Skip to content

Commit 13ceed8

Browse files
authored
Merge pull request chipsalliance#341 from antmicro/packed_range_custom_wire
Packed range custom wire
2 parents a01b72b + 050eea2 commit 13ceed8

File tree

2 files changed

+1
-144
lines changed

2 files changed

+1
-144
lines changed

uhdm-tests/opentitan/0001-Add-opentitan-patch-for-uhdm.patch

Lines changed: 0 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -449,40 +449,6 @@ index 5324b4978..a1a858232 100644
449449
} reg2hw_wrap_t;
450450

451451
endpackage : alert_pkg
452-
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl.sv
453-
index 6b573e1b7..6a4f5b30e 100644
454-
--- a/hw/ip/flash_ctrl/rtl/flash_ctrl.sv
455-
+++ b/hw/ip/flash_ctrl/rtl/flash_ctrl.sv
456-
@@ -309,20 +309,20 @@ module flash_ctrl import flash_ctrl_pkg::*; (
457-
end
458-
459-
// extra region is the default region
460-
- flash_ctrl_reg2hw_mp_region_cfg_mreg_t [MpRegions:0] region_cfgs;
461-
+ logic [MpRegions*24:0] region_cfgs;
462-
463-
- assign region_cfgs[MpRegions-1:0] = reg2hw.mp_region_cfg[MpRegions-1:0];
464-
+ assign region_cfgs[(MpRegions - 1)*24-1:0] = reg2hw.mp_region_cfg[MpRegions*24-1:0];
465-
466-
//default region
467-
- assign region_cfgs[MpRegions].base.q = '0;
468-
- assign region_cfgs[MpRegions].size.q = NumBanks * PagesPerBank;
469-
- assign region_cfgs[MpRegions].en.q = 1'b1;
470-
- assign region_cfgs[MpRegions].rd_en.q = reg2hw.default_region.rd_en.q;
471-
- assign region_cfgs[MpRegions].prog_en.q = reg2hw.default_region.prog_en.q;
472-
- assign region_cfgs[MpRegions].erase_en.q = reg2hw.default_region.erase_en.q;
473-
+ assign region_cfgs[(MpRegions - 1)*24+19:(MpRegions - 1)*24+11] = '0;
474-
+ assign region_cfgs[(MpRegions - 1)*24+10:(MpRegions - 1)*24+1] = NumBanks * PagesPerBank;
475-
+ assign region_cfgs[(MpRegions - 1)*24+23] = 1'b1;
476-
+ assign region_cfgs[(MpRegions - 1)*24+22] = reg2hw.default_region.rd_en.q;
477-
+ assign region_cfgs[(MpRegions - 1)*24+21] = reg2hw.default_region.prog_en.q;
478-
+ assign region_cfgs[(MpRegions - 1)*24+20] = reg2hw.default_region.erase_en.q;
479-
// we are allowed to set default accessibility of data partitions
480-
// however info partitions default to inaccessible
481-
- assign region_cfgs[MpRegions].partition.q = FlashPartData;
482-
+ assign region_cfgs[(MpRegions - 1)*24+0] = FlashPartData;
483-
484-
flash_part_e flash_part_sel;
485-
assign flash_part_sel = flash_part_e'(reg2hw.control.partition_sel.q);
486452
diff --git a/hw/ip/padctrl/rtl/padring.sv b/hw/ip/padctrl/rtl/padring.sv
487453
index fc8b3d183..2b94b0d67 100644
488454
--- a/hw/ip/padctrl/rtl/padring.sv
@@ -556,115 +522,6 @@ index 962d3b559..9d5a10c8c 100644
556522
`endif
557523
end
558524

559-
diff --git a/hw/ip/rv_timer/rtl/rv_timer.sv b/hw/ip/rv_timer/rtl/rv_timer.sv
560-
index 9b939eedd..a4c91c238 100644
561-
--- a/hw/ip/rv_timer/rtl/rv_timer.sv
562-
+++ b/hw/ip/rv_timer/rtl/rv_timer.sv
563-
@@ -31,10 +31,10 @@ module rv_timer (
564-
565-
logic [N_HARTS-1:0] tick;
566-
567-
- logic [63:0] mtime_d [N_HARTS];
568-
- logic [63:0] mtime [N_HARTS];
569-
- logic [63:0] mtimecmp [N_HARTS][N_TIMERS]; // Only [harts][0] is connected to mtimecmp CSRs
570-
- logic mtimecmp_update [N_HARTS][N_TIMERS];
571-
+ logic [63:0] mtime_d ;
572-
+ logic [63:0] mtime ;
573-
+ logic [63:0] mtimecmp; // Only [harts][0] is connected to mtimecmp CSRs
574-
+ logic mtimecmp_update;
575-
576-
logic [N_HARTS*N_TIMERS-1:0] intr_timer_set;
577-
logic [N_HARTS*N_TIMERS-1:0] intr_timer_en;
578-
@@ -52,25 +52,25 @@ module rv_timer (
579-
580-
// Once reggen supports nested multireg, the following can be automated. For the moment, it must
581-
// be connected manually.
582-
- assign active[0] = reg2hw.ctrl[0].q;
583-
+ assign active[0] = reg2hw.ctrl.q;
584-
assign prescaler = '{reg2hw.cfg0.prescale.q};
585-
assign step = '{reg2hw.cfg0.step.q};
586-
587-
assign hw2reg.timer_v_upper0.de = tick[0];
588-
assign hw2reg.timer_v_lower0.de = tick[0];
589-
- assign hw2reg.timer_v_upper0.d = mtime_d[0][63:32];
590-
- assign hw2reg.timer_v_lower0.d = mtime_d[0][31: 0];
591-
- assign mtime[0] = {reg2hw.timer_v_upper0.q, reg2hw.timer_v_lower0.q};
592-
+ assign hw2reg.timer_v_upper0.d = mtime_d[63:32];
593-
+ assign hw2reg.timer_v_lower0.d = mtime_d[31: 0];
594-
+ assign mtime = {reg2hw.timer_v_upper0.q, reg2hw.timer_v_lower0.q};
595-
assign mtimecmp = '{'{{reg2hw.compare_upper0_0.q,reg2hw.compare_lower0_0.q}}};
596-
- assign mtimecmp_update[0][0] = reg2hw.compare_upper0_0.qe | reg2hw.compare_lower0_0.qe;
597-
+ assign mtimecmp_update = reg2hw.compare_upper0_0.qe | reg2hw.compare_lower0_0.qe;
598-
599-
assign intr_timer_expired_0_0_o = intr_out[0];
600-
- assign intr_timer_en = reg2hw.intr_enable0[0].q;
601-
- assign intr_timer_state_q = reg2hw.intr_state0[0].q;
602-
- assign intr_timer_test_q = reg2hw.intr_test0[0].q;
603-
- assign intr_timer_test_qe = reg2hw.intr_test0[0].qe;
604-
- assign hw2reg.intr_state0[0].de = intr_timer_state_de | mtimecmp_update[0][0];
605-
- assign hw2reg.intr_state0[0].d = intr_timer_state_d & ~mtimecmp_update[0][0];
606-
+ assign intr_timer_en = reg2hw.intr_enable0.q;
607-
+ assign intr_timer_state_q = reg2hw.intr_state0.q;
608-
+ assign intr_timer_test_q = reg2hw.intr_test0.q;
609-
+ assign intr_timer_test_qe = reg2hw.intr_test0.qe;
610-
+ assign hw2reg.intr_state0.de = intr_timer_state_de | mtimecmp_update;
611-
+ assign hw2reg.intr_state0.d = intr_timer_state_d & ~mtimecmp_update;
612-
613-
614-
for (genvar h = 0 ; h < N_HARTS ; h++) begin : gen_harts
615-
@@ -96,14 +96,14 @@ module rv_timer (
616-
.rst_ni,
617-
618-
.active (active[h]),
619-
- .prescaler (prescaler[h]),
620-
- .step (step[h]),
621-
+ .prescaler (prescaler),
622-
+ .step (step),
623-
624-
.tick (tick[h]),
625-
626-
- .mtime_d (mtime_d[h]),
627-
- .mtime (mtime[h]),
628-
- .mtimecmp (mtimecmp[h]),
629-
+ .mtime_d (mtime_d),
630-
+ .mtime (mtime),
631-
+ .mtimecmp (mtimecmp),
632-
633-
.intr (intr_timer_set[h*N_TIMERS+:N_TIMERS])
634-
);
635-
diff --git a/hw/ip/rv_timer/rtl/rv_timer_reg_pkg.sv b/hw/ip/rv_timer/rtl/rv_timer_reg_pkg.sv
636-
index 2addad698..37e6d79c4 100644
637-
--- a/hw/ip/rv_timer/rtl/rv_timer_reg_pkg.sv
638-
+++ b/hw/ip/rv_timer/rtl/rv_timer_reg_pkg.sv
639-
@@ -78,15 +78,15 @@ package rv_timer_reg_pkg;
640-
// Register to internal design logic //
641-
///////////////////////////////////////
642-
typedef struct packed {
643-
- rv_timer_reg2hw_ctrl_mreg_t [0:0] ctrl; // [154:154]
644-
+ rv_timer_reg2hw_ctrl_mreg_t ctrl; // [154:154]
645-
rv_timer_reg2hw_cfg0_reg_t cfg0; // [153:134]
646-
rv_timer_reg2hw_timer_v_lower0_reg_t timer_v_lower0; // [133:102]
647-
rv_timer_reg2hw_timer_v_upper0_reg_t timer_v_upper0; // [101:70]
648-
rv_timer_reg2hw_compare_lower0_0_reg_t compare_lower0_0; // [69:37]
649-
rv_timer_reg2hw_compare_upper0_0_reg_t compare_upper0_0; // [36:4]
650-
- rv_timer_reg2hw_intr_enable0_mreg_t [0:0] intr_enable0; // [3:3]
651-
- rv_timer_reg2hw_intr_state0_mreg_t [0:0] intr_state0; // [2:2]
652-
- rv_timer_reg2hw_intr_test0_mreg_t [0:0] intr_test0; // [1:0]
653-
+ rv_timer_reg2hw_intr_enable0_mreg_t intr_enable0; // [3:3]
654-
+ rv_timer_reg2hw_intr_state0_mreg_t intr_state0; // [2:2]
655-
+ rv_timer_reg2hw_intr_test0_mreg_t intr_test0; // [1:0]
656-
} rv_timer_reg2hw_t;
657-
658-
///////////////////////////////////////
659-
@@ -95,7 +95,7 @@ package rv_timer_reg_pkg;
660-
typedef struct packed {
661-
rv_timer_hw2reg_timer_v_lower0_reg_t timer_v_lower0; // [67:36]
662-
rv_timer_hw2reg_timer_v_upper0_reg_t timer_v_upper0; // [35:4]
663-
- rv_timer_hw2reg_intr_state0_mreg_t [0:0] intr_state0; // [3:2]
664-
+ rv_timer_hw2reg_intr_state0_mreg_t intr_state0; // [3:2]
665-
} rv_timer_hw2reg_t;
666-
667-
// Register Address
668525
diff --git a/hw/ip/tlul/rtl/tlul_adapter_sram.sv b/hw/ip/tlul/rtl/tlul_adapter_sram.sv
669526
index 6e2f33191..2820baadd 100644
670527
--- a/hw/ip/tlul/rtl/tlul_adapter_sram.sv

yosys-symbiflow-plugins

0 commit comments

Comments
 (0)