打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【FPGA】Vivado软件 PLL IP核使用教程
userphoto

2023.07.19 广东

关注

一、PLL简介

        PLL (Phase Locked Loop),锁相环,是一种反馈控制电路。其功能主要是时钟倍频、分频、相位偏移和可编程占空比。

 二、Vivado软件PLL创建

1、新建pll_test工程,点击Project Manager界面下的IP Catalog。

 2、再在IP Catalog界面里搜索框搜索Clocking,找到下面的Clocking Wizard,双击打开配置界面。

3、进入配置界面。默认这个Clocking Wizard的名字为clk_wiz_0, 可以修改。在第一个界面Clocking Options里,输入的时钟名字可以修改。输入的时钟频率也可以修改,这里我设置为20Mhz。

 4、在Output Clocks界面里可以选择clk_out1~clk_out4四个时钟的输出,这里我只选择一个时钟clk_out1,频率我设置为50Mhz。这里还可以设置时钟输出的相位,我没有设置。

5、在弹出的对话框中点击Generate按钮生成PLL IP的设计文件。

 pll_test工程中自动生成一个clk_wiz_0.xci,双击可以修改IP的配置。

三、pll ip实例化

1、在IP Sources界面找到clk_wiz_0.veo文件,文件中是IP的例化模板。我们只需要将文件中内容复制粘贴到我们verilog程序中,对IP进行实例化。

 2、我们在创建一个顶层设计文件来实例化这个PLL IP, 编写pll_test.v代码如下。注意PLL的复位是高电平有效,也就是高电平时一直在复位状态,PLL不会工作。而rst_n是低电平复位,因此需要反向连接到PLL的复位。

`timescale 1ns/1ps
module pll_test(
    input   clk   ,//20m系统时钟
    input   rst_n ,

    output  clk_out//pll clk output
);

//参数定义
wire    locked;

//ip核例化
 clk_wiz_0 instance_name
   (
    // Clock out ports
    .clk_out1 (clk_out ),       // output clk_out1
    // Status and control signals
    .reset    (~rst_n  ),       // input reset
    .locked   (locked  ),       // output locked
    // Clock in ports
    .clk_in1  (clk     )
    ); 
endmodule

3、保存工程后,pll_test自动成为了top文件,clk_wiz_0成为Pll_test文件的子模块。

四、对实例化顶层文件仿真

1、我们在创建一个仿真激励文件来仿真这个pll_test顶层文件, 编写pll_test_tb.v代码如下。 

`timescale 1ns / 1ps
//
// Module Name: _led_test_tb
//

module pll_test_tb;
	// Inputs
	reg sys_clk;
	reg rst_n;

	// Outputs
    wire clk_out;

	// Instantiate the Unit Under Test (UUT)
	pll_test u_pll_test (
	.clk(sys_clk),            //system clock 20Mhz on board
    .rst_n(rst_n),             //reset ,low active

    .clk_out(clk_out),           //pll clock output 50Mhz

	);

	initial begin
		// Initialize Inputs
		sys_clk = 0;
		rst_n = 0;

		// Wait 100 ns for global reset to finish
		#100;
          rst_n = 1;        
		// Add stimulus here
		#20000;
      //  $stop;
	 end
   
    always #10 sys_clk = ~ sys_clk;   //5ns一个周期,产生50MHz时钟源
   
endmodule

2、运行后PLL的lock信号会变高,说明PLL IP锁相环已经初始化完成。clk_out有时钟信号输出,输出的频率为输入时钟频率20Mhz的5/2, 为50Mhz。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
OCC的架构功能介绍以及插入
【精品博文】Vivado中使用逻辑分析仪ILA
相信我SDRAM真的不难九(VGA驱动模块将SDRAM中缓存的图片信息以VGA时序输出从而在显示器上显示图片)
(1)用QuartusIITimequestTimingAnalyzer进行时序分析:实例讲解(二)
IC设计中的时钟类型约束
数字后端基础技能之:CTS(上篇)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服