Skip to content

Commit beb6bb0

Browse files
committed
Register cfg_mgmt signals from US PCIe HIP
Signed-off-by: Alex Forencich <[email protected]>
1 parent b856007 commit beb6bb0

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

rtl/pcie_us_cfg.v

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ reg cfg_mgmt_write_reg = 1'b0, cfg_mgmt_write_next;
8080
reg [31:0] cfg_mgmt_write_data_reg = 32'd0, cfg_mgmt_write_data_next;
8181
reg [3:0] cfg_mgmt_byte_enable_reg = 4'd0, cfg_mgmt_byte_enable_next;
8282
reg cfg_mgmt_read_reg = 1'b0, cfg_mgmt_read_next;
83+
reg [31:0] cfg_mgmt_read_data_reg = 32'd0;
84+
reg cfg_mgmt_read_write_done_reg = 1'b0;
8385

8486
reg [7:0] delay_reg = 8'hff, delay_next;
8587
reg [7:0] func_cnt_reg = 8'd0, func_cnt_next;
@@ -115,12 +117,12 @@ always @* begin
115117
end else begin
116118
cfg_mgmt_addr_next = DEV_CTRL_OFFSET >> 2;
117119
cfg_mgmt_read_next = 1'b1;
118-
if (cfg_mgmt_read_write_done) begin
120+
if (cfg_mgmt_read_write_done_reg) begin
119121
cfg_mgmt_read_next = 1'b0;
120122

121-
ext_tag_enable_next[func_cnt_reg] = cfg_mgmt_read_data[8];
122-
max_read_request_size_next[func_cnt_reg*3 +: 3] = cfg_mgmt_read_data[14:12];
123-
max_payload_size_next[func_cnt_reg*3 +: 3] = cfg_mgmt_read_data[7:5];
123+
ext_tag_enable_next[func_cnt_reg] = cfg_mgmt_read_data_reg[8];
124+
max_read_request_size_next[func_cnt_reg*3 +: 3] = cfg_mgmt_read_data_reg[14:12];
125+
max_payload_size_next[func_cnt_reg*3 +: 3] = cfg_mgmt_read_data_reg[7:5];
124126

125127
if (func_cnt_reg == F_COUNT-1) begin
126128
func_cnt_next = 0;
@@ -139,6 +141,22 @@ always @* begin
139141
end
140142

141143
always @(posedge clk) begin
144+
ext_tag_enable_reg <= ext_tag_enable_next;
145+
max_read_request_size_reg <= max_read_request_size_next;
146+
max_payload_size_reg <= max_payload_size_next;
147+
148+
cfg_mgmt_addr_reg <= cfg_mgmt_addr_next;
149+
cfg_mgmt_function_number_reg <= cfg_mgmt_function_number_next;
150+
cfg_mgmt_write_reg <= cfg_mgmt_write_next;
151+
cfg_mgmt_write_data_reg <= cfg_mgmt_write_data_next;
152+
cfg_mgmt_byte_enable_reg <= cfg_mgmt_byte_enable_next;
153+
cfg_mgmt_read_reg <= cfg_mgmt_read_next;
154+
cfg_mgmt_read_data_reg <= cfg_mgmt_read_data;
155+
cfg_mgmt_read_write_done_reg <= cfg_mgmt_read_write_done;
156+
157+
delay_reg <= delay_next;
158+
func_cnt_reg <= func_cnt_next;
159+
142160
if (rst) begin
143161
ext_tag_enable_reg <= {F_COUNT{1'b0}};
144162
max_read_request_size_reg <= {F_COUNT{3'd0}};
@@ -148,26 +166,11 @@ always @(posedge clk) begin
148166
cfg_mgmt_function_number_reg <= 8'd0;
149167
cfg_mgmt_write_reg <= 1'b0;
150168
cfg_mgmt_read_reg <= 1'b0;
169+
cfg_mgmt_read_write_done_reg <= 1'b0;
151170

152171
delay_reg <= 8'hff;
153172
func_cnt_reg <= 8'd0;
154-
end else begin
155-
ext_tag_enable_reg <= ext_tag_enable_next;
156-
max_read_request_size_reg <= max_read_request_size_next;
157-
max_payload_size_reg <= max_payload_size_next;
158-
159-
cfg_mgmt_addr_reg <= cfg_mgmt_addr_next;
160-
cfg_mgmt_function_number_reg <= cfg_mgmt_function_number_next;
161-
cfg_mgmt_write_reg <= cfg_mgmt_write_next;
162-
cfg_mgmt_read_reg <= cfg_mgmt_read_next;
163-
164-
delay_reg <= delay_next;
165-
func_cnt_reg <= func_cnt_next;
166173
end
167-
168-
cfg_mgmt_write_data_reg <= cfg_mgmt_write_data_next;
169-
cfg_mgmt_byte_enable_reg <= cfg_mgmt_byte_enable_next;
170-
171174
end
172175

173176
endmodule

0 commit comments

Comments
 (0)