一种基于FPGA的CAM结构的制作方法

文档序号:12405442阅读:833来源:国知局

本实用新型涉及数据通信技术领域,具体地说是一种基于FPGA的CAM结构。



背景技术:

随着通信技术的快速发展,网络中数据包的传输速度越来越高,例如在交换机领域中,如果采用传统的软件方式进行路由或者MAC表查询,速度比较慢,无法保证数据的及时传输。

CAM芯片具有并行查找的优势,查询的时间与CAM内包含的数据多少无关,使得CAM在网络中得到广泛的应用。但是在一些中小的项目中,尤其是在FPGA的项目中,如果采用外置的CAM芯片,首先CAM芯片的利用率不会很高,其次增加了成本。



技术实现要素:

本实用新型的技术任务是解决现有技术的不足,提供一种基于FPGA的CAM结构。

本实用新型解决其技术问题所采用的技术方案是:

一种基于FPGA的CAM结构,包括

一个用于存储比较数据信息的寄存器模块组,所述寄存器模块组包括至少两个寄存器模块;

一个用于判断寄存器模块组中是否有待比较数据的比较器模块组,比较器模块组具有输入端口,比较器模块组至少两个比较器模块,比较器模块组中的比较器模块与寄存器模块组的寄存器模块一一对应并相连,待比较数据由比较器模块组的输入端口进行输入;

还包括

一个将比较数据写入寄存器模块组的写入模块;

一个用于选择寄存器模块组查找范围的选择模块,选择模块连接于比较器模块组,通过配置选择模块的输入并行比较寄存器模块组中的寄存器模块,比较器模块组中的比较器模块输出与待比较数据相匹配的寄存器模块信息;

两个MUX模块,写入模块通过其中一个MUX 模块将比较数据的信息写入寄存器模块中进行存储,比较器模块组中的比较器模块通过另一个MUX 模块输出与待比较数据相匹配的寄存器模块在寄存器模块组的地址信号。

具体的,写入模块包括写使能、写地址端口和写数据端口。

具体的,寄存器模块组中包含偶数个寄存器模块,比较器模块组中也相应的包含偶数个比较器模块,通过配置选择模块的输入,将与比较器模块一一相连的寄存器模块均分成至少两部分,以并行比较同一部分的寄存器模块。

优选,寄存器模块组包括四个寄存器模块,相应的,比较器模块组包括四个比较器模块,通过配置选择模块的输入将与比较器模块一一相连的寄存器模块均分成两部分,每部分包括两个寄存器模块,以并行比较同一部分的两个寄存器模块。

本实用新型的一种基于FPGA的CAM结构与现有技术相比所产生的有益效果是:

本实用新型设计合理,结构简单,可以并行比较输入数据与寄存器组所有数据,而与寄存器组的大小无关,提高了查找效率。

附图说明

附图1是本实用新型的结构原理图。

图中各标号表示:

10、寄存器模块组,20、比较器模块组,30、写入模块,40、选择模块,

50、第一MUX模块,60、第二MUX模块。

具体实施方式

下面结合附图1,以一个4x4的CAM结构图为例,对本实用新型的一种基于FPGA的CAM结构作以下详细说明。

如附图1所示,本实用新型的一种基于FPGA的CAM结构,其结构包括

一个用于存储比较数据信息的寄存器模块组10,所述寄存器模块组10包括至少两个寄存器模块;

一个用于判断寄存器模块组10中是否有待比较数据的比较器模块组20,比较器模块组20具有输入端口,比较器模块组20至少两个比较器模块,比较器模块组20中的比较器模块与寄存器模块组10的寄存器模块一一对应并相连,待比较数据由比较器模块组20的输入端口进行输入。

所述CAM结构还包括

一个将比较数据写入寄存器模块组10的写入模块30;

一个用于选择寄存器模块组10查找范围的选择模块40,所述选择模块40连接于比较器模块组20,通过配置选择模块40的输入并行比较寄存器模块组10中的寄存器模块,比较器模块组20中的比较器模块输出与待比较数据相匹配的寄存器模块信息;

第一MUX模块50和第二MUX模块60,写入模块30通过第一MUX模块50将比较数据的信息写入寄存器模块中进行存储,比较器模块组20中的比较器模块通过第二MUX 模块输出与待比较数据相匹配的寄存器模块在寄存器模块组10的地址信号。

写入模块30包括写使能、写地址端口和写数据端口。

寄存器模块组10包括四个寄存器模块,分别称为寄存器模块1、寄存器模块2、寄存器模块3、寄存器模块4;相应的,比较器模块组20包括四个比较器模块,分别比较器模块1、比较器模块2、比较器模块3、比较器模块4,通过配置选择模块40的输入,将寄存器模块组10中的四个寄存器模块均分成两部分,即寄存器模块1和寄存器模块2为一部分,寄存器模块3和寄存器模块4为一部分,以并行比较寄存器模块1和寄存器模块2,或者寄存器模块3和寄存器模块4。

本实用新型工作过程:

1)向CAM中写比较数据。首先通过写入模块30的写地址端口和写数据端口输入wr_addr及wr_data,同时,第一MUX模块50根据wr_addr向指定的寄存器模块写入wr_data。此过程为CAM内容写入。

2)指定并行比较的寄存器模块数目。当选择模块40中sel信号为1时,使能比较器模块1和比较器模块2,而比较器模块3和比较器模块4不工作,此时待比较数据在寄存器模块1和寄存器模块2中并行查找。反之,当sel信号为0时,待比较数据在寄存器模块3和寄存器模块4中并行查找。在寄存器模块数目多时,选择查找范围可以降低结构功耗。

3)输出match信号。当比较器模块中任意一个的输出结果为1时,match信号就为1,表示在CAM结构中找到一个匹配的数据。

4)输出match_addr信号。第二MUX模块60根据每个比较器模块的输出可以判定是哪一个寄存器模块的数值与待比较数据相等,从而得到输出地址。

最后需要说明的是,以上内容仅用以说明本实用新型的技术方案,而非对本实用新型保护范围的限制,尽管该具体实施方式部分对本实用新型作了详细地说明,本领域的普通技术人员应当理解,可以对本实用新型的技术方案进行修改或者等同替换,而不脱离本实用新型技术方案的实质和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1