1 from nmigen
.build
import *
4 __all__
= ["SPIResource"]
7 def SPIResource(*args
, cs
, clk
, mosi
, miso
, int=None, reset
=None, attrs
=None, role
="host"):
8 assert role
in ("host", "device")
12 io
.append(Subsignal("cs", PinsN(cs
, dir="o")))
13 io
.append(Subsignal("clk", Pins(clk
, dir="o", assert_width
=1)))
14 io
.append(Subsignal("mosi", Pins(mosi
, dir="o", assert_width
=1)))
15 io
.append(Subsignal("miso", Pins(miso
, dir="i", assert_width
=1)))
17 io
.append(Subsignal("cs", PinsN(cs
, dir="i", assert_width
=1)))
18 io
.append(Subsignal("clk", Pins(clk
, dir="i", assert_width
=1)))
19 io
.append(Subsignal("mosi", Pins(mosi
, dir="i", assert_width
=1)))
20 io
.append(Subsignal("miso", Pins(miso
, dir="oe", assert_width
=1)))
23 io
.append(Subsignal("int", Pins(int, dir="i")))
25 io
.append(Subsignal("int", Pins(int, dir="oe", assert_width
=1)))
28 io
.append(Subsignal("reset", Pins(reset
, dir="o")))
30 io
.append(Subsignal("reset", Pins(reset
, dir="i", assert_width
=1)))
33 return Resource
.family(*args
, default_name
="spi", ios
=io
)