N. Engelhardt
47e73826e0
mutate: warn if less mutations possible than number requested
2022-10-05 10:59:38 +02:00
Miodrag Milanović
fcd1be1422
Merge pull request #3486 from daglem/fix-flowmap-crash
...
Fix crash in flowmap
2022-09-23 16:22:46 +02:00
Kamyar Mohajerani
69787f1906
remove extra space in formating
2022-09-22 15:46:36 +01:00
Kamyar Mohajerani
bc1e579483
stat: add tech tech-specific utilizations to json
...
- refactor resource util. estimation/calculations for Xilinx and CMOS
- don't print log_header if "-json" is set
2022-09-22 15:46:36 +01:00
Dag Lem
c4c68e8d86
Fix crash in flowmap
...
In 2fcc1ee72e
, the following is apparantly added in order to mark any
number of undefined LUT inputs:
lut_a.append(RTLIL::Const(State::Sx, minlut - input_nodes.size()));
However this can only be done if the number of input nodes is less
than minlut.
This fixes #3317
2022-09-20 14:31:19 +02:00
N. Engelhardt
da614fe13a
Fix tmpdir naming when passing -nocleanup option to abc(9) on systems where base_tmpdir isn't /tmp/
2022-09-13 19:30:40 +02:00
N. Engelhardt
d829d7fe00
Merge pull request #3458 from QuantamHD/abc_faster
2022-08-31 08:58:42 +02:00
Miodrag Milanovic
4bc1e1d1f1
Makes sure to set initial_top when change, fixes #3462
2022-08-26 17:12:56 +02:00
N. Engelhardt
7d35003c16
Merge pull request #3449 from YosysHQ/aki/show_pathrw
2022-08-25 17:06:29 +02:00
Ethan Mahintorabi
114253cd54
Improves ABC command runtime by 10-100x
...
After speaking with the author of ABC he let me know that ifraig is a very old command, and that &get; &fraig -x; &put is over 100x faster than ifraig with improved PPA results.
After making the change I confirmed that this is in fact a major speed up. On our internal designs in O(millions) of standard cells we saw multi hour reductions in runtime.
Also included is an improvement to the dress command. Using AIG based transformations removes the spec it SATs against. Proving the input blif will make sure that no matter what commands are run the dress command can still do its job. I noticed a regression against some LUT mapping jobs that prompted me to fix this.
2022-08-24 00:35:02 +00:00
KrystalDelusion
9465b2af95
Fitting help messages to 80 character width
...
Uses the regex below to search (using vscode):
^\t\tlog\("(.{10,}(?<!\\n)|.{81,}\\n)"\);
Finds any log messages double indented (which help messages are)
and checks if *either* there are is no newline character at the end,
*or* the number of characters before the newline is more than 80.
2022-08-24 10:40:57 +12:00
Aki Van Ness
1433a63165
yosys: passes: cmds: show: added filename re-writing to `show -lib`
2022-08-22 06:04:54 -04:00
Jannis Harder
f7023d06a2
sim: -hdlname option to preserve flattened hierarchy in sim output
2022-08-16 13:37:30 +02:00
Jannis Harder
4ad13c647e
clk2fflogic: Generate less unused logic when using verific
...
Verific generates a lot of FFs with an unused async load and we cannot
always optimize that away before running clk2fflogic, so check for that
special case here.
2022-08-16 13:37:30 +02:00
Jannis Harder
65145db7e7
rename: Add -witness mode
2022-08-16 13:37:30 +02:00
Jannis Harder
a2f9ebe43a
memory_map: Add -formal option
...
This maps memories for a global clock based formal verification flow.
This implies -keepdc, uses $ff cells for ROMs and sets hdlname
attributes.
2022-08-16 13:37:30 +02:00
Jannis Harder
0cdb14df41
setundef: Do not add anyseq / anyconst to unused memory port clocks
...
Instead set those unused clocks to zero.
2022-08-16 13:37:30 +02:00
Jannis Harder
428ad5b9fd
wreduce: Keep more x-bits with -keepdc
2022-08-16 13:37:30 +02:00
Jannis Harder
95db5a9d38
formalff: New -setundef option
...
Find FFs with undefined initialization values for which changing the
initialization does not change the observable behavior and initialize
them. For -ff2anyinit, this reduces the number of generated $anyinit
cells that drive wires with private names.
2022-08-16 13:37:30 +02:00
Jannis Harder
a5e1d3b997
formalff: Set new replaced_by_gclk attribute on removed dff's clks
...
This attribute can be used by formal backends to indicate which clocks
were mapped to the global clock. Update the btor and smt2 backend which
already handle clock inputs to understand this attribute.
2022-08-16 13:37:30 +02:00
Jannis Harder
c0063288d6
Add the $anyinit cell and the formalff pass
...
These can be used to protect undefined flip-flop initialization values
from optimizations that are not sound for formal verification and can
help mapping all solver-provided values in witness traces for flows that
use different backends simultaneously.
2022-08-16 13:37:30 +02:00
N. Engelhardt
6f439dc59a
Merge pull request #3425 from YosysHQ/lofty/stat-json
2022-08-11 17:00:54 +02:00
Lofty
59facfa98c
stat: add option for machine-readable json output
2022-08-11 13:41:01 +01:00
N. Engelhardt
63fca0dbc2
Merge pull request #3277 from YosysHQ/lofty/rename-scramble_name
2022-08-11 12:06:04 +02:00
Miodrag Milanovic
f4a1906721
support file locations containing spaces
2022-08-08 20:30:50 +02:00
Lofty
a48dcd1d40
rename: add -scramble-name option to randomly rename selections
2022-08-08 16:03:28 +01:00
Marcelina Kościelnicka
f679b756d8
opt_reduce: Fix use-after-free.
...
Fixes #3418 .
2022-07-23 17:27:26 +02:00
Jannis Harder
14ba50908b
sim: Fix $anyseq in nested modules
2022-07-22 14:48:30 +02:00
Catherine
502b96fe53
Fix external ABC build after commit 0ca0932b5
.
2022-07-07 08:38:30 +00:00
Jannis Harder
4a1e54bf70
Merge pull request #3395 from jix/opt_dff_keepdc_initival
...
opt_dff: With -keepdc, never turn undef init vals into const drivers
2022-07-01 16:52:32 +02:00
Jannis Harder
876ef59f4f
Merge pull request #3396 from jix/async2sync_const_clocks
...
async2sync: turn FFs with const clks into gclk FFs with feedback
2022-07-01 16:47:31 +02:00
Jannis Harder
0182b26aba
Merge pull request #3391 from programmerjake/simcheck-allow-smtlib2-blackboxes
...
add hierarchy -smtcheck
2022-07-01 14:38:45 +02:00
Jannis Harder
5db542742b
async2sync: turn FFs with const clks into gclk FFs with feedback
...
The formal backends do not support multiple clocks. This includes
constant clocks. Constant clocks do appear in what isn't a proper
multiclock design, for example when mapping not fully initialized ROMs.
As converting FFs with constant clocks to FFs using the global is doable
even in a single clock flow, make async2sync do this.
2022-06-30 12:09:04 +02:00
Jannis Harder
a47254bd10
opt_dff: With -keepdc, never turn undef init vals into const drivers
2022-06-29 15:42:39 +02:00
Jannis Harder
a6b440b5c9
memory_map: avoid undriven unused FF inputs for -keepdc
2022-06-28 19:05:35 +02:00
Jannis Harder
d78d807a7f
memory_map: -keepdc option for formal
...
Use it when invoking memory_map -rom-only from write_{smt2,btor}.
2022-06-27 15:47:55 +02:00
Jacob Lifshay
c16c028831
add hierarchy -smtcheck
...
like -simcheck, but allow smtlib2_module modules.
2022-06-22 20:53:10 -07:00
Marcelina Kościelnicka
ab3a9325c3
memory_map: Add -rom-only option.
2022-06-17 16:56:11 +02:00
Marcelina Kościelnicka
01daa077a2
memory_map: Use const drivers instead of FFs for ROMs.
2022-06-17 15:17:14 +02:00
Marcelina Kościelnicka
d69091806a
memory_libmap: Fix wrprio handling.
2022-06-17 02:09:37 +02:00
Marcelina Kościelnicka
25a4cd7020
memory_libmap: Fix params emitted for unused ports for consistency.
2022-06-16 08:14:08 +02:00
N. Engelhardt
3eaa9e38e0
Merge pull request #3196 from bfg86/bfg86/rename
...
Add -suffix option to rename -wire
2022-06-13 16:00:04 +02:00
Marcelina Kościelnicka
1ff0e1a58a
opt_ffinv: Fix use after free.
2022-06-13 14:04:04 +02:00
bfg86
aedd3b7999
Updating help-text with nakengelhardts suggestion.
2022-06-13 09:35:10 +02:00
N. Engelhardt
b8ede6162b
Merge pull request #3349 from nakengelhardt/select_count_scratchpad
...
Make 'stat' and 'select -count' save counts to scratchpad
2022-06-09 17:15:02 +02:00
N. Engelhardt
871b277d35
Merge pull request #3359 from jix/fmcombine-memid
...
fmcombine: Add _gold/_gate suffix to memids
2022-06-09 17:12:34 +02:00
Henner Zeller
9d41aa8e28
Avoid unnecessary copy of a potential large constant value.
...
The local variable is used just to iterate through the values, so
a const reference is all we need.
2022-06-09 16:05:51 +01:00
Marcelina Kościelnicka
47efc04a7d
wreduce: Introduce -mux_undef option (aligned with opt_expr).
2022-06-08 21:28:58 +02:00
Lofty
aae2c01326
sta: warn on unrecognised cells only once
2022-06-08 09:31:49 +01:00
Marcelina Kościelnicka
d07828b409
opt_ffinv: Harden against simple ff/inv loop.
2022-06-07 08:20:06 +02:00
Marcelina Kościelnicka
9e8a2ac051
iopadmap: Fix z assignment removal.
...
Fixes #3360 .
2022-06-07 04:10:50 +02:00
Jannis Harder
459941c8ff
fmcombine: Add _gold/_gate suffix to memids
2022-06-03 21:52:28 +02:00
Miodrag Milanovic
d88a5d26b7
Fix preventing show crashing with newer graphviz
2022-06-03 08:38:16 +02:00
Marcelina Kościelnicka
71dfbf33b2
Add -no-rw-check option to memory_dff + memory + synth_{ice40,ecp5,gowin}.
2022-06-02 23:16:12 +02:00
Marcelina Kościelnicka
3a0aa9c663
memory_dff: Add support for no_rw_check attribute.
2022-06-02 12:49:34 +02:00
N. Engelhardt
61b05051e1
also make 'stat' save counts to scratchpad
2022-06-01 16:01:07 +02:00
N. Engelhardt
a55c3db384
have 'select -count' save the count to scratchpad entry 'select.count'
2022-06-01 14:39:33 +02:00
Mohamed A. Bamakhrama
1822be8792
Observe $TMPDIR variable when creating tmp files
...
POSIX defines $TMPDIR as containing the pathname of the directory where
programs can create temporary files. On most systems, this variable points to
"/tmp". However, on some systems it can point to a different location.
Without respecting this variable, yosys fails to run on such systems.
Signed-off-by: Mohamed A. Bamakhrama <mohamed@alumni.tum.de>
2022-05-27 15:06:53 +02:00
gatecat
166a175983
abc9_ops: Don't leave unused derived modules lying around
...
These later become accidentally used for techmap replacements for
blackboxes that we don't actually want.
Signed-off-by: gatecat <gatecat@ds0.me>
2022-05-23 15:02:25 +01:00
Jannis Harder
fc65ea47df
select: Fix -assert-none and -assert-any error output and docs
...
Both of these options consider a selection containing only empty modules
as non-empty. This wasn't mentioned in the documentation nor did the
error message when using `select -assert-none` list those empty modules,
which produced a very confusing error message complaining about a
non-empty selection followed by an empty listing of the selection.
This fixes the documentation and changes the `-assert-none` and
`-assert-any` assertion error messages to also output fully selected
modules (this includes selected empty modules).
It doesn't change the messages for `-assert-count` etc. as they don't
count modules.
2022-05-19 14:07:34 +02:00
Marcelina Kościelnicka
606f1637ae
Add memory_bmux2rom pass.
2022-05-18 22:48:55 +02:00
Marcelina Kościelnicka
7c5dba8b77
Add memory_libmap pass.
2022-05-18 17:32:56 +02:00
Marcelina Kościelnicka
9450f308f0
proc_rom: Add special handling of const-0 address bits.
2022-05-18 17:32:30 +02:00
Marcelina Kościelnicka
98c7804b89
opt_ffinv: Use ModIndex instead of ModWalker.
...
This avoids using out-of-data index information.
2022-05-17 02:52:21 +02:00
Marcelina Kościelnicka
2858bb03cd
Add opt_ffinv pass.
2022-05-13 23:02:30 +02:00
Marcelina Kościelnicka
990c9b8e11
Add proc_rom pass.
2022-05-13 00:37:14 +02:00
Miodrag Milanović
58b23954e8
Merge pull request #3299 from YosysHQ/mmicko/sim_memory
...
sim pass: support for memories
2022-05-09 09:28:09 +02:00
Marcelina Kościelnicka
77b1dfd8c3
opt_mem: Remove constant-value bit lanes.
2022-05-07 23:13:16 +02:00
imhcyx
71166eeecf
memory_share: fix wrong argidx in extra_args
2022-05-05 16:58:39 +08:00
Marcelina Kościelnicka
18a48b1337
abc: Use dict/pool instead of std::map/std::set
2022-05-04 22:04:50 +02:00
Miodrag Milanovic
8e02b3ca30
fix crash when no fst input
2022-05-04 11:21:39 +02:00
Miodrag Milanovic
ad48639cdd
Start restoring memory state from VCD/FST
2022-05-04 10:41:04 +02:00
Miodrag Milanovic
3730db4b98
AIM file could have gaps in or between inputs and inits
2022-05-02 11:18:30 +02:00
Jannis Harder
e0e31bfc5c
Merge pull request #3257 from jix/tribuf-formal
...
tribuf: `-formal` option: convert all to logic and detect conflicts
2022-04-25 16:23:06 +02:00
Miodrag Milanovic
bbfdea2f8a
Match $anyseq input if connected to public wire
2022-04-22 17:20:17 +02:00
Miodrag Milanovic
4d80bc24c7
Treat $anyseq as input from FST
2022-04-22 16:23:39 +02:00
Miodrag Milanovic
33f4009bb5
Last sample from input does not represent change
2022-04-22 13:46:11 +02:00
Miodrag Milanovic
83cad82b29
latches are always set to zero
2022-04-22 12:04:05 +02:00
Miodrag Milanovic
c989adcc2d
If not multiclock, output only on clock edges
2022-04-22 12:03:39 +02:00
Miodrag Milanovic
75032a565d
Set init state for all wires from FST and set past
2022-04-22 11:57:39 +02:00
Miodrag Milanovic
8fa2f3b260
Fix multiclock for btor2 witness
2022-04-22 11:53:41 +02:00
Miodrag Milanović
c3a3f68b4d
Merge pull request #3280 from YosysHQ/micko/fix_readaiw
...
Fix reading aiw from other solvers
2022-04-18 09:49:21 +02:00
Marcelina Kościelnicka
25ff83f0b5
memory_share: Fix up mismatched address widths.
2022-04-15 22:01:00 +02:00
Marcelina Kościelnicka
48eea3efcf
opt_dff: Fix behavior on $ff with D == Q.
2022-04-15 22:00:32 +02:00
Miodrag Milanovic
9508bb2330
Fix reading aiw from other solvers
2022-04-15 11:45:16 +02:00
Jannis Harder
bc48500548
tribuf: `-formal` option: convert all to logic and detect conflicts
2022-04-12 12:46:22 +02:00
Miodrag Milanovic
868409361c
Use wrap_async_control_gate if ff is fine
2022-04-08 16:30:29 +02:00
Iris Johnson
ccc6060f52
Makefile: properly conditionalize features requiring compression.
2022-04-07 20:07:44 -05:00
Catherine
8a1d531b25
Merge pull request #3269 from YosysHQ/micko/fix_autotop
...
Reorder steps in -auto-top to fix synth command, fixes #3261
2022-04-07 22:40:35 +00:00
Marcelina Kościelnicka
376d8cb26f
abc: Add support for FFs with reset in -dff
2022-04-07 15:05:02 +02:00
Miodrag Milanovic
977002b1d2
Reorder steps in -auto-top to fix synth command, fixes #3261
2022-04-05 14:02:37 +02:00
Marcelina Kościelnicka
0aec79a0da
show: Fix width labels.
...
See #3266 .
2022-04-04 22:48:09 +02:00
Miodrag Milanovic
6020ba67ac
past_ad initial value setting
2022-04-02 19:13:15 +02:00
Miodrag Milanovic
2c96ecc5f7
setInitState can be only one altering values
2022-04-02 19:13:15 +02:00
Miodrag Milanovic
b54aecd80a
Set past_d value for init state
2022-04-02 19:13:15 +02:00
Jannis Harder
8ca9737180
Merge pull request #3264 from jix/invalid_ff_dcinit_merge
...
opt_merge: Add `-keepdc` option required for formal verification
2022-04-02 12:41:28 +02:00
Jannis Harder
ca5b910296
opt_merge: Add `-keepdc` option required for formal verification
...
The `-keepdc` option prevents merging flipflops with dont-care bits in
their initial value, as, in general, this is not a valid transform for
formal verification.
The keepdc option of `opt` is passed along to `opt_merge` now.
2022-04-01 21:03:20 +02:00
Miodrag Milanovic
86ce441af6
Set init values for wrapped async control signals
2022-04-01 17:44:00 +02:00
Miodrag Milanovic
c95b9b4ba5
Support memories in aiw and multiclock
2022-03-31 13:10:13 +02:00
Lofty
c1057cb3e0
Merge pull request #3194 from Ravenslofty/abc9-flow3mfs
...
abc9: add flow3mfs script
2022-03-28 15:51:04 +01:00