00001
00002
00003
00004
00005
00006 `default_nettype none
00007 `timescale 1ns / 1ps
00008
00009 (* KEEP_HIERARCHY = "TRUE" *)module dq_io_pad (
00010 input wire input_clk,
00011 input wire clk,
00012 input wire clk90,
00013 input wire reset,
00014 inout wire io_pad,
00015 output wire dq_data_from_io,
00016 input wire tri_ddr_ce_to_io,
00017 input wire tri_ddr_d0_to_io,
00018 input wire tri_ddr_d1_to_io,
00019 input wire data_ddr_ce_to_io,
00020 input wire data_ddr_d0_to_io,
00021 input wire data_ddr_d1_to_io
00022 );
00023 wire input_clkx;
00024 wire clkx;
00025 wire tri_out;
00026
00027 wire to_io_pad;
00028 wire clk270;
00029
00030 assign input_clkx = ~input_clk;
00031 assign clkx = ~clk;
00032 assign clk270 = ~clk90;
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 ODDR2 #(
00049 .DDR_ALIGNMENT("NONE"),
00050 .SRTYPE("ASYNC")
00051 ) ODDR2_TRI(
00052 .Q(tri_out),
00053 .C0(clk270),
00054 .C1(clk90),
00055 .CE(tri_ddr_ce_to_io),
00056 .D0(tri_ddr_d0_to_io),
00057 .D1(tri_ddr_d1_to_io),
00058 .R(1'b0),
00059 .S(reset)
00060 );
00061
00062 ODDR2 #(
00063 .DDR_ALIGNMENT("NONE"),
00064 .SRTYPE("SYNC")
00065 ) ODDR2_DATA(
00066 .Q(to_io_pad),
00067 .C0(clk270),
00068 .C1(clk90),
00069 .CE(data_ddr_ce_to_io),
00070 .D0(data_ddr_d0_to_io),
00071 .D1(data_ddr_d1_to_io),
00072 .R(1'b0),
00073 .S(reset)
00074 );
00075
00076 IOBUF IOBUF_DQ(
00077 .O(dq_data_from_io),
00078 .IO(io_pad),
00079 .I(to_io_pad),
00080 .T(tri_out)
00081 );
00082
00083 endmodule