Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
CAOS_HW
HDL_IP
SafeSU
Commits
c24c6810
Commit
c24c6810
authored
Feb 11, 2021
by
Fran
Browse files
Modifications to work with old version lockstep
parent
f5e5060e
Changes
2
Hide whitespace changes
Inline
Side-by-side
docs/ahb_pmu_mem_map.ods
View file @
c24c6810
No preview for this file type
hdl/PMU_raw.sv
View file @
c24c6810
...
...
@@ -255,16 +255,40 @@
end
endgenerate
// Register never set by PMU, only written by master
assign
regs_o
[
BASE_OVERFLOW_MASK
:
END_OVERFLOW_MASK
]
=
regs_i
[
BASE_OVERFLOW_MASK
:
END_OVERFLOW_MASK
];
generate
for
(
x
=
0
;
x
<
N_OVERFLOW_MASK_REGS
;
x
++
)
begin
assign
regs_o
[
BASE_OVERFLOW_MASK
+
x
]
=
regs_i
[
BASE_OVERFLOW_MASK
+
x
];
end
endgenerate
//---- Quota interruption registers
// Register never set by PMU, only written by master
assign
regs_o
[
BASE_QUOTA_MASK
:
END_QUOTA_MASK
]
=
regs_i
[
BASE_QUOTA_MASK
:
END_QUOTA_MASK
];
assign
regs_o
[
BASE_QUOTA_LIMIT
:
END_QUOTA_LIMIT
]
=
regs_i
[
BASE_QUOTA_LIMIT
:
END_QUOTA_LIMIT
];
generate
for
(
x
=
0
;
x
<
N_QUOTA_MASK_REGS
;
x
++
)
begin
assign
regs_o
[
BASE_QUOTA_MASK
+
x
]
=
regs_i
[
BASE_QUOTA_MASK
+
x
];
end
endgenerate
generate
for
(
x
=
0
;
x
<
N_QUOTA_LIMIT_REGS
;
x
++
)
begin
assign
regs_o
[
BASE_QUOTA_LIMIT
+
x
]
=
regs_i
[
BASE_QUOTA_LIMIT
+
x
];
end
endgenerate
//---- MCCU registers
// Register never set by PMU, only written by master
assign
regs_o
[
BASE_MCCU_CFG
:
END_MCCU_CFG
]
=
regs_i
[
BASE_MCCU_CFG
:
END_MCCU_CFG
];
assign
regs_o
[
BASE_MCCU_LIMITS
:
END_MCCU_LIMITS
]
=
regs_i
[
BASE_MCCU_LIMITS
:
END_MCCU_LIMITS
];
assign
regs_o
[
BASE_MCCU_WEIGHTS
:
END_MCCU_WEIGHTS
]
=
regs_i
[
BASE_MCCU_WEIGHTS
:
END_MCCU_WEIGHTS
];
generate
for
(
x
=
0
;
x
<
N_MCCU_CFG
;
x
++
)
begin
assign
regs_o
[
BASE_MCCU_CFG
+
x
]
=
regs_i
[
BASE_MCCU_CFG
+
x
];
end
endgenerate
generate
for
(
x
=
0
;
x
<
N_MCCU_LIMITS
;
x
++
)
begin
assign
regs_o
[
BASE_MCCU_LIMITS
+
x
]
=
regs_i
[
BASE_MCCU_LIMITS
+
x
];
end
endgenerate
generate
for
(
x
=
0
;
x
<
N_MCCU_WEIGHTS
;
x
++
)
begin
assign
regs_o
[
BASE_MCCU_WEIGHTS
+
x
]
=
regs_i
[
BASE_MCCU_WEIGHTS
+
x
];
end
endgenerate
//---- Request Duration Counter (RDC) registers
//core_0
assign
regs_o
[
BASE_RDC_WATERMARK
][
MCCU_WEIGHTS_WIDTH
-
1
:
0
]
=
MCCU_watermark_int
[
0
][
0
]
;
...
...
@@ -389,13 +413,13 @@ end
//be hardcoded to specific corssbars outputs
wire
[
MCCU_N_EVENTS
-
1
:
0
]
MCCU_events_int
[
0
:
MCCU_N_CORES
-
1
];
//core_0
assign
MCCU_events_int
[
0
]
=
{{
events_int
[
5
]
}
,
{
events_int
[
12
]
}}
;
assign
MCCU_events_int
[
0
]
=
{{
events_int
[
7
]
}
,
{
events_int
[
6
]
}}
;
//core_1
assign
MCCU_events_int
[
1
]
=
{{
events_int
[
6
]
}
,
{
events_int
[
9
]
}}
;
assign
MCCU_events_int
[
1
]
=
{{
events_int
[
17
]
}
,
{
events_int
[
16
]
}}
;
//core_2
assign
MCCU_events_int
[
2
]
=
{{
events_int
[
7
]
}
,
{
events_int
[
1
0
]
}}
;
assign
MCCU_events_int
[
2
]
=
{{
events_int
[
20
]
}
,
{
events_int
[
1
8
]
}}
;
//core_3
assign
MCCU_events_int
[
3
]
=
{{
events_int
[
8
]
}
,
{
events_int
[
1
1
]
}}
;
assign
MCCU_events_int
[
3
]
=
{{
events_int
[
22
]
}
,
{
events_int
[
2
1
]
}}
;
//NON-PARAMETRIC This can be autogenenerated TODO
wire
[
MCCU_WEIGHTS_WIDTH
-
1
:
0
]
MCCU_events_weights_int
[
0
:
MCCU_N_CORES
-
1
]
...
...
@@ -487,7 +511,16 @@ end
wire
RDC_softrst
;
assign
RDC_softrst
=
regs_i
[
BASE_MCCU_CFG
][
7
];
//register enable to solve Hazards
reg
RDC_rstn
;
always
@
(
posedge
clk_i
,
negedge
rstn_i
)
begin
:
RDC_glitchless_rstn
if
(
!
rstn_i
)
begin
RDC_rstn
<=
0
;
end
else
begin
RDC_rstn
<=
rstn_i
&&
!
RDC_softrst
;
end
end
RDC
#(
// Width of data registers
.
DATA_WIDTH
(
REG_WIDTH
),
...
...
@@ -499,7 +532,7 @@ end
.
CORE_EVENTS
(
RDC_N_EVENTS
)
)
inst_RDC
(
.
clk_i
(
clk_i
),
.
rstn_i
(
rstn_i
&&
!
RDC_soft
rst
),
//active low
.
rstn_i
(
RDC_
rst
n
),
//active low
.
enable_i
(
RDC_enable_int
),
// Software map
.
events_i
(
MCCU_events_int
),
.
events_weights_i
(
MCCU_events_weights_int
),
...
...
@@ -539,3 +572,4 @@ endmodule
`default_nettype
wire
//allow compatibility with legacy code and xilinx ip
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment