文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.175127
中文引用格式: 羅軍,范劍峰,,呂宏峰,,等. 基于FPGA的塊存儲(chǔ)器資源功能驗(yàn)證及實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2018,,44(9):44-47.
英文引用格式: Luo Jun,,F(xiàn)an Jianfeng,Lv Hongfeng,,et al. Function verification and implementation of block random access memory based on FPGA[J]. Application of Electronic Technique,,2018,,44(9):44-47.
0 引言
可編程邏輯陣列(FPGA)由于其具有可編程,、上市時(shí)間短,、靈活性及高吞吐量等特性廣泛應(yīng)用于數(shù)字信號(hào)處理、接口電路控制,、圖像處理及算法加速等領(lǐng)域,,如在接口協(xié)議并串轉(zhuǎn)換電路[1]、圖像算法加速電路[2]及矩陣分解電路加速[3]等領(lǐng)域應(yīng)用廣泛,。隨著微電子工藝技術(shù)的進(jìn)步,,F(xiàn)PGA器件向集成更多資源,、更高速度及片上系統(tǒng)方向發(fā)展,。FPGA器件內(nèi)部具有豐富的可編程邏輯資源、輸入輸出口資源,、鎖相環(huán)及頻率合成器資源以及嵌入式塊存儲(chǔ)器資源(BRAM)[4]等,,其中FPGA片內(nèi)豐富的塊存儲(chǔ)器資源使數(shù)據(jù)與處理模塊的延遲更短,極大地提升了FPGA器件的處理性能和吞吐量,。
隨著工業(yè)界對(duì)FPGA器件的質(zhì)量與可靠性要求越來(lái)越高,,對(duì)FPGA器件片內(nèi)資源進(jìn)行充分的測(cè)試驗(yàn)證變得日益迫切。因而,,近年來(lái)針對(duì)FPGA器件片內(nèi)邏輯資源[5-6]及存儲(chǔ)器資源[7-8]的測(cè)試逐漸成為研究熱點(diǎn),。微電子工藝技術(shù)的進(jìn)步推動(dòng)了FPGA器件片內(nèi)塊存儲(chǔ)器資源速度性能的提升,如何在其標(biāo)稱速度下進(jìn)行功能驗(yàn)證變得日益重要,。為了驗(yàn)證FPGA器件片內(nèi)塊存儲(chǔ)器資源在標(biāo)稱速度下的功能是否正常,,需要對(duì)FPGA器件的高速塊存儲(chǔ)器資源進(jìn)行測(cè)試和驗(yàn)證。在高速大規(guī)模FPGA器件片內(nèi)塊存儲(chǔ)器資源的測(cè)試中,,通常包含輸入激勵(lì)模塊,、待測(cè)模塊、時(shí)鐘模塊及輸出比較模塊等,,如何保證在滿足高速數(shù)據(jù)傳輸?shù)幕A(chǔ)上提升測(cè)試系統(tǒng)的時(shí)序收斂余量成為設(shè)計(jì)的重要挑戰(zhàn),。
針對(duì)上述問(wèn)題,,設(shè)計(jì)提出了一種采用跨時(shí)鐘域并結(jié)合扁平化策略與流水線技術(shù)的FPGA器件片內(nèi)塊存儲(chǔ)器資源功能驗(yàn)證方法,通過(guò)合理地劃分塊存儲(chǔ)器資源測(cè)試模塊的時(shí)鐘域,,利用FPGA器件中的數(shù)字時(shí)鐘管理單位(DCM)產(chǎn)生跨時(shí)鐘域的時(shí)鐘信號(hào),,并通過(guò)把輸入激勵(lì)模塊從待測(cè)模塊的高速時(shí)鐘域中獨(dú)立出來(lái),從而使高速塊存儲(chǔ)器資源可以在高速下進(jìn)行功能測(cè)試驗(yàn)證,,達(dá)到時(shí)序收斂的要求,。該方法采用雙口讀寫(xiě)存儲(chǔ)器(RAM)或者先進(jìn)先出存儲(chǔ)器(FIFO)來(lái)實(shí)現(xiàn)跨時(shí)鐘域的數(shù)據(jù)傳輸,利用扁平化策略及流水線技術(shù)設(shè)計(jì)數(shù)據(jù)比較模塊,,并結(jié)合模塊復(fù)用技術(shù)達(dá)到針對(duì)FPGA器件塊存儲(chǔ)器資源功能測(cè)試靈活,、高效的目的。在高速或者極限速度測(cè)試中,,文中方法能夠盡量減少輸入激勵(lì)邏輯資源的對(duì)待測(cè)模塊的時(shí)序約束影響,,提升測(cè)試系統(tǒng)的時(shí)序收斂余量,具有測(cè)試速度高,、靈活性強(qiáng)等特點(diǎn),,應(yīng)用范圍廣泛。
1 硬件電路設(shè)計(jì)
為了對(duì)FPGA器件片內(nèi)的塊存儲(chǔ)器資源進(jìn)行測(cè)試驗(yàn)證,,基于FPGA器件中的已有邏輯資源設(shè)計(jì)硬件測(cè)試電路,。FPGA器件單個(gè)塊存儲(chǔ)器資源功能驗(yàn)證方案如圖1所示,主要包含數(shù)據(jù)激勵(lì)模塊,、跨時(shí)鐘域數(shù)據(jù)傳輸模塊,、待測(cè)塊存儲(chǔ)器資源模塊、數(shù)據(jù)比較模塊,、結(jié)果顯示模塊及時(shí)鐘管理單元,。在該功能驗(yàn)證框架中,主要采用兩個(gè)時(shí)鐘域,,分別為時(shí)鐘域1(CLK1)和時(shí)鐘域2(CLK2),。CLK1為低頻時(shí)鐘域,主要負(fù)責(zé)產(chǎn)生隨機(jī)數(shù)據(jù)和測(cè)試結(jié)果的顯示控制等工作,。CLK2為高頻時(shí)鐘域,,主要負(fù)責(zé)對(duì)待測(cè)塊存儲(chǔ)器資源進(jìn)行讀寫(xiě)測(cè)試以及數(shù)據(jù)的比較等工作。
數(shù)據(jù)激勵(lì)模塊采用PRBS23多項(xiàng)式產(chǎn)生偽隨機(jī)數(shù)據(jù),, 如式(1)所示,。數(shù)據(jù)激勵(lì)模塊的硬件電路結(jié)構(gòu)如圖2所示,通過(guò)移位寄存器與異或門(mén)可以實(shí)現(xiàn)1個(gè)位寬的偽隨機(jī)數(shù)據(jù)產(chǎn)生,。文中針對(duì)每個(gè)待測(cè)的BRAM資源設(shè)計(jì)36位位寬及512個(gè)存儲(chǔ)地址,,因此設(shè)計(jì)的數(shù)據(jù)激勵(lì)模塊包含36個(gè)獨(dú)立移位寄存器和異或門(mén),從而實(shí)現(xiàn)36位位寬數(shù)據(jù)的測(cè)試激勵(lì)產(chǎn)生,。
跨時(shí)鐘域數(shù)據(jù)傳輸采用雙口RAM實(shí)現(xiàn),,通過(guò)兩個(gè)獨(dú)立的讀寫(xiě)端口及握手機(jī)制保證了不同時(shí)鐘域數(shù)據(jù)的正常傳輸,。設(shè)計(jì)的CLK1時(shí)鐘域?yàn)?00 MHz,CLK2時(shí)鐘域?yàn)?00 MHz,,通過(guò)利用FPGA器件片內(nèi)部分BRAM資源對(duì)待測(cè)BRAM資源進(jìn)行測(cè)試,,可以有效地保證待測(cè)BRAM的數(shù)據(jù)讀寫(xiě)頻率為400 MHz,提升設(shè)計(jì)時(shí)序余量,。
在對(duì)待測(cè)BRAM資源進(jìn)行高速下的功能驗(yàn)證時(shí),,首先往待測(cè)BRAM資源寫(xiě)入偽隨機(jī)數(shù)據(jù),然后從待測(cè)BRAM資源里面讀取寫(xiě)入的偽隨機(jī)數(shù)據(jù),,并且把其與寫(xiě)入待測(cè)BRAM資源之前的偽隨機(jī)數(shù)據(jù)進(jìn)行比較,,最后依據(jù)比較結(jié)果判定待測(cè)BRAM資源是否功能正常。雙口RAM及待測(cè)BRAM資源依據(jù)FPGA器件提供的配套開(kāi)發(fā)工具自帶的知識(shí)產(chǎn)權(quán)(IP)核進(jìn)行配置,。
數(shù)據(jù)比較模塊由于處在高頻時(shí)鐘域CLK2中,,因而需要進(jìn)行扁平化及流水線的設(shè)計(jì)以便在高速下能夠正常工作,其硬件實(shí)現(xiàn)結(jié)構(gòu)如圖3所示,。采用四級(jí)流水線對(duì)從待測(cè)塊存儲(chǔ)器資源中讀取的數(shù)據(jù)(data_rd)和預(yù)期的正確數(shù)據(jù)(data_cmp)進(jìn)行數(shù)據(jù)比較,,最后得到待測(cè)塊存儲(chǔ)器資源功能是否正確的標(biāo)志信號(hào)(cmp_result)。
結(jié)果顯示模塊工作在低頻時(shí)鐘域CLK1,,其通過(guò)控制7位數(shù)碼管進(jìn)行待測(cè)塊存儲(chǔ)器資源讀寫(xiě)數(shù)據(jù)比較結(jié)果的顯示,。若待測(cè)塊存儲(chǔ)器資源讀寫(xiě)數(shù)據(jù)一致,則7位數(shù)碼管顯示“P”,,若不一致,,則顯示“F”。
時(shí)鐘管理單元基于外部輸入的差分時(shí)鐘信號(hào),,分別產(chǎn)生低頻與高頻時(shí)鐘域,。
圖1所示的塊存儲(chǔ)器資源功能驗(yàn)證框架為針對(duì)1個(gè)BRAM資源的功能驗(yàn)證實(shí)現(xiàn)結(jié)構(gòu),,由于FPGA器件內(nèi)的BRAM資源眾多,,如典型Xilinx的Virtex4系列的XC4-VSX55型FPGA器件具有320個(gè)BRAM資源,每個(gè)BRAM資源擁有18 Kb的存儲(chǔ)資源,,因而需要設(shè)計(jì)針對(duì)多個(gè)BRAM資源的功能驗(yàn)證方案,,其結(jié)構(gòu)框架如圖4所示。通過(guò)對(duì)單個(gè)塊存儲(chǔ)器資源功能驗(yàn)證模塊進(jìn)行復(fù)用,,可以方便地移植到多個(gè)塊存儲(chǔ)器資源的功能測(cè)試中,。圖4中所示方案采用資源復(fù)用的優(yōu)點(diǎn)是可以滿足高速(400 MHz及以上)BRAM資源的測(cè)試和驗(yàn)證需求,其不足是對(duì)硬件資源的消耗比較大,。
2 功能仿真及驗(yàn)證
采用Xilinx的Virtex4系列FPGA器件對(duì)設(shè)計(jì)的兩種塊存儲(chǔ)器資源功能驗(yàn)證電路進(jìn)行功能仿真及驗(yàn)證,,塊存儲(chǔ)器資源功能驗(yàn)證頂層模塊接口信號(hào)如圖5所示,包含差分時(shí)鐘輸入信號(hào)(CLK_N和CLK_P),、復(fù)位信號(hào)(rst_n),、時(shí)鐘管理元輸出鎖定信號(hào)(LOCKED_OUT)及數(shù)碼管顯示信號(hào)(HEX_LED),。
設(shè)計(jì)的兩種塊存儲(chǔ)器資源功能驗(yàn)證電路分別針對(duì)FPGA器件中的1個(gè)BRAM資源和24個(gè)BRAM資源進(jìn)行功能驗(yàn)證,采用Verilog硬件描述語(yǔ)言對(duì)上述兩種不同待測(cè)塊存儲(chǔ)器資源數(shù)量的硬件電路進(jìn)行設(shè)計(jì)實(shí)現(xiàn),,并基于ISE 14.7及Modelsim SE 10.2c對(duì)設(shè)計(jì)電路進(jìn)行了綜合,、布局布線及仿真。塊存儲(chǔ)器資源功能仿真結(jié)果如圖6所示,,從圖中可以看出設(shè)計(jì)的硬件電路達(dá)到了預(yù)期對(duì)待測(cè)BRAM資源進(jìn)行功能驗(yàn)證的目的,。
文中設(shè)計(jì)的針對(duì)塊存儲(chǔ)器資源功能驗(yàn)證的兩種不同硬件電路采用基于Xilinx的FPGA器件硬件驗(yàn)證測(cè)試板進(jìn)行測(cè)試驗(yàn)證,如圖7所示,。該測(cè)試板包含F(xiàn)PGA器件,、開(kāi)關(guān)按鈕、撥碼開(kāi)關(guān),、數(shù)碼管,、晶振、LED燈,、JTAG接口,、串口及SMA接口等電子元器件,采用數(shù)碼管對(duì)塊存儲(chǔ)器資源的功能驗(yàn)證結(jié)果進(jìn)行顯示,,時(shí)鐘管理元輸出鎖定信號(hào)采用LED燈顯示,,復(fù)位信號(hào)采用開(kāi)關(guān)按鈕輸入,差分輸入時(shí)鐘信號(hào)采用板上晶振或者外部差分輸入信號(hào)輸入,?;谟布?yàn)證測(cè)試板的塊存儲(chǔ)器資源功能驗(yàn)證結(jié)果表明文中提出的塊存儲(chǔ)器資源功能驗(yàn)證硬件電路能夠滿足400 MHz速度下塊存儲(chǔ)器資源的讀寫(xiě)數(shù)據(jù)需求,在該速度下針對(duì)1個(gè)BRAM資源和24個(gè)BRAM資源的測(cè)試結(jié)果全部通過(guò),。
3 綜合結(jié)果及性能分析
針對(duì)不同塊存儲(chǔ)器資源數(shù)量功能驗(yàn)證的硬件電路綜合結(jié)果如表1所示,,從表中可以看出在對(duì)BRAM資源時(shí)序約束為400 MHz的條件下,驗(yàn)證1個(gè)BRAM資源(硬件電路1)和驗(yàn)證24個(gè)BRAM資源(硬件電路2)分別消耗了1%和100%的Slices資源,、分別消耗了1%和15%的片內(nèi)BRAM資源,,在驗(yàn)證24個(gè)BRAM資源的硬件電路中,各項(xiàng)資源消耗迅速增加,,這是由于文中的硬件電路采用了全并行和全流水線結(jié)構(gòu)設(shè)計(jì),,可滿足高端FPGA器件高速片內(nèi)BRAM資源的測(cè)試驗(yàn)證要求。
為了測(cè)試文中提出的塊存儲(chǔ)器資源功能驗(yàn)證硬件電路所能夠達(dá)到的極限工作速度,,基于圖7所示的硬件驗(yàn)證測(cè)試板,,通過(guò)SMA接口采用外部輸入差分時(shí)鐘信號(hào)的方式對(duì)24個(gè)待測(cè)BRAM資源的硬件電路(硬件電路2)進(jìn)行了不同工作速度下的讀寫(xiě)數(shù)據(jù)測(cè)試,測(cè)試結(jié)果如表2所示,。從表中可以發(fā)現(xiàn)文中提出的塊存儲(chǔ)器資源功能驗(yàn)證硬件電路最高能夠達(dá)到640 MHz的BRAM資源讀寫(xiě)速度測(cè)試需求,,具備靈活、可復(fù)用及高速等特點(diǎn)。
4 結(jié)論
塊存儲(chǔ)器資源是FPGA器件中重要且豐富的資源,,基于FPGA的塊存儲(chǔ)器資源功能驗(yàn)證硬件電路在高端FPGA器件中BRAM資源的測(cè)試驗(yàn)證中具有廣泛的應(yīng)用,。結(jié)合扁平化設(shè)計(jì)策略及流水線設(shè)計(jì)技術(shù),設(shè)計(jì)實(shí)現(xiàn)了一種靈活,、可復(fù)用以及可適應(yīng)高速BRAM資源測(cè)試的塊存儲(chǔ)器資源功能驗(yàn)證硬件電路,,該硬件電路通過(guò)實(shí)際測(cè)試可滿足最高640 MHz的BRAM資源測(cè)試驗(yàn)證需求,能夠方便地適應(yīng)于高端FPGA器件內(nèi)部BRAM資源的功能驗(yàn)證及性能測(cè)試中,,應(yīng)用前景廣泛,。
參考文獻(xiàn)
[1] 羅軍,肖芳,,毛雪瑩,,等.基于FPGA的方向?yàn)V波指紋圖像增強(qiáng)算法實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2010,,36(6):13-16.
[2] 劉焱,,周圣澤,羅軍,,等.基于FPGA的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2017,43(12):21-24.
[3] Luo Jun,,Huang Qijun,,Chang Ssheng,et al.High throughput Cholesky decomposition based on FPGA[C].6th International Congress on Image and Signal Processing,,2013:1649-1653.
[4] 余慧,,王健.一種專用可重配置的FPGA嵌入式存儲(chǔ)器模塊的設(shè)計(jì)和實(shí)現(xiàn)[J].電子學(xué)報(bào),2012,,40 (2):215-222.
[5] 張惠國(guó),,徐彥峰,曹正州,,等.FPGA邏輯資源重配置測(cè)試技術(shù)研究[J].固體電子學(xué)研究與進(jìn)展,,2011,31 (3):292-297.
[6] 邱云峰,,秦魯東.FPGA可編程邏輯單元測(cè)試方法研究[J].計(jì)算機(jī)與數(shù)字工程,,2015(1):65-69.
[7] 李圣華,,王健,,來(lái)金梅.基于部分重配置的FPGA內(nèi)嵌BRAM測(cè)試方法[J].復(fù)旦學(xué)報(bào)(自然科學(xué)版),2016,,55(6):806-814.
[8] 閻哲,,張洪,介百瑞,,等.基于位流回讀的Virtex Ⅱ內(nèi)嵌BRAM的測(cè)試方法研究[J].微電子學(xué)與計(jì)算機(jī),,2016,,33(5):58-61.
作者信息:
羅 軍,范劍峰,,呂宏峰,,王小強(qiáng),羅宏偉
(工業(yè)和信息化部電子第五研究所,,廣東 廣州510610)