Commit Graph

1654 Commits

Author SHA1 Message Date
Akash Levy 3a32729373 Remove keep_running variable (unused) 2024-11-17 10:40:04 -08:00
Akash Levy 8f9a0b680a Fix O(N^2) port dump down to O(N) 2024-11-16 22:56:41 -08:00
Robin Ole Heinemann 6d4f056a35 cxxrtl: use debug attrs of alias not aliasee 2024-11-12 13:07:33 +00:00
Robin Ole Heinemann 8bc4bd8a20 cxxrtl, fmt: escape double quotes in c strings 2024-11-11 18:49:05 +00:00
Jannis Harder 558b2f9ae9
Merge pull request #3953 from georgerennie/bug_3769
write_smt2: Check for constant bool after fully resolving signal
2024-11-11 16:23:35 +01:00
Jannis Harder 014cb531aa
Merge pull request #4645 from georgerennie/george/btor_undef_array_init
write_btor: only initialize array with const value when it is fully def
2024-11-11 16:18:57 +01:00
Jannis Harder 261b44718d
Merge pull request #4641 from georgerennie/george/btor_undriven_wires
write_btor: don't emit undriven bits multiple times
2024-11-11 16:17:25 +01:00
AdamLee7 7ed359fa7b add select option for write_json 2024-11-07 17:48:06 +08:00
Krystine Sherwin ee73a91f44
Remove references to ilang 2024-11-05 12:36:31 +13:00
Martin Povišer 598f6c9de9 aiger2: Fix open-coded constants 2024-10-26 08:54:01 +02:00
Emil J. Tywoniak 785bd44da7 rtlil: represent Const strings as std::string 2024-10-14 06:28:12 +02:00
Jean-François Nguyen f953a516d0 cxxrtl: fix handling of 0-bit variables in `vcd_writer.sample()`. 2024-10-13 01:00:40 +01:00
Robin Ole Heinemann 0f762f75a6 cxxrtl: fix vcd writer scope handling
The vcd writer incorrectly treated two scope vectors as the same, whenever
they have the same length of entries and the last item matches.
This is however not always true, for example consider a current_scope of
["top", "something0", "same"]
and a scope of
["top", "something1", "same"]
2024-10-12 14:41:53 +01:00
Robin Ole Heinemann a761999579 cxxrtl: fix formatting of UNICHAR
This caused compilation to fail when the argument of any, not just
UNICHAR formatting operations, is bigger than 32 bits.

Fixes #4644
2024-10-09 14:39:37 +01:00
George Rennie 6ab3931964 write_btor: only initialize array with const value when it is fully def
* If all addresses of an array have the same initial value, they can be
  initialized in one go in btor with the constraint that the initial
  value must be fully const and thus can't have undef bits in
2024-10-09 15:07:56 +02:00
George Rennie 268926cb5b write_btor: don't emit undriven bits multiple times
* Fixes #4640
2024-10-08 14:39:21 +02:00
KrystalDelusion 0be3b7de51
Merge pull request #4635 from YosysHQ/krys/pr_docs_ci
Remove make docs race conditions (and other docs fixes)
2024-10-08 21:39:30 +13:00
Miodrag Milanovic f079772ade Add TODO for missing help messages 2024-10-08 08:47:51 +02:00
Jannis Harder b3b88e56d4
Merge pull request #4609 from georgerennie/george/smtbmc_paths
smtbmc: escape path identifiers
2024-10-07 20:36:24 +02:00
Martin Povišer 72f0fea9e8 aiger2: Try to fix VS build 2024-10-07 12:27:37 +02:00
Martin Povišer 47fd2b9deb aiger2: Update help 2024-10-07 12:03:49 +02:00
Martin Povišer 373e7a1485 aiger2: Fix print 2024-10-07 12:03:49 +02:00
Martin Povišer ebe51e206e aiger2: Fix warnings 2024-10-07 12:03:49 +02:00
Martin Povišer ac79a052ba aiger2: Adjust help 2024-10-07 12:03:49 +02:00
Martin Povišer 81688e3ba2 aigsize: Remove 2024-10-07 12:03:49 +02:00
Martin Povišer b8f389370b aiger2: Convert x-states to zeroes 2024-10-07 12:03:48 +02:00
Martin Povišer 4c0a8a1326 aiger2: Add analysis step to order boxes 2024-10-07 12:03:48 +02:00
Martin Povišer f7c7371ea9 aiger2: Fix relative ordering of PI/POs and box I/Os 2024-10-07 12:03:48 +02:00
Martin Povišer d4e009fc2f aiger2: Add TODO 2024-10-07 12:03:48 +02:00
George Rennie b788de9329 smtbmc: escape path identifiers
* also changes the print format for cover statements to be more uniform
  with the asserts, allowing easier parsing of cover path
