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