关于UDP协议栈的MAC地址
例程代码中,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 用vivado的虚拟逻辑分析仪抓取发现实际使用的是UDP协议栈上设置的MAC地址c0a80a01,而不是MAC控制器的AXI_Lite接口中设置的0605040302DA,为什么呢?协议栈中怎样实现的?如果把协议栈上的MAC地址设置注释掉,是否MAC控制器中AXI_Lite中的MAC地址设置会成功?
IP核配置的mac地址是用于接收数据包mac地址过滤的。例子里的mac地址过滤功能没有使用,所以这个配置实际没
mac地址是由协议栈决定的
这么说的话,IP核配置的MAC地址,要与协议栈设置的MAC地址一致,当设置了MAC地址过滤功能之后,MAC IP核就可以过滤除了本机MAC地址外的所有地址,也就是其他地址会被MAC IP核内部丢弃掉,而不会在AXI_Stream接口输出,这个理解对吗?
页:
[1]