mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			212 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			212 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| read_verilog << EOT
 | |
| 
 | |
| module top(input [3:0] a, input en, output [7:0] d);
 | |
| 
 | |
| always @*
 | |
| 	if (en)
 | |
| 		case(a)
 | |
| 			4'h0: d <= 8'h12;
 | |
| 			4'h1: d <= 8'h34;
 | |
| 			4'h2: d <= 8'h56;
 | |
| 			4'h3: d <= 8'h78;
 | |
| 			4'h4: d <= 8'h9a;
 | |
| 			4'h5: d <= 8'hbc;
 | |
| 			4'h6: d <= 8'hde;
 | |
| 			4'h7: d <= 8'hff;
 | |
| 			4'h8: d <= 8'h61;
 | |
| 			4'h9: d <= 8'h49;
 | |
| 			4'ha: d <= 8'h36;
 | |
| 			4'hb: d <= 8'h81;
 | |
| 			4'hc: d <= 8'h8c;
 | |
| 			4'hd: d <= 8'ha9;
 | |
| 			4'he: d <= 8'h99;
 | |
| 			4'hf: d <= 8'h51;
 | |
| 		endcase
 | |
| 	else
 | |
| 		d <= 0;
 | |
| 
 | |
| endmodule
 | |
| 
 | |
| EOT
 | |
| 
 | |
| hierarchy -auto-top
 | |
| 
 | |
| design -save orig
 | |
| proc
 | |
| select -assert-count 1 t:$memrd_v2 a:src %i
 | |
| memory
 | |
| opt_dff
 | |
| design -stash postopt
 | |
| design -load orig
 | |
| proc -norom
 | |
| design -stash preopt
 | |
| 
 | |
| equiv_opt -assert -run prepare: dummy
 | |
| 
 | |
| 
 | |
| 
 | |
| design -reset
 | |
| 
 | |
| read_verilog << EOT
 | |
| 
 | |
| module top(input [3:0] a, input en, output [7:0] d);
 | |
| 
 | |
| always @*
 | |
| 	if (en)
 | |
| 		case(a)
 | |
| 			4'h0: d <= 8'h12;
 | |
| 			4'h1: d <= 8'h34;
 | |
| 			4'h2: d <= 8'h56;
 | |
| 			4'h3: d <= 8'h78;
 | |
| 			4'h4: d <= 8'h9a;
 | |
| 			4'h5: d <= 8'hbc;
 | |
| 			4'h6: d <= 8'hde;
 | |
| 			4'h7: d <= 8'hff;
 | |
| 			4'h8: d <= 8'h61;
 | |
| 			4'h9: d <= 8'h49;
 | |
| 			4'ha: d <= 8'h36;
 | |
| 			4'hb: d <= 8'h81;
 | |
| 			4'hc: d <= 8'h8c;
 | |
| 			default: d <= 8'h11;
 | |
| 		endcase
 | |
| 	else
 | |
| 		d <= 0;
 | |
| 
 | |
| endmodule
 | |
| 
 | |
| EOT
 | |
| 
 | |
| hierarchy -auto-top
 | |
| 
 | |
| design -save orig
 | |
| proc
 | |
| select -assert-count 1 t:$memrd_v2 a:src %i
 | |
| memory
 | |
| opt_dff
 | |
| design -stash postopt
 | |
| design -load orig
 | |
| proc -norom
 | |
| design -stash preopt
 | |
| 
 | |
| equiv_opt -assert -run prepare: dummy
 | |
| 
 | |
| 
 | |
| 
 | |
| design -reset
 | |
| 
 | |
| read_verilog << EOT
 | |
| 
 | |
| module top(input [31:0] a, input en, output [7:0] d);
 | |
| 
 | |
| always @*
 | |
| 	if (en)
 | |
| 		case(a)
 | |
| 			0: d <= 8'h12;
 | |
| 			1: d <= 8'h34;
 | |
| 			2: d <= 8'h56;
 | |
| 			3: d <= 8'h78;
 | |
| 			4: d <= 8'h9a;
 | |
| 			5: d <= 8'hbc;
 | |
| 			6: d <= 8'hde;
 | |
| 			7: d <= 8'hff;
 | |
| 			8: d <= 8'h61;
 | |
| 			9: d <= 8'h49;
 | |
| 			10: d <= 8'h36;
 | |
| 			11: d <= 8'h81;
 | |
| 			12: d <= 8'h8c;
 | |
| 			default: d <= 8'h11;
 | |
| 		endcase
 | |
| 	else
 | |
| 		d <= 0;
 | |
| 
 | |
| endmodule
 | |
| 
 | |
| EOT
 | |
| 
 | |
| hierarchy -auto-top
 | |
| 
 | |
| design -save orig
 | |
| proc
 | |
| select -assert-count 1 t:$memrd_v2 a:src %i
 | |
| memory
 | |
| opt_dff
 | |
| design -stash postopt
 | |
| design -load orig
 | |
| proc -norom
 | |
| design -stash preopt
 | |
| 
 | |
| equiv_opt -assert -run prepare: dummy
 | |
| 
 | |
| 
 | |
| design -reset
 | |
| 
 | |
| read_verilog << EOT
 | |
| 
 | |
| module top(input [3:0] a, input en, output [7:0] d);
 | |
| 
 | |
| always @*
 | |
| 	if (en)
 | |
| 		case(a)
 | |
| 			'h0: d <= 8'h12;
 | |
| 			'h1: d <= 8'h34;
 | |
| 			'h2: d <= 8'h56;
 | |
| 			'h3: d <= 8'h78;
 | |
| 			'h4: d <= 8'h9a;
 | |
| 			'h5: d <= 8'hbc;
 | |
| 			'h6: d <= 8'hde;
 | |
| 			'h7: d <= 8'hff;
 | |
| 			'h8: d <= 8'h61;
 | |
| 			'h9: d <= 8'h49;
 | |
| 			'ha: d <= 8'h36;
 | |
| 			'hb: d <= 8'h81;
 | |
| 			'hc: d <= 8'h8c;
 | |
| 			'hd: d <= 8'ha9;
 | |
| 			'he: d <= 8'h99;
 | |
| 			'hf: d <= 8'h51;
 | |
| 		endcase
 | |
| 	else
 | |
| 		d <= 0;
 | |
| 
 | |
| endmodule
 | |
| 
 | |
| EOT
 | |
| 
 | |
| hierarchy -auto-top
 | |
| 
 | |
| design -save orig
 | |
| proc
 | |
| select -assert-count 1 t:$memrd_v2 a:src %i
 | |
| memory
 | |
| opt_dff
 | |
| design -stash postopt
 | |
| design -load orig
 | |
| proc -norom
 | |
| design -stash preopt
 | |
| 
 | |
| equiv_opt -assert -run prepare: dummy
 | |
| 
 | |
| 
 | |
| design -reset
 | |
| 
 | |
| read_rtlil <<EOT
 | |
| 
 | |
| module \m
 | |
|   wire width 3 input 1 \a
 | |
| 
 | |
|   process \p
 | |
|     switch \a
 | |
|       case 3'000
 | |
|       case 3'001
 | |
|       case 3'010
 | |
|       case 3'011
 | |
|       case 3'100
 | |
|       case 3'101
 | |
|       case 3'110
 | |
|       case 3'111
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| EOT
 | |
| 
 | |
| proc_rom
 |