主题中讨论的其他器件: ADC32RF45
您好!
我在1GHz 下以旁路模式(LMFS=42810)使用 ADC32RF42、而 ADC 是12位斜坡数据模式。 我的问题如下:
在此模式下、ADC32RF42是否使用所有4个可用通道? 我认为它在旁路模式下仅使用2个通道、如果我的回答正确、为什么我们将其称为 LMFS=42810、而不是 LMFS=22810?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我在1GHz 下以旁路模式(LMFS=42810)使用 ADC32RF42、而 ADC 是12位斜坡数据模式。 我的问题如下:
在此模式下、ADC32RF42是否使用所有4个可用通道? 我认为它在旁路模式下仅使用2个通道、如果我的回答正确、为什么我们将其称为 LMFS=42810、而不是 LMFS=22810?
除了上述问题、我相应地映射了64位 rx_tdata、并每2个内核 clk 周期获取128位数据、如下所示:
0000S9S8S7S6S5S4S3S2S0、其中 Sx 为12位 Xth 采样。 不过、在12位斜坡模式下、似乎每2个内核 clk 周期丢失10个样本值。 例如,当我在一个 clk 中获取0000S9--S0时,我在另一个 clk 中获取0000S29--S20,即样本 S19--S10缺失。 我非常确信我正确地实现了映射。 您认为我为什么漏掉了一些样本、这是 ADC 在12位斜坡模式下执行的操作吗?
尊敬的 Erdal:
12位模式为 LMFS=42810。 2个通道用于通道 A、2个通道用于通道 B。ADC 在此模式下表现没有什么不同、因此我认为映射到128位帧会包含该问题。 64位帧(LM F S= 42 8 10) 10)对于此模式、如下所示:
通道 DA0:S0、S1、S2、S3、S4、 0000
通道 DA1:S5、S6、S7、S8、S9、 0000
通道 DB0:S0、S1、S2、S3、S4、 0000
通道 DB1:S5、S6、S7、S8、S9、 0000
交换以设置 JESD IP 输出的格式后、每个数据帧应如下所示:
通道 DA0:0000、S4、S3、S2、S1、 S0
通道 DA1:0000、S9、S8、S7、S6、 S5
通道 DB0:0000、S4、S3、S2、S1、 S0
通道 DB1:0000、S9、S8、S7、S6 S5
您是否可以共享 RTL 来说明如何将1个内核时钟的值数据(1帧)映射到128位帧(2个内核时钟值数据)?
谢谢,Chase
您好!
首先我要提一下、CHB 断电了、因为我不使用它、我希望除了2个 CHA 通道外、也不需要2个 CHB 通道来获得一整套输出。 我将在下面发送我的简单数据映射器的 RTL 代码。 顺便说一下、SYNC 始终是高电平、即 FPGA 和 ADC 始终是同步的、我不会忽略任何帧错误。
实体数据映射器是
端口(
rx_core_clk :在 std_logic;
rx_tdata :在 std_logic_vector 中(63归至0);
rx_tvalid :在 std_logic;
MAPPING DATA_OUT : OUT STD_LOGIC_VECTOR (127下至0);
MAPPING DATA_VALID:OUT STD_LOGIC
);
结束数据映射器;
DATA_MAPPERR 的架构行为是
信号 rx_data_prev:std_logic_vector (63降至0);
信号切换:std_logic:='0';
开始
MAPPING DATA_OUT (127降至120)<= x"00";
过程(rx_core_clk)
开始
如果为 RISING_EDGE (Rx_CORE_clk)、则
如果(rx_tvalid='1')、则
切换<=非(切换);
如果切换为'1'、则
MAPPING DATA_VALID <='1';
adc32rf42数据表第40页表14中的- lane 0,数据从左到右
maping_data_out (11向下至0) <= rx_data_prev (7向下至0)和 rx_data_prev (15向下至12);
已映射_DATA_OUT (23至12)<= rx_data_prev (11至8)和 rx_data_prev (23至16);
maping_data_out (35下至24)<= rx_data_prev (31下至24)和 rx_tdata (7下至4);
MAPIAD_DATA_OUT (47下降至36)<= Rx_tdata (3下降至0)和 Rx_tdata (15下降至8);
MAPPING DATA_OUT (59至48)<= rx_tdata (23至16)和 rx_tdata (31至28);
-通道1
MAPPING DATA_OUT (71至60) <= rx_data_prev (39至32)和 rx_data_prev (47至44);
MAPPING DATA_OUT (83至72) <= rx_data_prev (43至40)和 rx_data_prev (55至48);
MAPPING DATA_OUT (95至84) <= rx_data_prev (63至56)和 rx_tdata (39至36);
MAPPING DATA_OUT (107下降至96) <= Rx_tdata (35下降至32)和 Rx_tdata (47下降至40);
maping_data_out (119向下至108)<= rx_tdata (55向下至48)和 rx_tdata (63向下至60);
否则
MAPPING DATA_VALID <='0';
rx_data_prev <= rx_tdata;
结束 IF;
否则
MAPPING DATA_VALID <='0';
切换<='0';
结束 IF;
结束 IF;
结束过程;
结束行为;
我刚刚偶然遇到了以下链接中的线程:
在页面底部、他们表示可以在1.5GHz 12位的速率下以每通道8Gb/s 的通道速率运行 ADC32RF42并且主动使用全部四个通道? 是这样吗? 该比率是如何计算的? 对于此采样模式、我们不需要总比特率= 1.5*(64/5)(10/8)=24Gb/s。 由于我们只能对旁路模式使用2个通道、因此通道速率将是24/2=12Gb/s。
您好,请查看我的评论如下。
为什么您认为我漏掉了一些样本,这是 ADC 在12位斜坡模式中所做的事情吗?
ADC 在此模式下的表现没有任何不同。 问题不在于您缺少样本、而在于 FPGA 会跳过每隔一个多帧的数据。 如果您可以将 RAW RX_DATA 传递给 ILA、那么可能会更容易注意此处发生的情况。 当样本被"跳过"时、意味着这个地方不会填充0或任何东西、对吧? 下一个显示为 Rx_DATA 的可用数据来自下一个多帧?
我正在发送下面我的简单数据映射器的 RTL 代码。
感谢您提供此内容。 我自己不是一个流利的 HDL ,但我将与我们的团队工作,检查是否有什么可能导致这个问题发生在地图。
在页面底部,用户表示可以在通道速率为8Gb/s 且所有四个通道均处于主动使用状态的情况下以1.5GHz 12位的频率运行 ADC32RF42吗? 是否正确?
否、此链接帖子不正确。 我不知道 Jim 是如何想出8Gbps 的。 我猜是他使用了1Gsps 而不是1.5Gsps 但他确实键入了1.5Gsps 在线程... 无论哪种方式、您提供的计算都是正确的。 如果仅在一个通道以1.5GSPS 的速率采样、则总吞吐量为24Gbps、因此在2个通道上、每个 SerDes 通道速率将为12Gbps。
我希望您不会错过答案:)[/报价]再也不会! :)
谢谢耐心!
此致、Chase
感谢您的答复。 我同时监控 rx_tvalid 和 rx_tdata、并确保 rx_tvalid 不会变为低电平。 ILA 监控 rx_tvalid 和 rx_tdata 的采样时钟为 rx_core_clk、以200MHz 运行。 rx_tvalid 和 rx_tdata 从 JESD IP 内核产生。 有一点是、我在电路板上将 ADC32RF42替换为 ADC32RF45 (因为 ADC32RF42和 ADC32RF45引脚兼容)、ADC32RF45工作正常、采样频率为1.5GHz、所有4个通道的工作频率均为6Gb/s。 我告诉你这是因为我不能采取任何更多的措施:(. 如果你有任何想法,为什么我错过了一些多帧请随时发表答案;否则,我们可以关闭标签,并留下它作为一个谜:)。
尊敬的 Erdal:
谢谢您的留言。 接下来、我想我们可能会认为该线程已关闭、因为您已经得到了即时解决方案。 但我想知道您是否对 ADC32RF45使用同样的12位模式、因此如果我有空闲时间、我可以将其添加到项目列表中进行搜索。 我知道 ADC32RF42和 ADC32RF45的唯一区别是采样率限制、然后调整设置、这些设置可优化不同采样率下的性能。
谢谢,Chase