《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的塊存儲(chǔ)器資源功能驗(yàn)證及實(shí)現(xiàn)
基于FPGA的塊存儲(chǔ)器資源功能驗(yàn)證及實(shí)現(xiàn)
2018年電子技術(shù)應(yīng)用第9期
羅 軍,范劍峰,呂宏峰,王小強(qiáng),羅宏偉
工業(yè)和信息化部電子第五研究所,廣東 廣州510610
摘要: 可編程邏輯陣列由于具備片內(nèi)資源豐富、靈活、可重構(gòu)等特點(diǎn)在數(shù)字信號(hào)處理、硬件加速及芯片原型驗(yàn)證中具有廣泛的應(yīng)用。塊存儲(chǔ)器作為可編程邏輯陣列中的重要片內(nèi)資源,具備高速及大容量的特點(diǎn)。為了解決高速塊存儲(chǔ)資源功能驗(yàn)證時(shí)序約束要求高等不足,設(shè)計(jì)了采用跨時(shí)鐘域的高速塊存儲(chǔ)器資源功能驗(yàn)證方法,并基于可編程邏輯陣列進(jìn)行了功能仿真驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,該方法能夠滿足640 MHz的高速塊存儲(chǔ)器資源驗(yàn)證需求,并且具備模塊化的特點(diǎn),能夠方便地對(duì)大容量塊存儲(chǔ)器資源進(jìn)行測(cè)試驗(yàn)證。
中圖分類號(hào): TP302.2
文獻(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.
Function verification and implementation of block random access memory based on FPGA
Luo Jun,F(xiàn)an Jianfeng,Lv Hongfeng,Wang Xiaoqiang,Luo Hongwei
China Electronic Product Reliability and Environmental Testing Research Institute,Guangzhou 510610,China
Abstract: Field programmable gate array(FPGA) has a wide application in signal processing, hardware accelerating and chip prototype verification because of its rich on-chip resources, flexibility and programmability. As a major resource in FPGA, block random access memory(BRAM) has the characteristic of high speed and high-capacity. To solve the critical timing convergence in high speed BRAM, function verification method for high speed BRAM based on cross timing domain has been proposed. The presented method has been verified by functional simulation and using FPGA. Experiment result has shown that the proposed approach can meet the functional verification of high speed BRAM up to 640 MHz,and it has the feature of modularization which can be easily constructed to test BRAM of high-capacity.
Key words : field programmable gate array;block random access memory;high speed;function verification

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ù)的比較等工作。

wdz3-t1.gif

    數(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)生。 

    wdz3-gs1.gif

wdz3-t2.gif

    跨時(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)。

wdz3-t3.gif

    結(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ì)硬件資源的消耗比較大。

wdz3-t4.gif

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)。

wdz3-t5.gif

    設(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)證的目的。

wdz3-t6.gif

    文中設(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é)果全部通過。

wdz3-t7.gif

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)證要求。

wdz3-b1.gif

    為了測(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)。

wdz3-b2.gif

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] 張惠國(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] 李圣華,王健,來金梅.基于部分重配置的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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。