| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
s/((Claire|Xen|Xenia|Clifford)\s+)+(Wolf|Xen)\s+<(claire|clifford)@(symbioticeda.com|clifford.at|yosyshq.com)>/Claire Xenia Wolf <claire@yosyshq.com>/gi;
s/((Nina|Nak|N\.)\s+)+Engelhardt\s+<nak@(symbioticeda.com|yosyshq.com)>/N. Engelhardt <nak@yosyshq.com>/gi;
s/((David)\s+)+Shah\s+<(dave|david)@(symbioticeda.com|yosyshq.com|ds0.me)>/David Shah <dave@ds0.me>/gi;
s/((Miodrag)\s+)+Milanovic\s+<(miodrag|micko)@(symbioticeda.com|yosyshq.com)>/Miodrag Milanovic <micko@yosyshq.com>/gi;
s,https?://www.clifford.at/yosys/,http://yosyshq.net/yosys/,g;
|
|
|
|
| |
Fixes #2775.
|
|
|
|
|
| |
This is mostly meant for wide port recognition, but may also happen to
merge some ports with compatible initial/reset values (eg. 0 vs x).
|
| |
|
|
|
|
|
|
| |
This essentially adds wide port support for free in passes that don't
have a usefully better way of handling wide ports than just breaking
them up to narrow ports, avoiding "please run memory_narrow" annoyance.
|
| |
|
|
|
|
|
|
|
| |
When converting a sync transparent read port with const address to async
read port, nothing at all needs to be done other than clk_enable change,
and thus we have no FF cell to return. Handle this case correctly in
the helper and in its users.
|
|
|
|
|
| |
Also properly skip read ports with init value or reset when not making
use of make_outreg. Proper support for matching those will land later.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is not used yet, but will be needed when read port reset/initial
value support lands.
|
|
|
|
|
| |
memory_share is actually three passes in a trenchcoat. Split off the
one that has the least in common with the other two as a separate pass.
|
|
|
|
| |
Fixes #1854.
|
| |
|
| |
|
| |
|
|
|
|
| |
This job is now performed by `opt_dff`, which runs before this pass.
|
|
|
|
|
|
|
|
|
| |
When the register being merged into the EN signal happens to be a $sdff,
the current code creates a new $mux for every bit, even if they happen
to be identical (as is usually the case), preventing proper grouping
further down the flow. Fix this by adding a simple cache.
Fixes #2409.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The $div and $mod cells use truncating division semantics (rounding
towards 0), as defined by e.g. Verilog. Another rounding mode, flooring
(rounding towards negative infinity), can be used in e.g. VHDL. The
new $divfloor cell provides this flooring division.
This commit also fixes the handling of $div in opt_expr, which was
previously optimized as if it was $divfloor.
|
|
|
|
|
|
|
|
|
|
|
| |
The $div and $mod cells use truncating division semantics (rounding
towards 0), as defined by e.g. Verilog. Another rounding mode, flooring
(rounding towards negative infinity), can be used in e.g. VHDL. The
new $modfloor cell provides this flooring modulo (also known as "remainder"
in several languages, but this name is ambiguous).
This commit also fixes the handling of $mod in opt_expr, which was
previously optimized as if it was $modfloor.
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|\
| |
| | |
ice40/ecp5: add support for both 1364.1 and Synplify/LSE RAM/ROM attributes
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this commit, memory_map (which is always a part of a synth
script) would always pick up any $mem cell that was not processed
by a preceding pass and lower it down to $dff/$mux cells.
This is undesirable for two reasons:
* If there is an explicit inference attribute set on a $mem cell,
e.g. (* ram_block *), then it is arguably incorrect to map such
a memory to $dff/$mux cells.
* If memory_map tries to lower a memory that was intended to
be mapped to a large BRAM, it often takes extraordinarily long
time to finish, produces an extremely large log file, and outputs
an unusable design.
After this commit, properly invoked memory_map will not map any
memory that has an explicit inference attribute specified, solving
the first issue, and alleviating the second. The default behavior
is not changed.
|
| |
| |
| |
| |
| | |
Some vendor toolchains use case insensitive matching for values of
attributes that control BRAM inference.
|
|\ \
| | |
| | | |
Clean up `passes/memory/memory_collect.cc`.
|
| | | |
|
|/ / |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
kernel: speedup by using more pass-by-const-ref
|
| |/ |
|
| | |
|
| | |
|
| |
| |
| | |
Co-Authored-By: Alberto Gonzalez <61295559+boqwxp@users.noreply.github.com>
|
|/ |
|
| |
|
| |
|
| |
|