Commit graph

34 commits

Author SHA1 Message Date
Catherine
78b90fbafa build.plat,vendor: fix toolchain environment variable check.
The bug was introduced in commit 15b6068c. A changelog entry was also
missing.

Fixes #1089.
2024-02-08 11:37:59 +00:00
Daniel Estévez
d8f70be4d9 xilinx: use FDPE instances to implement get_async_ff_sync()
This closes #721 by implementing get_async_ff_sync() using FDPE
primitives to obtain exactly the netlist that we want. This consits
of a chain of N FPDEs (by default N = 2) with all their PRE pins
connected to the reset for a positive edge reset or to the ~reset
for a negative edge reset. The D pin of the first FDPE in the chain
is connected to GND.

To make timing analysis work correctly, two new attributes are
introduced: amaranth.vivado.false_path_pre and
amaranth.vivado.max_delay_pre. These work similarly to
amaranth.vivado.false_path and amaranth.vivado.max_delay, but affect
only the PRE pin, which is what is needed for this synchronizer.
The TCL has been modified to generate constraints using these
attributes, and there are comments explaining how to use the attributes
directly in an XDC file in case the user wants to manage their XDC
file manually instead of using the TCL.
2024-02-08 11:30:51 +00:00
Catherine
15b6068c57 Remove features deprecated in past releases. 2024-02-06 15:55:05 +00:00
Catherine
5d9ad62f36 build.plat,vendor: start build.sh with #!/bin/sh.
The build scripts generated by Amaranth are designed to be invoked by
directly running them with any shell (some of them will re-invoke
themselves with `bash` specifically, when it's a toolchain requirement),
and they're not currently marked executable, so there's no shebang.

Add a shebang line to improve compatibility with cases where they are
treated as executables in their own right.
2024-01-03 11:45:57 +00:00
Catherine
3ed78d98ea Implement RFC 18: Reorganize vendor platforms
Closes #873.
2023-12-13 11:24:37 +00:00
Catherine
7db049f37f Remove remaining traces of $verilog_initial_trigger.
This construct was originally removed in commit b452e0e8. It has not been relevant since Yosys 0.10.
2023-12-07 21:10:11 +00:00
Catherine
f9da3c0d16 Pyupgrade to 3.8+. NFCI 2023-11-14 13:07:21 +00:00
Catherine
04b542a626 vendor._gowin: fix typo. 2023-09-25 14:15:11 +00:00
Catherine
d27681b157 vendor.GowinPlatform: account for rouding error in frequency calculation. 2023-09-25 08:41:49 +00:00
Catherine
47851c2328 vendor.GowinPlatform: fix fencepost error in oscillator range.
Python ranges are half-open (exclusive).
2023-09-25 08:41:49 +00:00
Catherine
bfd62569c8 vendor.GowinPlatform: improve oscillator frequency diagnostic. 2023-09-25 08:41:49 +00:00
crzwdjk
11d5bb19eb vendor._lattice_ice40: add an icepack_opts override
Add an icepack_opts override in case the user wants to pass
extra options to icepack as part of the build process.
2023-09-13 20:05:01 +00:00
Catherine
7f1397b281 vendor/*: add missing __all__.
This broke code that did e.g.

    from amaranth.vendor.xilinx import *

which is common in amaranth-boards.
2023-09-01 01:30:46 +00:00
Catherine
796068a192 Implement RFC 18: Reorganize vendor platforms 2023-09-01 00:37:48 +00:00
Catherine
49a56c4467 vendor.gowin: unbreak dir="o" pins with xdr=2. 2023-08-08 19:51:22 +00:00
Bastian Löher
93e89f5632 vendor.gowin: new platform.
Co-authored-by: Catherine <whitequark@whitequark.org>
2023-08-08 12:38:36 +00:00
Catherine
d491288e32 Eliminate uses of deprecated abstractproperty() decorator.
Its docstring with the deprecation notice polluted the documentation.
2023-07-24 13:46:48 +00:00
Darrell Harmon
ea36c80663 vendor.xilinx: recognize Artix Ultrascale+ part numbers 2023-07-10 20:39:45 +00:00
Charlotte
d218273b9b hdl.ast: deprecate Repl and remove from AST; add Value.replicate. 2023-06-22 03:52:55 +00:00
Marcelina Kościelnicka
e3e542afff vendor.xilinx: fix a SyntaxWarning. 2023-03-01 00:51:13 +00:00
Catherine
a704b1b218 vendor.xilinx: update build script template for prjxray. 2023-02-03 06:09:56 +00:00
Catherine
5a79c351e3 Remove features deprecated in version 0.3. 2023-01-31 21:38:27 +00:00
Catherine
309f647c0e Update documentation and changelog to reflect existing changes. 2023-01-31 12:57:44 +00:00
Bastian Löher
64b96e143b
vendor.xilinx: Add support for more parts when using Symbiflow. 2023-01-23 19:26:58 +00:00
J. Neuschäfer
91d4513682
Fix several typos. NFC. 2023-01-20 19:48:29 +00:00
Gwenhael Goavec-Merou
e3b2ba4316
vendor.xilinx: add support for Xray-based toolchain. 2022-12-13 20:09:57 +00:00
Bastian Löher
0a1ba22050
vendor.xilinx: update symbiflow toolchain scripts. 2022-12-01 20:00:48 +00:00
Adam Greig
af7c11441d Use all-uppercase toolchain_env_var names.
Accepts previous case for backwards compatibility.

Fixes #728.
2022-11-16 02:37:53 +00:00
jreyesr
9b8354e137
vendor.lattice_machxo_2_3l: add support for the internal oscillator, OSCH. 2022-04-06 04:12:52 +00:00
Catherine
4dea0b2d0f vendor.lattice_ecp5: on Diamond, only emit attributes if there are any. 2022-03-12 13:25:00 +00:00
Irides
40b92965c9 docs: cover amaranth.vendor. 2021-12-13 09:17:50 +00:00
whitequark
90777a65c8 build.plat,vendor: add missing compatibility shims for NMIGEN_ENV_*.
These have been mistakenly omitted from commit 909a3b8b.
2021-12-11 12:40:05 +00:00
Irides
b1eba5fd82 vendor.xilinx: support setting options on synth_design
Closes #606.
2021-12-11 12:09:09 +00:00
whitequark
909a3b8be7 Rename nMigen to Amaranth HDL. 2021-12-10 10:34:13 +00:00