Vivado时钟IP核

时钟资源介绍

本文以Xilinx ZYNQ为例对FPGA的时钟资源进行介绍。

时钟资源主要有以下几方面:

全局时钟(Global clocks)为整个设备提供时钟;

区域时钟(Regional clocks)为一个区域(和相邻区域)的时钟提供时钟;

IO 时钟(IO clocks)为 IO 结构提供时钟;

时钟管理模块(Clock management tiles)提升时钟质量,如 MMCM(可动态调整)和 PLL。

 全局时钟Clock Backbone是全局贯穿的主干道,借助HROW的道路可以为所有的同步原件提供时钟,也将整片FPGA分为左右两部分,局部时钟Clock Region又分为不同的区域,每个区域被HROW分为上下两部分。将上图中阴影部分单独拿出来,如下图:

 BUFG:全局时钟缓冲器;BUFH:水平时钟缓冲器;BUFIO:IO时钟缓冲器;BUFR:区域时钟缓冲器;BUFMR(一般用不到);MMCMPLL都是为了提高时钟质量,但MMCM可以动态调整。

创建时钟IP核

先创建一个工程,并在设计文件中对端口做定义:

module ip_clk_wiz(
input sys_clk,
input sys_rst_n
    );
endmodule

1) IP Catalog; 

2)搜索栏clock,并选择Clocking Wizard双击打开;

 3)时钟命名;选择MMCM/PLL;选择平衡性能;选择输入频率(与外部晶振对应)

 4)选择输出时钟个数与频率/相位;

 5)根据芯片高/低电平复位有效,选择对应的复位类型。

 创建成功:

 从.veo文件复制IP模板,粘到设计文件中并将端口连接:

`timescale 1ns / 1ps

module ip_clk_wiz(
    input sys_clk,
    input sys_rst_n,
    
    output clk_out1,
    output clk_out2,
    output clk_out3,
    output clk_out4,
    output locked
    );
    
   clk_wiz_0 instance_name
   (
    // Clock out ports
    .clk_out1(clk_out1),     // output clk_out1
    .clk_out2(clk_out2),     // output clk_out2
    .clk_out3(clk_out3),     // output clk_out3
    .clk_out4(clk_out4),     // 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:

`timescale 1ns / 1ps

module tb_ip_clk_wiz( );
    reg sys_clk;
    reg sys_rst_n;
    
    wire clk_100M;
    wire clk_100M_180de;
    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 ip_clk_wiz_u(
        .sys_clk(sys_clk),  
        .sys_rst_n(sys_rst_n),
                  
        .clk_out1(clk_100M),
        .clk_out2(clk_100M_180de),
        .clk_out3(clk_50M),
        .clk_out4(clk_25M),
        .locked(locked)   
    );
endmodule

跑仿真,得到波形图如下图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值