Commit graph

1085 commits

Author SHA1 Message Date
awygle 659b0e8189
hdl.ast: don't inherit Shape from NamedTuple.
Fixes #421.
2020-07-07 05:17:03 +00:00
whitequark cee43f0de1 back.pysim: simplify.
Compiled process names were never particularly useful (comments in
the source would make more sense for debugging), and coroutine
process names were actually source locations.
2020-07-07 04:29:13 +00:00
whitequark c9030eb3cd back.pysim: simplify. NFC. 2020-07-07 04:19:05 +00:00
whitequark db4529a178 back.pysim: simplify. NFC. 2020-07-07 04:09:10 +00:00
whitequark 2efeb05c63 back.pysim: synchronize waveform writing with cxxrtl. 2020-07-07 04:09:02 +00:00
whitequark e012e62ade back.pysim: synchronize terms with cxxrtl. NFC. 2020-07-07 03:38:39 +00:00
whitequark c9ac85a045 back.pysim: simplify. NFC. 2020-07-07 03:38:39 +00:00
whitequark 8f6eab0f6c back.pysim: simplify. NFC. 2020-07-07 03:38:39 +00:00
whitequark 23758e30bc Remove everything deprecated in nmigen 0.2. 2020-07-07 03:38:39 +00:00
Alan Green 3a4576e033 Update license and copyright info
Remove non-license explanatory text from LICENSE.txt.

Create CONTRIBUTING file with instructions and notes for contributors.

This change relates to issue #412
2020-07-06 23:11:10 +00:00
Konrad Beckmann d4946b060a vendor.lattice_ecp5: Add support for io with xdr=7
This adds support for IOs with xdr=7 using the
IODDR71B and ODDR71B primitives.
2020-07-06 16:12:07 +00:00
Konrad Beckmann 981e674081 vendor.lattice_ecp5: Add support for io with xdr=4
This adds support for IOs with xdr=4 using the
IDDRX2F and ODDRX2F primitives.
2020-07-06 16:12:07 +00:00
whitequark 175c8a596e docs: use working sphinxcontrib-platformpicker. 2020-07-05 23:51:14 +00:00
whitequark 1fbd7f1d08 docs: use sphinxcontrib-platformpicker.
Fixes #416.
2020-07-05 23:39:47 +00:00
whitequark f1153352c0 docs: link to community tutorials until we have an official one. 2020-07-04 02:09:35 +00:00
whitequark f24f1b02e8 docs/lang: document constshifts. 2020-07-02 23:11:35 +00:00
whitequark 76b3ef4b13 docs/index: rename to "Language & toolchain". 2020-07-02 23:08:10 +00:00
whitequark fd5ee548b6 test: remove FHDLTestCase.assertRaisesRegex.
This method is only there because I misunderstood the documentation
of unittest.
2020-07-02 22:50:20 +00:00
whitequark 8dd28fecc6 compat.fhdl.specials: fix handling of tristate (i=None) pins.
Fixes #406.
2020-07-02 22:22:44 +00:00
whitequark 369bc3e307 _yosys→_toolchain.yosys 2020-07-02 18:26:08 +00:00
whitequark 6bfff25e76 vendor: yosys is not a required tool for proprietary toolchains.
Since commit b9799b4c, the discovery mechanism for the Yosys required
to produce Verilog is different from the usual require_tool(); namely
it is possible to produce Verilog without a `yosys` binary on PATH.

Fixes #419.
2020-07-02 18:13:54 +00:00
whitequark 14845af235 setup: add wheel as setup dependency.
See commit 416b2531ae.
See commit 7fca037f9c.
2020-07-01 21:05:57 +00:00
whitequark ba1b4c20c8 setup: gracefully recover from missing setuptools_scm. 2020-07-01 21:04:04 +00:00
whitequark d5d3bc4b1a setup: link to the right documentation version from pip metadata. 2020-07-01 20:49:41 +00:00
whitequark 102565f6de Update README. 2020-07-01 20:17:10 +00:00
whitequark 75a466537e Update README. 2020-07-01 19:16:01 +00:00
whitequark 7fa4b348a9 docs/install: use pip/pip3 more consistently. 2020-07-01 08:58:36 +00:00
whitequark 6c0530cf4e docs: clarify naming. 2020-07-01 08:53:52 +00:00
whitequark 416b2531ae Revert "Add PEP 518 pyproject.toml."
This reverts commit 7fca037f9c.

