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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Asherah Connor 
								
							 
						 
						
							
							
							
							
								
							
							
								62bff3a204 
								
							 
						 
						
							
							
								
								cxxrtl: don't need to specify a value for "path".  
							
							... 
							
							
							
							Callers of the deprecated method had a path already. 
							
						 
						
							2024-06-13 13:17:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Asherah Connor 
								
							 
						 
						
							
							
							
							
								
							
							
								3ed2865ac5 
								
							 
						 
						
							
							
								
								cxxrtl: capi: don't use deprecated invocation.  
							
							
							
						 
						
							2024-06-13 13:17:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Catherine 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								9f94ecf4ed 
								
							 
						 
						
							
							
								
								Merge pull request  #4417  from kivikakk/cxxrtl-unused-output  
							
							... 
							
							
							
							cxxrtl: don't emit invalid code on unconnected outputs. 
							
						 
						
							2024-06-09 21:35:42 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jean-François Nguyen 
								
							 
						 
						
							
							
							
							
								
							
							
								54d5e56745 
								
							 
						 
						
							
							
								
								cxxrtl: fix debug_info() deprecation message.  
							
							
							
						 
						
							2024-06-07 20:12:53 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Asherah Connor 
								
							 
						 
						
							
							
							
							
								
							
							
								e97c36d4c4 
								
							 
						 
						
							
							
								
								cxxrtl: don't emit syncs for empty lhs.  
							
							
							
						 
						
							2024-06-07 14:24:27 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								094fa8caba 
								
							 
						 
						
							
							
								
								smtbmc: Fix two .yw handling related crashes  
							
							... 
							
							
							
							These came up when using the experimental incremental interface and are
also in code that was recently refactored to support that interface. 
							
						 
						
							2024-06-06 17:35:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Amiot Noe 
								
							 
						 
						
							
							
							
							
								
							
							
								c7580eb18e 
								
							 
						 
						
							
							
								
								cxxrtl: Prevent wires with input or output ports from being aliased  
							
							
							
						 
						
							2024-05-24 23:26:16 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Catherine 
								
							 
						 
						
							
							
							
							
								
							
							
								6e003e1af6 
								
							 
						 
						
							
							
								
								cxxrtl: minimize stack space consumed by debug_info().  
							
							... 
							
							
							
							This commit uses parameter packs to sink `debug_item()` construction
into the `debug_info()`-specific `add()` overload. This makes the stack
space use sub-linear in typical case rather than linear (which is still
the worst case). Oddly, the stack slots that get allocated now are all
for the `0` literal for `lsb_offset`. This could be fixed by allocating
numbers statically but the existing reduction in stack use of ~98% for
a representative example (Minerva SoC) should be enough. 
							
						 
						
							2024-05-08 03:37:14 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Catherine 
								
							 
						 
						
							
							
							
							
								
							
							
								80798daf53 
								
							 
						 
						
							
							
								
								cxxrtl: reduce stack space consumed by debug_info() further.  
							
							... 
							
							
							
							Before this commit, this function would create a temporary `std::string`
per debug item (and scope). After this commit, an additional overload is
used to push that down the call stack. This reduces stack usage by
about 50% more on top of the previous commit. 
							
						 
						
							2024-05-08 02:55:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Catherine 
								
							 
						 
						
							
							
							
							
								
							
							
								9134cd1928 
								
							 
						 
						
							
							
								
								cxxrtl: reduce stack space consumed by debug_info().  
							
							... 
							
							
							
							Before this commit, the creation of (constant) attribute maps caused
`debug_info()` (which is built with `__attribute__((optnone))`) to
consume large amounts of stack space; up to tens of megabytes. This
caused problems particularly on macOS, where the default stack size
is 512 KiB.
After this commit, `std::map` objects are no longer created inline in
the `debug_info()` function, but are compiled to and then expanded from
a string literal in a subroutine call. This reduces stack space usage
by about 50%. 
							
						 
						
							2024-05-08 02:55:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Catherine 
								
							 
						 
						
							
							
							
							
								
							
							
								43ddd89ba5 
								
							 
						 
						
							
							
								
								cxxrtl: fix escape_c_string hex literal fiasco.  
							
							... 
							
							
							
							In C and C++, a `\x` escape sequence consumes as many hexadecimal digits
as there are available, so it is not composable with arbitrary alnum
characters afterwards. An octal escape sequence like `\000` always has
fixed width, avoiding an issue where `\x01c` and `\x1c` produce the same
string. 
							
						 
						
							2024-05-08 02:55:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Catherine 
								
							 
						 
						
							
							
							
							
								
							
							
								7294d8b5af 
								
							 
						 
						
							
							
								
								cxxrtl: fix close of invalid fd in spool destructor.  
							
							
							
						 
						
							2024-05-08 00:46:10 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								a52088b6af 
								
							 
						 
						
							
							
								
								smtbmc: Improvements for --incremental and .yw fixes  
							
							... 
							
							
							
							This extends the experimental incremental JSON API to allow arbitrary
smtlib subexpressions, defining smtlib constants and to allow access of
signals by their .yw path.
It also fixes a bug during .yw writing where values would be re-emitted
in later cycles if they have no newer defined value and a potential
crash when using --track-assumes. 
							
						 
						
							2024-05-07 17:57:37 +02:00