二层交换机的实现——verilog语言

本文档介绍了如何使用Verilog语言在NetMagic08平台上实现二层交换机,重点阐述了MAC地址表的管理和verilog代码实现。在接收到报文时,交换机会保存来源MAC地址,更新老化时间,并根据目的MAC决定单播或广播。
摘要由CSDN通过智能技术生成


前言

了解以太网交换机和老化机制,在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
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值