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