Vivado下PLL实验 1

简介: Vivado下PLL实验

前言

本节介绍一下赛灵思锁相环的一个使用方法,我手头的 AC7020 fpga 开发板上面有一个 50MHz 的晶振连接在 PL 端,晶振输出链接到 FPGA 的全局时钟(MRCC),这个 CLK 可以用来驱动 FPGA 内的用户逻辑电路,该时钟源的原理图如图所示:


但是在我们实际应用当中呢我们可能想要使用特定大小的频率,比如 25MHz 或者 100MHz,那么我们可以使用赛灵思的锁相环的 IP 实现它的时钟分频或者倍频。


一、CMT(时钟管理单元)

1、CMT 简介

Xilinx7 系列器件中的时钟资源包含了CMT(全称 Clock Management Tile,即时钟管理单元),每个 CMT 由一个 MMCM(全称 Mixed-Mode Clock Manager,即混合模式时钟管理)和一个 PLL(全称 Phase Locked Loop,即锁相环)组成,

  • MMCM(混合模式时钟管理):是基于 PLL 的新型混合模式时钟管理器,实现了最低的抖动和抖动滤波,为高性能的 FPGA 设计提供更高性能的时钟管理功能。
  • MMCM 在 PLL 的基础上加上了相位动态调整功能,

PLL:为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取数据 等。PLL 用于振荡器中的反馈技术。

  • 锁相环拥有强大的性能,可以对输入到 FPGA 的时钟信号进行任意分频、倍频、相位调整、占空比调整,从而输出一个期望时钟;

MMCM 相对 PLL 的优势就是相位可以动态调整,但 PLL 占用的面积更小,而在大部分的设计当中大家使用 MMCM 或者 PLL 来对系统时钟进行分频、倍频和相位偏移都是完全可以的。

2、FPGA CMT 框图

下图为 7 系列 FPGA CMT 的一个简单的结构,最左边是输入的一些时钟源,最右边是输出。

3、MMCM 框图

下图是 MMCM 的框图,可以看到它包含 8 个相位的拍 + 1 个可变相位拍

4、PLL 框图

下图是 PLL 的框图,可以看到它只包含 8 个相位的拍

二、创建工程

1、创建工程

创建一个名字为 pll_test 的工程

2、PLL IP 核配置

1、点击 IP Catalog,搜索 clock,找到 Clocking Wizard 并双击


2、在 Clocking Option 下按如下图进行配置

  • Primitive 选择 PLL
  • Input Clock Information 中的主时钟的输入频率填上我们板子晶振频率:50MHz

3、在 Output Clocks 下按如下图进行配置,并点击 OK

我们输出 200MHz、100MHz、50MHz、25MHz 这么四路不同频率的时钟

4、点击生成 Generate

3、进行例化

1、创建一个名为 pll_test.v 文件


2、复制例化模板到我们刚创建的 pll_test.v 文件中

3、对 pll_test.v 文件进行修改,修改之后的代码如下(这里我们只输出 25MHz 信号

`timescale 1ns / 1ps
module pll_test(
    input sys_clk,  // 50MHz
    input rst_n,
    output clk_out
    );
wire pll_locked;    
clk_wiz_0 clk_inst
 (
  // Clock out ports
  .clk_out1(),     // output clk_out1
  .clk_out2(),     // output clk_out2
  .clk_out3(),     // output clk_out3
  .clk_out4(clk_out),     // output clk_out4
  // Status and control signals
  .reset(~rst_n), // input reset
  .locked(pll_locked),       // output locked
 // Clock in ports
  .clk_in1(sys_clk));      // input clk_in1  
endmodule


目录
相关文章
|
小程序 前端开发 JavaScript
微信小程序连接数据库与WXS的使用
微信小程序连接数据库与WXS的使用
499 0
|
Java Maven
【笔记04】下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
7277 1
【笔记04】下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
|
8月前
|
人工智能 安全 网络安全
2025攻防演习回顾,AI赋能下的网络安全新格局
网络安全实战攻防演习历经9年发展,已成为检验安全体系、洞察威胁趋势的重要手段。攻击呈现实战化、体系化特征,APT、0day、勒索攻击等手段升级,AI、大数据等新技术带来新风险。攻击入口多元化、工具智能化、API成重点目标,“AI+人工”协同攻击加剧威胁。面对挑战,企业需构建纵深防御体系,从被动防御转向主动对抗。瑞数信息通过动态安全技术与AI融合,实现0day防护、漏扫干扰、勒索应急等能力,打造WAAP超融合平台,助力关键基础设施构建智能、协同、前瞻的主动防御体系。
692 1
|
9月前
|
存储 API 数据安全/隐私保护
如何使用Web Storage进行状态持久化?
如何使用Web Storage进行状态持久化?
|
8月前
|
开发者 Windows 容器
msixbundle
*.msixbundle 是一种用于 Windows 应用程序打包和分发 的文件格式,主要用于 Microsoft Store 或 企业内部分发 的应用。它是一种 打包容器,包含多个 .msix 或 .appx 包,通常用于为不同的架构(如 x86、x64、ARM)提供一个统一的安装包。
|
11月前
|
SQL 监控 安全
网站安全管理的必要性与实践
在数字化浪潮席卷全球的今天,网站已成为企业展示形象、开展业务的重要窗口。然而,随着网络技术的飞速发展,网站安全问题也日益凸显,遭受攻击、数据泄露、服务中断等安全事件频发,给企业带来巨大的经济损失和声誉风险。
174 2
|
Web App开发 存储 开发者
Chrome 插件上架发布全流程指南
浏览器插件开发完以后,要发布到 Chrome Web Store上,也是需要颇费一番周折的,本文就从注册账号开始,一直到最后发布上架的全流程进行指导,希望帮助你提供一些经验,避免踩坑,耗时耗力。
1567 8
|
人工智能 C++ 开发者
verilog vscode 与AI 插件
【9月更文挑战第11天】在Verilog开发中,使用Visual Studio Code(VS Code)结合AI插件能显著提升效率。VS Code提供强大的编辑功能,如语法高亮、自动补全和代码格式化;便捷的调试功能,支持多种调试器;以及丰富的插件生态。AI插件则可自动生成代码、优化现有代码、检测并修复错误,还能自动生成文档。常用插件包括Verilog AI Assistant和Verilog Language Server,可根据需求选择合适的工具组合,提高开发效率和代码质量。
2052 2
|
Web App开发 数据采集 缓存
曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作
曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作
805 0
曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作
|
Linux
linux/mac 下查看、修改文件权限的命令
这篇文章介绍了在Linux和Mac操作系统下如何查看和修改文件及文件夹的权限。
1295 0

热门文章

最新文章

下一篇
开通oss服务