Krystine Sherwin
b9485ce094
register.h: Add internal_flag to Pass
...
Update experimental pass warnings to use a shared function. Reduces repetition, and also allows all of the warning flags to be combined (which at present is just experimental and the new internal).
Update `test_*` passes to call `internal()` in their constructors.
2025-03-21 10:26:12 +13:00
Krystine Sherwin
fa2d45a922
smtr: Refactor write back into _eval and _initial
...
Easier for comparisons, and the structure still works. (I don't remember why I moved away from it in the first place.)
2025-02-07 13:58:09 +13:00
Krystine Sherwin
7698dfba5e
smtr: Fix help text
...
Can't take both [selection] and [filename] optional arguments.
2025-01-06 14:31:50 +13:00
Emil J. Tywoniak
785bd44da7
rtlil: represent Const strings as std::string
2024-10-14 06:28:12 +02:00
Miodrag Milanovic
f079772ade
Add TODO for missing help messages
2024-10-08 08:47:51 +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
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
Emily Schmidt
b428bf4600
functional backends: identifiers in c++/smtlib may not start with digits
2024-08-27 13:10:34 +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