ET创芯网论坛(EETOP)

找回密码

  登录   注册  

搜帖子
汽车电子资料大全(下载奖励300信元)
楼主: topggmq

FPGA与88E1111千兆以太网实现—硬件

[复制链接]
发表于 2015-11-27 16:20:51 | 显示全部楼层
回复 79# topggmq


这组数据应该是我例化的MAC层IP核自动发送和接收的,如果真正建立通信后他们之间应该就不是这样一组数据了吧
回复 支持 反对

使用道具 举报

发表于 2015-11-30 20:36:03 | 显示全部楼层
回复 57# topggmq


    现在配置问题解决了,wireshark也能抓上数,但是CRC32貌似计算的不对,用labview写的接收程序也收不到数,
我的CRC是4bit并行的,
module CRC32_4gen(
input    Initialize,
input  [3:0] Data,
input    crc_en,
output  reg[31:0]Crc,
output     crc_out_en,
input    rst_n,
input    Clk
);
reg Enable;
always @(posedge Clk)
Enable <= crc_en;
assign crc_out_en = (!(Enable & crc_en))&Enable;
wire [31:0] CrcNext;

assign CrcNext[0] = (Enable & crc_en) & (Data[0] ^ Crc[28]);
assign CrcNext[1] = (Enable & crc_en) & (Data[1] ^ Data[0] ^ Crc[28] ^ Crc[29]);
assign CrcNext[2] = (Enable & crc_en) & (Data[2] ^ Data[1] ^ Data[0] ^ Crc[28] ^ Crc[29] ^ Crc[30]);
assign CrcNext[3] = (Enable & crc_en) & (Data[3] ^ Data[2] ^ Data[1] ^ Crc[29] ^ Crc[30] ^ Crc[31]);
assign CrcNext[4] = ((Enable & crc_en) & (Data[3] ^ Data[2] ^ Data[0] ^ Crc[28] ^ Crc[30] ^ Crc[31])) ^ Crc[0];
assign CrcNext[5] = ((Enable & crc_en) & (Data[3] ^ Data[1] ^ Data[0] ^ Crc[28] ^ Crc[29] ^ Crc[31])) ^ Crc[1];
assign CrcNext[6] = ((Enable & crc_en) & (Data[2] ^ Data[1] ^ Crc[29] ^ Crc[30])) ^ Crc[ 2];
assign CrcNext[7] = ((Enable & crc_en) & (Data[3] ^ Data[2] ^ Data[0] ^ Crc[28] ^ Crc[30] ^ Crc[31])) ^ Crc[3];
assign CrcNext[8] = ((Enable & crc_en) & (Data[3] ^ Data[1] ^ Data[0] ^ Crc[28] ^ Crc[29] ^ Crc[31])) ^ Crc[4];
assign CrcNext[9] = ((Enable & crc_en) & (Data[2] ^ Data[1] ^ Crc[29] ^ Crc[30])) ^ Crc[5];
assign CrcNext[10] = ((Enable & crc_en) & (Data[3] ^ Data[2] ^ Data[0] ^ Crc[28] ^ Crc[30] ^ Crc[31])) ^ Crc[6];
assign CrcNext[11] = ((Enable & crc_en) & (Data[3] ^ Data[1] ^ Data[0] ^ Crc[28] ^ Crc[29] ^ Crc[31])) ^ Crc[7];
assign CrcNext[12] = ((Enable & crc_en) & (Data[2] ^ Data[1] ^ Data[0] ^ Crc[28] ^ Crc[29] ^ Crc[30])) ^ Crc[8];
assign CrcNext[13] = ((Enable & crc_en) & (Data[3] ^ Data[2] ^ Data[1] ^ Crc[29] ^ Crc[30] ^ Crc[31])) ^ Crc[9];
assign CrcNext[14] = ((Enable & crc_en) & (Data[3] ^ Data[2] ^ Crc[30] ^ Crc[31])) ^ Crc[10];
assign CrcNext[15] = ((Enable & crc_en) & (Data[3] ^ Crc[31])) ^ Crc[11];
assign CrcNext[16] = ((Enable & crc_en) & (Data[0] ^ Crc[28])) ^ Crc[12];
assign CrcNext[17] = ((Enable & crc_en) & (Data[1] ^ Crc[29])) ^ Crc[13];
assign CrcNext[18] = ((Enable & crc_en) & (Data[2] ^ Crc[30])) ^ Crc[14];
assign CrcNext[19] = ((Enable & crc_en) & (Data[3] ^ Crc[31])) ^ Crc[15];
assign CrcNext[20] = Crc[16];
assign CrcNext[21] = Crc[17];
assign CrcNext[22] = ((Enable & crc_en) & (Data[0] ^ Crc[28])) ^ Crc[18];
assign CrcNext[23] = ((Enable & crc_en) & (Data[1] ^ Data[0] ^ Crc[29] ^ Crc[28])) ^ Crc[19];
assign CrcNext[24] = ((Enable & crc_en) & (Data[2] ^ Data[1] ^ Crc[30] ^ Crc[29])) ^ Crc[20];
assign CrcNext[25] = ((Enable & crc_en) & (Data[3] ^ Data[2] ^ Crc[31] ^ Crc[30])) ^ Crc[21];
assign CrcNext[26] = ((Enable & crc_en) & (Data[3] ^ Data[0] ^ Crc[31] ^ Crc[28])) ^ Crc[22];
assign CrcNext[27] = ((Enable & crc_en) & (Data[1] ^ Crc[29])) ^ Crc[23];
assign CrcNext[28] = ((Enable & crc_en) & (Data[2] ^ Crc[30])) ^ Crc[24];
assign CrcNext[29] = ((Enable & crc_en) & (Data[3] ^ Crc[31])) ^ Crc[25];
assign CrcNext[30] = Crc[26];
assign CrcNext[31] = Crc[27];

