@@ -5,6 +5,8 @@ module ccc_entdaa
5
5
input logic clk_i, // Clock
6
6
input logic rst_ni, // Async reset, active low
7
7
input logic [47 : 0 ] id_i,
8
+ input logic [7 : 0 ] dcr_i,
9
+ input logic [7 : 0 ] bcr_i,
8
10
9
11
input logic start_daa_i,
10
12
output logic done_daa_o,
@@ -52,20 +54,22 @@ module ccc_entdaa
52
54
} state_e ;
53
55
54
56
state_e state_q, state_d;
55
- logic [5 : 0 ] id_bit_count;
57
+ logic [6 : 0 ] id_bit_count;
56
58
logic load_id_counter, tick_id_counter;
57
59
logic reserved_word_det;
58
60
61
+ logic [63 : 0 ] device_id;
59
62
logic parity_ok;
60
63
61
64
assign reserved_word_det = (bus_rx_data_i[7 : 1 ] == 7'h7e && bus_rx_data_i[0 ] == 1'b1 );
65
+ assign device_id = { id_i, bcr_i, dcr_i} ;
62
66
63
67
always_ff @ (posedge clk_i or negedge rst_ni) begin : id_bit_counter
64
68
if (! rst_ni) begin
65
69
id_bit_count <= '0 ;
66
70
end else begin
67
71
if (load_id_counter) begin
68
- id_bit_count <= 6'd48 ;
72
+ id_bit_count <= 7'd64 ;
69
73
end else if (tick_id_counter) begin
70
74
id_bit_count <= id_bit_count - 1'b1 ;
71
75
end else begin
@@ -179,7 +183,7 @@ module ccc_entdaa
179
183
end
180
184
SendIDBit: begin
181
185
bus_tx_req_bit_o = '1 ;
182
- bus_tx_req_value_o = id_i [id_bit_count];
186
+ bus_tx_req_value_o = device_id [id_bit_count];
183
187
end
184
188
ReceiveAddr: begin
185
189
bus_rx_req_byte_o = '1 ;
0 commit comments