mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +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
 |