[X]关闭

关于UDP协议栈的MAC地址

文档创建者:ZK5531
浏览次数:7322
最后更新:2023-04-07
例程代码中,LOCAL_MAC_ADDRESS为MAC地址
udp_ip_protocol_stack udp_ip_protocol_stack
(
        .LOCAL_PORT_NUM     (16'hf000),
        .LOCAL_IP_ADDRESS   (32'hc0a80a01),
        .LOCAL_MAC_ADDRESS  (48'h000a35000102),
        .ICMP_EN                         (1'b1),
        .ARP_REPLY_EN       (1'b1),
        .ARP_REQUEST_EN          (1'b1),
        .ARP_TIMEOUT_VALUE         (30'd20_000_000),
        .ARP_RETRY_NUM                 (4'd2),
但如下代码也是在设置MAC地址,请问他们之间有什么区别?以哪个MAC地址为准?
         CNFG_LO_ADDR : begin
            $display("** Note: Configuring unicast address(low word)....");
            start_access   <= 1;
            writenread     <= 1;
            addr           <= CONFIG_UNI0_CTRL_ADD;
            axi_wr_data    <= 32'h040302DA;
            axi_state      <= CNFG_HI_ADDR;
         end
         CNFG_HI_ADDR : begin
            $display("** Note: Configuring unicast address(high word)....");
            start_access   <= 1;
            writenread     <= 1;
            addr           <= CONFIG_UNI1_CTRL_ADD;
            axi_wr_data    <= 32'h0605;
            axi_state      <= CNFG_FILTER;
         end

发表评论已发布 3

ZK5531

发表于 2020-6-21 16:45:39 | 显示全部楼层

用vivado的虚拟逻辑分析仪抓取发现实际使用的是UDP协议栈上设置的MAC地址c0a80a01,而不是MAC控制器的AXI_Lite接口中设置的0605040302DA,为什么呢?协议栈中怎样实现的?如果把协议栈上的MAC地址设置注释掉,是否MAC控制器中AXI_Lite中的MAC地址设置会成功?

uisrc

发表于 2020-6-22 09:13:46 | 显示全部楼层


IP核配置的mac地址是用于接收数据包mac地址过滤的。例子里的mac地址过滤功能没有使用,所以这个配置实际没
mac地址是由协议栈决定的

越努力越幸运!加油!

ZK5531

发表于 2020-6-22 18:32:58 | 显示全部楼层

这么说的话,IP核配置的MAC地址,要与协议栈设置的MAC地址一致,当设置了MAC地址过滤功能之后,MAC IP核就可以过滤除了本机MAC地址外的所有地址,也就是其他地址会被MAC IP核内部丢弃掉,而不会在AXI_Stream接口输出,这个理解对吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则