專利名稱:一種采用fpga內(nèi)嵌sram仿真tcam的電路設(shè)計(jì)裝置的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種使用可編程大型門陣列芯片F(xiàn)PGA(Fieldprogrammable gate array,以下簡(jiǎn)稱FPGA)驗(yàn)證芯片的過程中,尤其涉及使用FPGA本身內(nèi)嵌的SRAM實(shí)現(xiàn)三重 內(nèi)容可編址存儲(chǔ)器(Ternary ContentAddressable Memory,以下簡(jiǎn)稱TCAM)的功能,來驗(yàn)證 芯片與外掛TCAM之間的通訊及應(yīng)用的裝置。
背景技術(shù):
現(xiàn)有技術(shù)在使用FPGA驗(yàn)證高端通信芯片時(shí),會(huì)在驗(yàn)證PCB板上嵌入所能支持的 TCAM型號(hào),如圖1所示。通過綜合ASIC的TCAM接口模塊在不同的FPGA實(shí)現(xiàn)驗(yàn)證ASIC與 不同型號(hào)TCAM之間的連接及應(yīng)用的驗(yàn)證。這樣,就帶來了以下幾個(gè)問題1)對(duì)于每驗(yàn)證一個(gè)TCAM接口就需要重新對(duì)FPGA進(jìn)行綜合布線一次。降低了驗(yàn)證效率。2)對(duì)于ASIC支持的TCAM型號(hào)越多,所需要驗(yàn)證的外掛TCAM就越多。成本也就越大。3)當(dāng)ASIC所支持的TCAM是廠商即將推出的新型號(hào),或者剛剛發(fā)布的新型號(hào),而驗(yàn) 證ASIC的時(shí)候還無法得到TCAM的正在芯片。而只有該型號(hào)的TCAM文檔。那么這一型號(hào) 的TCAM將無法在FPGA的仿真測(cè)試中得到更充分的驗(yàn)證。因此,現(xiàn)有的技術(shù)還存在缺陷,而有待于改進(jìn)和發(fā)展。
實(shí)用新型內(nèi)容本實(shí)用新型的目的在于提供一種基于FPGA實(shí)現(xiàn)TCAM功能,用于ASIC的FPGA驗(yàn) 證,使通過仿真TCAM的方式,在一塊FPGA中利用內(nèi)嵌的SRAM,完成TCAM的查找行為的裝置。為實(shí)現(xiàn)上述發(fā)明目的,本實(shí)用新型提出了一種采用FPGA內(nèi)嵌SRAM仿真TCAM的電 路設(shè)計(jì)裝置,其特征在于,該裝置包括TCAM接口模塊其包括有復(fù)數(shù)TCAM接口轉(zhuǎn)換模塊(TCAM0接口、TCAMl接口… TCAMN接口),多路選擇器輸入模塊(MUXin)及多路選擇器輸出模塊(MUXout);TCAM配置模塊包括查找輸入操作單元及查找輸出單元;復(fù)數(shù)SRAM查找塊(BlockO、BlockL··· BlockN)每一該SRAM查找塊包括有選擇器 模塊(MUX),復(fù)數(shù)譯碼器模塊(decode)以及復(fù)數(shù)SRAM子模塊。其中,所述TCAM接口模塊接收ASIC輸出的TCAM指令,由所述各TCAM接口轉(zhuǎn)換模 塊根據(jù)其相應(yīng)的指令協(xié)議將TCAM指令轉(zhuǎn)換成需要查找的關(guān)鍵字(key)或者配置信號(hào),并由 所述多路選擇器輸入模塊根據(jù)所選擇的TCAM型號(hào)選擇出一組關(guān)鍵字或者配置信號(hào)送入所 述TCAM配置模塊。所述TCAM接口模塊還將從所述TCAM配置模塊反饋回來的地址(index)及匹配 (hit)信息轉(zhuǎn)換成各個(gè)型號(hào)的TCAM的標(biāo)準(zhǔn)輸出,在所述多路選擇器輸出模塊(MUXout)中選擇一組送回給ASIC。所述TCAM配置模塊用于將從所述TCAM接口模塊傳出的信息送入所述各SRAM查 找塊中進(jìn)行查找;并將查找結(jié)果地址(index)以及匹配(hit)信息送出給TCAM接口模塊。所述復(fù)數(shù)SRAM查找塊在SRAM子模塊查找與關(guān)鍵字相匹配的數(shù)據(jù)(Data)及掩膜 (Mask)信息的寄存器,并通過所述多路選擇器選擇不同的譯碼器模塊送回地址(index)以 及匹配(hit)信息至TCAM配置模塊。所述SRAM查找塊的每個(gè)SRAM子模塊中有兩個(gè)時(shí)鐘,一個(gè)為ASIC的低頻仿真時(shí) 鐘,也為TCAM的指令輸入輸出同步時(shí)鐘;另一個(gè)為SRAM中較高頻率的時(shí)鐘,較高頻率的時(shí) 鐘在一個(gè)仿真時(shí)鐘周期內(nèi)能將SRAM的地址范圍內(nèi)全部讀一遍,將讀出來的值與送進(jìn)來的 關(guān)鍵字進(jìn)行比較,并將比較結(jié)果存儲(chǔ)于SRAM子模塊的寄存器中。同時(shí),本實(shí)用新型還提出了 一種與上述裝置配套的,采用FPGA內(nèi)嵌SRAM仿真TCAM 的電路 設(shè)計(jì)方法,其包括如下步驟1)選擇需要使用的TCAM型號(hào),并將ASIC輸出的TCAM指令送入TCAM接口模塊;2) TCAM接口模塊中的各TCAM接口轉(zhuǎn)換模塊(TCAM0接口、TCAMl接口…TCAMN接 口)根據(jù)其相應(yīng)的指令協(xié)議將TCAM指令轉(zhuǎn)換成需要查找的關(guān)鍵字(key)或者配置信號(hào),并 由一組多路選擇器輸入模塊(MUXin)根據(jù)所選擇的TCAM型號(hào)選擇出一組關(guān)鍵字或者配置 信號(hào)送入TCAM配置模塊;3) TCAM配置模塊再將這組關(guān)鍵字及相應(yīng)的信息送入各個(gè)SRAM查找塊(BlockO、 Blockl…BlockN)的SRAM子模塊中進(jìn)行查找;4)每一 SRAM子模塊中較高頻率的時(shí)鐘在一個(gè)仿真時(shí)鐘內(nèi)將SRAM的地址范圍內(nèi)全 部讀一遍,將讀出來的值與送進(jìn)來的關(guān)鍵字進(jìn)行比較,并將比較結(jié)果存儲(chǔ)于SRAM子模塊的 寄存器中;5)如果SRAM子模塊中某一地址讀出的數(shù)據(jù)(Data)及掩膜(Mask)信息進(jìn)行計(jì)算 后與關(guān)鍵字相匹配,那么相應(yīng)的比特位將被置成“ 1”,且這組寄存器的值會(huì)從SRAM子模塊 中輸出給譯碼器模塊(Decode);6)譯碼器模塊根據(jù)這個(gè)值,判斷是否有某個(gè)地址與關(guān)鍵字匹配到,如有匹配送出 Hit信息,并將這組寄存器中對(duì)應(yīng)有“1”的位置進(jìn)行解析出來變成地址的值;7)各個(gè)SRAM查找塊產(chǎn)生的地址(index)以及匹配(hit)信息傳回TCAM配置模塊 及TCAM接口模塊,在TCAM接口模塊里,各個(gè)TCAM接口轉(zhuǎn)換模塊會(huì)將送過來的地址(index) 以及匹配(hit)信息轉(zhuǎn)換成各個(gè)型號(hào)的TCAM的標(biāo)準(zhǔn)輸出,在多路選擇器輸出模塊(MUXout) 中選擇一組送回給ASIC。其中,所述步驟3)中的SRAM查找塊的數(shù)量可根據(jù)FPGA的資源以及所需要驗(yàn)證的 TCAM的RAM的大小進(jìn)行確定;在關(guān)鍵字送入SRAM查找塊中后,SRAM查找塊根據(jù)關(guān)鍵字的大 小,重新組合關(guān)鍵字,并送入各SRAM子模塊中進(jìn)行查找。所述SRAM查找塊的每個(gè)SRAM子模塊中有兩個(gè)時(shí)鐘,一個(gè)為ASIC的低頻仿真時(shí) 鐘,也為TCAM的指令輸入同步時(shí)鐘;另一個(gè)為SRAM中較高頻率的時(shí)鐘。所述步驟6)中如果寄存器中有多個(gè)地址被匹配到,即該寄存器中存在多個(gè)“1” 時(shí),則以最低地址位作為匹配。多路選擇器模塊(MUX)根據(jù)進(jìn)行查找關(guān)鍵字的大小選擇不同的譯碼器模塊輸出。[0029]所述步驟7)中TCAM配置模塊根據(jù)關(guān)鍵字的查找屬性選擇相應(yīng)的SRAM查找塊送回的地址(index)以及匹配(hit)信息,并將該地址(index)以及匹配(hit)信息送出給 TCAM接口模塊。[0030]對(duì)于大型的網(wǎng)絡(luò)ASIC芯片使用FPGA驗(yàn)證時(shí),往往需要同時(shí)用到幾塊FPGA,并采用 降低頻率的方式來對(duì)ASIC的功能及接口進(jìn)行驗(yàn)證。而本實(shí)用新型通過仿真TCAM(eTCAM)的 方式,在一塊FPGA中利用內(nèi)嵌的SRAM,完成TCAM的查找行為,不僅簡(jiǎn)化了 ASIC的FPGA驗(yàn) 證,節(jié)約了成本,并使得在無法得到TCAM芯片時(shí),對(duì)ASIC驗(yàn)證TCAM的接口提供了可行性。
圖1為現(xiàn)有的帶TCAM的FPGA驗(yàn)證的原理模塊圖;圖2為本實(shí)用新型替代TCAM的FPGA驗(yàn)證的原理模塊圖;圖3為本實(shí)用新型采用FPGA內(nèi)嵌SRAM仿真TCAM的電路設(shè)計(jì)模塊圖。
具體實(shí)施方式
本實(shí)用新型所揭示的采用FPGA內(nèi)嵌SRAM仿真TCAM的電路設(shè)計(jì),是一種基于FPGA 實(shí)現(xiàn)TCAM功能,用于ASIC的FPGA驗(yàn)證檢測(cè)。如圖2所示,本實(shí)用新型采用eTCAM (emulation TCAM,即仿真TCAM)的方式,在一塊FPGA中利用內(nèi)嵌的SRAM,完成TCAM的查找行為。如圖3所示為本實(shí)用新型采用FPGA內(nèi)嵌SRAM仿真TCAM電路的結(jié)構(gòu)模塊圖,其包 括有TCAM接口模塊,TCAM配置模塊以及SRAM查找塊模塊BlockO、Blockl".BlockNt5其中, TCAM接口模塊中包括例化了各種TCAM的接口轉(zhuǎn)換模塊TCAMO接口、TCAMl接口…TCAMN接 口,多路選擇器輸入模塊MUXin及多路選擇器輸出模塊MAXout ;TCAM配置模塊包括查找輸 入操作單元及查找輸出單元。復(fù)數(shù)SRAM查找塊BlockiKBlockPHBlockN,其分別包括有多路選擇器模塊MUX,復(fù) 數(shù)譯碼器模塊decode以及SRAM子模塊。其中每一 SRAM子模塊中還有一組寄存器及兩個(gè) 時(shí)鐘,這兩個(gè)時(shí)鐘分別為ASIC的低頻仿真時(shí)鐘(也為TCAM的指令輸入輸出同步時(shí)鐘)及 SRAM中較高頻率的時(shí)鐘。對(duì)于上述仿真TCAM的電路設(shè)計(jì),本實(shí)用新型通過如下步驟實(shí)現(xiàn)TCAM的查找行 為第一,當(dāng)選擇好所需要使用的TCAM型號(hào)后,將ASIC輸出的TCAM指令送入TCAM接 口模塊;第二,TCAM接口模塊中的各TCAM接口轉(zhuǎn)換模塊TCAMO接口、TCAMl接口…TCAMN 接口根據(jù)其相應(yīng)的指令協(xié)議(這些指令協(xié)議可以在相應(yīng)的TCAM文檔中得到)將TCAM指令 轉(zhuǎn)換成需要查找的關(guān)鍵字key或者配置信號(hào),并由一組多路選擇器輸入模塊MUXin根據(jù)所 選擇的TCAM型號(hào)選擇出一組關(guān)鍵字key或者配置信號(hào)送入TCAM配置模塊。第三,TCAM配置模塊再將這組關(guān)鍵字key及相應(yīng)的信息送入各個(gè)查找的SRAM查 找塊BlockO、Blockl…BlockN中,SRAM查找塊的數(shù)量可以根據(jù)FPGA的資源以及所需要驗(yàn) 證的TCAM的RAM的大小進(jìn)行確定。第四,在關(guān)鍵字key送入SRAM查找塊BlockO、Blockl···BlockN中后,SRAM查找塊 根據(jù)關(guān)鍵字key的大小,重新組合關(guān)鍵字key,并送入各塊SRAM子模塊中進(jìn)行查找。如,當(dāng)key的大小為80比特時(shí),則每個(gè)SRAM的子模塊將作為一個(gè)獨(dú)立的查找單元,接受80比特的 key進(jìn)行查找,如果key為160比特時(shí),則每相鄰兩個(gè)SRAM子模塊作為一組查找單元,分別 接受高80比特及低80比特進(jìn)行查找。同理當(dāng)key為320比特或640比特時(shí)的,需要將4 個(gè)或8個(gè)SRAM子模塊組成一個(gè)查找單元,因此,可以根據(jù)所需進(jìn)行仿真的最大key的大小 合理選擇SRAM子模塊的數(shù)目。第五,每個(gè)SRAM子模塊中有兩個(gè)時(shí)鐘,一個(gè)為ASIC的低頻仿真時(shí)鐘,也為TCAM的 指令輸入輸出同步時(shí)鐘;另一個(gè)為SRAM中較高頻率的時(shí)鐘,它能在一個(gè)仿真時(shí)鐘內(nèi)將SRAM 的地址范圍內(nèi)全部讀一遍,并將讀出來的值與送進(jìn)來的key進(jìn)行比較,在SRAM子模塊中還 有一組寄存器,這組寄存器就是用來存儲(chǔ)比較結(jié)果的,其數(shù)據(jù)位寬為SRAM的深度。第六,如果某一地址讀出的Data及Mask進(jìn)行計(jì)算后與關(guān)鍵字key匹配的話,那 么相應(yīng)的比特位將被置成“1”,且這組寄存器的值會(huì)從SRAM子模塊中輸出給譯碼器模塊 Decode0第七,譯碼器模塊Decode根據(jù)這個(gè)值,判斷是否有某個(gè)地址與key匹配到,如有匹 配送出Hit信號(hào),并將這個(gè)寄存器中對(duì)應(yīng)有“1”的位置進(jìn)行解析出來變成地址的值,如果這 個(gè)寄存器中有多個(gè)地址被匹配到,也就是說,該寄存器中存在多個(gè)“1”時(shí),則以最低地址位 作為匹配,這也符合大部分型號(hào)的TCAM查找規(guī)則。多路選擇器模塊MUX根據(jù)進(jìn)行查找的 key的大小選擇不同的Decode組輸出。第八,各個(gè)SRAM查找塊產(chǎn)生的地址信息index以及匹配信息hit傳回TCAM配置 模塊后,在TCAM配置模塊里根據(jù)key的查找屬性選擇相應(yīng)的SRAM查找塊送回的地址信息 index以及匹配信息hit,并將該地址信息index以及匹配信息hit送出給TCAM接口模塊, 在TCAM接口模塊里,各個(gè)接口轉(zhuǎn)換模塊TCAMO接口、TCAMl接口…TCAMN接口會(huì)將送過來 的index及hit信號(hào)轉(zhuǎn)換成各個(gè)型號(hào)TCAM的標(biāo)準(zhǔn)輸出,在多路選擇器輸出模塊MUXout中 選擇一組送回給ASIC。本實(shí)用新型的技術(shù)內(nèi)容及技術(shù)特征已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可 能基于本實(shí)用新型的教示及揭示而作種種不背離本實(shí)用新型精神的替換及修飾,因此,本 實(shí)用新型保護(hù)范圍應(yīng)不限于實(shí)施例所揭示的內(nèi)容,而應(yīng)包括各種不背離本實(shí)用新型的替換 及修飾,并為本專利申請(qǐng)權(quán)利要求所涵蓋。
權(quán)利要求一種采用FPGA內(nèi)嵌SRAM仿真TCAM的電路設(shè)計(jì)裝置,其特征在于包括TCAM接口模塊其包括有復(fù)數(shù)TCAM接口轉(zhuǎn)換模塊,多路選擇器輸入模塊及多路選擇器輸出模塊;TCAM配置模塊包括查找輸入操作單元及查找輸出單元;復(fù)數(shù)SRAM查找塊每一該SRAM查找塊包括有選擇器模塊,復(fù)數(shù)譯碼器模塊以及復(fù)數(shù)SRAM子模塊。
2.如權(quán)利要求1所述的采用FPGA內(nèi)嵌SRAM仿真TCAM的電路設(shè)計(jì)裝置,其特征在于 所述SRAM查找塊的每個(gè)SRAM子模塊中有兩個(gè)時(shí)鐘,一個(gè)為ASIC的低頻仿真時(shí)鐘,也為 TCAM的指令輸入輸出同步時(shí)鐘;另一個(gè)為SRAM中較高頻率的時(shí)鐘,用于SRAM讀數(shù)據(jù)時(shí)鐘。
專利摘要本實(shí)用新型涉及采用FPGA內(nèi)嵌SRAM仿真TCAM的電路設(shè)計(jì)裝置,其包括TCAM接口模塊、TCAM配置模塊和復(fù)數(shù)SRAM查找塊,TCAM接口模塊包括復(fù)數(shù)TCAM接口轉(zhuǎn)換模塊、多路選擇器輸入模塊及多路選擇器輸出模塊,TCAM配置模塊包括查找輸入操作單元及查找輸出單元,SRAM查找塊包括選擇器模塊、復(fù)數(shù)譯碼器模塊以及復(fù)數(shù)SRAM子模塊。該裝置基于FPGA實(shí)現(xiàn)TCAM功能,用于ASIC的FPGA驗(yàn)證,通過仿真TCAM的方式,在一塊FPGA中利用內(nèi)嵌的SRAM,完成TCAM的查找行為,不僅簡(jiǎn)化了ASIC的FPGA驗(yàn)證,節(jié)約了成本,并使得在無法得到TCAM芯片時(shí),對(duì)ASIC驗(yàn)證TCAM的接口得以實(shí)現(xiàn)。
文檔編號(hào)G06F11/26GK201594253SQ20092027873
公開日2010年9月29日 申請(qǐng)日期2009年11月9日 優(yōu)先權(quán)日2009年11月9日
發(fā)明者夏杰, 徐昌發(fā), 許俊, 賈復(fù)山, 龔源泉 申請(qǐng)人:盛科網(wǎng)絡(luò)(蘇州)有限公司