mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +00:00 
			
		
		
		
	In sat: 'x' in init attr should not override constant
This commit is contained in:
		
							parent
							
								
									c50d68653d
								
							
						
					
					
						commit
						51ffb093b5
					
				
					 3 changed files with 7 additions and 1 deletions
				
			
		|  | @ -268,6 +268,8 @@ struct SatHelper | |||
| 				RTLIL::SigSpec removed_bits; | ||||
| 				for (int i = 0; i < lhs.size(); i++) { | ||||
| 					RTLIL::SigSpec bit = lhs.extract(i, 1); | ||||
| 					if (bit.is_fully_const() && rhs[i] == State::Sx) | ||||
| 						rhs[i] = bit; | ||||
| 					if (!satgen.initial_state.check_all(bit)) { | ||||
| 						removed_bits.append(bit); | ||||
| 						lhs.remove(i, 1); | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| module test(input clk, input [3:0] bar, output [3:0] foo); | ||||
|   reg [3:0] foo = 0; | ||||
|   reg [3:0] last_bar = 0; | ||||
|   reg [3:0] asdf = 4'b1xxx; | ||||
| 
 | ||||
|   always @* | ||||
|     foo[1:0] <= bar[1:0]; | ||||
|  | @ -11,5 +12,8 @@ module test(input clk, input [3:0] bar, output [3:0] foo); | |||
|   always @(posedge clk) | ||||
|     last_bar <= bar; | ||||
| 
 | ||||
|   always @* | ||||
|     asdf[2:0] <= 3'b111; | ||||
| 
 | ||||
|   assert property (foo == {last_bar[3:2], bar[1:0]}); | ||||
| endmodule | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| read_verilog -sv initval.v | ||||
| proc;; | ||||
| proc; | ||||
| 
 | ||||
| sat -seq 10 -prove-asserts | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue