mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	Add torture test for (* nowrshmsk *) stride optimization
This commit is contained in:
		
							parent
							
								
									2cab4ff173
								
							
						
					
					
						commit
						a105d2c050
					
				
					 2 changed files with 38 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -69,6 +69,24 @@ design -copy-from gate -as gate gate
 | 
			
		|||
miter -equiv -make_assert -make_outcmp -flatten gold gate equiv
 | 
			
		||||
sat -prove-asserts -seq 10 -show-public -verify -set-init-zero equiv
 | 
			
		||||
 | 
			
		||||
### For-loop select, one dynamic input, (* nowrshmsk *)
 | 
			
		||||
design -reset
 | 
			
		||||
read_verilog ./dynamic_part_select/forloop_select_nowrshmsk.v
 | 
			
		||||
proc
 | 
			
		||||
rename -top gold
 | 
			
		||||
design -stash gold
 | 
			
		||||
 | 
			
		||||
read_verilog ./dynamic_part_select/forloop_select_gate.v
 | 
			
		||||
proc
 | 
			
		||||
rename -top gate
 | 
			
		||||
design -stash gate
 | 
			
		||||
 | 
			
		||||
design -copy-from gold -as gold gold
 | 
			
		||||
design -copy-from gate -as gate gate
 | 
			
		||||
 | 
			
		||||
miter -equiv -make_assert -make_outcmp -flatten gold gate equiv
 | 
			
		||||
sat -prove-asserts -seq 10 -show-public -verify -set-init-zero equiv
 | 
			
		||||
 | 
			
		||||
#### Double loop (part-select, reset) ### 
 | 
			
		||||
design -reset
 | 
			
		||||
read_verilog ./dynamic_part_select/reset_test.v
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										20
									
								
								tests/various/dynamic_part_select/forloop_select_nowrshmsk.v
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tests/various/dynamic_part_select/forloop_select_nowrshmsk.v
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
`default_nettype none
 | 
			
		||||
module forloop_select #(parameter WIDTH=16, SELW=4, CTRLW=$clog2(WIDTH), DINW=2**SELW)
 | 
			
		||||
   (input wire             clk,
 | 
			
		||||
    input wire [CTRLW-1:0] ctrl,
 | 
			
		||||
    input wire [DINW-1:0]  din,
 | 
			
		||||
    input wire             en,
 | 
			
		||||
    (* nowrshmsk *)
 | 
			
		||||
    output reg [WIDTH-1:0] dout);
 | 
			
		||||
 | 
			
		||||
   reg [SELW:0]            sel;
 | 
			
		||||
   localparam SLICE = WIDTH/(SELW**2);
 | 
			
		||||
 | 
			
		||||
   always @(posedge clk)
 | 
			
		||||
     begin
 | 
			
		||||
        if (en) begin
 | 
			
		||||
           for (sel = 0; sel <= 4'hf; sel=sel+1'b1)
 | 
			
		||||
             dout[(ctrl*sel)+:SLICE] <= din;
 | 
			
		||||
        end
 | 
			
		||||
     end
 | 
			
		||||
endmodule
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue