明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 296992|回复: 3

千兆网问题【汇总】

[复制链接]
发表于 2020-8-1 18:01:11 | 显示全部楼层 |阅读模式

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

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

x
温馨提示:明德扬2023推出了全新课程——逻辑设计基本功修炼课,降低学习FPGA门槛的同时,增加了学习的趣味性,并组织了考试赢积分活动
(点击→了解课程详情)http://www.mdy-edu.com/ffkc/415.html感兴趣请联系易老师:13112063618(微信同步)

【问题1】、百兆网和千兆网的区别是什么?
答:1. IP核是一样的
2. 千兆网使用的是GMII接口,百兆网则是MII接口。gmii数据线是8位;MII接口使用是4位数据线,也就是TXD低4位和RXD低4位。
3. 时钟频率不同,千兆网是125M,百兆网是25M时钟。
4. 百兆网的TX时钟来自于PHY芯片,芯片管脚使用的是tx_clk,而不是gtx_clk。
5. MII接口的4位数据线,是先发1个字节的低4位,再发高4位。

【问题2】老师,咱们千兆网项目中,为啥用sharkwire抓包的时候  最大传输速率到不了千兆呢?           
答:因为包文传输的时候,会有消耗的,例如包与包之间有帧间隙,并且每个包会有前导码和FCS部分。因此达不到理论的千兆。


【问题3请问一下在千兆网工程里,初始化mac IP核时,signaltapii有些reg_cnt刚开始时,add_wdata会出现一小段莫名其妙的数据,是怎么回事 ?
1.jpg
答:请注意这个signaltap采样的时钟一定要跟代码模块的时钟一致。
SignalTap使用教程:http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=769&fromuid=100105

【问题4】在千兆网的rx_filter模块中,读数据的时候为什么用add_cnt=m_empty==0,这个信息FIFO的不空作为读条件?
qq.png
答:信息FIFO非空,表示数据FIFO中存有一个完整的包文,因为需要判断包文是否正确,所以需要数据FIFO中保存一个完整包文之后再读出。由于本模块需要将32位的数据转成16位的,计数器cnt数两次,表示数据FIFO需要两个时钟读出一次,当遇到最后eop的时候,由于可能存在无效字节,所以当无效字节为2个或者3个的时候,计数器只需要数一次就够了。

【问题5】在千兆网的rx_filter模块中,信息FIFO深度为什么设置为32,设置为1就可以了吧?
答:这里设置为32只是顺手而为,而且占用的资源也不是很多,所以就没有进行修改,深度改为1也是可以的。

【问题6】在udp发送的过程中,假设源端口为0x1234,目的端口为0x5678,那么发送的是12345678还是56781234?
答:发送的时候是按照12345678来发送的。

【问题7】为什么udp协议在发送和接收的时候,源端口和目的端口顺序会反?
答:包文的协议时固定的,只会按照源地址加目的地址的格式发送。
1. FPGA发送的时候,FPGA产生包文,端源端口是1234,目的端口是5678。然后发送格式是源+目,因此发送的是1234_5678
2. FPGA接收的时候,PC产生包文,源端口是5678,目的是1234,然后发送的是源+目,因此是5678_1234。

【问题8】请问一下,我编译千兆以太网的时候,为什么把这个clogb2文件添加进去就会报错,说是sv文件?还有这个文件有什么作用?谢谢
答:clogb2不是一个完整的module文件,它是被用include的方法加入代码中的。它不需要加到工程上,所以可以把它去掉。

【问题9】请问下,在做练习工程的时候,需要自己设计MAC首部发送电路,MAC首部14字节,但数据位是4字节的,我需要定义 发送首部的计数器,这里4是不能被14整除的,我应该怎么处理?
答:1、可以在设计代码的时,把产生的mac头、IP头、UDP头拼接起来的时候,在最高位补2字节的无效数据零。
      2、或者在mac_ip核进行相关的设置,具体可以查看相关数据手册
          附:数据手册在打开IP核后如图所示位置查看 2.png

