diff --git a/common/hdl/oh_datagate.v b/common/hdl/oh_datagate.v new file mode 100644 index 0000000..be5fc15 --- /dev/null +++ b/common/hdl/oh_datagate.v @@ -0,0 +1,26 @@ +module oh_datagate (/*AUTOARG*/ + // Outputs + dout, + // Inputs + clk, en, din + ); + + parameter DW = 32; + parameter PS = 3; + + input clk; + input en; + input [DW-1:0] din; + output [DW-1:0] dout; + + reg [PS-1:0] enable_pipe; + + always @ (posedge clk) + enable_pipe[PS-1:0] <= {enable_pipe[PS-2:0],en}; + + assign enable = {enable_pipe[PS-1:0],en}; + + assign dout[DW-1:0] = {(DW){enable}} & din[DW-1:0]; + + +endmodule // oh_datagate