前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动态时钟频率

动态时钟频率

作者头像
瓜大三哥
发布2020-09-22 10:07:17
2.5K0
发布2020-09-22 10:07:17
举报
文章被收录于专栏:瓜大三哥瓜大三哥

本文基于Xilinx FPGA 的clocking wizard IP进行动态调整时钟频率

clocking wizard简介

动态调整时钟频率输出,需要在 IP 界面勾选 Dynamic Reconfig选项。这时候 IP 会多出来一个 AXI-lite 的控制接口。

动态调整频率原理

首先看一下PLL、MMCM 的原理如下图。

其中主要是 M、 D、 O 三个参数影响了输出的频率,关系式如下图公式 3-2 所示。

所以综合来看,就是如何修改这三个参数,就可以达到动态调整时钟频率的目的。

调整参数 D

在手册中查找 CLKOUT0 输出参数 D 的寄存器地址为0x200,默认值为0x01010A00,其中 Bit[7:0]表示的就是参数 D 的值。所以配置 D 的值为 1 ,表示分频为 1 。

调整参数 M

在手册中查找 CLKOUT0 输出参数 M 的寄存器地址为0x200,默认值为0x01010A00,其中 Bit[15:8]表示的就是参数 M 整数部分值。所以配置 M 的值为 A ,相当于倍频 10 倍。小数部分为 Bit[25:16] 表示参数 M 的小数部分。

调整参数 O

在手册中查找 CLKOUT0 输出参数 O 的寄存器地址为0x208,默认值为0x0004000A,其中 Bit[7:0]表示的就是参数 O 整数部分值。所以配置 M 的值为 A ,相当于分频 10 倍。小数部分为 Bit[17:8] 表示参数 O 的小数部分。

相位参数

在手册中查找 CLKOUT0 相位寄存器地址为0x20C,默认值为0x00000000,表示输出相位为 0 。

占空比参数

在手册中查找 CLKOUT0 相位寄存器地址为0x210,默认值为0x0000C350,表示占空比为 50% 。

仿真实验

注:这些寄存器配置修改必须在 locked 信号拉高之后进行修改,修改完后等待 locked 重新拉高,表示修改成功。

本次实验输入时钟频率Fclk_IN = 100M ,进行修改如下

  • M = 10
  • D = 1
  • O = 11

配置寄存器如下图所示

动态调整结果可以看到输出为 11ns

参考链接

  1. pg065
https://www.xilinx.com/support/documentation/ip_documentation/clk_wiz/v6_0/pg065-clk-wiz.pdf
  1. ug472
https://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • clocking wizard简介
  • 动态调整频率原理
    • 调整参数 D
      • 调整参数 M
        • 调整参数 O
          • 相位参数
            • 占空比参数
            • 仿真实验
            • 参考链接
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档