module clock_deskew (CLKIN, CLKFB, CLK0_ext, CLK0_int, CLK0_int_slow); input CLKIN, CLKFB; output CLK0_ext, CLK0_int, CLK0_int_slow; wire CLK0_int_slow_dll, clk_viertel_tmp_dll, clk_viertel_tmp; wire CLKIN_w, CLKFB_w, CLK0_int_dll, CLK0_ext_dll; wire logic0; wire LOCKED_viertel; assign logic0 = 1'b0; IBUFG clkpad (.I(CLKIN), .O(CLKIN_w)); IBUFG clkfbpad (.I(CLKFB), .O(CLKFB_w)); // PCI-near part of clock-generation /* synopsys attribute CLKDV_DIVIDE "4" */ CLKDLL dllviertel (.CLKIN(CLKIN_w), .CLKFB(CLK0_int), .RST(logic0), .CLK0(CLK0_int_dll), .CLK90(), .CLK180(), .CLK270(), .CLK2X(), .CLKDV(clk_viertel_tmp_dll), .LOCKED(LOCKED_viertel)); /* synopsys attribute CLKDV_DIVIDE "4" */ BUFG clkg1 (.I(clk_viertel_tmp_dll), .O(clk_viertel_tmp)); BUFG clkg2 (.I(CLK0_int_dll), .O(CLK0_int)); // Mem-Pin near part of clock-generation // untere dll CLKDLL dllmaster (.CLKIN(clk_viertel_tmp), .CLKFB(CLK0_int_slow), .RST(~LOCKED_viertel), .CLK0(CLK0_int_slow_dll), .CLK90(), .CLK180(), .CLK270(), .CLK2X(), .CLKDV(), .LOCKED()); // obere dll CLKDLL dllslave (.CLKIN(clk_viertel_tmp), .CLKFB(CLKFB_w), .RST(~LOCKED_viertel), .CLK0(CLK0_ext_dll), .CLK90(), .CLK180(), .CLK270(), .CLK2X(), .CLKDV(), .LOCKED()); BUFG clkg3 (.I(CLK0_int_slow_dll), .O(CLK0_int_slow)); OBUF clkextpad (.I(CLK0_ext_dll), .O(CLK0_ext)); endmodule