目录
在很多高速DA芯片中,都是高速串行输出LVDS数据。这显然不能用fpga Verilog 语言直接写代码进行采样,需要用到专门的 iserdese 原语。
一直不懂的是,时钟,并行数据宽度,并行数据位宽的先后顺序,多bit 输出怎么级联,等等。

并行数据宽度,有几个,不是随便定义的,要按照上表的说明来。
有两套可以学习的代码,一个是AD9148,一个是AD9739 这个不光是看芯片手册,还需要看硬件上原理图。自己没有动手调试过,看别人代码,整理的,不一定正确,后面继续学习。
1. AD9148



下面的代码时按照这个数据时序来用的,DCI clk 480MHZ, CLK P CLK N 是240M

2. ad9739

DACCLK 芯片采样率2.4GHz , DCI 600MHz
`timescale 1ns / 1ps
module da_oserdes(
input io_reset ,
input sysclk , //300M
input dac_clk , //600M
input [13:0] dac_data0 ,
input [13:0] dac_data1 ,
input [13:0] dac_data2 ,
input [13:0] dac_data3 ,
input [13:0] dac_data4 ,
input [13:0] dac_data5 ,
input [13:0] dac_data6 ,
input [13:0] dac_data7 ,
output dac_clk_op ,
output dac_clk_on ,
output [13:0] dac_even_p , // DB0 对应并串转换的输出
output [13:0] dac_even_n ,
output [13:0] dac_odd_p , // DB1 对应并串转换的输出
output [13:0] dac_odd_n
);
//-------------------------------------------------------------------
// Defination of Ports
//----------------------------
本文介绍了高速DA芯片如AD9148和AD9739如何利用FPGA Verilog中的OSERDESE2原语处理LVDS串行数据。内容涉及并行数据宽度的选择、时钟和数据位宽的顺序,以及多bit输出的级联方式。虽然作者未亲自调试,但提供了两款芯片的代码示例,适用于DCI clk 480MHz和2.4GHz DACCLK采样率的场景。
最低0.47元/天 解锁文章
7637

被折叠的 条评论
为什么被折叠?



