关于精密仪器项目的问题解答

电子说

1.2w人已加入

描述

明德扬整理了的同学们提出的问题,本帖将所有问题进行一个汇总,大家可以从这里找到您想要学习或疑惑的问题,然后进入对应的汇总贴进行学习。为方便您随时找到答案,敬请您收藏本网址!MDY专题课产品交流【汇总贴】_FPGA-明德扬/专业FPGA解决方案专家 (mdy-edu.com)如果同学们的问题我们帖子里面没有的请第一时间联系我:易老师,我们对新问题进行补充!

十一、就业班项目-精密仪器项目(JESD204B)

【问题11.1】JESD204B专题课有交流群吗?

答:购买此课后,均加入MDY的专题课交流群。

【问题11.2】交流群会解答哪方面的内容?

答: 购买此课程的同学,需要有一定的FPGA基础,如一定的设计能力、验证能力和调试能力。

本课程的交流群,将不会详细解答基础问题,例如VERILOG语法;自己修改的代码,如果出错,请自行定位。对于协议、架构等,如有问题,MDY都会详细解答。

【问题11.3】FPGA的JESD204B参考文档是PG066吗?

答:是的。

【问题11.4】 AD9144的同步信号已经拉高了,这说明已经配置成功了?

答:要使用AD9144成功,可以依次检查以下AD9144的几个寄存器。

地址OX470:该寄存器用于表示LANE有没有检测到K28.5同步字。如果说FPGA管脚配置错误、时钟有问题、LANE速率有问题 (例如双方配置的LANE速率不同,一端为2G,另一端为2.5G;或者信号质量不高,传输有误码等),则读到的值将不正确。

地址OX471:检查是否所有的LANE都已经同步。如果地址0X470正确,本寄存器不正确,则可能是速率、时钟有问题。

地址OX472:检查checksum,即校验和是否正确。如果说FPGA和AD9144的参数不同,或者是传递有错误,则此寄存器值不正确。

地址OX473: 检查ILAS。如果说此正确,基本上都正确了。

【问题11.5】顶层模块jest204b_test中,下面的代码是什么含义?

FPGA

答: 本工程有一个功能,通过按下按键,可以改变信号的频率。工程一共支持6种频率,cnt1值为0~5,分别用来表示6种频率。 上面代码中的cnt0控制频率的,其是通过控制同一值重复的次数来达到控制频率的目的,例如假设某信号值为01234为100M信号频率, 让每个点重复一次,即0011223344,信号频率就变为50M。 cnt0的值根据cnt1来改变,例如当cnt1为0时,cnt0的值为0~31,当cnt1为1时,cnt0的值为0~15,当cnt2为2时,cnt0的值为0~7。

【问题11.6】如果要实现与工程中不同的分辨率和不同的采样率(即输出波形的频率不同、分辨率不同),要怎么做?

答: 如果要改变波形的频率,需要涉及到整个系统不同参数的调整,包括用于通信的lane的个数、时钟频率、IP核的寄存器配置和AD9144的寄存器配置等等。 具体可以参考视频中,具体应该按下图的步骤来分析:

FPGA

上图中,依次是确定需求,即您希望的信号频率、采样率DAC个数分别是多少,然后据此确定需要多少条LANE;进而确定AD9144的配置;lane的速率;sample时钟等等。本课程有对应的视频讲解,可以详细理解。请理解视频中介绍的思想,从而应用到您自己的项目中。实用建议:建议您在我们提供的案例基础上,每次改动一点点,看到正确效果后,再做下一下,最终完成最终的目标。

【问题11.7】案例中,插值为2的意义?为什么要插值?

答:插值,顾名思义,就是在两个数据中间自动插入数据。例如要产生一个波形012345,不插值的情况下,FPGA必须要发送数据012345这几个数据给AD9144;而在插值为2时,FPGA只需要发送0246数据,然后AD9144自动补充135。本案例中,为什么要使用插值为2,是假设的一种需求情况。

【问题11.8】在文档《JESD204B协议》中,第52页的下面两个图,为什么这两者的CF不一致?CS又是什么?

FPGA

 

FPGA

