aboutsummaryrefslogtreecommitdiffstats
path: root/passes
Commit message (Collapse)AuthorAgeFilesLines
* Fitting help messages to 80 character widthKrystalDelusion2022-08-2424-149/+157
| | | | | | | | | 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.
* sim: -hdlname option to preserve flattened hierarchy in sim outputJannis Harder2022-08-161-9/+41
|
* clk2fflogic: Generate less unused logic when using verificJannis Harder2022-08-161-1/+4
| | | | | | 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.
* rename: Add -witness modeJannis Harder2022-08-161-0/+81
|
* memory_map: Add -formal optionJannis Harder2022-08-161-17/+67
| | | | | | This maps memories for a global clock based formal verification flow. This implies -keepdc, uses $ff cells for ROMs and sets hdlname attributes.
* setundef: Do not add anyseq / anyconst to unused memory port clocksJannis Harder2022-08-161-0/+24
| | | | Instead set those unused clocks to zero.
* wreduce: Keep more x-bits with -keepdcJannis Harder2022-08-161-4/+4
|
* formalff: New -setundef optionJannis Harder2022-08-161-0/+335
| | | | | | | 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.
* formalff: Set new replaced_by_gclk attribute on removed dff's clksJannis Harder2022-08-161-0/+22
| | | | | | 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.
* Add the $anyinit cell and the formalff passJannis Harder2022-08-167-1/+199
| | | | | | | 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.
* Merge pull request #3425 from YosysHQ/lofty/stat-jsonN. Engelhardt2022-08-111-38/+109
|\
| * stat: add option for machine-readable json outputLofty2022-08-111-38/+109
| |
* | Merge pull request #3277 from YosysHQ/lofty/rename-scramble_nameN. Engelhardt2022-08-111-0/+56
|\ \ | |/ |/|
| * rename: add -scramble-name option to randomly rename selectionsLofty2022-08-081-0/+56
| |
* | support file locations containing spacesMiodrag Milanovic2022-08-083-9/+9
|/
* opt_reduce: Fix use-after-free.Marcelina Kościelnicka2022-07-231-4/+2
| | | | Fixes #3418.
* sim: Fix $anyseq in nested modulesJannis Harder2022-07-221-11/+21
|
* Fix external ABC build after commit 0ca0932b5.Catherine2022-07-072-4/+8
|
* Merge pull request #3395 from jix/opt_dff_keepdc_initivalJannis Harder2022-07-011-5/+17
|\ | | | | opt_dff: With -keepdc, never turn undef init vals into const drivers
| * opt_dff: With -keepdc, never turn undef init vals into const driversJannis Harder2022-06-291-5/+17
| |
* | Merge pull request #3396 from jix/async2sync_const_clocksJannis Harder2022-07-011-0/+3
|\ \ | | | | | | async2sync: turn FFs with const clks into gclk FFs with feedback
| * | async2sync: turn FFs with const clks into gclk FFs with feedbackJannis Harder2022-06-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #3391 from programmerjake/simcheck-allow-smtlib2-blackboxesJannis Harder2022-07-011-7/+16
|\ \ \ | |/ / |/| | add hierarchy -smtcheck
| * | add hierarchy -smtcheckJacob Lifshay2022-06-221-7/+16
| |/ | | | | | | like -simcheck, but allow smtlib2_module modules.
* | memory_map: avoid undriven unused FF inputs for -keepdcJannis Harder2022-06-281-0/+3
| |
* | memory_map: -keepdc option for formalJannis Harder2022-06-271-3/+14
|/ | | | Use it when invoking memory_map -rom-only from write_{smt2,btor}.
* memory_map: Add -rom-only option.Marcelina Kościelnicka2022-06-171-4/+18
|
* memory_map: Use const drivers instead of FFs for ROMs.Marcelina Kościelnicka2022-06-171-52/+59
|
* memory_libmap: Fix wrprio handling.Marcelina Kościelnicka2022-06-171-1/+1
|
* memory_libmap: Fix params emitted for unused ports for consistency.Marcelina Kościelnicka2022-06-161-2/+3
|
* Merge pull request #3196 from bfg86/bfg86/renameN. Engelhardt2022-06-131-4/+13
|\ | | | | Add -suffix option to rename -wire
| * Updating help-text with nakengelhardts suggestion.bfg862022-06-131-2/+2
| |
| * Add -suffix option to rename -wire.bfg862022-02-111-4/+13
| | | | | | | | See #3195
* | opt_ffinv: Fix use after free.Marcelina Kościelnicka2022-06-131-3/+6
| |
* | Merge pull request #3349 from nakengelhardt/select_count_scratchpadN. Engelhardt2022-06-092-0/+12
|\ \ | | | | | | Make 'stat' and 'select -count' save counts to scratchpad
| * | also make 'stat' save counts to scratchpadN. Engelhardt2022-06-011-0/+9
| | |
| * | have 'select -count' save the count to scratchpad entry 'select.count'N. Engelhardt2022-06-011-0/+3
| | |
* | | Merge pull request #3359 from jix/fmcombine-memidN. Engelhardt2022-06-091-0/+3
|\ \ \ | | | | | | | | fmcombine: Add _gold/_gate suffix to memids
| * | | fmcombine: Add _gold/_gate suffix to memidsJannis Harder2022-06-031-0/+3
| | | |
* | | | Avoid unnecessary copy of a potential large constant value.Henner Zeller2022-06-091-2/+2
| | | | | | | | | | | | | | | | | | | | The local variable is used just to iterate through the values, so a const reference is all we need.
* | | | wreduce: Introduce -mux_undef option (aligned with opt_expr).Marcelina Kościelnicka2022-06-081-1/+9
| | | |
* | | | sta: warn on unrecognised cells only onceLofty2022-06-081-1/+4
| | | |
* | | | opt_ffinv: Harden against simple ff/inv loop.Marcelina Kościelnicka2022-06-071-0/+4
| | | |
* | | | iopadmap: Fix z assignment removal.Marcelina Kościelnicka2022-06-071-7/+21
|/ / / | | | | | | | | | Fixes #3360.
* | | Fix preventing show crashing with newer graphvizMiodrag Milanovic2022-06-031-1/+6
| | |
* | | Add -no-rw-check option to memory_dff + memory + synth_{ice40,ecp5,gowin}.Marcelina Kościelnicka2022-06-022-7/+23
| | |
* | | memory_dff: Add support for no_rw_check attribute.Marcelina Kościelnicka2022-06-022-0/+13
|/ /
* | Observe $TMPDIR variable when creating tmp filesMohamed A. Bamakhrama2022-05-273-3/+3
| | | | | | | | | | | | | | | | | | 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>
* | abc9_ops: Don't leave unused derived modules lying aroundgatecat2022-05-231-0/+9
| | | | | | | | | | | | | | These later become accidentally used for techmap replacements for blackboxes that we don't actually want. Signed-off-by: gatecat <gatecat@ds0.me>
* | select: Fix -assert-none and -assert-any error output and docsJannis Harder2022-05-191-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.