(* 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 | |