关键词:
TCAM
编译器
Java程序设计
GDS
LEF
摘要:
CAM(Content Addressable Memory)即按内容寻址存储器,存值只能是“0”或者“1”,可实现在同一个时钟沿对所有存储数据与待搜索数据进行比较的功能,广泛应用于计算机网络技术的数据链路层、网络层设备中。在CAM技术基础上为了实现模糊匹配查找需求,产生了TCAM(Ternary Content Addressable Memory)即三态内容寻址存储器,TCAM中不仅可存“0”、“1”,还可存值“X”,即无关态。因此TCAM广泛的应用于路由表转发,快速查找ACL等场景中。TCAM技术的发展伴随着两个相互制约的因素:速度和功耗。TCAM的主要设计目标朝着高速低功耗方向发展。为了满足日新月异的存储器芯片市场需求,加快存储器芯片开发、生产周期,产生了使用计算机语言直接操纵电路的电路编译器技术,例如著名的SRAM(Static Random Access Memory)Complier。有鉴于TCAM在网络通信方面广泛的影响力,并且TCAM电路本身结构相对固定,有实现模块化开发的基础,借鉴SRAM快速开发使用的编译器技术是非常必要的。本文首先研究了TCAM的基本原理以及完整TCAM芯片的各个子电路部分原理,并设计了各子电路部分原理图、规则并通过后仿真的电路版图。之后基于Java语言开发了TCAM编译器软件,可以自动生成版图GDS文件、网表文件、LEF文件、Verilog文件、Verilog tb demo文件。在版图拼接过程中,本文直接采用阵列拼接方法,显著减小了GDS文件大小,提升了读取速率;在对MMR(Multiple-Matches Range)单元拼接时,采用了多级布局的方法,均匀分布寄生参数,稳定芯片性能。经过验证,该软件能正确高效的产生所需的电路,并且有鉴于面向对象的Java语言特性,具有良好的可移植性,可以经过少量的修改而应用于不同的TCAM开发场景。