File tree Expand file tree Collapse file tree 7 files changed +39
-1
lines changed Expand file tree Collapse file tree 7 files changed +39
-1
lines changed Original file line number Diff line number Diff line change @@ -89,6 +89,7 @@ module ccc
89
89
(
90
90
input logic clk_i, // Clock
91
91
input logic rst_ni, // Async reset, active low
92
+ input logic [47 : 0 ] id_i,
92
93
93
94
// CC is decoded from the frame by the primary FSM
94
95
input logic [7 : 0 ] ccc_i,
@@ -459,8 +460,10 @@ module ccc
459
460
// have defining byte
460
461
if (have_defining_byte) state_d = RxDefByte;
461
462
else begin
463
+ // ENTDAA is special
464
+ if (command_code == ENTDAA ) state_d = HandleENTDAA;
462
465
// broadcast CCCs
463
- if (~ is_direct_cmd) state_d = RxData;
466
+ else if (~ is_direct_cmd) state_d = RxData;
464
467
// direct CCCs
465
468
else
466
469
state_d = RxByte;
Original file line number Diff line number Diff line change
1
+ module ccc_entdaa
2
+ import controller_pkg:: * ;
3
+ import i3c_pkg :: * ;
4
+ (
5
+ input logic clk_i, // Clock
6
+ input logic rst_ni, // Async reset, active low
7
+ input logic [47 : 0 ] id_i,
8
+ input start_daa,
9
+ output done_daa
10
+ );
11
+
12
+
13
+ typedef enum logic [7 : 0 ] {
14
+ Idle,
15
+ ReceiveRsvdByte,
16
+ AckRsvdByte,
17
+ SendID,
18
+ ReceiveAddr,
19
+ Done,
20
+ Error
21
+ } state_e ;
22
+
23
+ state_e state_q, state_d;
24
+
25
+ endmodule
Original file line number Diff line number Diff line change @@ -62,6 +62,7 @@ module controller
62
62
) (
63
63
input logic clk_i,
64
64
input logic rst_ni,
65
+ input logic [47 : 0 ] id_i,
65
66
66
67
// Interface to SDA/SCL
67
68
input logic scl_i,
@@ -453,6 +454,7 @@ module controller
453
454
controller_standby xcontroller_standby (
454
455
.clk_i (clk_i),
455
456
.rst_ni (rst_ni),
457
+ .id_i (id_i),
456
458
.ctrl_bus_i (ctrl_bus_i[2 : 3 ]),
457
459
.ctrl_scl_o (ctrl_scl_o[2 : 3 ]),
458
460
.ctrl_sda_o (ctrl_sda_o[2 : 3 ]),
Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ module controller_standby
30
30
) (
31
31
input logic clk_i,
32
32
input logic rst_ni,
33
+ input logic [47 : 0 ] id_i,
33
34
34
35
// Interface to SDA/SCL
35
36
input bus_state_t ctrl_bus_i[2 ],
@@ -380,6 +381,7 @@ module controller_standby
380
381
) xcontroller_standby_i3c (
381
382
.clk_i (clk_i),
382
383
.rst_ni (rst_ni),
384
+ .id_i (id_i)
383
385
.ctrl_bus_i (ctrl_bus_i[1 ]),
384
386
.ctrl_scl_o (ctrl_scl_o[1 ]),
385
387
.ctrl_sda_o (ctrl_sda_o[1 ]),
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ module controller_standby_i3c
16
16
) (
17
17
input logic clk_i,
18
18
input logic rst_ni,
19
+ input logic [47 : 0 ] id_i,
19
20
20
21
// Interface to SDA/SCL
21
22
input bus_state_t ctrl_bus_i,
@@ -466,6 +467,7 @@ module controller_standby_i3c
466
467
ccc xccc (
467
468
.clk_i,
468
469
.rst_ni,
470
+ .id_i,
469
471
.ccc_i (ccc),
470
472
.ccc_valid_i (ccc_valid),
471
473
.done_fsm_o (is_ccc_done),
Original file line number Diff line number Diff line change @@ -102,6 +102,7 @@ module i3c
102
102
) (
103
103
input clk_i, // clock
104
104
input rst_ni, // active low reset
105
+ input logic [47 : 0 ] id_i,
105
106
106
107
`ifdef I3C_USE_AHB
107
108
// AHB-Lite interface
@@ -558,6 +559,7 @@ module i3c
558
559
) xcontroller (
559
560
.clk_i (clk_i),
560
561
.rst_ni (rst_ni),
562
+ .id_i (id_i),
561
563
562
564
.scl_i (phy2ctrl_scl),
563
565
.sda_i (phy2ctrl_sda),
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ module i3c_wrapper #(
22
22
) (
23
23
input clk_i, // clock
24
24
input rst_ni, // active low reset
25
+ input logic [47 : 0 ] id_i,
25
26
26
27
`ifdef I3C_USE_AHB
27
28
// AHB-Lite interface
@@ -162,6 +163,7 @@ module i3c_wrapper #(
162
163
) i3c (
163
164
.clk_i,
164
165
.rst_ni,
166
+ .id_i,
165
167
166
168
`ifdef I3C_USE_AHB
167
169
.haddr_i,
You can’t perform that action at this time.
0 commit comments