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 |
Roland Coeurjoly
|
54225b5c42
|
Add test for SMT backend. Tests if SMT is valid and compares simulation with yosys sim
|
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 |
Emily Schmidt
|
248d5f72d4
|
add support for std::variant to hashlib
|
2024-08-21 11:01:09 +01:00 |
Emily Schmidt
|
dbf2bc3b1d
|
need unsigned comparison when checking shift widths for overflow in functional backend
|
2024-08-21 11:01:09 +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 |