module Register (q, d, clk);
  parameter N = 1;
  input            clk;
  output reg [N-1:0] q;
  input      [N-1:0] d;
  initial q = {N{1'b0}};
  always @(posedge clk)
    q <= d;
endmodule // REGISTER