whitequark
00026c6e4a
hdl.ast: avoid unnecessary sign padding in ArrayProxy.
...
Before this commit, ArrayProxy would add sign padding (an extra bit)
a homogeneous array of signed values, or an array where all unsigned
values are smaller than the largest signed one. After this commit,
ArrayProxy would only add padding in arrays with mixed signedness
where all signed values are smaller or equal in size to the largest
unsigned value.
Fixes #476 .
Co-authored-by: Pepijn de Vos <pepijndevos@gmail.com>
2020-08-26 07:07:48 +00:00
whitequark
cb81618c28
sim._pyrtl: fix miscompilation of -(Const(0b11, 2).as_signed()).
...
Fixes #473 .
2020-08-26 04:15:54 +00:00
whitequark
0802f943ba
lib.cdc: in AsyncFFSynchronizer(), rename domain= to o_domain=.
...
This is for consistency with other synchronizers.
Fixes #467 .
2020-08-26 03:19:13 +00:00
Robin Ole Heinemann
630c0fd99a
vendor.lattice_machxo_2_3l: add SRAM svf generation
2020-08-24 14:41:14 +00:00
Mariusz Glebocki
4e208b0ac1
vendor: Add initial support for Symbiflow for Xilinx 7-series
2020-08-24 14:39:10 +00:00
Mariusz Glebocki
77616837e8
vendor.xilinx_7series: add _part
property getter
2020-08-24 14:39:10 +00:00
Xiretza
15f150337f
cli: Improve help texts
...
545e49c2
added the option to export as CXXRTL, but the help texts for
the CLI options don't reflect this yet.
2020-08-22 14:41:37 +00:00
whitequark
e46118dac0
docs/lang: use less confusing placeholder variable names.
...
Fixes #474 .
2020-08-15 13:01:09 +00:00
awygle
73f672f57c
lib.fifo: add r_level
and w_level
to all FIFOs
2020-08-15 08:40:56 +00:00
whitequark
f6f9d68f24
Add Linguist tags to .gitattributes.
...
This should make it possible to navigate to nmigen/vendor/*.py using
GitHub's file finder.
2020-08-13 03:12:39 +00:00
Robin Ole Heinemann
b86acdc601
vendor.lattice_{ecp5,machxo_2_3l}: specify impl-dir correctly
2020-08-10 17:52:47 +00:00
whitequark
d964ba9cc4
build,vendor: never carry around parts of differential signals.
...
When a port component is skipped, it should appear neither in the RTL
nor in the constraint file. However, passing around components of
differential ports explicitly makes that harder.
Fixes #456 .
Supersedes #457 .
Co-authored-by: Jean THOMAS <git0@pub.jeanthomas.me>
2020-07-31 18:41:59 +00:00
whitequark
c9662c5ff8
vendor.xilinx_{7series,ultrascale}: use BUFGCTRL rather than BUFGCE.
...
Fixes #438 (again).
2020-07-31 17:48:22 +00:00
Adam Greig
07dc163105
hdl.mem: cast reset value for transparent read ports to integer.
2020-07-30 07:05:18 +00:00
Jean THOMAS
20f9ab9d7a
nmigen.lib.scheduler: add RoundRobin.
2020-07-28 21:02:01 +00:00
Jacob Graves
8117ef6692
tests: fix remove unnecessary workaround for some unittest assertions.
2020-07-28 19:35:25 +00:00
whitequark
c75fa45fd8
vendor.xilinx_{7series,ultrascale}: add SIM_DEVICE parameter.
...
The parameter defaults to "ULTRASCALE", even when synthesizing for
7-series devices. This could lead to a simulation/synthesis mismatch,
and causes a warning.
Fixes #438 .
2020-07-23 16:38:28 +00:00
Jean THOMAS
f7a8fcc94c
vendor.lattice_ecp5: add missing differential IO types.
2020-07-23 12:24:31 +00:00
whitequark
7aedb3e770
back.rtlil: lower maximum accepted wire size.
...
In practice wires of just 100000 bits sometimes have unacceptable
performance with Yosys, so stick to Verilog's minimum limit of 65536
bits.
2020-07-22 14:43:44 +00:00
whitequark
1321c4591d
sim._pycoro: avoid spurious wakeups.
...
This bug was introduced in commit e435a217
.
2020-07-22 14:32:45 +00:00
whitequark
d71e19e27c
CI: replace Travis with GitHub Actions.
...
Fixes #445 .
2020-07-22 09:28:35 +00:00
whitequark
0899ff366b
compat.fhdl.bitcontainer: fix value_bits_sign().
...
This function was broken in commit 659b0e81; some downstream code
expects bits_sign to be e.g. indexable.
2020-07-21 02:53:29 +00:00
whitequark
5ccc2122ce
CI: use WASM yosys instead of building our own.
...
Fixes #434 .
2020-07-16 08:41:53 +00:00
whitequark
d06add0aab
back.rtlil: fix guard for division by zero.
...
Oops... that should be checking the divisor, not the dividend. This
was discovered by running the test suite on cxxsim.
2020-07-15 04:14:34 +00:00
Filipe Laíns
d714d78de1
docs: add install instructions for arch
...
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-07-14 00:28:24 +00:00
whitequark
127fce8f48
CI: run on pull requests as well, not just pushes.
2020-07-14 00:25:11 +00:00
whitequark
ecb3a69d48
lib.cdc: fix typo.
...
Co-authored-by: @ECP5-PCIe
2020-07-13 23:53:15 +00:00
Jacob Lifshay
58f1d4bcb6
sim.pysim: write the next, not curr signal value to the VCD file
...
This is a temporary fix for #429 .
2020-07-13 02:10:01 +00:00
whitequark
0a90aa1b17
sim.pysim: use VCD aliases to reduce space and time overhead.
...
On Minerva SoC, this reduces VCD file size by about 35%, and reduces
runtime overhead of writing VCDs by 10% or less.
2020-07-11 12:26:34 +00:00
whitequark
30e2f91176
sim: simplify. NFC.
2020-07-08 17:31:53 +00:00
whitequark
d7a87fef42
back.pysim→sim.pysim; split into more manageable parts.
...
This is necessary to add cxxrtl as an alternate simulation engine.
2020-07-08 12:49:38 +00:00
whitequark
23da2fdda6
vendor.xilinx_{7series,ultrascale}: remove grade
property.
...
This was added in commit bfd4538d
based on a misunderstanding of how
Xilinx part numbers work.
* non-ultrascale 7-series parts don't have temperature grades;
* ultrascale parts have temperature grade as a part of speed grade.
2020-07-08 09:08:00 +00:00
whitequark
6d417568ad
back.pysim: only extract signal names if VCD is requested.
...
This commit also fixes an issue introduced in 2606ee33
that regressed
simulator startup time and bloated VCD files. (It's actually about
10% faster now than *before* the regression was introduced.)
2020-07-08 08:33:45 +00:00
whitequark
3c3cfd48fb
back.pysim: reset timeline as well.
...
This is a bug that was introduced in 94faf497b
.
2020-07-08 08:19:29 +00:00
whitequark
90e2a991f0
back.pysim: simplify. NFC.
2020-07-08 06:31:04 +00:00
whitequark
94faf497ba
back.pysim: extract timeline handling to class _Timeline. NFC.
2020-07-08 06:31:04 +00:00
whitequark
d3d210eaee
back.pysim: extract simulator commands to sim._cmds. NFC.
2020-07-08 05:42:33 +00:00
whitequark
e435a21715
back.pysim: simplify. NFC.
2020-07-08 03:55:09 +00:00
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