【紫光同创PGL22G学习】三、以PLL为例,学习IP core使用

举报
ReCclay 发表于 2022/02/22 00:55:18 2022/02/22
【摘要】 导读:在很多 FPGA 芯片内部都集成了 PLL,其他厂商可能不叫 PLL,但是也有类似的功能模块,通过 PLL 可以倍频分频,产生其他很多时钟。本实验通过调用 PLL IP core 来学习 PL...

导读:在很多 FPGA 芯片内部都集成了 PLL,其他厂商可能不叫 PLL,但是也有类似的功能模块,通过 PLL 可以倍频分频,产生其他很多时钟。本实验通过调用 PLL IP core 来学习 PLL 的使用方法。

一、实验原理

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

本实验将通过使用 PLL, 输出一个方波到开发板上的扩展口 J8 的 PIN3 脚,来演示使用PLL 的方法。

数字锁相环(PLL):主要由鉴频鉴相器( PFD,Phase FrequencyDetector)、环路滤波器(LF,Loop Filter)和压控振荡器(VCO,Voltage Controlled Oscillator) 等组成。通过不同的参数配置,可实现信号的调频、调相、同步、频率综合等功能。 LogosPLL 的电路框图如下图所示:

在这里插入图片描述

二、PLL IP core使用

(1)点击 Tool 菜单下的 IP Compiler。

在这里插入图片描述

(2)再在弹出的界面里选择 PLL 下的 Logos PLL,再对 PLL 取名 clk_wiz_1,然后单击 Customize。

在这里插入图片描述

(3)在 Basic Configurations 界面里, 勾选复位管脚使能"Enable Port pll_rst",输入的时钟频率为50Mhz。输出选择 clk_out0~clk_out3 四个时钟的输出,频率分别为 200Mhz, 100Mhz, 50Mhz,25Mhz(注意勾选 Enable)。这里还可以设置时钟输出的相位,我们不做设置,保留默认相位。
在这里插入图片描述
(4)点击左上角 Generate 按钮生成 PLL IP 的设计文件,生成成功后会弹出是否添加到工程的对话框,选择Yes

在这里插入图片描述

在这里插入图片描述
(5)这时一个 clk_wiz_1 IP 会自动添加到我们的 pll_test 项目中, 用户可以双击它来修改这个 IP 的配置

在这里插入图片描述
(6)我们再来编写一个顶层设计文件来实例化这个 PLL IP, 编写 pll_test.v 代码如下。

module pll_test(
	input       sys_clk,
	input       rst_n,
	output      clk_out ,
	output locked          //pll clock output J8_Pin3
);


clk_wiz_0 clk_wiz_0_inst
(
    .clkin1(sys_clk),            // IN 50Mhz

    .clkout0(),                // OUT 200Mhz
    .clkout1(),               // OUT 100Mhz
    .clkout2(),              // OUT 50Mhz
    .clkout3(clk_out ),    // OUT 25Mhz	 

    .pll_rst(~rst_n),        // RESET IN
    .pll_lock(locked)	
); 
endmodule


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

程序中先用实例化 clk_wiz_1, 把单端 50Mhz 时钟信号输入 sys_clk 到 clk_wiz_1 的 clkin1,把 clk_out3 的输出赋给 clk_out。

  • sys_clk 为 50MHz 的系统时钟
  • rst_n 为复位信号
  • clk_out 为 PLL 输出的 25MHz
  • locked 为波形稳定输出锁定

(7)保存工程后,pll_test 自动成为了 top 文件,clk_wiz_1 成为 Pll_test 文件的子模块。

在这里插入图片描述

(8)再为工程进行管脚约束

在这里插入图片描述

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/115058827

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。