docs: cover `nmigen.vendor`.
authorIrides <irides@irides.network>
Mon, 13 Dec 2021 09:10:40 +0000 (03:10 -0600)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 31 Dec 2021 20:29:38 +0000 (20:29 +0000)
13 files changed:
docs/index.rst
docs/platform.rst [new file with mode: 0644]
docs/platform/intel.rst [new file with mode: 0644]
docs/platform/lattice-ecp5.rst [new file with mode: 0644]
docs/platform/lattice-ice40.rst [new file with mode: 0644]
docs/platform/lattice-machxo-2-3l.rst [new file with mode: 0644]
docs/platform/quicklogic.rst [new file with mode: 0644]
docs/platform/xilinx.rst [new file with mode: 0644]
nmigen/vendor/intel.py
nmigen/vendor/lattice_ecp5.py
nmigen/vendor/lattice_ice40.py
nmigen/vendor/quicklogic.py
nmigen/vendor/xilinx.py

index 97a51ca94c687d2288e058af5fdeb20f9fb642d1..2293a5d8fc665c0c465ff26b50378654f4b97d42 100644 (file)
@@ -14,3 +14,4 @@ Language & toolchain
    tutorial
    lang
    stdlib
+   platform
diff --git a/docs/platform.rst b/docs/platform.rst
new file mode 100644 (file)
index 0000000..011e488
--- /dev/null
@@ -0,0 +1,16 @@
+Platform integration
+####################
+
+.. todo::
+
+   Write this section.
+
+.. toctree::
+   :maxdepth: 2
+
+   platform/intel
+   platform/lattice-ecp5
+   platform/lattice-ice40
+   platform/lattice-machxo-2-3l
+   platform/quicklogic
+   platform/xilinx
\ No newline at end of file
diff --git a/docs/platform/intel.rst b/docs/platform/intel.rst
new file mode 100644 (file)
index 0000000..6642dff
--- /dev/null
@@ -0,0 +1,10 @@
+Intel
+#####
+
+.. py:module:: nmigen.vendor.intel
+
+The :mod:`nmigen.vendor.intel` package provides a base platform to support Intel toolchains.
+
+The Quartus and Mistral toolchains are supported.
+
+.. autoclass:: IntelPlatform
\ No newline at end of file
diff --git a/docs/platform/lattice-ecp5.rst b/docs/platform/lattice-ecp5.rst
new file mode 100644 (file)
index 0000000..5a6db08
--- /dev/null
@@ -0,0 +1,10 @@
+Lattice ECP5
+############
+
+.. py:module:: nmigen.vendor.lattice_ecp5
+
+The :mod:`nmigen.vendor.lattice_ecp5` package provides a base platform to support Lattice ECP5 devices.
+
+The Trellis and Diamond toolchains are supported.
+
+.. autoclass:: LatticeECP5Platform
\ No newline at end of file
diff --git a/docs/platform/lattice-ice40.rst b/docs/platform/lattice-ice40.rst
new file mode 100644 (file)
index 0000000..e1e3887
--- /dev/null
@@ -0,0 +1,10 @@
+Lattice iCE40
+#############
+
+.. py:module:: nmigen.vendor.lattice_ice40
+
+The :mod:`nmigen.vendor.lattice_ice40` package provides a base platform to support Lattice iCE40 devices.
+
+The IceStorm and iCECube2 toolchains are supported.
+
+.. autoclass:: LatticeICE40Platform
\ No newline at end of file
diff --git a/docs/platform/lattice-machxo-2-3l.rst b/docs/platform/lattice-machxo-2-3l.rst
new file mode 100644 (file)
index 0000000..df262e7
--- /dev/null
@@ -0,0 +1,19 @@
+Lattice MachXO2 and MachXO3L
+############################
+
+.. py:module:: nmigen.vendor.lattice_machxo_2_3l
+
+The :mod:`nmigen.vendor.lattice_machxo_2_3l` package provides a base platform to support Lattice 
+MachXO2 and MachXO3L devices.
+
+The Diamond toolchain is supported.
+
+
+
+.. autoclass:: LatticeMachXO2Platform
+.. autoclass:: LatticeMachXO3LPlatform
+
+.. note:: Both of the above are aliases for the actual platform below, however only the aliased
+          definitions are actually exported from the module for use.
+
+.. autoclass:: LatticeMachXO2Or3LPlatform
\ No newline at end of file
diff --git a/docs/platform/quicklogic.rst b/docs/platform/quicklogic.rst
new file mode 100644 (file)
index 0000000..7abd965
--- /dev/null
@@ -0,0 +1,10 @@
+Quicklogic
+##########
+
+.. py:module:: nmigen.vendor.quicklogic
+
+The :mod:`nmigen.vendor.quicklogic` package provides a base platform to support Quicklogic toolchains.
+
+The Symbiflow toolchain is supported.
+
+.. autoclass:: QuicklogicPlatform
\ No newline at end of file
diff --git a/docs/platform/xilinx.rst b/docs/platform/xilinx.rst
new file mode 100644 (file)
index 0000000..5630382
--- /dev/null
@@ -0,0 +1,10 @@
+Xilinx
+######
+
+.. py:module:: nmigen.vendor.xilinx
+
+The :mod:`nmigen.vendor.xilinx` package provides a base platform to support Xilinx toolchains.
+
+The ISE, Vivado, and Symbiflow toolchains are supported.
+
+.. autoclass:: XilinxPlatform
\ No newline at end of file
index b7863931d898d003a6d77492521a2ad9a540d6eb..1a4973cf6f08cb136a6fd3749b6f301750082abb 100644 (file)
@@ -9,8 +9,7 @@ __all__ = ["IntelPlatform"]
 
 class IntelPlatform(TemplatedPlatform):
     """
-    Quartus toolchain
-    -----------------
+    .. rubric:: Quartus toolchain
 
     Required tools:
         * ``quartus_map``
@@ -36,8 +35,7 @@ class IntelPlatform(TemplatedPlatform):
         * ``{{name}}.rbf``: bitstream as raw binary file.
 
 
-    Mistral toolchain
-    -----------------
+    .. rubric:: Mistral toolchain
 
     Required tools:
         * ``yosys``
index eb0027f734c68a5b7c120e4c1bb3f90bfd7093c7..e2955a2e1aaae21749356b7a2924f34d95146dd7 100644 (file)
@@ -9,8 +9,7 @@ __all__ = ["LatticeECP5Platform"]
 
 class LatticeECP5Platform(TemplatedPlatform):
     """
