mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	kernel/mem: Add documentation for more helper functions.
This commit is contained in:
		
							parent
							
								
									37506d737c
								
							
						
					
					
						commit
						6d7d9ab077
					
				
					 1 changed files with 34 additions and 0 deletions
				
			
		
							
								
								
									
										34
									
								
								kernel/mem.h
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								kernel/mem.h
									
										
									
									
									
								
							| 
						 | 
					@ -82,14 +82,48 @@ struct Mem : RTLIL::AttrObject {
 | 
				
			||||||
	std::vector<MemRd> rd_ports;
 | 
						std::vector<MemRd> rd_ports;
 | 
				
			||||||
	std::vector<MemWr> wr_ports;
 | 
						std::vector<MemWr> wr_ports;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Removes this memory from the module.  The data in helper structures
 | 
				
			||||||
 | 
						// is unaffected except for the cell/mem fields.
 | 
				
			||||||
	void remove();
 | 
						void remove();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Commits all changes in helper structures into the module — ports and
 | 
				
			||||||
 | 
						// inits marked as removed are actually removed, new ports/inits create
 | 
				
			||||||
 | 
						// new cells, modified port/inits are commited into their existing
 | 
				
			||||||
 | 
						// cells.  Note that this reindexes the ports and inits array (actually
 | 
				
			||||||
 | 
						// removing the ports/inits marked as removed).
 | 
				
			||||||
	void emit();
 | 
						void emit();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Marks all inits as removed.
 | 
				
			||||||
	void clear_inits();
 | 
						void clear_inits();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Checks consistency of this memory and all its ports/inits, using
 | 
				
			||||||
 | 
						// log_assert.
 | 
				
			||||||
	void check();
 | 
						void check();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Gathers all initialization data into a single big const covering
 | 
				
			||||||
 | 
						// the whole memory.  For all non-initialized bits, Sx will be returned.
 | 
				
			||||||
	Const get_init_data() const;
 | 
						Const get_init_data() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Constructs and returns the helper structures for all memories
 | 
				
			||||||
 | 
						// in a module.
 | 
				
			||||||
	static std::vector<Mem> get_all_memories(Module *module);
 | 
						static std::vector<Mem> get_all_memories(Module *module);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Constructs and returns the helper structures for all selected
 | 
				
			||||||
 | 
						// memories in a module.
 | 
				
			||||||
	static std::vector<Mem> get_selected_memories(Module *module);
 | 
						static std::vector<Mem> get_selected_memories(Module *module);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Converts a synchronous read port into an asynchronous one by
 | 
				
			||||||
 | 
						// extracting the data (or, in some rare cases, address) register
 | 
				
			||||||
 | 
						// into a separate cell, together with any soft-transparency
 | 
				
			||||||
 | 
						// logic necessary to preserve its semantics.  Returns the created
 | 
				
			||||||
 | 
						// register cell, if any.  Note that in some rare cases this function
 | 
				
			||||||
 | 
						// may succeed and perform a conversion without creating a new
 | 
				
			||||||
 | 
						// register — a nullptr result doesn't imply nothing was done.
 | 
				
			||||||
	Cell *extract_rdff(int idx, FfInitVals *initvals);
 | 
						Cell *extract_rdff(int idx, FfInitVals *initvals);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Splits all wide ports in this memory into equivalent narrow ones.
 | 
				
			||||||
 | 
						// This function performs no modifications at all to the actual
 | 
				
			||||||
 | 
						// netlist unless and until emit() is called.
 | 
				
			||||||
	void narrow();
 | 
						void narrow();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// If write port idx2 currently has priority over write port idx1,
 | 
						// If write port idx2 currently has priority over write port idx1,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue