明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 110807|回复: 0

MDY专题课产品交流【汇总贴】

[复制链接]

35

主题

56

帖子

5395

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5395

荣誉管理论坛元老

QQ
发表于 2020-5-9 18:59:36 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一、SDRAM和DDR专题课

【问题1.1】DDR3那个课程,一般线速率能跑到多少?
答:本课程的DDR3内容,是基于XILINX K7芯片,使用的是VIVADO平台。DDR3的时钟频率是800M。用户侧时钟是200M。

【问题1.2】SDRAM和DDR3课程,使用是什么平台?
答:SDRAM部分使用的是QUARTUS平台,着重于讲解SDRAM时序和SDRAM的接口设计。
      DDR3部分,使用的是VIVADO平台,着重于DDR3 IP的生成和上板验证流程。
      DDR3的理论部分,基本上不涉及,建议可以参考SDRAM的理论部分。

【问题1.3】 使用DDR3 IP一定需要读地址FIFO,读数据FIFO,写地址FIFO,写数据FIFO来先进行数据缓存吗?
答:这个理解是不对的。这里没有跨时间域的信号传输的。因为IP核会产生一个本地时钟,这个本地时钟是可以直接采集数据的,假设为clk_ddr_local。用户可以直接使用clk_ddr_local来往IP核传输数据。
好了,接下来再考虑一个场景:我有一组数据A,产生于时钟域clk;A要写到DDR,DDR的时钟域是clk_ddr_local。自然地,A要跟时钟域到clk_ddr_local,然后才能写到DDR中,这就需要用到FIFO。
接下来考虑另一个场景:我有一组数据B,产生于时钟域clk_ddr_local;B要写到DDR,DDR的时钟是clk_ddr_local。由于两个时钟域相同,直接写就好了。(通常来说,这已经不属于DDR的知识了,而是属于跨时钟域处理的知识,是FPGA工程师都应该知道的概念)。

【问题1.4】用户逻辑控制DDR3读写的程序不是需要自己写吗?
答:官方一般提供了DDR3的IP核。用户可以通过DDR3 IP核来进行DDR3芯片的读写。但是用户需要写逻辑来控制DDR3 IP核。


【问题1.5】课程里会讲如何通过DDR3 IP像写入图像吗?
答:课程中的SDRAM部分,会有例子讲如何写入图像到SDRAM中,DDR3/4也是类似的。但由于每人的项目不同,所以需要学员根据自己情况来移植。


【问题1.6】如何知道ddr3里不空,可以读取了?
答:DDR3和RAM【一样,是一个存储器件,它的每个内部单元都存储了当前的数据状态值。
但DDR3和RAM本身,是没有“空”、“存有数据”,“数据满”等概念的。只要给地址,它就会把当前地址的数据给到总线上,而且这个地址可以读很多次。
在设计的时候,是由设计师用自己写逻辑来判断DDR3是否为空。


【问题1.7】请问这个sdram的自动刷新命令发送后,是不是刷新的是所有bank的同一行都在执行刷新呀?也就是说刷新的是不同bank的同一行,是不是这样理解
答:是的。发送一个自动刷新命令,所有BANK同一行都会刷新


【问题1.8】请问有ddr3的IP核手册吗?(altera的)

143047rvpoggrembkavbeo.png
答:IP核不同,界面会所不同,但一般都会提供下载链接的。VIVADO、ISE等,也是同样的情况

【问题1.9】做一个用到ddr4的项目,有一个ddr3的例程,不知道怎么改成ddr4?
答:百度搜索找资料,按流程配置就好,这个我们没有教程,只能看数据手册



二、高手修炼专题课
【问题2.1】计数器练习的9.4节中,第二个计数器的代码为什么是计30个呀?我认为应该是3*(8+1)+2=29个。
微信图片_20210408180509.png

答:数据位一共是27位,开始位1位,结束位1位,还要注意看上图中,第三字节x后还有1位的0,之后才是结束位,所以一共是30位。


三、实用调试技巧专题课


四、FIFO架构设计专题课

【问题4.1】关于FIFO的深度计算问题,可以看此贴:http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=887
    此答案来自于明德扬的书籍《手把手教你学FPGA》,电子版可以在此贴下载:http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=469


五、综合项目实践课——温度检测工程




六、综合项目实践课——边缘检测工程

【问题6.1】点拨开发板,下载工程检测工程后,没有反应。
答:注意:下载后,需要按下矩阵键盘的按键0(即左上角第一个按键),才能显示!!!

【问题6.2】点拨开发板可以显示摄像头拍摄过来的图片吗?
答:由于点拨开发板的资源不足,所以无法显示摄像头的图片,如要显示,建议购买MP801开发板

【问题6.3】PCLK的时钟频率问题
答:FPGA提供XCLK给摄像头,摄像头利用XCLK产生PCLK。所以PCLK来源于XCLK,所以XCLK是多少,PCLK就是多少。
      也就是说PCLK和XCLK频率大小一样,只是说可能不同相

【问题6.4】是否不使用PLL,而是用PCLK来作为采集模块的时钟?
答:PCLK经过插件连到FPGA,这其中可能会不稳定。为解决此问题,将PCLK连到PLL,产生一个同频同相的时钟,使用这个时钟作为采集模块的工作时钟。
      这样,即使PCLK缺少或者不稳定,但产生的时钟也会保持稳定。

【问题6.5】摄像头寄存器配置模块中,配置的是04对应RGB,但是数据手册中RGB应该是01,这是为什么?
答:这里的Bayer RAW本质上是RAW RGB格式,也是RGB格式。
       RAW RGB:在摄像头里没有经过任何处理的数据。
       RGB:在摄像头里经过了ISP等算法处理的数据。
        如果想要最原始的数据,就使用RAW格式;如果要摄像头先美化一下,就使用RGB格式。想要哪种格式,取决于您的需求。

【问题6.6】边缘检测寄存器是怎么样配置的呢?
答:边缘检测中,ov7670_cfg模块和sccb模块,就是用来配置的,可以参考

【问题6.7】答:OV7670是标准的SCCB接口,兼容IIC接口
【问题6.8】请问在边缘检测模块中的vga_config模块,如果想显示完整的一帧图像(假设为彩条显示)而ram资源不够,我用的多维数组来做存储器存储16bit 640*480个像素点,(目的:在local_wr_req时将写数据按地址存进去,在local_rd_req时将数据按地址读出来),请问以下代码方案是否可行,若不行,请问该如何实现此目的?(代码如下图示)
微信图片_20211117181926.png


答:
1. 使用二维数组代替RAM方法:二维数据使用的是寄存器资料,通常RAM资源是远远大于寄存器资源的,所以RAM不足时,寄存器一般也不足。
2. 如果只是仿真用途,这个是可以的,可以不考虑资源。既然是仿真,那自然也可以增大RAM了。
3. 注意上面代码中有错误,读写地址是独立,不是共同一个的。读哪些地址数据,无关写地址。上面代码中不正确,具体请仿真。

【问题6.9】这个关系怎么得到的呢?根据这个图的话 上面的关系不应该反过来吗?在下一拍的时候应该吧taps0_ff0赋值给taps0x呀?




答:没有 ff0就是表示 延时一拍的意思,taps0_ff是taps0前一时刻的值,需要得到这种结果,就是通过时序逻辑打一拍,资料提供的有直播课讲解,建议结合仿真波形去看,测试文件有提供




七、综合项目实践课——千兆网项目专题课

【问题7.1】千兆网课程里的udp和百兆网通用的吗?
答:本课程讲述的是千兆网,对于百兆网来说,UDP IP MAC和ARP协议都是相同的,不同的是MAC IP核、FPGA和PHY芯片的接口不同。
      本课程提供的是千兆网的工程,如果要使用百兆网,需要根据上面的内容来修改。

【问题7.2】千兆网课程有实现TCP协议吗?
答:本千兆网课程实现的是UDP协议,没有TCP协议。

【问题7.3】请问下,三速以太网IP核配置时,32bit对齐选项的意义在哪里?
答:在接口为32bit时,每个VLD有效时的数量是4个字节。由于MAC头是14字节,不是4的整数倍,在发送方向,在补上MAC头后,必须调整数据(拿出2字节与MAC头最后2字节凑成一个4字节的有效数据),这样处理比较麻烦。  同时道理,接收方向,去掉14字节MAC头后,会有一个VLD多出2字节的有效数据,这样调整也麻烦。为此,MAC IP核里有一个功能,就是32位对齐功能。该功能决定,在SOP位置时,最高2字节是否为无效数据。 当是无效数据模式时,发送方向插入2字节无效数据+14字节MAC头;在接收方向,删除前16字节MAC头,剩下就是效数据。这样处理就方便很多了。


【问题7.4】 只要勾选了32bit对齐功能,IP核自动添加2字节的无效数据?
答:勾选对齐后,接收方向将删除无效数据,直接输出数据,即SOP位置的高2字节也是有效的,一直到EOP位置。发送方向,认为从SOP到EOP的位置都是有效的。
       不勾选的话,接收方向,IP核输出、SOP位置的高2字节是无效数据。发送方向,进到IP核的数据里,将SOP位置的高2字节视为无效数据。

微信图片_20201013105113.png
【问题7.5】如下图所示,当使用了PAD_EN功能时,接收方向,会将PAD去掉,但实际上没有去除,是怎么回事?
答:请看下面描述:第一段,当值小于600,该域反映的是长度,才会继续检查PAYLOAD长度,进而才会有REMOVAL。当值大于600时,该域反映的是类型而已,则不会REMOVAL。
微信图片_20201013105219.png
【问题7.6】课程里会包含TCP协议吗?
答:TCP协议使用逻辑实现非常复杂,所以本课程不会包含此部分内容。


八、时序约束专题课

【问题8.1】为什么建立时间分析的时钟到达时间要加一个时钟周期而保持时间分析则不用呢?
答:因为建立时间是源寄存器发出数据,目的寄存器采集,也就是上一个时钟发出来,本时钟采集。这里有一个时钟周期的因素,所以要加1个时钟周期。
     而保持时间分析,则是“本个时钟”发出数据后,如果延时太小,会影响“本个时钟”对上一个数据的采集,因为不需要加1个时钟周期。
     另外,要注意一点,保持时间是跟时钟周期无关的。

【问题8.29】老师请问红色的是不是不满足时序要求?

答:不是的,setup和hold时间形成一个时间窗,只要在这个时间窗里信号稳定就饿可以了在使用时序分析工具的时候,字体为红色时间提示是不满足时序要求

九、PCIE专题课

【问题9.1】 PCIE视频教程是否有讲简单的pio数据交互?
答:有此方面的内容。

【问题9.2】多少通道都可以吗?
答: 是的,都可以。


十、就业班项目-光纤项目

【问题10.1】光纤项目主要是培训内容是哪些接口?答:主要是培训DDR3/GTX接口(着重培训的是用户接口逻辑设计,也就是接口代码,而非单纯的IP核使用),本项目的工程也包括PCIE接口内容,但不会详细教授。

【问题10.2】GTX接口使用的是什么协议?
答:本项目是点对点通信,所以MDY使用GTX IP核后,封装了一层用户协议,这个用户协议是自定义的,参考了UDP协议的思想。

