六、IP核——PLL/MMCM的使用

IP核——PLL/MMCM的使用

一、实验任务

本节实验任务是使用 Zynq 开发板输出 4 个不同时钟频率或相位的时钟,并在 Vivado 中进行仿真以验
证结果,最后生成比特流文件并将下载到开发板上,使用示波器来测量时钟的频率。

二、程序设计

  • 了解FPGA的时钟资源
  • 了解MMCM/PLL

设计文件

module ip_clk_wiz (
    input sys_clk,
    input sys_rst_n,
    output clk_100m      ,
    output clk_100m_180  ,
    output clk_50m       ,
    output clk_25m       ,
    output locked        
);

    clk_wiz_0 u_clk_wiz_0 (
        // Clock out ports
        .clk_out1(clk_100m     ), // output clk_out1
        .clk_out2(clk_100m_180 ), // output clk_out2
        .clk_out3(clk_50m      ), // output clk_out3
        .clk_out4(clk_25m      ), // output clk_out4
        // Status and control signals
        .resetn  (sys_rst_n), // input resetn
        .locked  (locked         ), // output locked
        // Clock in ports
        .clk_in1 (sys_clk  )
    );      // input clk_in1


endmodule

tb文件

module tb_ip_clk_wiz ();

    //激励信号一般定义为 reg型
    reg sys_clk;
    reg sys_rst_n;

    wire clk_100m;
    wire clk_100m_180;
    wire clk_50m;
    wire clk_25m;
    wire locked;


    initial begin
        sys_clk         = 1'b0;
        sys_rst_n       = 1'b0;

        #200
            sys_rst_n = 1'b1;

    end

    always #10 sys_clk = ~sys_clk;

    ip_clk_wiz u_ip_clk_wiz (
        .sys_clk     (sys_clk     ),
        .sys_rst_n   (sys_rst_n   ),
        .clk_100m    (clk_100m    ),
        .clk_100m_180(clk_100m_180),
        .clk_50m     (clk_50m     ),
        .clk_25m     (clk_25m     ),
        .locked      (locked      )
    );

endmodule

仿真波形

在这里插入图片描述

上板验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值