Skip to content

Commit ebe83fe

Browse files
micprogthommythomaso
authored andcommitted
Add comments from reviewer
- change `payload_t` to `data_t` - replace inline if with always comb block - add rr_distributor to src_files
1 parent 061cc72 commit ebe83fe

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

src/rr_distributor.sv

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,28 @@
1616
module rr_distributor # (
1717
/// Number of outputs to distribute to.
1818
parameter int unsigned NumOut = 1,
19-
/// Data width of the payload in bits. Not needed if `payload_t` is overwritten.
19+
/// Data width of the payload in bits. Not needed if `data_t` is overwritten.
2020
parameter int unsigned Width = 1,
2121
/// Data type of the payload, can be overwritten with a custom type. Only use of `Width`.
22-
parameter type payload_t = logic [Width-1:0],
22+
parameter type data_t = logic [Width-1:0],
2323
/// Dependent parameter, do **not** overwrite.
2424
/// Width of the selected index
25-
parameter int unsigned IdxWidth = (NumOut > 32'd1) ? unsigned'($clog2(NumOut)) : 32'd1,
25+
parameter int unsigned IdxWidth = cf_math_pkg::idx_width(NumOut),
2626
/// Dependent parameter, do **not** overwrite.
2727
/// type of the selected index
2828
parameter type idx_t = logic [IdxWidth-1:0]
2929
) (
30-
input logic clk_i,
31-
input logic rst_ni,
30+
input logic clk_i,
31+
input logic rst_ni,
3232
// input stream
33-
input logic valid_i,
34-
output logic ready_o,
35-
input payload_t payload_i,
33+
input logic valid_i,
34+
output logic ready_o,
35+
input data_t payload_i,
3636
// output stream
37-
output logic [NumOut-1:0] valid_o,
38-
input logic [NumOut-1:0] ready_i,
39-
output payload_t [NumOut-1:0] payload_o,
40-
output idx_t sel_o
37+
output logic [NumOut-1:0] valid_o,
38+
input logic [NumOut-1:0] ready_i,
39+
output data_t [NumOut-1:0] payload_o,
40+
output idx_t sel_o
4141
);
4242

4343
if (NumOut == 1) begin : gen_bypass
@@ -49,8 +49,16 @@ module rr_distributor # (
4949
idx_t rr_d, rr_q;
5050
logic one_ready;
5151

52-
assign rr_d = (valid_i & one_ready) ?
53-
((rr_q == idx_t'(NumOut-1)) ? '0 : rr_q + 1'b1) : rr_q;
52+
always_comb begin : rr_next
53+
rr_d = rr_q;
54+
if (valid_i && one_ready) begin
55+
if (rr_q == idx_t'(NumOut - 1)) begin
56+
rr_d = '0;
57+
end else begin
58+
rr_d = rr_q + 1'b1;
59+
end
60+
end
61+
end
5462

5563
assign one_ready = |ready_i;
5664

src_files.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ common_cells_all:
2727
- src/plru_tree.sv
2828
- src/popcount.sv
2929
- src/rr_arb_tree.sv
30+
- src/rr_distributor.sv
3031
- src/rstgen_bypass.sv
3132
- src/serial_deglitch.sv
3233
- src/shift_reg.sv

0 commit comments

Comments
 (0)