adc16dv160和FPGA之间的数据接口

 最关键的就是手册上的这个时序:

 

按照时序,先将输入用IBUFDS 接收,然后用IDDR将数据组合。

代码如下:

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2019/09/12 11:09:03
// Design Name:
// Module Name: adc_interface
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//


module adc_interface (
	input adc_clk,
	input  [ 7:0] ADC_DI_P ,
	input  [ 7:0] ADC_DI_N ,
	output [15:0] adc_data
);


	wire [7:0] adc_ds_data;

	genvar i;

	generate
		for (i=0; i < 8; i=i+1) begin: inst_adc_data

			IBUFDS #(
				.DIFF_TERM   ("TRUE"   ), // Differential Termination
				.IBUF_LOW_PWR("TRUE"   ), // Low power="TRUE", Highest performance="FALSE"
				.IOSTANDARD  ("LVDS_25")  // Specify the input I/O standard
			) IBUFDS_inst (
				.O (adc_ds_data[i]  ), // Buffer output
				.I (ADC_DI_P[i]), // Diff_p buffer input (connect directly to top-level port)
				.IB(ADC_DI_N[i])  // Diff_n buffer input (connect directly to top-level port)
			);

			IDDR #(
				.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE", "SAME_EDGE"
				//    or "SAME_EDGE_PIPELINED"
				.INIT_Q1     (1'b0           ), // Initial value of Q1: 1'b0 or 1'b1
				.INIT_Q2     (1'b0           ), // Initial value of Q2: 1'b0 or 1'b1
				.SRTYPE      ("SYNC"         )  // Set/Reset type: "SYNC" or "ASYNC"
			) IDDR_inst (
				.Q1(adc_data[(i*2)+1]), // 1-bit output for positive edge of clock
				.Q2(adc_data[i*2]    ), // 1-bit output for negative edge of clock
				.C (adc_clk          ), // 1-bit clock input
				.CE(1'b1             ), // 1-bit clock enable input
				.D (adc_ds_data[i]   ), // 1-bit DDR data input
				.R (1'b0             ), // 1-bit reset
				.S (1'b0             )  // 1-bit set
			);

		end


	endgenerate



endmodule

其次,在调试的时候,先用fixed patter模式,看看数据是否正确。然后按照自己的需要进行配置。

其实也就两个配置,一个是数据样式(补码或者反码),一个就是Vpp大小(2v或者2.4v)。

 

包含时钟的代码在这里:https://gitee.com/wamogu/adc16dv160

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值