微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教 Xilinx FPGA 如何输出高质量的时钟

请教 Xilinx FPGA 如何输出高质量的时钟

时间:10-02 整理:3721RD 点击:

输入时钟 24MHz 通过 PLL 输出 20MHz,10MHz,5MHz 的时钟,用逻辑分析仪测试,发现 20MHz 的时钟输出占空比和频率不稳定,怎么才能输出高质量的时钟?


程序如下:
module CLOCK_PLL_TEST(
    input clk,
    input rst_n,
output clk_20M,
output clk_10M,
output clk_5M
    );
//wire RESET = ~rst_n;
myClockPLL myClockPLL1
(
// Clock in ports
.CLK_IN1(clk),      // IN
// Clock out ports
.CLK_OUT20M(CLK_OUT20M),     // OUT
.CLK_OUT10M(CLK_OUT10M),     // OUT
.CLK_OUT10M(CLK_OUT5M)     // OUT
);      // OUT
ODDR2   
#(
.DDR_ALIGNMENT ("NONE"),
.INIT (1'b0),
.SRTYPE ("SYNC")
)
u1_ODDR2
(
.C0 (CLK_OUT20M),
.C1 (~CLK_OUT20M),
.Q  (clk_20M),
.CE (1'b1),
.D0 (1'b1),
.D1 (1'b0),
.R  (1'b0),
.S  (1'b0)
);
ODDR2   
#(
.DDR_ALIGNMENT ("NONE"),
.INIT (1'b0),
.SRTYPE ("SYNC")
)
u2_ODDR2
(
.C0 (CLK_OUT10M),
.C1 (~CLK_OUT10M),
.Q  (clk_10M),
.CE (1'b1),
.D0 (1'b1),
.D1 (1'b0),
.R  (1'b0),
.S  (1'b0)
);
ODDR2   
#(
.DDR_ALIGNMENT ("NONE"),
.INIT (1'b0),
.SRTYPE ("SYNC")
)
u3_ODDR2
(
.C0 (CLK_OUT5M),
.C1 (~CLK_OUT5M),
.Q  (clk_5M),
.CE (1'b1),
.D0 (1'b1),
.D1 (1'b0),
.R  (1'b0),
.S  (1'b0)
);
endmodule

逻辑分析仪的带宽太低吧

哦,是逻辑分析仪的问题吗,目前只有个200MHz的。上次用它测过altera的FPGA,输出当时是SPI接口的DAC时钟是50MHz,感觉测出来的信号也是可以的,没这么明显的不稳定。

用一个精度高一点的示波器看看吧,逻辑分析仪不适合看占空比,采样率太低了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top