intro
install
start
+ tutorial
lang
This guide is a work in progress and is seriously incomplete!
-This guide introduces the nMigen language in depth. It assumes familiarity with synchronous digital logic and the Python programming language, but does not require experience with any hardware description language.
+This guide introduces the nMigen language in depth. It assumes familiarity with synchronous digital logic and the Python programming language, but does not require prior experience with any hardware description language. See the :doc:`tutorial <tutorial>` for a step-by-step introduction to the language.
.. TODO: link to a good synchronous logic tutorial and a Python tutorial?
Getting started
###############
-This section demonstrates the basic nMigen workflow to provide a cursory overview of the language and the toolchain. See the :doc:`language guide <lang>` for a detailed introduction to the language.
+This section demonstrates the basic nMigen workflow to provide a cursory overview of the language and the toolchain. See the :doc:`tutorial <tutorial>` for a step-by-step introduction to the language, and the :doc:`language guide <lang>` for a detailed explanation of every language construct.
.. TODO: add link to build system doc
.. TODO: add link to more complex examples?
--- /dev/null
+Tutorial
+========
+
+.. todo::
+
+ The official tutorial is still being written. Until it's ready, consider following one of the tutorials written by the nMigen community:
+
+ * `Learning FPGA Design with nMigen <https://vivonomicon.com/2020/04/14/learning-fpga-design-with-nmigen/>`_ by Vivonomicon;
+ * `nMigen Step by Step Tutorial <http://blog.lambdaconcept.com/doku.php?id=nmigen:tutorial>`_ by LambdaConcept;
+ * `"I want to learn nMigen" <https://github.com/kbob/nmigen-examples>`_ by kbob;
+ * `A tutorial for using nMigen <https://github.com/robertbaruch/nmigen-tutorial>`_ by Robert Baruch.