15 验证差分时钟输入转单端

供给FPGA的时钟有单端时钟,也有差分时钟,当输入是差分时钟时,需要将差分时钟转换为单端时钟输出来作为FPGA的系统工作时钟。

本次使用锁相环来实现差分到单端时钟的转换。

FPGA代码实现如下:

TOP层

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2023/08/31 09:09:58
// Design Name: 
// Module Name: led_top
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led_top(
    input        sys_clk_i_clk_n,
    input        sys_clk_i_clk_p,
    output [1:0] led

    );
  
  //单端系统时钟
  wire sys_clk;
  wire locked;
  wire sys_rst;
  
  
  //差分时钟输入转单端
    clk_wiz_0 clk_wiz_0_u0
   (
    // Clock out ports
    .clk_out1(sys_clk),     // output clk_out1
    // Status and control signals
    .locked(locked),       // output locked
   // Clock in ports
    .clk_in1_p(sys_clk_i_clk_p),    // input clk_in1_p
    .clk_in1_n(sys_clk_i_clk_n));    // input clk_in1_n
   
   //VIO给出复位信号
   vio_0 vio_0_u0 (
  .clk(sys_clk),                // input wire clk
  .probe_out0(sys_rst)  // output wire [0 : 0] probe_out0
);
   
   
   //计数器,实现led灯1秒翻转一次
   //100M时钟,计数10^8次,需27位计数器
   reg [27:0] cnt;
   always@(posedge sys_clk)
   if(sys_rst)
   cnt <= 28'd0;
   else if(cnt<28'd100_000_000)
   cnt <= cnt + 28'd1;
   else 
   cnt <= 28'd0;
    
    //signal
    reg signal;
    always@(posedge sys_clk)
   if(sys_rst)
   signal <= 'd0;
   else if(cnt==28'd100)
   signal <= ~signal ;
   else 
   signal <= signal;
   
   ila_0 ila_0_u0 (
	.clk(sys_clk), // input wire clk


	.probe0(led[0]), // input wire [0:0]  probe0  
	.probe1(led[1]) // input wire [0:0]  probe1
);
 
  assign led[0] = signal;
  assign led[1] = ~signal;
   
endmodule

XDC引脚约束


#系统时钟管脚约束
    set_property -dict {PACKAGE_PIN E16 IOSTANDARD LVDS} [get_ports sys_clk_i_clk_p]
    set_property -dict {PACKAGE_PIN E15 IOSTANDARD LVDS} [get_ports sys_clk_i_clk_n]

#led引脚约束
    set_property PACKAGE_PIN E12 [get_ports {led[0]}]
    set_property PACKAGE_PIN F13 [get_ports {led[1]}]
    set_property IOSTANDARD LVCMOS18 [get_ports {led[*]}]
    
    
    
     
    

本次验证差分时钟转单端采用的开发板为米联客M7Z100FA,核心板型号为xc7z100ffg900-2。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值