[breaking-change] Factor out "sram" resource.
[nmigen-boards.git] / nmigen_boards / dev / sram.py
1 from nmigen.build import *
2
3
4 __all__ = ["SRAMResource"]
5
6
7 def SRAMResource(*args, cs, oe, we, a, d, dm=None, attrs=None):
8 io = []
9 io.append(Subsignal("cs", PinsN(cs, dir="o")))
10 io.append(Subsignal("oe", PinsN(oe, dir="o")))
11 io.append(Subsignal("we", PinsN(we, dir="o")))
12 io.append(Subsignal("a", Pins(a, dir="o")))
13 io.append(Subsignal("d", Pins(d, dir="io")))
14 if dm is not None:
15 io.append(Subsignal("dm", PinsN(dm, dir="o"))) # dm="LB# UB#"
16 if attrs is not None:
17 io.append(attrs)
18 return Resource.family(*args, default_name="sram", ios=io)