always @ (posedge Clk or negedge rst_n)
begin
  if (~rst_n)
    Crc <=  2'hffffffff;
  else
  if(Initialize)
    Crc <=  32'hffffffff;
  else if(Enable & crc_en)
    Crc <=  CrcNext;
else
  Crc <=  32'hffffffff;
end

但是算出的数据和计算机软件算出来的不一样。我也注意了输入模块的数据顺序,但是依然算的不一样。
希望指点一二
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-1 14:59:29 | 显示全部楼层
回复 81# ZCZ353750990


    没用过IP核,一直发这个数据肯定是不对的,查看IP核手册,看看建立过程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-1 15:02:09 | 显示全部楼层
回复 82# huojiwei


    代码还是自己看吧,告诉你咋调试好些吧,别把整个数据拿来 ,先找一组固定的数,一步一步分析,看哪算错了;代码写完一般一次不可能就完全没有问题的
回复 支持 反对

使用道具 举报

发表于 2015-12-9 17:23:34 | 显示全部楼层
回复 1# topggmq
楼主你好,麻烦帮忙解答一下这两个问题,谢谢啦1.看datasheet的时候,有把88e配置成MASTER或SLAVE的类型,不太明白phy的主从有什么区别?
2.跑千兆以太网,是不是配置自适应,且mode里配置成1110(GMII TO SGMII)或1111(GMII/MII to copper)都可以?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-16 10:01:54 | 显示全部楼层
回复 85# YMXWENQING


    一套设备中只能有一个主,主机的权利分配从机干什么事,从机只有等待,大多数做的从机模式;配置自动协商后,还需要配置DIS_FC,要不是不能工作的,但这个试验我没有做过,好好参考手册
回复 支持 反对

使用道具 举报

发表于 2015-12-23 15:15:39 | 显示全部楼层
回复 86# topggmq

楼主你好,初次做这个东西,自己搞了一段时间很困难。希望请教一些相关问题,我的扣扣号是361880345,非常感谢
回复 支持 反对

使用道具 举报

发表于 2015-12-23 22:01:57 | 显示全部楼层
ganxiefenxiang
回复 支持 反对

使用道具 举报

发表于 2016-1-5 19:27:02 | 显示全部楼层
楼主能不能留下个联系方式   交流交流,楼主调试的时候用的是verilog的编程语言,还是用的Nios II?
回复 支持 反对

使用道具 举报

发表于 2016-1-12 14:18:33 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

小黑屋| 关于我们| 联系我们| 在线咨询 |  ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-12-12 07:29 , Processed in 0.066027 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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