当前位置:   article > 正文

vivado时钟ip核实现例程_clk_wizip核代码编写

clk_wizip核代码编写

实验目的

使用时钟ip核产生不同频率和相位的时钟信号。具体参数设置如下:

输入信号时钟:50Mhz

输出信号时钟:1.100Mhz     0deg

                         2.100Mhz     180deg

                         3.50Mhz       0deg

                         4.25Mhz       0deg

ip核设置

顶层文件

ip核例化 

顶层文件设计

  1. module clock_wizard(
  2. input s_clk ,//系统时钟
  3. input s_rst_n ,//系统复位
  4. output clk_100M ,//输出100Mhz时钟信号
  5. output clk_100M_180deg ,//输出100Mhz,相位180度的时钟信号
  6. output clk_50M ,//输出50Mhz时钟信号
  7. output clk_25M ,//输出25Mhz时钟信号
  8. output locked
  9. );
  10. clk_wiz_0 u_clk_wiz_0
  11. (
  12. // Clock out ports
  13. .clk_out1(clk_100M), // output clk_out1
  14. .clk_out2(clk_100M_180deg), // output clk_out2
  15. .clk_out3(clk_50M), // output clk_out3
  16. .clk_out4(clk_25M), // output clk_out4
  17. // Status and control signals
  18. .resetn(s_rst_n), // input resetn
  19. .locked(locked), // output locked
  20. // Clock in ports
  21. .clk_in1(s_clk)
  22. );
  23. endmodule

RTL图

测试文件

  1. `timescale 1ns / 1ps
  2. module tb_clock_wizard( );
  3. reg s_clk;
  4. reg s_rst_n;
  5. wire clk_100M;
  6. wire clk_100M_180deg;
  7. wire clk_50M;
  8. wire clk_25M;
  9. wire locked;
  10. initial begin
  11. s_clk=1'b0;
  12. s_rst_n=1'b0;
  13. #200
  14. s_rst_n=1'b1;
  15. end
  16. always #10 s_clk=~s_clk;//输入50Mhz的时钟
  17. clock_wizard u_clock_wizard(
  18. . s_clk (s_clk),
  19. . s_rst_n (s_rst_n),
  20. . clk_100M (clk_100M),
  21. . clk_100M_180deg (clk_100M_180deg),
  22. . clk_50M (clk_50M),
  23. . clk_25M (clk_25M),
  24. .locked (locked)
  25. );
  26. endmodule

仿真结果

来源参考:

正点原子

基于zynq7020核心板——领航者V2开发板

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号