3、vivado-artix下pll锁相环实验

19 篇文章 0 订阅
3 篇文章 0 订阅

PLL锁相环的作用

根据给定的频率的信号进行多种的不同的其他的频率的时钟信号的生成,用于不同等级的时钟的生成

使用方法

通过vivado 自带的时钟管理的ip core 进行pll 的使用

打开clock wizard

在这里插入图片描述

修改配置

(1)修改输入的时钟的频率是200MHz
在这里插入图片描述

(2) 修改其几路的输出的时钟的频率
在这里插入图片描述

生成ip core 并编写顶层文件

如下所示为顶层文件:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2020/07/30 22:26:39
// Design Name: 
// Module Name: pll_top
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module pll_top(
input sys_clk_p,
input sys_clk_n,
input rst_n,
input locked,
output clk_out1,
output clk_out2,
output clk_out3,
output clk_out4
    );
//    wire locked;
    wire pll_clk_o;
    wire sys_clk;
    
    IBUFDS sys_clk_ibufgds(
        .O(sys_clk),
        .I(sys_clk_p),
        .IB(sys_clk_n)
    );
clk_wiz_0 pll_test(
    .clk_in1(sys_clk),
    
   //output
   .clk_out1(clk_out1),
   .clk_out2(clk_out2),
   .clk_out3(clk_out3),
   .clk_out4(clk_out4),
   
   //status  and  output 
   .reset(~rst),
   .locked(locked)
   );
   
//   ODDR #(
//   .DDR_CLK_EDGE("SAME_EDGE")
//   ) ODDR_inst(
   
//   .Q(clk_out1),
//   .C(pll_clk_o),
//   .CE(1'b1),
//   .D1(1'b1),
//   .D2(1'b0),
//   .R(1'b0),
//   .S(1'b0)
//   );
    
    
endmodule

编写仿真文件

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2020/07/31 10:50:47
// Design Name: 
// Module Name: vtf_pll_test
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module vtf_pll_test;

reg sys_clk_p;
wire sys_clk_n;
reg rst_n;
wire clk_out1;
wire clk_out2;
wire clk_out3;
wire clk_out4;
reg locked;

pll_top pll_sim(
    .sys_clk_p(sys_clk_p),
    .sys_clk_n(sys_clk_n),
    .rst_n(rst_n),
    .locked(locked),
    .clk_out1(clk_out1),
    .clk_out2(clk_out2),
    .clk_out3(clk_out3),
    .clk_out4(clk_out4)
);

initial begin
    sys_clk_p=0;
    locked = 1;
    #100;
    rst_n = 0;
    locked = 0;
    #100
    rst_n = 1;

end

always #1 sys_clk_p = ~sys_clk_p;
assign sys_clk_n = ~sys_clk_p;

    
    
    
    
endmodule

仿真结果

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有水杯和雨伞的工科男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值