blob: d1bbf7cb5a7bb1d1dfb8d9486ddc92a379596a80 [file] [log] [blame] [edit]
(* blackbox *)
module SRLC16E (
output Q, Q15,
input A0, A1, A2, A3, CE, CLK, D
);
parameter [15:0] INIT = 16'h0000;
parameter [0:0] IS_CLK_INVERTED = 1'b0;
reg [15:0] r = INIT;
assign Q = r[{A3,A2,A1,A0}];
assign Q15 = r[15];
generate begin
if (IS_CLK_INVERTED) begin
always @(negedge CLK) if (CE) r <= { r[14:0], D };
end else begin
always @(posedge CLK) if (CE) r <= { r[14:0], D };
end
end endgenerate
endmodule