00001
00002
00003
00004 `default_nettype none
00005 `timescale 1ns / 1ps
00006
00007 (* KEEP_HIERARCHY = "TRUE" *)module dqsb_io_pad (
00008 input wire clk,
00009 input wire reset,
00010 inout wire io_pad,
00011 input wire dqs_reset,
00012 input wire dqs_enable,
00013 output wire dqs_clk
00014 );
00015
00016 (* IOB="TRUE" *)reg dqs_tri_enable_1d;
00017 wire to_io_pad;
00018
00019 ODDR2 #(
00020 .DDR_ALIGNMENT("NONE"),
00021 .SRTYPE("SYNC")
00022 ) ODDR2_DATA(
00023 .Q(to_io_pad),
00024 .C0(clk),
00025 .C1(~clk),
00026 .CE(1'b1),
00027 .D0(1'b0),
00028 .D1(1'b1),
00029 .R(1'b0),
00030 .S(dqs_reset)
00031 );
00032
00033 always @(posedge clk) begin
00034 if(reset)
00035 dqs_tri_enable_1d <= 1'b1;
00036 else
00037 dqs_tri_enable_1d <= ~dqs_enable;
00038 end
00039
00040 IOBUF IOBUF_INST (
00041 .O(dqs_clk),
00042 .IO(io_pad),
00043 .I(to_io_pad),
00044 .T(dqs_tri_enable_1d)
00045 );
00046 endmodule