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.创建一个项目FPGA学习:PLL的使用与仿真
2.一直next到这里
FPGA学习:PLL的使用与仿真
FPGA学习:PLL的使用与仿真
选择之后点击下一步,直到完成。
FPGA学习:PLL的使用与仿真

此时项目已经创建完毕

二、使用PLL的IP核

1、使用步骤

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

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

接下来我们编写一个Design Source来实例化这个PLL IP
FPGA学习:PLL的使用与仿真

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
FPGA学习:PLL的使用与仿真

三、仿真

1、创建仿真文件

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

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


FPGA学习:PLL的使用与仿真
FPGA学习:PLL的使用与仿真
FPGA学习:PLL的使用与仿真
仿真结果
FPGA学习:PLL的使用与仿真文章来源地址https://www.toymoban.com/news/detail-415797.html

到了这里,关于FPGA学习:PLL的使用与仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gowin FPGA学习记录——前言

            好久没有写博客了,想想是不是又该写点啥东西了么,准备写点国产FPGA的使用经历吧                  得益于目前国内的政策对国产化芯片扶持,越来越要求核心器件能够自主可控,因此作为核心芯片FPGA,国产FPGA的势头也发展很快。          现在FPGA的这

    2024年02月16日
    浏览(43)
  • FPGA学习实践之旅——前言及目录

    很早就有在博客中记录技术细节,分享一些自己体会的想法,拖着拖着也就到了现在。毕业至今已经半年有余,随着项目越来越深入,感觉可以慢慢进行总结工作了。趁着2024伊始,就先开个头吧,这篇博客暂时作为汇总篇,记录在这几个月以及之后从FPGA初学者到也算有一定

    2024年02月03日
    浏览(58)
  • 【FPGA】Vivado软件 PLL IP核使用教程

            PLL (Phase Locked Loop),锁相环,是一种反馈控制电路。其功能主要是时钟倍频、分频、相位偏移和可编程占空比。 1、新建pll_test工程,点击Project Manager界面下的IP Catalog。  2、再在IP Catalog界面里搜索框搜索Clocking,找到下面的Clocking Wizard,双击打开配置界面。 3、进入配

    2024年02月06日
    浏览(68)
  • 从底层结构开始学习FPGA(16)----PLL/MMCM IP的定制与测试

    目录 系列目录与传送门 1、PLL IP的定制 ①、第一页 ②、第二页  ③、第三页

    2024年02月02日
    浏览(62)
  • (一)FPGA IP核使用教程——以PLL实验为例

    此篇为专栏 《FPGA学习笔记》 的第一篇,记录我的学习FPGA的一些开发过程和心得感悟,刚接触FPGA的朋友们可以先去此专栏置顶 《FPGA零基础入门学习路线》来做最基础的扫盲。 本篇内容基于笔者实际开发过程和正点原子资料撰写,将会详细讲解此FPGA实验的全流程, 诚挚 地

    2024年02月03日
    浏览(40)
  • FPGA代码实现分频和pll分频后的时钟的使用

    1、代码实现的分频时钟 假如 clk_out 输出信号是我们想要的分频后的信号,然后很多人会直接把这个信号当作新的低频时钟来使用,并实现了自己想要的功能。虽然最终实现的功能是成功的,但往往忽略了一些隐患的存在,这种做法所衍生的潜在问题在低速系统中不易察觉,

    2024年02月05日
    浏览(47)
  • FPGA之PLL详解

            在前面的博客里详细介绍了FIFO、RAM两个常用的IP核,而这些IP核在FPGA当中应用非常广泛,很多书籍教程、培训机构也都会蜻蜓点水提起些,但往往不作为重点,而更偏重讲解例程的具体设计。笔者编写FPGA基础知识篇的初衷就是把FPGA学习路上细枝末节、模糊不清的知

    2024年02月08日
    浏览(36)
  • Simulink中用模拟器件实现环路滤波器仿真二阶PLL

    1.模拟电路的输入和输出需要使用Simulink-PS Converter和PS-Simulink Converter 2.模拟电路中必须接入Solver Configuration 3.模拟电路输出电压信号需要Voltage Sensor 4.模拟电路输入电压信号需要Controlled Voltage Source 无源RC环路滤波器 有源比例积分环路滤波器 参考信号和VCO输出信号 鉴相器LPF输出

    2024年02月16日
    浏览(52)
  • FPGA时钟分频倍频之PLL锁相环

    1、使用vivado创建一个工程 2、点击IP Catalog,搜索Clock Wizard,然后双击,本次实验使用PLL进行分频倍频,不动态改变相位,故选择PLL选项,并将时钟频率改变为50MHz,此处我们使用50MHz晶振作为时钟源 3、点击Output Clocks,配置产生的时钟频率,其他选项保持默认,点击ok,生pll ip核

    2024年02月12日
    浏览(39)
  • Xilinx FPGA 中PLL与MMCM区别

    原文连接,版权所有 对于FPGA工程师来说,DCM / DLL / MMCM / PLL这些词简直每天都能看到,但很多人并不是很清楚它们之间的差异。 在Xilinx的FPGA中,时钟管理器称为 Clock Management,简称CMT 。我们所用到的DCM / PLL / MMCM都包含在CMT中。 DCM 是比较早的FPGA中使用的,某些Sparten-3和Vir

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包