Commit graph

927 commits

Author SHA1 Message Date
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
Alan Green 303ea18cb6
_yosys: handle unparseable versions
Do not use yosys binaries with unparseable version numbers. This ensures
that nmigen always knows what version of yosys it is generating RTLIL
for.

The effect of this change is that if the version number of the system
yosys is unparsable, nmigen will attempt to fallback to the builtin
Yosys.

Fixes #409.
2020-06-23 12:12:02 +00:00
whitequark 706eb03e6b vendor.lattice_machxo2: add back as a compatibility shim. 2020-06-21 17:28:01 +00:00
Gwenhael Goavec-Merou 0aef5f4d48
vendor.lattice_machxo*: add MachXO3L support. 2020-06-21 17:24:47 +00:00
whitequark 868d49eccd back.verilog: refactor Yosys script generation. NFCI.
In commit 5f30bcbb, back.cxxsim gained a nicer way to generate
a script; this commit brings it to back.verilog too.
2020-06-14 09:38:32 +00:00
whitequark 5f30bcbb14 back.cxxrtl: allow injecting black boxes. 2020-06-14 09:25:54 +00:00
whitequark eddc397509 _yosys: add a way to retrieve Yosys data directory.
This is important for CXXRTL, since that's where its include files
are located.
2020-06-14 00:31:34 +00:00
whitequark 45c61969fc _yosys: fix typo in error message. 2020-06-14 00:03:36 +00:00
whitequark ca360917ba test: fix example test after commit a7b8ced9. 2020-06-11 16:36:08 +00:00