IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> FPGA学习:PLL的使用与仿真 -> 正文阅读

[嵌入式]FPGA学习:PLL的使用与仿真

前言

写这篇博客的目的是记录自己的学习过程

PLL介绍

PLL(phase-locked loop),即锁相环。是FPGA中的重要资源。由于一个复杂的FPGA系统往往需要多个不同频率,相位的时钟信号。所以,一个FPGA芯片中PLL的数量是衡量FPGA芯片能力的重要指标。FPGA的设计中,时钟系统的FPGA高速设计机器重要,一个低抖动,低延迟的系统时钟会增加FPGA设计的成功率。
锁相环(PLL )主要用于频率综合。使用一个 PLL 可以从一个输入时钟信号生成多个时钟信号。

实验目的

本次实验将利用PLL锁相环产生200MHZ、100MHZ、50MHZ以及25MHZ的时钟信号

一、创建一个Vivado工程

1.创建一个项目在这里插入图片描述
2.一直next到这里
在这里插入图片描述
在这里插入图片描述
选择之后点击下一步,直到完成。
在这里插入图片描述

此时项目已经创建完毕

二、使用PLL的IP核

1、使用步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
默认这个 Clocking Wizard 的名字为 clk_wiz_0, 这里我们不做修改。在第一个界面 Clocking
Options 里, 我们选择 PLL 资源,输入的时钟频率为 50Mhz在这里插入图片描述
在 Output Clocks 界面里选择 clk_out1~clk_out4 四个时钟的输出,频率分别为 200Mhz,
100Mhz, 50Mhz, 25Mhz 。这里还可以设置时钟输出的相位,我们不做设置,保留默认相位
点击 OK 完成,默认的是高电平有效(reset),即高电平的时候输出是无效的
在这里插入图片描述
在这里插入图片描述
这时一个 clk_wiz_0.xci 的 IP 会自动添加到我们的 pll_test 项目中 , 用户可以双击它来修改
这个 IP 的配置。在这里插入图片描述
在这里插入图片描述

2、创建一个Design Source文件调用PLL的IP核

接下来我们编写一个Design Source来实例化这个PLL IP
在这里插入图片描述

3、编辑代码如下:

`timescale 1ns / 1ps


module pll_test_ds(
    input sys_clk, // 板子上的系统时钟
    input res_n,   // 复位信号是高电平有效的,但是我们会将这个res_n绑定到板子上的按键上,而按键是按下时属于低电平,所以我们需要反向连接到PLL的复位
    output clk_out_200,
    output clk_out_100,
    output clk_out_50,
    output clk_out_25
    );

wire locked;

// 实例化pll的ip核
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG

  clk_wiz_0 clk_wiz_0_init
   (
          // Clock in ports
    .clk_in1(sys_clk),      // input clk_in1
    // Clock out ports
    .clk_out1(clk_out_200),     // output clk_out1
    .clk_out2(clk_out_100),     // output clk_out2
    .clk_out3(clk_out_50),     // output clk_out3
    .clk_out4(clk_out_25),     // output clk_out4 我们只测试了一个25MHZ的频率

    // Status and control signals
    .reset(~res_n), // input reset
    .locked(locked)  // output locked
    );      

// INST_TAG_END ------ End INSTANTIATION Template ---------
endmodule


程序中先用实例化
clk_wiz_0 , 把单端 50Mhz 时钟信号输入到 clk_wiz_0 的 clk in 1 ,把clk_out4 的输出赋 给 clk _out
在这里插入图片描述

三、仿真

1、创建仿真文件

添加一个 vtf_pll_test 仿 真文件,运行后 PLL 的 lock 信号会变高,说明 PLL IP 锁相环已经初始
化完成。 clk_out 有时钟信号输出,输出的频率为输入时钟频率的 1/2, 为 25Mhz 。 仿真方法可
以参考 PL 的 ”Hello World”LED 实验 。
在这里插入图片描述

2、编写仿真代码

仿真代码如下

`timescale 1ns / 1ps

module pll_test_sim();

reg sys_clk;
reg res_n;
wire clk_out_200;
wire clk_out_100;
wire clk_out_50;
wire clk_out_25;
// 对pll_test_ds进行例化操作
pll_test_ds pll_init(
        .sys_clk(sys_clk),  // 模拟50MHZ
        .res_n(res_n),     // 模拟复位信号
        .clk_out_200(clk_out_200),   // 模拟输出200MHZ
        .clk_out_100(clk_out_100),   // 模拟输出100MHZ
        .clk_out_50(clk_out_50),     // 模拟输出50MHZ
        .clk_out_25(clk_out_25)      // 模拟输出25MHZ
    );

initial begin  
    sys_clk = 1'b0;   // 初始化
    res_n = 1'b0; // 当为0的时候,模拟的是按键按下的时候,是处于复位状态的
    #100 res_n = 1'b1; //过100ns把res_n给拉高,即相当于按键松开了,
end

always #10 sys_clk = ~sys_clk;//10ns之后将时钟进行翻转(即说明20ns为一个周期) 1/20ns = 1/2*10^(-8) =  5*10^7 = 50MHz 产生50MHz的时钟

endmodule


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仿真结果
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:55:20  更:2022-04-26 11:57:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:24:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码