mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
`default_nettype none
 | 
						|
module reversed_gate (clk, ctrl, din, sel, dout);
 | 
						|
   input wire clk;
 | 
						|
   input wire [4:0] ctrl;
 | 
						|
   input wire [15:0] din;
 | 
						|
   input wire [3:0]  sel;
 | 
						|
   output reg [31:0] dout;
 | 
						|
   always @(posedge clk)
 | 
						|
     case ((({(32)-((ctrl)*(sel))})+(1))-(2))
 | 
						|
       0:
 | 
						|
         dout[1:0] <= din;
 | 
						|
       1:
 | 
						|
         dout[2:1] <= din;
 | 
						|
       2:
 | 
						|
         dout[3:2] <= din;
 | 
						|
       3:
 | 
						|
         dout[4:3] <= din;
 | 
						|
       4:
 | 
						|
         dout[5:4] <= din;
 | 
						|
       5:
 | 
						|
         dout[6:5] <= din;
 | 
						|
       6:
 | 
						|
         dout[7:6] <= din;
 | 
						|
       7:
 | 
						|
         dout[8:7] <= din;
 | 
						|
       8:
 | 
						|
         dout[9:8] <= din;
 | 
						|
       9:
 | 
						|
         dout[10:9] <= din;
 | 
						|
       10:
 | 
						|
         dout[11:10] <= din;
 | 
						|
       11:
 | 
						|
         dout[12:11] <= din;
 | 
						|
       12:
 | 
						|
         dout[13:12] <= din;
 | 
						|
       13:
 | 
						|
         dout[14:13] <= din;
 | 
						|
       14:
 | 
						|
         dout[15:14] <= din;
 | 
						|
       15:
 | 
						|
         dout[16:15] <= din;
 | 
						|
       16:
 | 
						|
         dout[17:16] <= din;
 | 
						|
       17:
 | 
						|
         dout[18:17] <= din;
 | 
						|
       18:
 | 
						|
         dout[19:18] <= din;
 | 
						|
       19:
 | 
						|
         dout[20:19] <= din;
 | 
						|
       20:
 | 
						|
         dout[21:20] <= din;
 | 
						|
       21:
 | 
						|
         dout[22:21] <= din;
 | 
						|
       22:
 | 
						|
         dout[23:22] <= din;
 | 
						|
       23:
 | 
						|
         dout[24:23] <= din;
 | 
						|
       24:
 | 
						|
         dout[25:24] <= din;
 | 
						|
       25:
 | 
						|
         dout[26:25] <= din;
 | 
						|
       26:
 | 
						|
         dout[27:26] <= din;
 | 
						|
       27:
 | 
						|
         dout[28:27] <= din;
 | 
						|
       28:
 | 
						|
         dout[29:28] <= din;
 | 
						|
       29:
 | 
						|
         dout[30:29] <= din;
 | 
						|
       30:
 | 
						|
         dout[31:30] <= din;
 | 
						|
       31:
 | 
						|
         dout[31:31] <= din;
 | 
						|
     endcase
 | 
						|
endmodule
 |