【问题10】千兆网转百兆网的时候,需要给phy芯片一个参考时钟,是怎么给的?
答:开发板上有一个12M的时钟芯片,是给phy芯片的。外部晶振的事,跟FPGA无关

【问题11】我的采样时钟就是模块的工作时钟(always块里的);现在从MAC_IP核输出的数据不正确,根据常见问题PDF里问题1和6的解答,有两种情况,如果时钟没问题那就有可能是IP核的输入信号有问题。我对应的代码和signaltap采集到的数据如图:
1.jpg
请问这种情况下,输入的数据算是正确的吗?
答:结果是正确的。原因同上【问题9】

【问题12】再设置好电脑的IP地址之后,把界面关掉,然后再打开就没有了,需要重新设置,怎么解决?
答:1、点击左下角的WIN图标,输入CMD然后回车,打开DOS模式窗口。
2、在DOS命令行提示符下直接输入:“netsh winsock
3、reset”,然后回车,会提示需要重启,不要管它。
4、在DOS命令行提示符下直接输入:“netsh int ip reset
5、reset.log”,然后回车,提示重新启动计算机完成此操作。
6、关闭DOS窗口,重新启动计算机,问题解决。

【问题13】千兆网我们的和用mdio接口的有什么区别? 我们的教程是没有用到这个接口的
答:MDIO接口是用来配置外部的PHY芯片的,不是用来传输数据的,也就不是做网络协议使用的。  当您需要配置外部的PHY芯片时,可以使用MDIO接口,否则可以不用。


【问题14】请问千兆网工程里,输入给MAC_IP核的ff_rx_rdy信号为什么直接置1?跟速率和带宽有关吗?

IMG_1983.JPG

答:rdy表示下游模块准备好指示信号,如果准备好了就为1,没准备好就为0。  在本案例中,下游模块是rx_mac_analy模块,该模块支持rtl8122_a_mac_ip模块任意速度的数据,即无论怎么来,下游模块都能接收并正确处理,所以在此处置为1(时刻准备好)就可以了

【问题15】请问,一个基础问题,千兆网工程里多个模块都调用了FIFO,在不同模块里调用的fifo的例化名(比如:u_dfifo)能否重复?


答:可以试试操作,在不同模块是可以重复的。

【问题16】这个是因为IP核没有破解吗?
1.jpg.png
答:这个错误就是高版本生成的工程在低版本中打开出现的编译错误,用高版本的quartus打开即可(如18版本的)
【问题17】千兆网课程使用的是哪个PHY芯片?
答:本课程使用的是MP801芯片,使用提RTL8211芯片。但课程中,几乎没有涉及到PHY芯片的内容,PHY芯片使用的是默认配置。对于其他PHY芯片,也是通用的。

【问题18】千兆网课程是ALTERA,是否与XILINX的通用?
答:本课程主要涉及到各个协议的RTL实现,这部分代码是通用的。但有一个MAC IP核,本课程的工程是使用ALTERA的,XILINX的亦有相同的IP,需要您移植。
      总的来说,MAC IP占整个课程的比重不大,大概是5%的内容。
[问题19]您的UDP教程里面包不包含ARP和CRC328bit这两个地方的讲解?
答:有arp的讲解,但crc就不包括。【问题20】千兆网课程的源码中有相应的tb仿真代码嘛?
答:没有,但如果要验证功能正确性可以上板验证和仿真文件








发表于 2020-10-28 08:51:57 | 显示全部楼层
千兆网课程问题答疑汇总,很好的学习资料
FPGA视频课程  培训班 FPGA学习资料
吴老师 18022857217(微信同号) Q1241003385

0

主题

2

帖子

152

积分

注册会员

Rank: 2

积分
152
发表于 2021-4-23 21:37:16 | 显示全部楼层
请问千兆网的IP核是付费的,怎么才能破解呢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-23 01:14 , Processed in 0.069318 second(s), 33 queries .

Powered by Discuz! X3.4

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

© 2001-2019 Comsenz Inc.

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