【问题10.3】本项目的工程和资料可以分享吗?
答:本项目是来自于企业项目,签订了保密协议,只可以培训,不可以外传分享。所以学习本项目,需要在本人电脑安装加密软件,并在授权后阅读和使用工程以及其他资料。
对于加密软件,需要注意以下几点
1. 本项目提供的资料,只有在安装了加密软件并获得授权后,可以阅读和使用。卸载后则不能观看和使用。
2. 安装了加密软件后,您电脑新增或者修改的office文档、fpga代码等,都会自动加密。如果是您私人的文件,可以申请解密。
3. 学习完后,将要求卸载加密软件,本项目工程和资料不能再看,请尽快学习。
4. 项目的视频,可以永远观看,与加密软件无关。
【问题10.4】光纤项目包含PCIE吗?
答:本项目的工程包括PCIE代码,但注意的是,虽然有PCIE代码,但文档资料以及教学内容都不包含此部分,即不教授PCIE的内容。
如果需要PCIE的学习内容,可以参考MDY的PCIE教程(注意,PCIE教程与光纤项目是完全独立的,内容没有任何相关性)。



十一、就业班项目-精密仪器项目(JESD204B)
【问题11.1】JESD204B专题课有交流群吗?答:购买此课后,均加入MDY的专题课交流群。

【问题11.2】交流群会解答哪方面的内容?
答:购买此课程的同学,需要有一定的FPGA基础,如一定的设计能力、验证能力和调试能力。
       本课程的交流群,将不会详细解答基础问题,例如VERILOG语法;自己修改的代码,如果出错,请自行定位。
       对于协议、架构等,如有问题,MDY都会详细解答。

【问题11.3】本项目的工程和资料可以分享吗?
答:本项目是来自于企业项目,签订了保密协议,只可以培训,不可以外传分享。所以学习本项目,需要在本人电脑安装加密软件,并在授权后阅读和使用工程以及其他资料。
对于加密软件,需要注意以下几点
1. 本项目提供的资料,只有在安装了加密软件并获得授权后,可以阅读和使用。卸载后则不能观看和使用。
2. 安装了加密软件后,您电脑新增或者修改的office文档、fpga代码等,都会自动加密。如果是您私人的文件,可以申请解密。
3. 学习完后,将要求卸载加密软件,本项目工程和资料不能再看,请尽快学习。
4. 项目的视频,可以永远观看,与加密软件无关。

【问题11.4】FPGA的JESD204B参考文档是PG066吗?
答:是的。

【问题11.5】 AD9144的同步信号已经拉高了,这说明已经配置成功了?答:要使用AD9144成功,可以依次检查以下AD9144的几个寄存器。
      地址OX470:该寄存器用于表示LANE有没有检测到K28.5同步字。如果说FPGA管脚配置错误、时钟有问题、LANE速率有问题,则读到的值将不正确。
      地址OX471:检查是否所有的LANE都已经同步。如果地址0X470正确,本寄存器不正确,则可能是速率、时钟有问题。
      地址OX472:检查checksum,即校验和是否正确。如果说FPGA和AD9144的参数不同,或者是传递有错误,则此寄存器值不正确。
     地址OX473: 检查ILAS。如果说此正确,基本上都正确了。


【问题11.6】请问9144用的是mose0,配置完后,CGS可以过,可以读到寄存器470是FF,8个lane都收到了k28.5,但是寄存器023的bit1一直在01之间不停的跳动,代表FIFO的读写一直有错误,查看30c和30d也能看到错误标记,此时发送sysref的话,ILAS也能过,但是470,471,472,473都在不停的跳动,sync标记也是忽高忽低,此时链路不稳定,给tx核送数据,在频谱仪上能看到9144的输出,但是因为链路不稳定,输出会不停的闪烁,理论上讲,链路稳定的话,470.471.472.473都应该回读FF才对,我想请教一下,是什么导致了9144配置完后fifo的读写标记一直报错呢?也就是寄存器023的bit 1

b29400c4317abaa80dc247922381a0d.jpg
答:如果是自己做的硬件板,则有可能是硬件的稳定性问题。请检查硬件电路。




上一篇:时序约束培训视频课程 基于VIVADO
下一篇:MDY培训班产品交流【汇总贴】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号

GMT+8, 2022-1-29 13:04 , Processed in 0.843979 second(s), 17 queries , File On.

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表