`timescale 1ns / 1ps
|
`timescale 1ns / 1ps
|
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
// Company:
|
// Company:
|
// Engineer:
|
// Engineer:
|
//
|
//
|
// Create Date: 10:54:17 11/21/05
|
// Create Date: 10:54:17 11/21/05
|
// Design Name:
|
// Design Name:
|
// Module Name: rxDAchecker
|
// Module Name: rxDAchecker
|
// Project Name:
|
// Project Name:
|
// Target Device:
|
// Target Device:
|
// Tool versions:
|
// Tool versions:
|
// Description:
|
// Description:
|
//
|
//
|
// Dependencies:
|
// Dependencies:
|
//
|
//
|
// Revision:
|
// Revision:
|
// Revision 0.01 - File Created
|
// Revision 0.01 - File Created
|
// Additional Comments:
|
// Additional Comments:
|
//
|
//
|
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
module rxDAchecker(local_invalid, broad_valid, multi_valid, MAC_Addr, da_addr);
|
module rxDAchecker(local_invalid, broad_valid, multi_valid, MAC_Addr, da_addr);
|
|
|
output local_invalid;
|
output local_invalid;
|
output broad_valid;
|
output broad_valid;
|
output multi_valid;
|
output multi_valid;
|
|
|
input [47:0] MAC_Addr;
|
input [47:0] MAC_Addr;
|
input [47:0] da_addr;
|
input [47:0] da_addr;
|
|
|
parameter Multicast = 48'h0180C2000001;
|
parameter Multicast = 48'h0180C2000001;
|
parameter Broadcast = 48'hffffffffffff;
|
parameter Broadcast = 48'hffffffffffff;
|
|
|
// check individual MAC address
|
// check individual MAC address
|
wire broad_valid_1;
|
wire broad_valid_1;
|
|
|
assign multi_valid = (da_addr~^Multicast);
|
assign multi_valid = (da_addr~^Multicast);
|
assign broad_valid_1 = (da_addr[7:0] ~^ Broadcast[7:0]);
|
assign broad_valid_1 = (da_addr[7:0] ~^ Broadcast[7:0]);
|
assign broad_valid = broad_valid_1 &(da_addr[47:8] ~^ Broadcast[47:8]);
|
assign broad_valid = broad_valid_1 &(da_addr[47:8] ~^ Broadcast[47:8]);
|
assign local_invalid = da_addr^MAC_Addr;
|
assign local_invalid = da_addr^MAC_Addr;
|
|
|
endmodule
|
endmodule
|
|
|