AD9253 LVDS 高速ADC驱动开发

1、查阅AD9253器件手册

2、查阅Xilinx xapp524手册

3、该款ADC工作在125Msps下,14bit - 2Lane - 1frame 模式。

对应:data clock时钟为500M DDR mode。data line rate:1Gbps。frame clock:1/4 data clock

具体内容:下文的参考博客写的很清楚,我就不详细写了。参考博客clock align模块不完整,本文新增这个模块。

`timescale 1ns / 1ps

module bit_clk_align(
    input  i_clk_p,
    input  i_clk_n,
    input  i_clk_200m,
    input  i_reset,
    output o_bitclk_align_done,
    output o_bitclk_Monclk,
    output o_bitclk_Refclk

);

//------------------ variable declare ------------------
localparam PHASE_ADJ_FAILED  =  1; // 0: OK   1:FAILED

wire s_BitClk_MonClkOut;
wire s_BitClk_RefClkOut;
wire s_bitclk;
wire s_idelayctrl_rdy;
wire s_bitclk_align_ena;
wire s_IntBitClk;
wire [07:00]s_bitclk_para;
wire [04:00]s_cntvalueout;
reg  r_idelay_ce    = 1;
reg  r_idelay_inc   = 1;

reg  [3:0]r_clk_div_reset   = 4'hf;    // high active
wire s_clk_div_reset;
reg  r_phase_adj_status   = 0;
reg  r_bitclk_align_done   = 0;
reg  [03:00] r_adj_cnt = 0;
reg  [03:00] r_bitclk_align_state = 0;
reg  [01:00] s_iserdesout_dly_cnt = 0;



//------------------ main body of code ------------------
assign  o_bitclk_Monclk  =  s_BitClk_MonClkOut;
assign  o_bitclk_Refclk  =  s_BitClk_RefClkOut;

// generate iserdes reset
always@(posedge s_BitClk_RefClkOut)begin
    r_clk_div_reset   <= r_clk_div_reset   >> 1;
end
assign s_clk_div_reset = (|r_clk_div_reset);

//
// state:  adjust local clock phase align to input clk
//
assign s_bitclk_align_ena = s_idelayctrl_rdy && (~i_reset);
always@(posedge s_BitClk_RefClkOut)begin
    case(r_bitclk_align_state)
        0:begin
            r_idelay_ce  <= 0;
            r_idelay_inc <= 0;
            r_phase_adj_status <= 0;
            r_bitclk_align_done <= 0;
            
            if(s_bitclk_align_ena)begin
                r_bitclk_align_state <= 1;
            end
        end
        1:begin
            //wait iserdes Q8~Q1 output stablely
            r_idelay_ce  <= 0;
            r_idelay_inc <= 0;
            if(s_iserdesout_dly_cnt >= 2)begin
                s_iserdesout_dly_cnt <= 0;
                r_bitclk_align_state <= r_bitclk_align_state + 1;
            end
            else begin
                s_iserdesout_dly_cnt <= s_iserdesout_dly_cnt + 1;
            end
        end
        2:begin
            // se
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值