@@ -40,30 +40,32 @@ import Clash.Cores.I2C.ByteMaster
40
40
}) #-}
41
41
-- | Core for I2C communication
42
42
i2c ::
43
+ forall dom .
44
+ KnownDomain dom =>
43
45
-- | Input Clock
44
- " clk" ::: Clock System ->
46
+ " clk" ::: Clock dom ->
45
47
-- | Low level reset
46
- " arst" ::: Reset System ->
48
+ " arst" ::: Reset dom ->
47
49
-- | Statemachine reset
48
- " rst" ::: Signal System Bool ->
50
+ " rst" ::: Signal dom Bool ->
49
51
-- | BitMaster enable
50
- " ena" ::: Signal System Bool ->
52
+ " ena" ::: Signal dom Bool ->
51
53
-- | Clock divider
52
- " clkCnt" ::: Signal System (Unsigned 16 ) ->
54
+ " clkCnt" ::: Signal dom (Unsigned 16 ) ->
53
55
-- | Start signal
54
- " start" ::: Signal System Bool ->
56
+ " start" ::: Signal dom Bool ->
55
57
-- | Stop signal
56
- " stop" ::: Signal System Bool ->
58
+ " stop" ::: Signal dom Bool ->
57
59
-- | Read signal
58
- " read" ::: Signal System Bool ->
60
+ " read" ::: Signal dom Bool ->
59
61
-- | Write signal
60
- " write" ::: Signal System Bool ->
62
+ " write" ::: Signal dom Bool ->
61
63
-- | Ack signal
62
- " ackIn" ::: Signal System Bool ->
64
+ " ackIn" ::: Signal dom Bool ->
63
65
-- | Input data
64
- " din" ::: Signal System (BitVector 8 ) ->
66
+ " din" ::: Signal dom (BitVector 8 ) ->
65
67
-- | I2C input signals (SCL, SDA)
66
- " i2c" ::: Signal System (" scl" ::: Bit , " sda" ::: Bit ) ->
68
+ " i2c" ::: Signal dom (" scl" ::: Bit , " sda" ::: Bit ) ->
67
69
-- |
68
70
-- 1. Received data
69
71
-- 2. Command acknowledgement
@@ -76,12 +78,12 @@ i2c ::
76
78
-- 6.3 SDA
77
79
-- 6.4 SDA Output enable
78
80
" " :::
79
- ( " i2cO" ::: Signal System (BitVector 8 )
80
- , " scl" ::: Signal System Bool
81
- , " sclOEn" ::: Signal System Bool
82
- , " sda" ::: Signal System Bool
83
- , " sdaOEn" ::: Signal System Bool
84
- , " i2cO" ::: Signal System (" scl" ::: Bit , " sclOEn" ::: Bool , " sda" ::: Bit , " sdaOEn" ::: Bool ))
81
+ ( " i2cO" ::: Signal dom (BitVector 8 )
82
+ , " scl" ::: Signal dom Bool
83
+ , " sclOEn" ::: Signal dom Bool
84
+ , " sda" ::: Signal dom Bool
85
+ , " sdaOEn" ::: Signal dom Bool
86
+ , " i2cO" ::: Signal dom (" scl" ::: Bit , " sclOEn" ::: Bool , " sda" ::: Bit , " sdaOEn" ::: Bool ))
85
87
i2c clk arst rst ena clkCnt start stop read write ackIn din i2cI = (dout,hostAck,busy,al,ackOut,i2cO)
86
88
where
87
89
(hostAck,ackOut,dout,bitCtrl) = byteMaster clk arst enableGen (rst,start,stop,read ,write,ackIn,din,bitResp)
0 commit comments