Skip to content

Commit d8b6d7c

Browse files
author
Andrea Belano
committed
Fix errors with memory stalls
1 parent 75bce33 commit d8b6d7c

File tree

4 files changed

+47
-9
lines changed

4 files changed

+47
-9
lines changed

Bender.lock

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
11
packages:
2+
apb:
3+
revision: 77ddf073f194d44b9119949d2421be59789e69ae
4+
version: 0.2.4
5+
source:
6+
Git: https://github.com/pulp-platform/apb.git
7+
dependencies:
8+
- common_cells
9+
axi:
10+
revision: 2f395b176bee1c769c80f060a4345fda965bb04b
11+
version: 0.38.0
12+
source:
13+
Git: https://github.com/pulp-platform/axi.git
14+
dependencies:
15+
- common_cells
16+
- common_verification
17+
- tech_cells_generic
218
cluster_interconnect:
319
revision: 1284def6c0b7f7e9355eb093d00883ad9dead1b7
420
version: null
@@ -51,14 +67,17 @@ packages:
5167
dependencies:
5268
- common_cells
5369
hci:
54-
revision: 17f960efb11df1851fb80d51ba90b25e46c4b4ae
70+
revision: fa625bdb824209bc2c0faaa6d99ec15ff981473f
5571
version: null
5672
source:
5773
Git: https://github.com/pulp-platform/hci.git
5874
dependencies:
5975
- cluster_interconnect
76+
- common_cells
6077
- hwpe-stream
6178
- l2_tcdm_hybrid_interco
79+
- redundancy_cells
80+
- register_interface
6281
hwpe-ctrl:
6382
revision: 0e95510c0f4d43452d21b7723d766ae92e45c101
6483
version: null
@@ -67,7 +86,7 @@ packages:
6786
dependencies:
6887
- tech_cells_generic
6988
hwpe-stream:
70-
revision: 6d715406d5518446d4d7449f68068b963a827c81
89+
revision: db62a6411a7f3dc2b2a74e202377da118a4a6673
7190
version: null
7291
source:
7392
Git: https://github.com/pulp-platform/hwpe-stream.git
@@ -86,6 +105,25 @@ packages:
86105
source:
87106
Git: https://github.com/pulp-platform/L2_tcdm_hybrid_interco.git
88107
dependencies: []
108+
redundancy_cells:
109+
revision: c37bdb47339bf70e8323de8df14ea8bbeafb6583
110+
version: null
111+
source:
112+
Git: https://github.com/pulp-platform/redundancy_cells.git
113+
dependencies:
114+
- common_cells
115+
- common_verification
116+
- register_interface
117+
- tech_cells_generic
118+
register_interface:
119+
revision: 146501d80052b61475cdc333d3aab4cd769fd5dc
120+
version: 0.3.9
121+
source:
122+
Git: https://github.com/pulp-platform/register_interface.git
123+
dependencies:
124+
- apb
125+
- axi
126+
- common_cells
89127
tech_cells_generic:
90128
revision: 7968dd6e6180df2c644636bc6d2908a49f2190cf
91129
version: 0.2.13

Bender.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ dependencies:
1515
cv32e40p : { git: "https://github.com/pulp-platform/cv32e40p.git" , rev: "astral-v1.0" }
1616
cv32e40x : { git: "https://github.com/pulp-platform/cv32e40x.git" , rev: "redmule-v1.0" }
1717
ibex : { git: "https://github.com/pulp-platform/ibex.git" , rev: pulpissimo-v6.1.2 }
18-
hwpe-stream : { git: "https://github.com/pulp-platform/hwpe-stream.git" , rev: 6d715406d5518446d4d7449f68068b963a827c81 } #branch: ab/strb_fix
18+
hwpe-stream : { git: "https://github.com/pulp-platform/hwpe-stream.git" , rev: db62a6411a7f3dc2b2a74e202377da118a4a6673 } #branch: ab/strb_fix
1919
hwpe-ctrl : { git: "https://github.com/pulp-platform/hwpe-ctrl.git" , rev: 0e95510c0f4d43452d21b7723d766ae92e45c101 } # branch: yt/task-interfaces
20-
hci : { git: "https://github.com/pulp-platform/hci.git" , rev: 17f960efb11df1851fb80d51ba90b25e46c4b4ae } # branch: ab/fifo_options
20+
hci : { git: "https://github.com/pulp-platform/hci.git" , rev: fa625bdb824209bc2c0faaa6d99ec15ff981473f } # branch: ab/fifo_options
2121
fpnew : { git: "https://github.com/pulp-platform/cvfpu.git" , rev: "pulp-v0.1.3" }
2222
common_cells : { git: "https://github.com/pulp-platform/common_cells.git" , version: 1.21.0 }
2323
tech_cells_generic: { git: "https://github.com/pulp-platform/tech_cells_generic.git", version: 0.2.11 }

rtl/redmule_scheduler.sv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ module redmule_scheduler
317317
end
318318
end
319319

320-
assign w_zero_cnt_d = w_done && current_state == LOAD_W && w_zero_cnt_q != H ? w_zero_cnt_q + 1 : w_zero_cnt_q;
320+
assign w_zero_cnt_d = w_done && current_state == LOAD_W && ~stall_engine && w_zero_cnt_q != H ? w_zero_cnt_q + 1 : w_zero_cnt_q;
321321

322322
assign w_done_en = w_mat_iters_en && w_mat_iters_q == reg_file_i.hwpe_params[X_ITERS][31:16]-1;
323323

@@ -638,14 +638,14 @@ module redmule_scheduler
638638
~check_x_full && check_x_full_en ||
639639
~check_y_loaded && check_y_loaded_en ||
640640
~check_quant_valid && check_quant_valid_en
641-
);
641+
) || z_wait_counter_q == PIPE_REGS && flgs_z_buffer_i.z_priority;
642642
`else
643643
assign stall_engine = current_state == LOAD_W && (
644644
~check_w_valid && check_w_valid_en ||
645645
~check_x_full && check_x_full_en ||
646646
~check_y_loaded && check_y_loaded_en ||
647647
~check_quant_valid && check_quant_valid_en
648-
);
648+
) || z_wait_counter_q == PIPE_REGS && flgs_z_buffer_i.z_priority;
649649
`endif
650650

651651
always_ff @(posedge clk_i or negedge rst_ni) begin : first_load_register

rtl/x_buffer/redmule_x_buffer.sv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ always_comb begin : fsm
161161
// As buf_write_cnt increments one cycle late, we have to check if its value is set to increase in the next cycle
162162
if ((pad_r_addr_q == buf_write_cnt-1 || flags_o.empty) && (~ctrl_i.h_shift || first_block || (pad_read_cnt == ctrl_i.slots))) begin
163163
if (pad_read_cnt == ctrl_i.slots) begin
164-
if (~flags_o.full) begin
164+
if (~flags_o.full || ctrl_i.rst_w_index) begin
165165
next_state = PAD_EMPTY;
166166
end else begin
167167
next_state = WAIT_FIRST_READ;
@@ -197,7 +197,7 @@ always_comb begin : fsm
197197
FILL: begin
198198
if (flags_o.empty) begin
199199
// If the width of the buffer is 1, the full flag is asserted at the same time as the empty flag so we skip the PAD_EMPTY state
200-
if (flags_o.full) begin
200+
if (ctrl_i.width == 1 && flags_o.full) begin
201201
next_state = FILL;
202202
end else begin
203203
next_state = PAD_EMPTY;

0 commit comments

Comments
 (0)