* this allows diambiguation of properties with the same name but
  different paths (see https://github.com/YosysHQ/sby/issues/296)
2024-09-24 03:01:49 +01:00
Martin Povišer 5f8d7ff170 Start new write_xaiger2 backend for export w/ boxes 2024-09-18 16:55:02 +02:00
Martin Povišer ea765686b6 aiger2: Adjust hierarchy/port handling 2024-09-18 16:55:02 +02:00
Martin Povišer 2a3e907da8 aiger2: Adjust typing 2024-09-18 16:42:56 +02:00
Martin Povišer 72d65063c3 aiger2: Ignore benign cells 2024-09-18 16:42:56 +02:00
Martin Povišer 6cecf19ff4 aiger2: Ingest `$bmux` 2024-09-18 16:42:56 +02:00
Martin Povišer 1cfb9023c4 aiger2: Use `REDUCE` for reduction ops 2024-09-18 16:42:56 +02:00
Martin Povišer 6c1fa45995 aiger2: Ingest `$pmux` 2024-09-18 16:42:56 +02:00
Martin Povišer 9db1ca83fc aiger2: Drop `empty_lit()` as a function 2024-09-17 13:58:07 +02:00
Martin Povišer dbc937b2a7 aiger2: Describe supported cells in help 2024-09-17 13:55:58 +02:00
Martin Povišer e4b24e8200 aiger2: Fix literal typing 2024-09-17 13:55:58 +02:00
Martin Povišer 8e29675a23 aiger2: Support `$bwmux`, comparison operators 2024-09-17 13:55:58 +02:00
Martin Povišer d7128cb787 aiger2: Use shorthands 2024-09-17 13:55:58 +02:00
Martin Povišer e59387e5a9 aiger2: Add `aigsize` as a second user of index 2024-09-17 13:55:58 +02:00
Martin Povišer de8a2fb936 aiger2: Fix duplicate symbols on multibit ports 2024-09-17 13:55:58 +02:00
Martin Povišer 5671c10173 aiger2: Add strashing option 2024-09-17 13:55:58 +02:00
Martin Povišer fa39227416 aiger2: Support `$pos` 2024-09-17 13:55:58 +02:00
Martin Povišer fb26945a20 Start an 'aiger2' backend 2024-09-17 13:55:58 +02:00
Martin Povišer e13ace675e dump: Update help after option removal 2024-09-17 10:46:20 +02:00
Martin Povišer 865df26fac Adjust buf-normalized mode 2024-09-17 10:46:20 +02:00
Claire Xenia Wolf 80119386c0 Add RTLIL "buffered-normalized mode" and improve "bufnorm" pass
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
2024-09-17 10:46:20 +02:00
Miodrag Milanović b20df72e1e
Merge pull request #4536 from YosysHQ/functional
Functional Backend
2024-09-06 10:05:04 +02:00
Krystine Sherwin d6c5e13bf3 smtr: Structs have local scope
Also unique_name can take field_name directly.
2024-09-03 11:32:02 +01:00
Krystine Sherwin a2abbcb33f smtr: Use scope.unique_name 2024-09-03 11:32:02 +01:00
Krystine Sherwin 5a29b3e172 smtr: More sanitization 2024-09-03 11:32:02 +01:00
Krystine Sherwin 07b6908019 smtr: Use rosette/safe 2024-09-03 11:32:02 +01:00
Krystine Sherwin 8b29629ca9 smtr: Fork smtlib for rosette 2024-09-03 11:32:02 +01:00
Martin Povišer 9c1bcb38d9 write_xaiger: Get by without endianness helpers 2024-09-03 08:59:09 +02:00
Emily Schmidt 4eeb8d326a functional backend: rename "type" to either "kind" or "sort" to make the terminology consistent 2024-08-28 12:39:41 +01:00
Asherah Connor d0da1b56be cxxrtl: backend: don't drop bits 2 and 5 on non-printable format. 2024-08-27 18:36:47 +03:00
Emily Schmidt b428bf4600 functional backends: identifiers in c++/smtlib may not start with digits 2024-08-27 13:10:34 +01:00
Roland Coeurjoly 91e3773b51 Ensure signed constants are correctly parsed, represented, and exported in RTLIL. Add a test to check parsing and exporting 2024-08-21 14:28:42 +01:00
Emily Schmidt f456761e88 add sandia copyright notice to the functional backend 2024-08-21 11:04:11 +01:00
Emily Schmidt 50047d25b3 functional backend: add different types of input/output/state variables 2024-08-21 11:04:11 +01:00
Emily Schmidt 850b3a6c29 convert class FunctionalIR to a namespace Functional, rename functionalir.h to functional.h, rename functional.h to compute_graph.h 2024-08-21 11:04:08 +01:00
Emily Schmidt 8c0f625c3a functional backend: topological sort starts with the output and next states nodes, other nodes get deleted 2024-08-21 11:03:29 +01:00
Emily Schmidt 95d28c22a2 functional backend: make Memory in the C++ simulation library read-only again 2024-08-21 11:03:29 +01:00
Emily Schmidt 99effb6789 add support for initializing registers and memories to the functional backend 2024-08-21 11:03:29 +01:00
Emily Schmidt 6d329e142d functional backend: error out if multiply driven or undriven signals are seen, dont bother putting them in functionalir 2024-08-21 11:03:29 +01:00
Emily Schmidt 13bacc5c8f eliminate pmux in functional backend 2024-08-21 11:03:29 +01:00
Emily Schmidt 55c2c17853 document functionalir.h and change visitors to derive from AbstractVisitor. remove extraneous widths arguments from visitors. 2024-08-21 11:03:29 +01:00
Emily Schmidt 674e6d201d rewrite functional backend test code in python 2024-08-21 11:03:29 +01:00
Emily Schmidt 6e7ae88c6a fix bugs in smtlib backend 2024-08-21 11:03:29 +01:00
Emily Schmidt 00a65754bb factor out SExpr/SExprWriter classes out of smtlib backend, and also tidy them up/document them 2024-08-21 11:03:27 +01:00
Emily Schmidt c659ef29f4 change smtlib backend to use list() function instead of SExpr{} constructor (leads to weird constructor overloading resolution issues) 2024-08-21 11:02:31 +01:00
Emily Schmidt 9f660b1e4b rewrite smtlib pass to use SExpr class 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 7cff8fa3a3 Fix corner case of pos cell with input and output being same width 2024-08-21 11:02:31 +01:00
Roland Coeurjoly fad76ce677 Fix memory leak 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 5780357cd9 Emit valid SMT for stateful designs, fix some cells 2024-08-21 11:02:31 +01:00
Roland Coeurjoly f0f436cbe7 Fix parenthesis for arithmetic_shift_right 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 57af68af96 include algorithm, needed for std::reverse 2024-08-21 11:02:31 +01:00
Emily Schmidt 1b2986f7fb add support for $mul, $div, $divfloor, $mod, $modfloor, $pow in functional backend 2024-08-21 11:02:31 +01:00
Emily Schmidt 9700df50d6 add generic writer class with formatting function to FunctionalTools 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 32cdf25838 Use FunctionalTools::Scope instead of replaceCharacters 2024-08-21 11:02:31 +01:00
Roland Coeurjoly ee6bd59436 Removed unnecesary nested_lets variable, use writer.print instead 2024-08-21 11:02:31 +01:00
Emily Schmidt 21bb1cf1bc rewrite functional c++ simulation library 2024-08-21 11:02:31 +01:00
Emily Schmidt eb2bb8c45b tidy up generic functional backend, add generic scope class, tidy up c++ functional backend 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 39bf4f04f7 Create VCD file from SMT file 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 4109fcedcf clang-format smtlib.cc 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 94ddbc9577 Fix reduce_or 2024-08-21 11:02:31 +01:00
Roland Coeurjoly b98210d8ac Valid SMT is emitted, improved test script 2024-08-21 11:02:31 +01:00
Roland Coeurjoly c6e112686c Remove unused includes 2024-08-21 11:02:31 +01:00
Roland Coeurjoly 4e370f4426 Initial functional SMT backend using functional IR 2024-08-21 11:02:31 +01:00
Emily Schmidt 6f9e21219b add new generic compute graph and rewrite c++ functional backend to use it 2024-08-21 11:02:29 +01:00
Roland Coeurjoly 3552a8a2b2 sim.h cannot use log_assert because does not include yosys headers 2024-08-21 11:01:09 +01:00
Emily Schmidt 7b29d177ac add support for memories to c++ and smtlib functional backends 2024-08-21 11:01:09 +01:00
Roland Coeurjoly 76371d177f Change assert to log_assert 2024-08-21 11:01:09 +01:00
Roland Coeurjoly 720429b1fd Add test_cell tests for C++ functional backend 2024-08-21 11:01:09 +01:00
Emily Schmidt 7611dda2eb add initial version of functional smtlib backend 2024-08-21 11:01:09 +01:00
Emily Schmidt 63dea89fac add initial version of functional C++ backend 2024-08-21 11:01:09 +01:00
Asherah Connor 62bff3a204 cxxrtl: don't need to specify a value for "path".
Callers of the deprecated method had a path already.
2024-06-13 13:17:02 +01:00