2 from nmigen
.cli
import main
5 class GPIO(Elaboratable
):
6 def __init__(self
, pins
, bus
):
10 def elaborate(self
, platform
):
12 m
.d
.comb
+= self
.bus
.r_data
.eq(self
.pins
[self
.bus
.addr
])
13 with m
.If(self
.bus
.we
):
14 m
.d
.sync
+= self
.pins
[self
.bus
.addr
].eq(self
.bus
.w_data
)
18 if __name__
== "__main__":
26 gpio
= GPIO(Array(pins
), bus
)
27 main(gpio
, ports
=[pins
, bus
.addr
, bus
.r_data
, bus
.w_data
, bus
.we
])