-    Trellis toolchain
-    -----------------
+    .. rubric:: Trellis toolchain
 
     Required tools:
         * ``yosys``
@@ -39,8 +38,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         * ``{{name}}.bit``: binary bitstream.
         * ``{{name}}.svf``: JTAG programming vector.
 
-    Diamond toolchain
-    -----------------
+    .. rubric:: Diamond toolchain
 
     Required tools:
         * ``pnmainc``
index c9c35b353096b509b743ebd5f807cc9533dd105c..8be19139f71842eaf0be463d7c0f32507c6977e7 100644 (file)
@@ -10,8 +10,7 @@ __all__ = ["LatticeICE40Platform"]
 
 class LatticeICE40Platform(TemplatedPlatform):
     """
-    IceStorm toolchain
-    ------------------
+    .. rubric:: IceStorm toolchain
 
     Required tools:
         * ``yosys``
@@ -39,8 +38,7 @@ class LatticeICE40Platform(TemplatedPlatform):
         * ``{{name}}.asc``: ASCII bitstream.
         * ``{{name}}.bin``: binary bitstream.
 
-    iCECube2 toolchain
-    ------------------
+    .. rubric:: iCECube2 toolchain
 
     This toolchain comes in two variants: ``LSE-iCECube2`` and ``Synplify-iCECube2``.
 
index 8554fffa427e156f02435ad1c29a51b60096930a..8deb0259a33be9069c13cd877586f35fc6c3e958 100644 (file)
@@ -10,8 +10,7 @@ __all__ = ["QuicklogicPlatform"]
 
 class QuicklogicPlatform(TemplatedPlatform):
     """
-    Symbiflow toolchain
-    -------------------
+    .. rubric:: Symbiflow toolchain
 
     Required tools:
         * ``symbiflow_synth``
index 9a1e6a8a4013c174f522935ccd345f00be15ee16..d6d988608592fa1cf9a40a1a8304e568762b9a69 100644 (file)
@@ -10,8 +10,7 @@ __all__ = ["XilinxPlatform"]
 
 class XilinxPlatform(TemplatedPlatform):
     """
-    Vivado toolchain
-    ----------------
+    .. rubric:: Vivado toolchain
 
     Required tools:
         * ``vivado``
@@ -49,8 +48,7 @@ class XilinxPlatform(TemplatedPlatform):
         * ``{{name}}.bit``: binary bitstream with metadata.
         * ``{{name}}.bin``: binary bitstream.
 
-    ISE toolchain
-    -------------
+    .. rubric:: ISE toolchain
 
     Required tools:
         * ``xst``
@@ -89,8 +87,7 @@ class XilinxPlatform(TemplatedPlatform):
         * ``{{name}}.bit``: binary bitstream with metadata.
         * ``{{name}}.bin``: raw binary bitstream.
 
-    Symbiflow toolchain
-    -------------------
+    .. rubric:: Symbiflow toolchain
 
     Required tools:
         * ``symbiflow_synth``