ZYNQ之FPGA学习----MMCM/PLL IP核使用实验
创始人
2024-01-30 16:17:55

1 MMCM/PLL IP核介绍

PLL 的英文全称是 Phase Locked Loop,即锁相环,是一种反馈控制电路。PLL 对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频、分频、相位偏移和可编程占空比的功能

Xilinx 7 系列器件中的时钟资源包含了时钟管理单元 CMT每个 CMT 由一个 MMCM 和一个 PLL 组成。时钟管理单元 CMT 的总体框图如下图所示:

在这里插入图片描述
图片来自《领航者ZYNQ之FPGA开发指南》

MMCM/PLL 的参考时钟输入都是来自 IBUFG(CC),即具有时钟能力的 IO 输入,输出可以驱动全局时钟 BUFG 和行时钟 BUFH等

MMCM总体框图:

在这里插入图片描述
图片来自《领航者ZYNQ之FPGA开发指南》

PLL总体框图:


图片来自《领航者ZYNQ之FPGA开发指南》

MMCM 的功能是 PLL 的超集,其具有比 PLL 更强大的相移功能。MMCM 主要用于驱动器件逻辑(CLB、DSP、RAM 等)的时钟PLL 主要用于为内存接口生成所需的时钟信号,但也具有与器件逻辑的连接,因此如果需要额外的功能,它们可以用作额外的时钟资源

2 实验任务

实验将 Clocking Wizard IP 核产生的 4 个时钟 100MHz、100MHz_180deg 、50MHz、25MHz,连接到开发板的 J3 扩展口 IO 上,分别是第 29、31、33、35 号脚

实验各端口信号的管脚分配如下:

在这里插入图片描述
图片来自《领航者ZYNQ之FPGA开发指南》

3 实验设计

3.1 创建工程

如图操作,新建工程:

在这里插入图片描述

如下图,直接点击Next:

在这里插入图片描述

输入工程名字和工程路径,点击Next:

在这里插入图片描述

选择创建RTL工程,如图所示:

在这里插入图片描述

如下图,直接点击Next:

在这里插入图片描述

直接点击Next:

在这里插入图片描述

添加芯片型号,如图所示:

在这里插入图片描述

工程创建完成:

在这里插入图片描述

3.2 设计输入

添加IP核,操作如下图:

在这里插入图片描述

搜索clock,找到IP核,如图所示:

在这里插入图片描述

双击打开IP核,修改晶振频率为50MHz,如图所示:

在这里插入图片描述

依次勾选4个时钟,并进行如图所示设置:

在这里插入图片描述

只用到了锁定指示 locked 信号,其名称保持默认即可:

在这里插入图片描述

如下图,所有参数保持默认:

在这里插入图片描述

直接点击OK即可:

在这里插入图片描述

点击OK:

在这里插入图片描述

点击Generate:

在这里插入图片描述

点击OK:

在这里插入图片描述

点击OK:

在这里插入图片描述

IP 核自动生成的只读的 verilog 例化模板文件,双击打开,如图所示:

在这里插入图片描述

创建工程顶层文件,操作如图所示:

在这里插入图片描述

创建文件,输入文件名:

在这里插入图片描述

如下图,创建完成:

在这里插入图片描述

弹出如下界面,点击OK:

在这里插入图片描述

弹出如下确认界面,点击Yes:

在这里插入图片描述

双击打开,输入代码如下:

