FPGA开发实验(4)- IP核之PLL实验

一、PLL IP核简介与实验任务

1.1 PLLIP核简介

PLL即锁相环,是一种时钟反馈电路,其有着强大的性能,可以对FPGA的时钟信号进行任意的分频,倍频,相位调整,占空比调整等。

1.2 实验任务

本节实验的任务是使用开发板输出 4 个不同频率或相位的时钟,四个时钟分别为一个倍频时钟(100MHz),一个倍频后相位偏移 180 度的时钟(100MHz),一个与系统时钟相同的时钟(50MHz)和一个分频时钟(25MHz),并在 Vivado 中进行仿真以验证结果,最后生成比特流文件并下载到开发板上,使用示波器来测量时钟的频率是否正确。

二、程序设计

2.1 PLL IP核的配置

在vivado中新建一个工程,在软件左侧找到IP Catalog,这里存在许多IP核。如下图所示:
在这里插入图片描述
在搜索栏输入clock,找到如下图所示的IP核:
在这里插入图片描述
双击打开,开始配置 IP 核的时钟参数了,因为开发板上的晶振频率为 50MHz,所以将主时钟的时钟频率设置为 50。第一个“Clocking Options”选项卡的参数配置如下所示:
在这里插入图片描述
然后根据实验任务,完成第二页“Output Clocks”的配置,如下图所示:
在这里插入图片描述
其他三页保持默认就行,点击OK。

2.2 模块的设计

模块框图如下图所示:
在这里插入图片描述
绘制波形图:
在这里插入图片描述
RTL代码如下:

module ip_pll(
    input sys_clk,
    input sys_rst_n,
    output clk_100m,
    output clk_100m_180deg,
    output clk_50m,
    output clk_25m
);

wire locked;
wire rst_n;

assign rst_n = sys_rst_n & locked;
clk_wiz_0 u_clk_wiz_0
   (
    // Clock out ports
    .clk_out1(clk_100m),     // output clk_out1
    .clk_out2(clk_100m_180deg),     // output clk_out2
    .clk_out3(clk_50m),     // output clk_out3
    .clk_out4(clk_25m),     // output clk_out4
    // Status and control signals
    .reset(~sys_rst_n), // input reset
    .locked(locked),       // output locked
   // Clock in ports
    .clk_in1(sys_clk));

endmodule

2.3 通过Vivado 自带仿真器仿真

Vivado 设计套件内部集成了仿真器 Vivado Simulator,能够在设计流程的不同阶段运行设计的功能仿真和时序仿真,结果可以在 Vivado IDE 集成的波形查看器中显示。
仿真文件代码如下:

`timescale 1ns/1ns
module tb_ip_pll();

reg sys_clk;
reg sys_rst_n;
parameter CLK_PERIOD = 20;
wire clk_100m;
wire clk_100m_180deg;
wire clk_50m;
wire clk_25m;

initial begin
    sys_rst_n <= 1'b0;
    sys_clk <= 1'b0;
    #200 sys_rst_n <= 1'b1;
end

always #(CLK_PERIOD/2) sys_clk = ~sys_clk;

ip_pll u_ip_pll (
    .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

将RTL文件和仿真文件添加至工程中后,点击Run Simulation,如下图所示:
在这里插入图片描述
仿真结果如下图:
在这里插入图片描述

2.3 Modelism联合仿真

首先生成 Modelsim 编译仿真库,然后将Vivado与Modelsim关联,关联好后就可以联合仿真了。
打开本次实验的工程(此时一定要打开需要仿真的工程),然后点击 Tools 下的 Settings(设置)选项,在设置窗口中选择 Simulation(仿真器)来指定该工程使用什么仿真器进行仿真,如下所示:
在这里插入图片描述
然后重新点击Run Simulation,如下图所示:
在这里插入图片描述
仿真结果如下图所示:
在这里插入图片描述

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HQAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值