文獻(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ì)量與可靠性要求越來越高,對(duì)FPGA器件片內(nèi)資源進(jìn)行充分的測(cè)試驗(yàn)證變得日益迫切。因而,近年來針對(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ì)上述問題,設(shè)計(jì)提出了一種采用跨時(shí)鐘域并結(jié)合扁平化策略與流水線技術(shù)的FPGA器件片內(nèi)塊存儲(chǔ)器資源功能驗(yàn)證方法,通過合理地劃分塊存儲(chǔ)器資源測(cè)試模塊的時(shí)鐘域,利用FPGA器件中的數(shù)字時(shí)鐘管理單位(DCM)產(chǎn)生跨時(shí)鐘域的時(shí)鐘信號(hào),并通過把輸入激勵(lì)模塊從待測(cè)模塊的高速時(shí)鐘域中獨(dú)立出來,從而使高速塊存儲(chǔ)器資源可以在高速下進(jìn)行功能測(cè)試驗(yàn)證,達(dá)到時(shí)序收斂的要求。該方法采用雙口讀寫存儲(chǔ)器(RAM)或者先進(jìn)先出存儲(chǔ)器(FIFO)來實(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)行讀寫測(cè)試以及數(shù)據(jù)的比較等工作。
數(shù)據(jù)激勵(lì)模塊采用PRBS23多項(xiàng)式產(chǎn)生偽隨機(jī)數(shù)據(jù), 如式(1)所示。數(shù)據(jù)激勵(lì)模塊的硬件電路結(jié)構(gòu)如圖2所示,通過移位寄存器與異或門可以實(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ú)立移位寄存器和異或門,從而實(shí)現(xiàn)36位位寬數(shù)據(jù)的測(cè)試激勵(lì)產(chǎn)生。
跨時(shí)鐘域數(shù)據(jù)傳輸采用雙口RAM實(shí)現(xiàn),通過兩個(gè)獨(dú)立的讀寫端口及握手機(jī)制保證了不同時(shí)鐘域數(shù)據(jù)的正常傳輸。設(shè)計(jì)的CLK1時(shí)鐘域?yàn)?00 MHz,CLK2時(shí)鐘域?yàn)?00 MHz,通過利用FPGA器件片內(nèi)部分BRAM資源對(duì)待測(cè)BRAM資源進(jìn)行測(cè)試,可以有效地保證待測(cè)BRAM的數(shù)據(jù)讀寫頻率為400 MHz,提升設(shè)計(jì)時(shí)序余量。
在對(duì)待測(cè)BRAM資源進(jìn)行高速下的功能驗(yàn)證時(shí),首先往待測(cè)BRAM資源寫入偽隨機(jī)數(shù)據(jù),然后從待測(cè)BRAM資源里面讀取寫入的偽隨機(jī)數(shù)據(jù),并且把其與寫入待測(cè)BRAM資源之前的偽隨機(jī)數(shù)據(jù)進(jìn)行比較,最后依據(jù)比較結(jié)果判定待測(cè)BRAM資源是否功能正常。雙口RAM及待測(cè)BRAM資源依據(jù)FPGA器件提供的配套開發(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,其通過控制7位數(shù)碼管進(jìn)行待測(cè)塊存儲(chǔ)器資源讀寫數(shù)據(jù)比較結(jié)果的顯示。若待測(cè)塊存儲(chǔ)器資源讀寫數(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所示。通過對(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硬件描述語言對(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器件、開關(guān)按鈕、撥碼開關(guān)、數(shù)碼管、晶振、LED燈、JTAG接口、串口及SMA接口等電子元器件,采用數(shù)碼管對(duì)塊存儲(chǔ)器資源的功能驗(yàn)證結(jié)果進(jìn)行顯示,時(shí)鐘管理元輸出鎖定信號(hào)采用LED燈顯示,復(fù)位信號(hào)采用開關(guān)按鈕輸入,差分輸入時(shí)鐘信號(hào)采用板上晶振或者外部差分輸入信號(hào)輸入。基于硬件驗(yàn)證測(cè)試板的塊存儲(chǔ)器資源功能驗(yàn)證結(jié)果表明文中提出的塊存儲(chǔ)器資源功能驗(yàn)證硬件電路能夠滿足400 MHz速度下塊存儲(chǔ)器資源的讀寫數(shù)據(jù)需求,在該速度下針對(duì)1個(gè)BRAM資源和24個(gè)BRAM資源的測(cè)試結(jié)果全部通過。
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è)試板,通過SMA接口采用外部輸入差分時(shí)鐘信號(hào)的方式對(duì)24個(gè)待測(cè)BRAM資源的硬件電路(硬件電路2)進(jìn)行了不同工作速度下的讀寫數(shù)據(jù)測(cè)試,測(cè)試結(jié)果如表2所示。從表中可以發(fā)現(xiàn)文中提出的塊存儲(chǔ)器資源功能驗(yàn)證硬件電路最高能夠達(dá)到640 MHz的BRAM資源讀寫速度測(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)證硬件電路,該硬件電路通過實(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] 張惠國,徐彥峰,曹正州,等.FPGA邏輯資源重配置測(cè)試技術(shù)研究[J].固體電子學(xué)研究與進(jìn)展,2011,31 (3):292-297.
[6] 邱云峰,秦魯東.FPGA可編程邏輯單元測(cè)試方法研究[J].計(jì)算機(jī)與數(shù)字工程,2015(1):65-69.
[7] 李圣華,王健,來金梅.基于部分重配置的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)