mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	sim: Fix handling of constant-connected cell inputs at startup
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
		
							parent
							
								
									c98cde8842
								
							
						
					
					
						commit
						abf81c7639
					
				
					 2 changed files with 18 additions and 1 deletions
				
			
		|  | @ -128,8 +128,12 @@ struct SimInstance | |||
| 
 | ||||
| 			for (auto &port : cell->connections()) { | ||||
| 				if (cell->input(port.first)) | ||||
| 					for (auto bit : sigmap(port.second)) | ||||
| 					for (auto bit : sigmap(port.second)) { | ||||
| 						upd_cells[bit].insert(cell); | ||||
| 						// Make sure cell inputs connected to constants are updated in the first cycle
 | ||||
| 						if (bit.wire == nullptr) | ||||
| 							dirty_bits.insert(bit); | ||||
| 					} | ||||
| 			} | ||||
| 
 | ||||
| 			if (cell->type.in(ID($dff))) { | ||||
|  |  | |||
							
								
								
									
										13
									
								
								tests/various/sim_const.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								tests/various/sim_const.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| read_verilog <<EOT | ||||
| 
 | ||||
| module top(input clk, output reg [1:0] q); | ||||
| 	wire [1:0] x = 2'b10; | ||||
| 	always @(posedge clk) | ||||
| 		q <= x & 2'b11; | ||||
| endmodule | ||||
| EOT | ||||
| 
 | ||||
| proc | ||||
| sim -clock clk -n 1 -w top | ||||
| select -assert-count 1 a:init=2'b10 top/q %i | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue