Gus Smith
d8b27d41c0
Bugfix
2025-05-21 21:31:07 -07:00
Gus Smith
8ec9de00ec
Use ir.inputs()/ir.outputs()
2025-05-20 17:45:23 -07:00
Gus Smith
af51097af7
Convert to 'assoc list helpers'
2025-05-18 18:01:43 -07:00
Gus Smith
a55dc80175
Rename parameter
2025-05-17 16:04:17 -07:00
Gus Smith
c1111f125c
Add output helper as well
2025-05-17 15:19:09 -07:00
Gus Smith
1fdfba2a1a
Add helper for accessing by base name
...
The existing access function isn't useful if we don't have access to the original
names of the input/output/state signals. There may be a better way to do this, but
it might require restructuring the SmtrStruct.
2025-05-17 15:17:29 -07:00
Gus Smith
10b8fdddb4
Rename argument
2025-05-17 14:39:11 -07:00
Gus Smith
7b4c9c5dcd
Add optional keyword-based constructor
2025-05-17 14:12:09 -07:00
Gus Smith
fd5918c811
get_field_names for structs
2025-05-17 14:10:23 -07: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