一种基于FPGA的MAC地址管理的系统的制作方法

文档序号:32345307发布日期:2022-11-26 11:09阅读:来源:国知局

技术特征:
1.一种基于fpga的mac地址管理的系统,其特征在于,该系统包括fpga、上位机和外部设备,fpga包括一个状态机、一个32位系统时间计数器time_counter和4个深度64位宽120位的双口ram,状态机连接双口ram,fpga对外提供三个接口,分别为:配置接口、查询mac地址的查询接口和更新mac地址的更新接口,上位机通过配置接口连接双口ram,外部设备通过查询接口和更新接口连接状态机;配置接口,允许上位机通过配置接口直接读写双口ram,对双口ram中的mac地址进行增、删、改、查;查询接口,用于外部设备输入已知ip查询到双口ram中与已知ip相对应的mac地址,将mac地址输出;更新接口,用于外部设备输入已知ip和mac地址,查询到双口ram中与已知ip相对应的mac地址,将双口ram中mac地址字段改为输入的mac地址;系统时间计数器time_counter,是一个32位的计数器,从上电开始每次相隔1毫秒累加1;time_counter用于同双口ram中的time_counter字段相比较,监督双口ram中mac地址从添加或者更新后距离上一次查询相隔多长时间,如果时间超过阈值,将触发老化机制,双口ram中mac地址将判为无效mac地址;双口ram为由4个64深度120位宽的双口ram组成的256深度的120位宽的ram;ram中存取的120位数据的结构为:8位宽的flag+48位的mac地址+32位ip+32位时间计数器time_counter,其中flag等于0时表示mac地址无效,flag非0时表示mac地址有效;状态机用于控制该系统的状态转换,该系统有5个状态,分别为:空闲状态idle、由配置接口进入的工作状态config、由更新接口进入的工作状态updata、由查询接口进入的工作状态look_up_table和工作状态结束done。2.如权利要求1所述的基于fpga的mac地址管理的系统,其特征在于,当上位机通过配置接口对双口ram中的mac地址增加或者改动的时候,将mac地址对应的time_counter字段更新为当前计数器time_counter的值然后写入双口ram中;上位机可读写的mac地址数量为256个。3.如权利要求1所述的基于fpga的mac地址管理的系统,其特征在于,当外部设备通过查询接口查找到mac地址时,将mac地址对应的time_counter字段更新为当前计数器time_counter的值。4.如权利要求1所述的基于fpga的mac地址管理的系统,其特征在于,当外部设备通过更新接口修改该mac地址时,将mac地址对应的time_counter字段更新为当前计数器time_counter的值。5.如权利要求1所述的基于fpga的mac地址管理的系统,其特征在于,配置接口进来的是8位宽的地址,将8位宽的地址的高2位作为4个双口ram的片选地址,低6位作为双口ram的读写地址。6.如权利要求1-5任一项所述的基于fpga的mac地址管理的系统,其特征在于,idle状态下,当配置接口、查询接口和更新接口有数据进入时,状态机跳转到相应处理状态,跳转优先级依次是配置接口、查询接口、更新接口;三个接口都没有数据进入时,idle状态下有一个6位宽的地址idle_addr从0至63不断累加,通过地址idle_addr同时读出四块ram中的数据,判断flag字段非0时,time_counter字段减去系统时间计数器time_counter的值是否
大于老化时间old_time,如果大于老化时间,则触发老化条件,将该地址中的flag字段改为0,使其对应的mac地址无效。7.如权利要求1-5任一项所述的基于fpga的mac地址管理的系统,其特征在于,config状态下,上位机通过双口ram的地址直接对双口ram中数据进行读写操作实现增、删、改、查;在增加或改动mac地址时需要将time_counter字段更新为当前计数器time_counter的值,双口ram读写操作完成跳转至done状态。8.如权利要求1-5任一项所述的基于fpga的mac地址管理的系统,其特征在于,look_up_table状态下,有一个6位宽的地址work_addr从0至63不断累加,通过地址work_addr同时读出四块ram中的数据,当flag字段非0并且ip字段与输入的ip相等,表示已经查询到想要的mac地址,此时将mac地址输出,并且将对应的time_counter字段更新为当前计数器time_counter的值,状态跳转至done;如果work_addr累加一轮后仍未查询到与输入ip对应的mac地址,则mac地址查询失败,将work_addr从63修改为0,状态跳转至done。9.如权利要求8所述的基于fpga的mac地址管理的系统,其特征在于,updata状态下,有一个6位宽的地址work_addr从0至63不断累加,通过地址work_addr同时读出四块双口ram中的数据,当flag字段非0并且ip字段与输入的ip相等,表示已经查询到想要更新的mac地址字段,此时将mac地址字段改为输入的mac值,并且将对应的time_counter字段更新为当前计数器time_counter的值,状态跳转至done;如果work_addr累加一轮后仍未查询到与输入ip对应的mac地址,则将work_addr从63修改为0,work_addr进行第二轮累加;当查询到flag字段等于0的地址时,将对应的ip字段和mac地址字段改为输入的ip和mac值,并且将对应的time_counter字段更新为当前计数器time_counter的值,状态跳转至done;如果work_addr累加完成第二轮后未查询到flag字段等于0的地址,则更新失败,将work_addr从63修改为0,状态跳转至done。10.如权利要求9所述的基于fpga的mac地址管理的系统,其特征在于,done状态下,将work_addr清0,跳转至idle状态。

技术总结
本发明涉及一种基于FPGA的MAC地址管理的系统,属于网络通信领域。本发明采用4个64深度120位宽的双口ram组成一个256深度的120位宽的ram提高了查询速度,对一个256深mac地址表,单次查询完成最多使用时间为64个时钟周期;多次长时间查询平均时间为32个时钟周期;本发明通过一个系统时间计数器TIME_COUNTER和每次mac地址增、该、查的当前时间记录,实现了mac地址的老化机制,减少了上位机CPU的额外开销。并且实现简单,并且是在IDLE空闲状态小完成老化机制的实现,使系统空闲时间得以利用。本发明实现了基于FPAG的MAC地址增、删、改、查的管理方法。方法。方法。


技术研发人员:马雪振 陈俊来 孙光来 于洪涛
受保护的技术使用者:北京左江科技股份有限公司
技术研发日:2022.09.19
技术公布日:2022/11/25
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1