This broke editable installs and has to be reverted due to a number
of pip issues:
  * pypa/pip#6375
  * pypa/pip#6434
  * pypa/pip#6438

We can put this back once PEP 517/518 support editable installs.
Until then the legacy behavior will suffice, and we should just teach
people to install the dependencies in virtualenvs or something...
2020-07-01 08:24:47 +00:00
whitequark 76c7e70582 docs: add a crude approximation of intersphinx toctrees.
This is a pretty awful hack. We could do this properly after one of
the following issues is fixed:
  * sphinx-doc/sphinx#701
  * sphinx-doc/sphinx#1836
2020-07-01 08:03:57 +00:00
whitequark 126f0be731 Gracefully handle missing dependencies.
Some people's workflows involve not using `pip`. This is not
a recommended way to use nMigen, but is prevalent enough for good
enough reason that we try to keep them working anyway.
2020-07-01 07:00:02 +00:00
whitequark f5670a9b71 docs/install: fix dead link. 2020-07-01 06:33:03 +00:00
whitequark 43da4e3f0a docs/install: quote special chars to avoid issues with extended glob. 2020-07-01 06:32:15 +00:00
whitequark f50303ca7c docs/install: explain how to install non-editable snapshot from git. 2020-07-01 06:15:16 +00:00
whitequark 7fca037f9c Add PEP 518 pyproject.toml.
This is necessary to be able to install nMigen into a virtualenv that
does not have `wheel` installed in certain cases.

See #349.
2020-07-01 05:58:34 +00:00
whitequark adbc947274 docs/install: use pip install --user on *nix. 2020-07-01 05:06:20 +00:00
whitequark 78c027fb36 docs/install: reduce repetition. 2020-07-01 04:11:51 +00:00
whitequark 7d25bd50c7 README: update to refer to documentation where applicable. 2020-07-01 04:08:02 +00:00
whitequark 20baea401b docs: reword slightly. 2020-07-01 03:59:16 +00:00
whitequark 9f731d185d docs: explain how to install GTKWave on Windows. 2020-07-01 03:47:02 +00:00
whitequark b0dbbb6b2a CI: build docs on all pushes, update only on master. 2020-07-01 03:37:29 +00:00
whitequark c20266164d docs: rewrite install instructions to be easier to understand. 2020-07-01 03:32:17 +00:00
whitequark 39c3bacb79 setup: link to proper location for docs. 2020-06-30 23:13:44 +00:00
whitequark 5048c5efc7 docs: fix syntax. 2020-06-30 22:29:43 +00:00
whitequark d5c297aa94 docs: fix CI workflow. 2020-06-30 22:28:12 +00:00
whitequark 9928b6067d docs: explain that pip3 install -e should be run after pulling. 2020-06-30 22:26:54 +00:00
whitequark 399b8f9863 Add (heavily work in progress) documentation.
To render correctly, the docs require:
 * pygments/pygments#1441
2020-06-30 22:21:16 +00:00
whitequark 8dacbbb2b2 Don't use pkg_resources.
This package is deprecated and introduces a massive amount of startup
latency. On my machine with 264 installed Python packages, it reduces
the time required to `import nmigen` from ~100ms to ~200ms.
2020-06-30 22:11:47 +00:00
whitequark 25ce260207 lib.cdc: update PulseSynchronizer to follow conventions.
Fixes #370.
2020-06-28 05:17:33 +00:00
whitequark 2606ee33ad back.pysim: simplify.
Remove _EvalContext, which was a level of indirection serving almost
no purpose. (The only case where it would be useful is repeatedly
resetting a simulation that, each time it is reset, would create new
signals to communicate with between coroutine processes. In that case
the signal states would not be persisted in _SimulatorState, but
would be removed with the _EvalContext that is recreated each time
the simulation is reset. But this could be solved with a weak map
instead.)

This regresses simulator startup time by 10-15% for unknown reasons
but is necessary to align pysim and future cxxsim.
2020-06-28 05:04:16 +00:00