查看: 1262|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2023-1-4 10:25
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2022-5-17 08:40:20 | 显示全部楼层 |阅读模式
    分享到:
    明德扬整理了的同学们提出的问题,本帖将所有问题进行一个汇总,大家可以从这里找到您想要学习或疑惑的问题,然后进入对应的汇总贴进行学习。为方便您随时找到答案,敬请您收藏本网址!
    http://www.mdy-edu.com/fpgake/2021/0410/1279.html


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


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

    【问题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头,剩下就是效数据。这样处理就方便很多了。

    【问题4】 只要勾选了32bit对齐功能,IP核自动添加2字节的无效数据?
    答:勾选对齐后,接收方向将删除无效数据,直接输出数据,即SOP位置的高2字节也是有效的,
    一直到EOP位置。发送方向,认为从SOP到EOP的位置都是有效的。
    不勾选的话,接收方向,IP核输出、SOP位置的高2字节是无效数据。
    发送方向,进到IP核的数据里,将SOP位置的高2字节视为无效数据。
    【问题5】如下图所示,当使用了PAD_EN功能时,接收方向,会将PAD去掉,但实际上没有去除是怎么回事?
    答:请看下面描述:第一段,当值小于600,该域反映的是长度,才会继续检查PAYLOAD长度,
    进而才会有REMOVAL。
    当值大于600时,该域反映的是类型而已,则不会REMOVAL。


    【问题6】课程里会包含TCP协议吗?
    答:TCP协议使用逻辑实现非常复杂,所以本课程不会包含此部分内容。

    【问题7】RGMII支持10M/100M/1000M三种模式吗?
    答:RGMII是"吉比特介质独立接口"的含义,即1000M的传输接口。其他几种接口包括GMII、MII等。
    注意一下,10M/100M/1000M三种模式,指的是该“芯片”支持这三种接口,不是说RGMII支持。
    当芯片采用了RGMII或GMII时,就传输1000M;当采用了MII 100M时,就是传输100M。
    注意的是,RGMII和MII的部分管脚是可以复用的。

    【问题8】千兆网配置寄存器的定义代码中,下面两个IP核数据手册中没有说明,是什么作用的?
    答:第一行语句的作用是“等待10000个时钟周期”。目的是当完成前面的配置后,等待10000个时钟后,再去配置下面的寄存器。这是因为有时
    候,配置完上面寄存器后,有可能要等一段时间才起作用,所以要等一等。这个“等待”功能是FPGA里面代码实现的。
    第二句作用是测试使用的,可以删除,在调试时看看接口是否正确。

    【问题9】本项目有没有配置外部的PHY芯片?
    答:本项目是没有配置的,因为默认PHY芯片是不用配置就能正确使用的。



    【问题10】、百兆网和千兆网的区别是什么?
    答: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位。


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


    【问题12请问一下在千兆网工程里,初始化mac IP核时,signaltapii有些reg_cnt刚开始时,add_wdata会出现一小段莫名其妙的数据,是怎么回事 ?

    答:请注意这个signaltap采样的时钟一定要跟代码模块的时钟一致。
    SignalTap使用教程:http://www.mdy-edu.com/jishuwenz/2019/1210/107.html
    【问题13】在千兆网的rx_filter模块中,读数据的时候为什么用add_cnt=m_empty==0,这个信息FIFO的不空作为读条件?

    答:信息FIFO非空,表示数据FIFO中存有一个完整的包文,因为需要判断包文是否正确,所以需要数据FIFO中保存一个完整包文之后再读出。
    由于本模块需要将32位的数据转成16位的,计数器cnt数两次,表示数据FIFO需要两个时钟读出一次,当遇到最后eop的时候,
    由于可能存在无效字节,所以当无效字节为2个或者3个的时候,计数器只需要数一次就够了。



    【问题14】在千兆网的rx_filter模块中,信息FIFO深度为什么设置为32,设置为1就可以了吧?

    答:这里设置为32只是顺手而为,而且占用的资源也不是很多,所以就没有进行修改,深度改为1也是可以的。


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


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


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


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



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


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

    请问这种情况下,输入的数据算是正确的吗?
    答:结果是正确的。原因同上【问题9】

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-24 02:33 , Processed in 0.118227 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.