mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	In sat: 'x' in init attr should not override constant
This commit is contained in:
		
							parent
							
								
									66607845ec
								
							
						
					
					
						commit
						2b37a093e9
					
				
					 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