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 
								
							 
						 
						
							
							
							
							
								
							
							
								459e6b913a 
								
							 
						 
						
							
							
								
								add functional ir documentation  
							
							
							
						 
						
							2024-08-27 11:11:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									N. Engelhardt 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0fc5812dcd 
								
							 
						 
						
							
							
								
								Merge pull request  #4541  from YosysHQ/krys/compiler-warnings  
							
							... 
							
							
							
							Resolve (some) compiler warnings 
							
						 
						
							2024-08-26 15:04:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emily Schmidt 
								
							 
						 
						
							
							
							
							
								
							
							
								761eff594f 
								
							 
						 
						
							
							
								
								functional backend: missing includes for stl containers  
							
							
							
						 
						
							2024-08-22 11:13:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emily Schmidt 
								
							 
						 
						
							
							
							
							
								
							
							
								9b5e81b13f 
								
							 
						 
						
							
							
								
								drivertools: fix C++20 "incomplete type" error by moving constructors below other definitions  
							
							
							
						 
						
							2024-08-22 10:40:56 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emily Schmidt 
								
							 
						 
						
							
							
							
							
								
							
							
								f456761e88 
								
							 
						 
						
							
							
								
								add sandia copyright notice to the functional backend  
							
							
							
						 
						
							2024-08-21 11:04:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emily Schmidt 
								
							 
						 
						
							
							
							
							
								
							
							
								831da51255 
								
							 
						 
						
							
							
								
								add picorv test to 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 
								
							 
						 
						
							
							
							
							
								
							
							
								79a1b691ea 
								
							 
						 
						
							
							
								
								silence some more warnings, undo mistaken addition  
							
							
							
						 
						
							2024-08-21 11:04:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									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 
								
							 
						 
						
							
							
							
							
								
							
							
								99effb6789 
								
							 
						 
						
							
							
								
								add support for initializing registers and memories to the functional backend  
							
							
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								9ad859fc0a 
								
							 
						 
						
							
							
								
								add bwmux, bweqx, bmux, demux cells  
							
							
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								9f660b1e4b 
								
							 
						 
						
							
							
								
								rewrite smtlib pass to use SExpr class  
							
							
							
						 
						
							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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emily Schmidt 
								
							 
						 
						
							
							
							
							
								
							
							
								7b29d177ac 
								
							 
						 
						
							
							
								
								add support for memories to c++ and smtlib functional backends  
							
							
							
						 
						
							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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emily Schmidt 
								
							 
						 
						
							
							
							
							
								
							
							
								dd5ec84a26 
								
							 
						 
						
							
							
								
								fix bugs in drivertools  
							
							
							
						 
						
							2024-08-21 11:01:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								d90268f610 
								
							 
						 
						
							
							
								
								fixup! drivertools: Utility code for indexing and traversing signal drivers  
							
							
							
						 
						
							2024-08-21 11:01:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								d4e3daa9d0 
								
							 
						 
						
							
							
								
								ComputeGraph datatype for the upcoming functional backend  
							
							
							
						 
						
							2024-08-21 11:01:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								f29422f745 
								
							 
						 
						
							
							
								
								topo_scc: Add sources_first option  
							
							
							
						 
						
							2024-08-21 11:01:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								56572978f5 
								
							 
						 
						
							
							
								
								drivertools: Utility code for indexing and traversing signal drivers  
							
							... 
							
							
							
							It adds `DriveBit`, `DriveChunk` and `DriveSpec` types which are similar
to `SigBit`, `SigChunk` and `SigSpec` but can also directly represent
cell ports, undriven bits and multiple drivers. For indexing an RTLIL
module and for querying signal drivers it comes with a `DriverMap` type
which is somewhat similar to a `SigMap` but is guaranteed to produce
signal drivers as returned representatives.
A `DriverMap` can also optionally preserve connections via intermediate
wires (e.g. querying the driver of a cell input port will return a
connected intermediate wire, querying the driver of that wire will
return the cell output port that's driving the wire). 
							
						 
						
							2024-08-21 11:00:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								f24e2536c6 
								
							 
						 
						
							
							
								
								kernel/rtlil: Add SigBit operator[](int offset) to SigChunk  
							
							... 
							
							
							
							This is already supported by `SigSpec` and since both `SigChunk` and
`SigSpec` implement `extract` which is the multi-bit variant of this,
there is no good reason for `SigChunk` to not support
`SigBit operator[](int offset)`. 
							
						 
						
							2024-08-21 10:58:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								c73c8a39cf 
								
							 
						 
						
							
							
								
								kernel/log: Add log_str helper for custom log_* functions/overloads  
							
							... 
							
							
							
							When implementing custom log_... functions or custom overloads for the
core log functions like log_signal it is necessary to return `char *`
that are valid long enough.
The log_... functions implemented in log.cc use either `log_id_cache` or
`string_buf` which both are cleared on log_pop.
This commit adds a public `log_str` function which stores its argument
in the `log_id_cache` and returns the stored copy, such that custom
log functions outside of log.cc can also create strings that remain
valid until the next `log_pop`. 
							
						 
						
							2024-08-21 10:58:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								0922142567 
								
							 
						 
						
							
							
								
								Add generic topological sort and SCC detection  
							
							... 
							
							
							
							This adds a generic non-recursive implementation of Tarjan's linear time
SCC algorithm that produces components in topological order. It can be
instantiated to work directly on any graph representation for which the
enumerate_nodes and enumerate_successors interface can be implemented. 
							
						 
						
							2024-08-21 10:58:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								4847caac49 
								
							 
						 
						
							
							
								
								driver: print maximum memory usage on macOS as well  
							
							
							
						 
						
							2024-08-19 12:50:12 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7b47f645d7 
								
							 
						 
						
							
							
								
								Address warnings  
							
							... 
							
							
							
							- Setting default values
- Fixing mismatched types
- Guarding unused var 
							
						 
						
							2024-08-16 04:30:31 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								92cac63845 
								
							 
						 
						
							
							
								
								Merge pull request  #4344  from widlarizer/emil/keep_hierarchy  
							
							... 
							
							
							
							cost: add keep_hierarchy pass with min_cost argument 
							
						 
						
							2024-07-29 16:33:08 +02:00