在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 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 | 显示全部楼层
感谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-29 20:01 , Processed in 0.028717 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表