天天育儿网,内容丰富有趣,生活中的好帮手!
天天育儿网 > 【紫光同创PGL22G学习】三 以PLL为例 学习IP core使用

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

时间:2021-07-21 04:45:46

相关推荐

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

导读:在很多 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,outputclk_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

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

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

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

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

如果觉得《【紫光同创PGL22G学习】三 以PLL为例 学习IP core使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。