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