module  ip_clk_wiz(input               sys_clk        ,  //系统时钟 input               sys_rst_n      ,  //系统复位,低电平有效 //输出时钟 output              clk_100m       ,  //100Mhz 时钟频率 output              clk_100m_180deg,  //100Mhz 时钟频率,相位偏移 180 度 output              clk_50m        ,  //50Mhz 时钟频率 output              clk_25m           //25Mhz 时钟频率 );
wire        locked; //MMCM/PLL IP 核的例化 
clk_wiz_0  clk_wiz_0 
( // Clock out ports .clk_out_100m     (clk_100m ),         // output clk_out1_100m .clk_out_100m_180 (clk_100m_180deg ),  // output clk_out2_100m_180 .clk_out_50m      (clk_50m ),          // output clk_out3_50m .clk_out_25m      (clk_25m ),          // output clk_out4_25m // Status and control signals .reset             (~sys_rst_n ),        // input reset .locked            (locked ),           // output locked // Clock in ports .clk_in1           (sys_clk)            // input clk_in1 
);       endmodule 

如图所示:

在这里插入图片描述

3.3 分析与综合

对设计进行分析,操作如图所示:

在这里插入图片描述

分析后的设计,Vivado自动生成顶层原理图,如图所示:

在这里插入图片描述

对设计进行综合,操作如图所示:

在这里插入图片描述

综合完成后,弹出窗口如下,直接关闭:

在这里插入图片描述

3.4 约束输入

创建约束文件,操作如图所示:

在这里插入图片描述

创建文件,输入文件名:

在这里插入图片描述

点击完成:

在这里插入图片描述

双击打开,输入约束代码:

set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk] 
set_property -dict {PACKAGE_PIN J15 IOSTANDARD LVCMOS33} [get_ports sys_rst_n] 
set_property -dict {PACKAGE_PIN B19 IOSTANDARD LVCMOS33} [get_ports clk_100m] 
set_property -dict {PACKAGE_PIN C20 IOSTANDARD LVCMOS33} [get_ports clk_100m_180deg] 
set_property -dict {PACKAGE_PIN P19 IOSTANDARD LVCMOS33} [get_ports clk_50m] 
set_property -dict {PACKAGE_PIN N18 IOSTANDARD LVCMOS33} [get_ports clk_25m]

如图所示:

在这里插入图片描述

3.5 设计实现

点击 Flow Navigator 窗口中的 Run Implementation,如图所示:

在这里插入图片描述

点击OK:

在这里插入图片描述

实现完成后,弹出如下界面,关闭即可:

在这里插入图片描述

3.6 功能仿真

创建TestBench,操作如图所示:

在这里插入图片描述

创建文件,输入文件名:

在这里插入图片描述

点击完成:

在这里插入图片描述

点击OK:

在这里插入图片描述

点击Yes:

在这里插入图片描述

双击打开,输入TestBench(激励)代码:

`timescale 1ns / 1ps module tb_ip_clk_wiz (); reg     sys_clk; 
reg     sys_rst_n; wire    clk_100m;       
wire    clk_100m_180deg; 
wire    clk_50m;      
wire    clk_25m;         always #10 sys_clk = ~sys_clk; initial  begin sys_clk = 1'b0; sys_rst_n = 1'b0; #200 sys_rst_n = 1'b1; 
end ip_clk_wiz u_ip_clk_wiz( .sys_clk          (sys_clk         ), .sys_rst_n        (sys_rst_n       ), .clk_100m         (clk_100m        ), .clk_100m_180deg  (clk_100m_180deg ), .clk_50m          (clk_50m         ), .clk_25m          (clk_25m        )   ); endmodule 

如图所示:

在这里插入图片描述

开始进行仿真,操作如下:

在这里插入图片描述

选择HDL仿真对象:

在这里插入图片描述

保存仿真文件:

在这里插入图片描述

点击Yes:

在这里插入图片描述

点击Restart,波形窗口中的当前仿真时刻点回归到0ns:

在这里插入图片描述

开始仿真:

在这里插入图片描述

仿真波形:

在这里插入图片描述

3.7 下载验证

由于疫情,一直无法去实验室,故ZYNQ开发板不在身边,该步骤内容待更新

致谢领航者ZYNQ开发板,开启FPGA学习之路!

希望本文对大家有帮助,上文若有不妥之处,欢迎指正

分享决定高度,学习拉开差距

相关内容

热门资讯

长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
1秒多少毫秒 1秒等于多少毫秒... 长度单位换算1丈=10尺;1尺=10寸;1寸=10分;1分=10厘;1丈≈3.33米;1尺≈3.33...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
中国电信人工电话多少 中国电信... 当我们在使用中国移动、中国电信和中国联通提供的电信业务时,可能会发生争议。建议直接向服务提供商投诉,...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...