diff options
| author | whitequark <whitequark@whitequark.org> | 2021-12-10 07:38:00 +0000 |
|---|---|---|
| committer | whitequark <whitequark@whitequark.org> | 2021-12-10 08:30:37 +0000 |
| commit | b968cfade961a329c26035ef8bfdf3058e95a9f1 (patch) | |
| tree | 94891b950cb0547868877027230ff09b9cb56d4a /amaranth_boards/extensions | |
| parent | bd7fdd379d8b28f8b542f251a11ca28297e8fd6f (diff) | |
Rename nMigen to Amaranth HDL.
Diffstat (limited to 'amaranth_boards/extensions')
| -rw-r--r-- | amaranth_boards/extensions/__init__.py | 0 | ||||
| -rw-r--r-- | amaranth_boards/extensions/pmod.py | 94 |
2 files changed, 94 insertions, 0 deletions
diff --git a/amaranth_boards/extensions/__init__.py b/amaranth_boards/extensions/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/amaranth_boards/extensions/__init__.py diff --git a/amaranth_boards/extensions/pmod.py b/amaranth_boards/extensions/pmod.py new file mode 100644 index 0000000..5443966 --- /dev/null +++ b/amaranth_boards/extensions/pmod.py @@ -0,0 +1,94 @@ +# Reference: https://www.digilentinc.com/Pmods/Digilent-Pmod_%20Interface_Specification.pdf + +from amaranth.build import * + + +__all__ = [ + "PmodGPIOType1Resource", + "PmodSPIType2Resource", + "PmodSPIType2AResource", + "PmodUARTType3Resource", + "PmodUARTType4Resource", + "PmodUARTType4AResource", + "PmodHBridgeType5Resource", + "PmodDualHBridgeType6Resource", +] + + +def PmodGPIOType1Resource(name, number, *args, pmod): + return Resource(name, number, + Pins("1 2 3 4", dir="io", conn=("pmod", pmod)), + *args + ) + + +def PmodSPIType2Resource(name, number, *args, pmod): + return Resource(name, number, + Subsignal("cs", PinsN("1", dir="o", conn=("pmod", pmod))), + Subsignal("clk", Pins("2", dir="o", conn=("pmod", pmod))), + Subsignal("copi", Pins("3", dir="o", conn=("pmod", pmod))), + Subsignal("cipo", Pins("4", dir="i", conn=("pmod", pmod))), + *args + ) + + +def PmodSPIType2AResource(name, number, *args, pmod): + return Resource(name, number, + Subsignal("cs", PinsN("1", dir="o", conn=("pmod", pmod))), + Subsignal("clk", Pins("2", dir="o", conn=("pmod", pmod))), + Subsignal("copi", Pins("3", dir="o", conn=("pmod", pmod))), + Subsignal("cipo", Pins("4", dir="i", conn=("pmod", pmod))), + Subsignal("int", Pins("7", dir="i", conn=("pmod", pmod))), + Subsignal("reset", Pins("8", dir="o", conn=("pmod", pmod))), + *args + ) + + +def PmodUARTType3Resource(name, number, *args, pmod): + return Resource(name, number, + Subsignal("cts", Pins("1", dir="o", conn=("pmod", pmod))), + Subsignal("rts", Pins("2", dir="i", conn=("pmod", pmod))), + Subsignal("rx", Pins("3", dir="i", conn=("pmod", pmod))), + Subsignal("tx", Pins("4", dir="o", conn=("pmod", pmod))), + *args + ) + + +def PmodUARTType4Resource(name, number, *args, pmod): + return Resource(name, number, + Subsignal("cts", Pins("1", dir="i", conn=("pmod", pmod))), + Subsignal("tx", Pins("2", dir="o", conn=("pmod", pmod))), + Subsignal("rx", Pins("3", dir="i", conn=("pmod", pmod))), + Subsignal("rts", Pins("4", dir="o", conn=("pmod", pmod))), + *args + ) + + +def PmodUARTType4AResource(name, number, *args, pmod): + return Resource(name, number, + Subsignal("cts", Pins("1", dir="i", conn=("pmod", pmod))), + Subsignal("tx", Pins("2", dir="o", conn=("pmod", pmod))), + Subsignal("rx", Pins("3", dir="i", conn=("pmod", pmod))), + Subsignal("rts", Pins("4", dir="o", conn=("pmod", pmod))), + Subsignal("int", Pins("7", dir="i", conn=("pmod", pmod))), + Subsignal("reset", Pins("8", dir="o", conn=("pmod", pmod))), + *args + ) + + +def PmodHBridgeType5Resource(name, number, *args, pmod): + return Resource(name, number, + Subsignal("dir", Pins("1", dir="o", conn=("pmod", pmod))), + Subsignal("en", Pins("2", dir="o", conn=("pmod", pmod))), + Subsignal("sa", Pins("3", dir="i", conn=("pmod", pmod))), + Subsignal("sb", Pins("4", dir="i", conn=("pmod", pmod))), + *args + ) + + +def PmodDualHBridgeType6Resource(name, number, *args, pmod): + return Resource(name, number, + Subsignal("dir", Pins("1 3", dir="o", conn=("pmod", pmod))), + Subsignal("en", Pins("2 4", dir="o", conn=("pmod", pmod))), + *args + ) |
