aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of github.com:YosysHQ/yosys into claire/eqystuffClaire Xenia Wolf2022-12-042-1/+8
|\
| * Fix tcl crash in case of error executing commandMiodrag Milanovic2022-11-302-1/+8
| |
* | Add bitwise `$bweqx` and `$bwmux` cellsJannis Harder2022-11-305-4/+112
| | | | | | | | | | | | The new bitwise case equality (`$bweqx`) and bitwise mux (`$bwmux`) cells enable compact encoding and decoding of 3-valued logic signals using multiple 2-valued signals.
* | satgen, simlib: Consistent x-propagation for `$pmux` cellsJannis Harder2022-11-301-14/+9
|/ | | | | This updates satgen and simlib to use a `$pmux` model where the output is fully X when the S input is not all zero or one-hot with no x bits.
* sat: Add -set-def-formal option to force defined $any* outputsJannis Harder2022-11-282-4/+24
|
* Add TCL interactive shell modeMiodrag Milanovic2022-11-252-8/+34
|
* Rst docs conversion (#3496)KrystalDelusion2022-11-151-0/+109
| | | Rst docs conversion
* Add missing memory width assert preventing division by zero (#3546)Emil J2022-11-091-0/+1
|
* fstdata: Update past_data before end_time callbackJannis Harder2022-11-071-0/+1
| | | | Required to make the '-at' parameter work.
* fstdata: Handle square/angle bracket replacemnt, change memory handlingJannis Harder2022-11-071-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When writing VCDs smtbmc replaces square brackets with angle brackets to avoid the issues with VCD readers misinterpreting such signal names. For memory addresses it also uses angle brackets and hexadecimal addresses, while other tools will use square brackets and decimal addresses. Previously the code handled both forms of memory addresses, assuming that any signal that looks like a memory address is a memory address. This is not the case when the user uses regular signals whose names include square brackets _or_ when the verific frontend generates such names to represent various constructs. With this change all angular brackets are turned into square brackets when reading the trace _and_ when performing a signal lookup. This means no matter which kind of brackets are used in the design or in the VCD signals will be matched. This will not handle multiple signals that are the same apart from replacing square/angle brackets, but this will cause issues during the VCD writing of smtbmc already. It still uses the distinction between square and angle brackets for memories to decide whether the address is hex or decimal, but even if something looks like a memory and is added to the `memory_to_handle` data, the plain signal added to `name_to_handle` is used as-is, without rewriting the address. This last change is needed to successfully match verific generated signal names that look like memory addresses while keeping memories working at the same time. It may cause regressions when VCD generation was done with a design that had memories but simulation is done with a design where the memories were mapped to registers. This seems like an unusual setup, but could be worked around with some further changes should this be required.
* Add missing log_dump_val_worker forward declarationsClaire Xenia Wolf2022-10-301-0/+5
| | | | Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
* Consistent $mux undef handlingJannis Harder2022-10-243-10/+36
| | | | | | | | | | | | | | | | | | | * Change simlib's $mux cell to use the ternary operator as $_MUX_ already does * Stop opt_expr -keepdc from changing S=x to S=0 * Change const eval of $mux and $pmux to match the updated simlib (fixes sim) * The sat behavior of $mux already matches the updated simlib The verilog frontend uses $mux for the ternary operators and this changes all interpreations of the $mux cell (that I found) to match the verilog simulation behavior for the ternary operator. For 'if' and 'case' expressions the frontend may also use $mux but uses $eqx if the verilog simulation behavior is requested with the '-ifx' option. For $pmux there is a remaining mismatch between the sat behavior and the simlib behavior. Resolving this requires more discussion, as the $pmux cell does not directly correspond to a specific verilog construct.
* Add missing log_dump handler for std::vector<>Claire Xenia Wolf2022-10-201-0/+12
| | | | Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
* Add YOSYS_ABORT_ON_LOG_ERROR environment variable for debugging.Jannis Harder2022-10-071-0/+3
|
* Fix mingw buildMiodrag Milanovic2022-08-291-0/+3
|
* kernel: hashlib: cleaned up message about table size in cases where ↵Aki Van Ness2022-08-251-1/+1
| | | | `sizeof(int) == 4`, (closes #3440)
* use inttypes format specifiersN. Engelhardt2022-08-251-3/+3
|
* dump runtime information for passes to jsonN. Engelhardt2022-08-251-1/+28
|
* formalff: Set new replaced_by_gclk attribute on removed dff's clksJannis Harder2022-08-161-0/+1
| | | | | | 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-166-6/+48
| | | | | | | 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.
* Encode filename unprintable charsMiodrag Milanovic2022-08-081-0/+15
|
* Assorted microoptimization speedups in core data structures.Marcelina Kościelnicka2022-07-276-193/+117
|
* Make all compile under OpenBSD (#3423)Miodrag Milanović2022-07-272-0/+42
| | | Co-authored-by: Josuah Demangeon <me@josuah.net>
* Merge pull request #3392 from rockybulwinkle/rockybulwinkle-patch-1Miodrag Milanović2022-07-111-0/+4
|\ | | | | Update tcl doc, yosys does not return data to tcl
| * Remove empty linesMarcelina Kościelnicka2022-07-111-2/+0
| |
| * Update tcl doc, yosys does not return data to tclrockybulwinkle2022-06-231-0/+6
| | | | | | | | | | | | | | This pull request is to address YosysHQ/yosys#2980. The documentation, as originally written, does not make it clear that yosys commands, when used within a tcl script, do not return any value to the tcl script. This pull request notes this and offers a workaround via tee as noted in the issue.
* | using more portable formattingMiodrag Milanovic2022-07-061-1/+1
|/
* Add a check for packed memory MEMID uniquenessMarcelina Kościelnicka2022-06-131-0/+10
|
* Use compiler-generated default constructor for RTLIL::Const::ConstHenner Zeller2022-06-092-11/+3
| | | | | | No need for a manual implementation. While at it: have the constructor that takes a string take a const string reference instead to avoid a copy.
* smt2: Add smtlib2_comb_expr attribute to allow user-selected smtlib2 expressionsJacob Lifshay2022-06-021-0/+2
|
* memory_dff: Add support for no_rw_check attribute.Marcelina Kościelnicka2022-06-021-0/+1
|
* Merge pull request #3333 from mohamed/feature/tmpdirMiodrag Milanović2022-05-273-27/+44
|\ | | | | Observe $TMPDIR variable when creating tmp files
| * Cleanup, and fix windowsMiodrag Milanovic2022-05-271-37/+24
| |
| * Observe $TMPDIR variable when creating tmp filesMohamed A. Bamakhrama2022-05-273-4/+34
| | | | | | | | | | | | | | | | | | 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>
* | Remove set but unused variableMiodrag Milanovic2022-05-271-4/+0
|/
* Add memory_libmap pass.Marcelina Kościelnicka2022-05-181-0/+12
|
* Merge pull request #3310 from robinsonb5-PRs/masterMiodrag Milanović2022-05-171-0/+2
|\ | | | | Now calls Tcl_Init after creating the interp, fixes clock format.
| * Use log_warning when Tcl_Init fails, report error with Tcl_ErrnoMsg.Alastair M. Robinson2022-05-161-1/+1
| |
| * Now calls Tcl_Init after creating the interp, fixes clock format.Alastair M. Robinson2022-05-101-0/+2
| |
* | Add opt_ffinv pass.Marcelina Kościelnicka2022-05-132-3/+12
| |
* | Add proc_rom pass.Marcelina Kościelnicka2022-05-131-1/+1
|/
* Handle possible non-memory indexed dataMiodrag Milanovic2022-05-061-8/+10
|
* map memory location to wire value, if memory is converted to FFsMiodrag Milanovic2022-05-041-0/+4
|
* Start restoring memory state from VCD/FSTMiodrag Milanovic2022-05-042-1/+33
|
* Ignore change on last edgeMiodrag Milanovic2022-04-221-4/+5
|
* Proper scope naming from FSTMiodrag Milanovic2022-03-302-9/+4
|
* kernel/mem: Only use FF init in read-first emu for mem with initMarcelina Kościelnicka2022-03-281-1/+4
|
* Add some more reserve calls to RTLIL::ConstNotAFile2022-03-251-0/+5
| | | | This results in a slight ~0.22% total speedup synthesizing vexriscv
* More verbose warningsMiodrag Milanovic2022-03-181-1/+2
|
* Recognize registers and set initial state for them in tbMiodrag Milanovic2022-03-162-0/+2
|