前言
了解以太网交换机和老化机制,在Netmagic08 平台上用verilog语言实现
一、MAC地址表
在NetMagic0平台上实现交换机的功能,可以将其四个端口的MAC地址表表示如下:
因此我们定义4个reg记录地址表的内容。
MAC地址表操作步骤:
1、当某个接口(假设为port1)有报文信息(报文头)来时,首先将报文信息中的来源MAC地址(假设为PC1)保存进MAC地址表,并将老化时间更新为300s。
2、当整个报文接收完成(报文尾)后,查询MAC地址表,是否有报文的目的MAC地址的接口
3、如果有,则向这个接口单播
4、如果没有,则向除了来源接口的其他所有接口广播
二、verilog语言实现
1.定义
代码如下:
reg [56:0] MAC_Table1;//MAC地址表
reg [56:0] MAC_Table2;
reg [56:0] MAC_Table3;
reg [56:0] MAC_Table4;
reg [26:0] counter;//计数器
reg [47:0] des_MAC;//目的地址
reg [3:0] input_port_reg; //输入端口号
2.always@(posedge clk or negedge reset)
代码如下:
if(!reset)
begin
um2cdp_rule <= 30'b0; //写规则
um2cdp_rule_wrreq <= 1'b0;//写规则使能
des_MAC <= 48'b0;
counter <= 27'b0;
MAC_Table1[56:0] <= 57'b0;
MAC_Table2[56:0] <= 57'b0;
MAC_Table3[56:0] <= 57'b0;
MAC_Table4[56:0