|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 powermike628 于 2013-6-11 03:31 编辑
软件用的是quartus ii 11.0,片子用的cyclone 4。首先我通过quartus ii生成了一个tse的IP核,参数如下面几幅图片所示:
然后生成了tse的ip。我用它控制一个百兆的以太网芯片。根据生成的仿真工程,我得到了tse ip的寄存器配置如下:
parameter C_data_scratch = 32'haaaaaaaa;
parameter C_data_command_config = 32'h04088033;
parameter C_data_addr_mac_0 = 32'h22334450;
parameter C_data_addr_mac_1 = 32'h0000ee11;
parameter C_data_frm_length = 32'h000005ee;
parameter C_data_pause_quant = 32'h0000000f;
parameter C_data_rx_section_empty = 32'h00000000;
parameter C_data_rx_section_full = 32'h00000010;
parameter C_data_tx_section_empty = 32'h00000010;
parameter C_data_tx_section_full = 32'h00000010;
parameter C_data_rx_almost_empty = 32'h00000008;
parameter C_data_rx_almost_full = 32'h00000008;
parameter C_data_tx_almost_empty = 32'h00000008;
parameter C_data_tx_almost_full = 32'h0000000a;
parameter C_data_mdio_addr0 = 32'h00000001;
parameter C_data_mdio_addr1 = 32'h00000001;
parameter C_data_tx_ipg_length = 32'h0000000c;
这个和仿真工程中的寄存器配置是一模一样的。
我将00,01,02,03,......,7A,7B,7C,7D,7E,7F这个128个数存在fpga的内部rom里面,利用UDP的方式,不停的向上位机发数据。上位机利用iptool这款软件进行抓包分析,抓得的包如下图所示:
通过分析,抓包抓得的数据是正确的。
通过iptool查看了一下速度,很快。
然后利用signaltap ii工具抓取发送经过local loopback回来的数据如下图所示
这是一帧的图片:
这是帧头局部放大的图片:
这是帧尾局部放大的图片:
通过和发送的数据对比,发送的数据是:8C 89 A5 B8 EE 89 22 33 44 55 66 AA ...... 79 7A 7B 7C 7D 7E 7F
但是local loopback回来的数据变成了: 89 A5 B8 EE 89 22 33 44 55 66 AA ...... 79 7A 7B 7C 7D 7E 7F D0
通过比对,发现两者"......"所代表的的数据是一样的。也就是说经过local loopback回来的数据的第一个字节掉了,第二个字节变成了第一个字节,然后最后一个字节变成了D0。
但是我用modelsim仿真我的工程的时候发送的数据和loopback回来的数据是一模一样的。
卡了几天,原因一直没找到,请做过这个的朋友给些帮助,谢谢。
附件当中是那几幅图片。
图片.rar
(631.72 KB, 下载次数: 91 )
|
|