FPGA设计中动态时钟的使用方法

时间:2025-04-28  作者:Diven  阅读:0

时钟是每个 FPGA 设计的核心。如果我们正确地设计时钟架构、没有 CDC 问题并正确进行约束设计,就可以减少与工具斗争的时间。

FPGA设计中动态时钟的使用方法

但对于某些应用,我们希望能够更改某些IP中的时钟频率。其中一个例子是在图像处理管道中,输出分辨率可以动态变化,从而需要改变像素时钟。

众所周知,我们可以在 Zynq SoC 和 Zynq MPSoC 中使用结构时钟并在运行时更改结构时钟的频率。但是,如果我们在 Zynq 或 ZYNQ MPSoC 中使用 FPGA 或 PL,我们仍然可以使用动态配置的时钟向导在运行时更改频率。

动态配置时钟允许我们使用 AXI 接口在运行时更改时钟频率。

为了创建一个简单的示例,我们将实例化PS并将动态配置时钟IP连接到主 AXI 接口。我们将输出时钟连接到 IO 引脚,以便我们可以对其进行观察并查看频率的变化。

上面的时钟是我们打算使用的最大频率,这样可以确保时序约束和时序性能正确。下图是我们这次demo的最终设计。

接下来我们将在 Vitis 中开发软件,并且将在设计中的 IP 下看到相关驱动及文档。

开发这个IP的驱动和其 AXI Lite 接口一样,需要对IP寄存器空间进行写入和读取。

要更改时钟频率输出,我们有两种选择。如果只生成一个时钟,我们可以使用名为 SetRate 的函数。该函数将通过AXI Lite总线传递到IP中,IP会给出我们所需的频率输出,并计算必要的分频器、乘法器和相位参数实现所需的输出频率。

如果我们有多个时钟,那么我们需要分别计算这些寄存器的值并单独更新时钟寄存器(每个时钟有两个寄存器)。

这里有个注意点就是在进行时钟更改前最好等待IP锁定到之前的频率后再进行新操作。

更改频率的代码还是比较简单的,如下:

当然,我们也可以使用类似的方法,通过将时钟频率降低来实现不同功耗模式下 FPGA 的功耗,从而实现降低功耗的功能。

猜您喜欢

计数器和分频器是数字电路中常见的基本组件。计数器是能够按照预定的时钟信号进行计数的电路,通常用于记录事件的发生次数。可以是向上计数、向下计数或双向计数,应用于时...
2018-06-04 00:00:00

FPGA的特点是并行执行,但如果需要处理一些具有前后顺序的事件,就需要使用状态机。状态机是一种用于处理具有前后顺序的事件的计算机模型,包含现态、条件、动作和次态...
2023-05-22 14:24:00

贴片电阻上的「472」并不是直接表示电阻值为472kΩ,而是一种编码方式。它代表的是47乘以10的2次方,单位是欧姆(Ω)。具体来说,前两位数字「47」是有效数...
2024-11-26 11:29:25


电力电子与电气工程领域,电流采样是一个非常重要的环节。单电阻电流采样移相方式,作为简便而有效的电流测量技术,应用于各种电源控制系统中。本文将对单电阻电流采样移相...
2025-04-19 13:01:08

变容二极管是特殊的二极管,其主要作用是通过改变反向偏置电压来调节其电容值。这种特性使得变容二极管在射频电路和调谐电路中得到了应用。在调谐电路中,变容二极管能够实...
2011-12-09 00:00:00

捡拾器是方便实用的工具,专为帮助人们轻松捡拾地面物品而设计。无论是在公园、海滩,还是在家庭花园,捡拾器都能有效减少弯腰和屈膝的负担,保护您的腰背健康。采用轻便的...
2023-11-19 00:00:00

当今社会,从智能手机到电动汽车,电池已经成为我们生活中重要的一部分。然而,电池的性能和寿命却受多种因素影响,如温度、充电电流和放电深度等。为了最大限度地发挥电池...
2024-09-22 00:00:00

工具放置架是实用的储物解决方案,通过合理的空间利用,帮助我们更好地管理工具和设备。工具放置架能够有效地分类和存放各种工具,使工作环境更加整洁有序,减少寻找工具的...
2020-04-28 00:00:00

贴片电阻1002并非表示阻值为多少kΩ,而是指的封装尺寸。1002代表的是英制尺寸,即长0.04英寸,宽0.02英寸。转换成公制单位,大约是1.0mm x 0....
2024-11-29 10:25:46