Emily Schmidt
|
8f77494263
|
silence some warnings
|
2024-08-21 11:04:11 +01:00 |
Emily Schmidt
|
fbee31080e
|
add optional header and hashlib implementation for optional
|
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
|
7ac0e92d35
|
functional backend: rename get_input and get_current_state to input and current_state (more consistent with other methods)
|
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
|
bdb59ffc8e
|
add -fst-noinit flag to sim for not initializing the state from the fst file
|
2024-08-21 11:03:29 +01:00 |
Emily Schmidt
|
12a31a4418
|
add MemContents class to mem.h
|
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
|
145af6f10d
|
fix memory handling in functional backend, add more error messages and comments for memory edgecases
|
2024-08-21 11:03:29 +01:00 |
Emily Schmidt
|
4722f13a5d
|
functional backend: reduce $lcu to $alu
|
2024-08-21 11:03:29 +01:00 |
Emily Schmidt
|
3cd5f4ed83
|
add support for RTLIL cells with multiple outputs to the functional backend, implement $fa,$lcu,$alu
|
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
|
c0c90c2c31
|
functional backend: require shift width == clog2(operand width)
|
2024-08-21 11:03:29 +01:00 |
Emily Schmidt
|
7f8f21b980
|
remove widths parameters from FunctionalIR factory methods and from functionalir.cc
|
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
|
6922633b0b
|
fix a few bugs in the functional backend and refactor the testing
|
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
|
9ad859fc0a
|
add bwmux, bweqx, bmux, demux cells
|
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
|
80582ed3af
|
Check the existance of a different set of outputs. No need for (push 1) nor (pop 1)
|
2024-08-21 11:02:31 +01:00 |
Roland Coeurjoly
|
566e57d24f
|
Support $lut cells. Both C++ and SMT tests pass
|
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 |
Miodrag Milanovic
|
e296b884d5
|
Add Makefile helpers for coverage
|
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 |
Roland Coeurjoly
|
50f487e08c
|
Added $ff test
|
2024-08-21 11:02:31 +01:00 |
Roland Coeurjoly
|
762f8dd822
|
Add readme explaining how to create test files
|
2024-08-21 11:02:31 +01:00 |
Roland Coeurjoly
|
73ed514623
|
Check that there are not other solutions other than the first given
|
2024-08-21 11:02:31 +01:00 |
Roland Coeurjoly
|
cb5f08364c
|
´SMT success only if simulation is equivalent
|
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 |
Roland Coeurjoly
|
e235fc704d
|
Create std::mt19937 only once
|
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
|
71aaa1c80d
|
Consolidate tests scripts into one
|
2024-08-21 11:02:31 +01:00 |
Roland Coeurjoly
|
547c5466ec
|
Ignore smt2 files, generated by the execution of the tests
|
2024-08-21 11:02:31 +01:00 |
Roland Coeurjoly
|
c6e112686c
|
Remove unused includes
|
2024-08-21 11:02:31 +01:00 |