跳转至

PLL

进阶功能

本章节属于拓展功能,其主要目的是给大家一个做一个简单的进阶参考。进阶实验的目的是锻炼大家的自学能力。因此对本章节内容的答疑可能不会被接受。特此声明。

在我们的实验板子上提供的时钟有 50MHz 和 11.0592MHz 两个。然而在前面的实验的过程中,我们实际使用的是 10MHz 的时钟。

大家在数字逻辑课上应该都学过一些简单的分频方法,如二分频,四分频等等。但我们实际使用的时钟可能是各种频率的,比如非整数倍,增频等等。应该如何生成各种频率的时钟呢?PLL (Phase Locked Loop, 锁相环) 就可以解决这个问题。

我们不需要了解 PLL 的内部实现。下面将介绍在 Vivado 中如何使用 PLL IP 核来生成不同频率的时钟。

引入 IP 核

在使用每个 IP 核之前,我们需要在 Vivado 的 IP 核目录中找到对应的 IP 核,将其加入到工程中,步骤如下:

  1. 单击左侧的 IP Catalog 进入 IP 核目录

  2. 搜索 Clocking 找到 Clocking Wizard 并双击

  3. 在配置的第一页配置模块名称和输入时钟频率。同时可以在左侧看到模块的输入输出图。惯例:一般左侧为输入信号,右侧为输出信号。

    在这里我们将下面的输入频率配置为板子的时钟频率 50.000 MHz

  4. 点击 Output Clocks 进入配置第二页。 在这里我们可以更改输出时钟个数,输出频率,时钟相位,时钟的占空比等等。而右下角可以调整输入的 rst 为 0 使能还是 1 使能。

    在这里,我们配置输出频率为 10 Mhz,不改变相位和占空比。而 rst 使能方面,由于我们使用板子上的 reset_btn 按键开关进行控制,因此选择 1 使能。

    在设置完输出频率之后,可以在 Actual 一栏看到实际输出的时钟频率。

  5. 点击 OK,弹出对话框询问你是否生成 IP 核对应代码。

    单击 Generate 生成。

  6. 在左侧可以看到生成的 PLL IP 核,单击,然后在边栏中点击 Properties,确认 GENERATE_SYNTH_CHECKPOINTIS_GLOBAL_INCLUDE 两个选项选上。否则可能会导致有部分 IP 核加入工程但未在设计中使用导致 CI 失败。对于所有的 IP 核都需要做这一步

  7. 之后就可以在设计中例化使用了。

注意到实验模板中 10MHz 频率的时钟也是由这个 IP 核生成的 (与上述过程配置几乎相同,多一个 20MHz 的生成时钟) 。因此接下来我们将结合模板中例化的 IP 核进行说明。

PLL 信号说明

各个模板中,pll 例化的部分如下:

// PLL 分频示例
logic locked, clk_10M, clk_20M;
pll_example clock_gen (
      // Clock in ports
      .clk_in1(clk_50M),  // 外部时钟输入
      // Clock out ports
      .clk_out1(clk_10M),  // 时钟输出 1,频率在 IP 配置界面中设置
      .clk_out2(clk_20M),  // 时钟输出 2,频率在 IP 配置界面中设置
      // Status and control signals
      .reset(reset_btn),  // PLL 复位输入
      .locked(locked)  // PLL 锁定指示输出,"1"表示时钟稳定,
                     // 后级电路复位信号应当由它生成(见下)
);

logic reset_of_clk10M;
// 异步复位,同步释放,将 locked 信号转为后级电路的复位 reset_of_clk10M
always_ff @(posedge clk_10M or negedge locked) begin
   if (~locked) reset_of_clk10M <= 1'b1;
   else reset_of_clk10M <= 1'b0;
end

可以看到,在上述配置下 pll 模块的输入输出信号线共 5 条:

  • clk_in1 输入标准时钟
  • clk_out1 输出时钟 1 , 根据配置为 10MHz
  • clk_out2 输出时钟 2 , 根据配置为 20MHz
  • reset 输入复位信号,根据配置为 1 使能
  • locked 输出锁定信号,输出 1 时表示时钟稳定可以使用。因此,当其下降沿时,应该将后续电路复位信号设置为 1。

更详细的说明和使用方法可以去 Xilinx 官方文档网站查看: PLL 文档


最后更新: 2023年7月14日
作者:Jiajie Chen (7.87%), cuibst (92.13%)