Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: m-labs/nmigen
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3d04122d5569
Choose a base ref
...
head repository: m-labs/nmigen
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 6426b90e4a60
Choose a head ref
  • 1 commit
  • 2 files changed
  • 1 contributor

Commits on Jun 3, 2019

  1. vendor.conn.pmod: implement.

    Fixes #79.
    whitequark committed Jun 3, 2019
    Copy the full SHA
    6426b90 View commit details
Showing with 94 additions and 0 deletions.
  1. 0 nmigen/vendor/conn/__init__.py
  2. +94 −0 nmigen/vendor/conn/pmod.py
Empty file added nmigen/vendor/conn/__init__.py
Empty file.
94 changes: 94 additions & 0 deletions nmigen/vendor/conn/pmod.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Reference: https://www.digilentinc.com/Pmods/Digilent-Pmod_%20Interface_Specification.pdf

from ...build import *


__all__ = [
"PmodGPIOType1Resource",
"PmodSPIType2Resource",
"PmodSPIType2AResource",
"PmodUARTType3Resource",
"PmodUARTType4Resource",
"PmodUARTType4AResource",
"PmodHBridgeType5Resource",
"PmodDualHBridgeType6Resource",
]


def PmodGPIOType1Resource(name, number, *, pmod, extras=None):
return Resource(name, number,
Pins("1 2 3 4", dir="io", conn=("pmod", pmod)),
extras=extras
)


def PmodSPIType2Resource(name, number, *, pmod, extras=None):
return Resource(name, number,
Subsignal("cs_n", Pins("1", dir="o", conn=("pmod", pmod))),
Subsignal("clk", Pins("2", dir="o", conn=("pmod", pmod))),
Subsignal("mosi", Pins("3", dir="o", conn=("pmod", pmod))),
Subsignal("miso", Pins("4", dir="i", conn=("pmod", pmod))),
extras=extras
)


def PmodSPIType2AResource(name, number, *, pmod, extras=None):
return Resource(name, number,
Subsignal("cs_n", Pins("1", dir="o", conn=("pmod", pmod))),
Subsignal("clk", Pins("2", dir="o", conn=("pmod", pmod))),
Subsignal("mosi", Pins("3", dir="o", conn=("pmod", pmod))),
Subsignal("miso", 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))),
extras=extras
)


def PmodUARTType3Resource(name, number, *, pmod, extras=None):
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))),
extras=extras
)


def PmodUARTType4Resource(name, number, *, pmod, extras=None):
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))),
extras=extras
)


def PmodUARTType4AResource(name, number, *, pmod, extras=None):
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))),
extras=extras
)


def PmodHBridgeType5Resource(name, number, *, pmod, extras=None):
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))),
extras=extras
)


def PmodDualHBridgeType6Resource(name, number, *, pmod, extras=None):
return Resource(name, number,
Subsignal("dir", Pins("1 3", dir="o", conn=("pmod", pmod))),
Subsignal("en", Pins("2 4", dir="o", conn=("pmod", pmod))),
extras=extras
)