答:CS是指一个SAMPLE中的控制位比特数,上面两种情况,每个SAMPLE都加了2位的控制比特,即图中的C1和C0。注意,图中的“Cr0:3[C1:C0]”,是指Cr0的[C1:C0]+Cr1的[C1:C0]+Cr2的[C1:C0]+Cr3的[C1:C0]。CF是指一个FRAME CLK中的控制字个数,单位为字节。注意,这里的CF的限定条件是一个“FRAME CLK”。一个FRAME CLK,即上图中的一列数据。从第一个图可以看出,第一列控制字是Cr0:3[C1:C0],共8比特,所以为CF=1。从第二个图可以看出,第一列控制字是Cr0:3[C1:C0]和Cr8:11[C1:C0],一列共有16比特,所以CF=2

【问题11.9】在讲解需求时,下面的16是什么含义?

FPGA

答:这里的16,是我们假设一个正弦波由16个采样点组成,所以由信号频率*16=采样频率。 当然,这里的16假设值,当您的正弦波是由32或者64,或者更大数组成时,当然就不同。我们这里是先确定需求。

【问题11.10】204b配置完了才正常工作还是不配置也能工作,配置完之后会改变工作方式?

答:都是需要配置完才能正常工作的。

【问题11.11】是否应该补充IP核的配置,为什么要那样配?

答:1. 关于各个参数,如CS F M N等参数,在讲解确定需求的视频中,已经逐个分析出来。总的来说,是看AD9144文档,看MODE后, 根据MODE所 推荐的参数来配置。

2. 得到上面参数后,请阅读一下FPGA IP核的寄存器手册,很简单的,基本上是各个参数配上去就行了。

3. 配置代码,可以看代码解释视频,后面补充了。

【问题11.12】204b配置文件里面有一个寄存器有疑惑,手册里面写的最小是1,但coe配置成0 。

FPGA

 

FPGA

答:寄存器中,“parameter range 1-256”,是指F这个参数的范围是1-256。但后面有描述,此寄存值的值 = F-1,所以才填为0。

这里描述有些歧义,但可以用这种方法排除:假设寄存器是1-256,那该寄存器是8位的,无法表示256,矛盾。

【问题11.13】在AD9144的0X308~0X30B这几个寄存器,是用来选择serdin和lan的关系的,这是如何对应的?

答:下面是这几个寄存器的相关描述。

FPGA

首先,明确概念,SERDIN0~7指的是AD9144芯片上定义的管脚,是物理的,可以去看管脚图。LANE0~7,是指内部表示的LANE编号。估计是为了灵活性,LANE0~7不是与SDRDIN0~7不是一个一个对应的,其对应关系是可以配置的,上面几个寄存器就是起这种作用。例如,LANE0可以与SERDIN0对应,这个时候的0X308[2:0]=0,也可以和SERDIN4对应起来,这个时候0X308[2:0]=4。其次,理解了上面关系后。你可以根据实际情况来配置,例如,本案例中的AD9144子板,它的SERDIN0~3是没有用的,只使用了SERDIN4~7,这是固定死的。然后内部的配置,您可以使用LANE4~7来对应SERDIN4~7,也可以使用LANE0~3来对应SERDIN4~7,这由您来决定,都是可以实现的。最后,再强调一下工程思维:芯片提供了很多功能,您用也可以,不用也可以,您会怎么做?你就选择最简单的来做,甚至就是忽视它存在,也就是使用默认值。

【问题11.14】JESD204B课程里包括AD和DA吗?还是只是其中一个?

答:本课程只包括AD部分,并且是以AD9144为例来说明。注意不同AD和DA芯片,其使用方法都是不同的。本课程只讲述一般思路,需要学员举一反三使用。

【问题11.15】要得到16个点,插2,所以实际传8个点;学习笔记里面生成的正弦波,由于插2了,实际是32个点,这么理解对么?

答:在DA输出端如果16个点组成一个正弦波,插值为2的情况下,FPGA只需要传输8个点/正弦波。 如果FPGA传输16个点/正弦波,插值为2的情况下,DA输出端实际是32个点/正弦波。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分