| 
								
								
									 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 |  | 
				
					
						| 
								
								
									 Emily Schmidt | 7b29d177ac | add support for memories to c++ and smtlib functional backends | 2024-08-21 11:01:09 +01:00 |  |