朱偉杰 陽 徽 費亞男 李 洋 王 昶
北京航天自動控制研究所,北京100854
?
FPGA功能驗證自動化技術(shù)研究與實踐
朱偉杰 陽 徽 費亞男 李 洋 王 昶
北京航天自動控制研究所,北京100854

深入分析了影響FPGA功能驗證效率和質(zhì)量的各項因素,改進了傳統(tǒng)FPGA軟件驗證平臺的搭建方法,闡述了FPGA軟件自動化驗證平臺搭建技術(shù)、基于Perl語言的Testbench自動生成技術(shù)、受約束的隨機激勵生成技術(shù)、接口時序自動偵錯技術(shù)、SVA斷言以及基于VBA宏的管腳配置自動檢查技術(shù)等6種改進策略。這些自動化技術(shù)將功能驗證中程式化和標準化的工作交由工具完成,提高了驗證平臺搭建和仿真結(jié)果檢查的效率。 關(guān)鍵詞 功能驗證;自動偵錯;自動化驗證平臺;受約束的隨機激勵
以FPGA和CPLD為代表的可編程邏輯器件由于具有并行的計算結(jié)構(gòu)且開發(fā)周期短、功能可自行定制的明顯優(yōu)勢,已被大量應用于航天型號的產(chǎn)品設計之中。隨著航天發(fā)射任務的不斷增長,型號研制中FPGA設計的數(shù)量呈暴發(fā)式增長,F(xiàn)PGA軟件測試任務量逐年攀升,測試時間不斷壓縮,為了保證航天型號發(fā)射和實驗任務的順利開展,需要具備在短時間內(nèi)完成對復雜FPGA設計進行充分、全面驗證的能力。據(jù)統(tǒng)計,商業(yè)化IC設計流程中功能驗證大約占用整個周期的50%~70%,芯片失效的原因中74%的故障與邏輯功能錯誤有關(guān)。因此,如何利用新的驗證技術(shù)提升功能驗證的效率和質(zhì)量成為整個業(yè)界共同關(guān)心的問題。
本文根據(jù)多年FPGA軟件測試經(jīng)驗,總結(jié)了6點提高了FPGA軟件測試自動化程度的改進技術(shù),這些自動化技術(shù)輔助測試人員快速搭建驗證平臺,實現(xiàn)了部分測試結(jié)果的自動比對,利用高級語言實現(xiàn)程式化和標準化工作的自動執(zhí)行,最大化提高驗證效率和驗證質(zhì)量。
1.1 FPGA軟件全生命周期驗證流程
驗證貫穿于整個FPGA設計流程,從需求分析到最終固件的每個階段都需要驗證[1]。如圖1所示,F(xiàn)PGA驗證類型分為靜態(tài)驗證和動態(tài)驗證,其中靜態(tài)驗證包括文檔審查、代碼審查、跨時鐘域檢查、靜態(tài)時序分析和邏輯等效性檢查;動態(tài)驗證包括功能仿真、時序仿真和板級驗證。這些驗證類型實現(xiàn)了FPGA軟件的全生命周期覆蓋。靜態(tài)驗證一般由測試工具自動完成,人工分析結(jié)果,耗時較少;功能仿真、時序仿真需要人工搭建測試平臺,編寫測試用例,分析仿真結(jié)果,耗時占整個驗證周期的70%~80%。因此,要提高FPGA軟件驗證效率,必須對功能驗證進行優(yōu)化和改進。
1.2 功能驗證自動化技術(shù)總體方案
FPGA功能驗證主要分為3個步驟,依次為搭建驗證環(huán)境、設計和執(zhí)行測試用例、檢查仿真結(jié)果,如圖1所示,其中部分程式化工作,如Testbench搭建、測試用例自動生成及部分仿真結(jié)果的檢查可由工具或腳本來完成。

圖1 功能驗證的任務分解
本文開發(fā)了基于Makefile的驗證平臺自動搭建腳本和基于Perl語言的Testbench自動生成腳本,實現(xiàn)了FPGA軟件測試環(huán)境的自動搭建。受約束的隨機激勵生成技術(shù)用來實現(xiàn)測試激勵的自動生成; specify block用來實現(xiàn)接口時序的自動檢查;SVA用來實現(xiàn)功能、協(xié)議和狀態(tài)機的自動檢查;VBA宏用來實現(xiàn)管腳配置的自動檢查,這些技術(shù)將驗證過程中程式化的工作交由計算機完成,提高了功能驗證平臺的搭建效率和仿真結(jié)果的偵錯效率。
2.1 基于Makefile的自動化驗證平臺設計
驗證環(huán)境是指對設計進行驗證時為了便于使用、管理和協(xié)同工作而設計的一個環(huán)境,啟動驗證所需要的一系列工具,可對設計的仿真結(jié)果進行分析和整理,利用系統(tǒng)腳本,實現(xiàn)整個驗證流程的自動化,具有靈活、可重用和可配置性的特點[2]。構(gòu)建自動化驗證環(huán)境,利用腳本組織與管理驗證數(shù)據(jù),自動呈現(xiàn)驗證結(jié)果,能夠避免大量人工重復勞動,提高驗證效率。
2.1.1 驗證數(shù)據(jù)的組織與管理
高效的數(shù)據(jù)組織和管理方法能提高驗證平臺的自動化程度。自動化驗證平臺需完成FPGA代碼規(guī)則檢查、功能仿真、時序仿真、跨時鐘域分析、覆蓋率統(tǒng)計和靜態(tài)時序分析等6種類型的測試。其架構(gòu)如圖2所示,各個目錄的功能介紹如下。

圖2 基于Makefile的自動化驗證平臺架構(gòu)
1) run:通用測試平臺目錄,包含Makefile腳本、編譯庫和仿真運行的臨時文件;
2) src:源文件目錄按版本編號細分子目錄,每個版本編號目錄包括rtl源文件(功能仿真),netlist網(wǎng)表文件以及sdf標準時延文件(時序仿真);
3) tb:仿真平臺文件目錄,包含測試方編寫的仿真測試平臺tb.sv、配置文件等;
4) tc:測試用例目錄,包含功能、時序仿真所有的測試用例集;
5) vip:驗證模型庫文件目錄,包含功能、時序仿真時用到的標準模型;
6) db:數(shù)據(jù)庫目錄,包含功能仿真和時序仿真中生成的各種數(shù)據(jù):覆蓋率數(shù)據(jù)、仿真波形數(shù)據(jù)和仿真日志數(shù)據(jù)等;
7) cc:代碼規(guī)則檢查,包含檢查規(guī)則文件、運行腳本和運行中間結(jié)果;
8) cdc:跨時鐘域檢查,包含設計TCL約束文件、運行腳本和運行中間結(jié)果;
9) sta:靜態(tài)時序分析,包括靜態(tài)時序設計約束、運行腳本和運行中間結(jié)果;
10) lib:芯片庫文件目錄,包含器件芯片提供的庫文件。
2.1.2 基于Makefile的腳本設計
系統(tǒng)腳本是整個驗證環(huán)境的關(guān)鍵所在,也是形成自動化驗證環(huán)境的基礎。使用腳本搭建驗證環(huán)境能提高驗證的自動化程度,減少人工重復勞動。Makefile腳本功能描述如下:
1)創(chuàng)建驗證目錄;按圖2的架構(gòu)生成各級目錄,將初始化文件(例如Questasim的*.ini和VCS的*.setup文件)拷貝到相應子目錄下;
2)設置仿真參數(shù):指定被測件頂層名稱、器件類型及版本號、仿真工具、工況類型和仿真類型等配置信息,仿真時將根據(jù)配置信息搜索文件及仿真庫;
3)仿真:包括功能仿真和時序仿真,根據(jù)仿真參數(shù)對FPGA標準庫文件LIB、外圍器件模型VIP、被測件的源文件或者網(wǎng)表文件DUT、測試平臺TB以及測試用例TC進行編譯,并將所有程序的編譯結(jié)果存放在run目錄下的編譯日志文件中,便于編譯不通過時查找錯誤,仿真結(jié)果保存為fsdb文件;
4)調(diào)試:本文使用Verdi工具進行調(diào)試,Verdi根據(jù)配置信息編譯源文件、顯示RTL代碼、原理圖和fsdb仿真波形文件;
5)數(shù)據(jù)庫:平臺自動保存日志文件、波形文件和覆蓋率信息,這些文件按照版本號和數(shù)據(jù)類型存放在對應子文件夾下;
6)覆蓋率統(tǒng)計:合并各個測試用例的覆蓋率,統(tǒng)計語句、分支等總覆蓋率;
7)靜態(tài)測試:根據(jù)配置信息、自定義規(guī)則集、約束文件等自動執(zhí)行代碼規(guī)則檢查、跨時鐘域檢查和靜態(tài)時序分析,由人工進一步分析結(jié)果。
基于Makefile腳本,測試人員在Linux終端輸入簡單命令即可實現(xiàn)驗證的自動化執(zhí)行,例如終端輸入命令make vcs tc=tc_reset_001 debug=yes cov=yes即可調(diào)用VCS仿真工具執(zhí)行測試用例tc_reset_001,仿真結(jié)束調(diào)用Verdi工具調(diào)試,統(tǒng)計覆蓋率信息。自動化腳本代替復雜圖形化界面操作能極大地提高驗證效率,統(tǒng)一的目錄架構(gòu)易于理解和繼承,便于測試團隊協(xié)同開展測試。
2.2 基于Perl語言的Testbench自動生成技術(shù)
Perl被稱為實用報表提取語言,特別適合批處理文本文件。由VHDL或Verilog語言編寫的RTL代碼有固定的格式和關(guān)鍵字,通過Perl腳本識別關(guān)鍵字來提取有用的信息,再將其打印輸出生成符合System Verilog語法規(guī)范的Testbench。具體實現(xiàn)方法如下。
1)被測件的自動識別與例化
通過識別關(guān)鍵字entity和module來提取被測件的實際名稱,識別關(guān)鍵字input/inout/output和in/inout/out來提取輸入輸出端口信息,刪除無用字符后將端口名稱存儲至數(shù)組中,最后按System Verilog語法打印端口信息,實現(xiàn)被測件例化。
2)輸入/輸出端口的自動識別與聲明
通過關(guān)鍵字input/inout和in/inout識別輸入端口,并將其聲明成wire/logic型變量;通過關(guān)鍵字output和out識別輸出端口,并將其聲明成reg/logic型變量。
3)部分激勵的自動生成
自動將端口中含有clock/clk字符的端口識別為時鐘信號,產(chǎn)生默認頻率的時鐘激勵。同樣地,將含有reset/rst字符的端口識別為復位信號并復位激勵,再由人工根據(jù)軟件任務書進行適應性修改。
4)測試平臺的版本控制
Perl腳本自動檢測計算機本地時間和Linux用戶名,并添加到Testbench文件頭的注釋中,從而實現(xiàn)Testbench版本的自動控制。

圖3 測試平臺自動生成的過程
基于Perl語言的驗證平臺生成過程如圖3所示,在Linux終端中輸入的命令格式為:perl tb_gen.pl dut.v vip1.v vipn.v,其中tb_gen.pl為Perl腳本。Perl腳本會在幾秒鐘內(nèi)自動生成測試平臺和簡單激勵等,測試人員只需簡單修改時鐘周期和復位時間等參數(shù)即可使用。而傳統(tǒng)的方法需要人工編程,容易引入低級語法錯誤且格式不統(tǒng)一,對于大規(guī)模軟件能顯著提升Testbench搭建效率。
2.3 受約束的隨機激勵生成技術(shù)
傳統(tǒng)的驗證大多使用定向測試,即針對被測件的具體特性來編寫測試向量,然后人工檢查仿真結(jié)果是否與預期一致。受約束的隨機激勵將輸入激勵限定在一定范圍,由代碼自動產(chǎn)生,然后通過參考模型預測輸出結(jié)果,實現(xiàn)結(jié)果的自動檢測。如圖4所示,小圓圈代表邏輯電路,只有滿足特定的輸入,通過特定的路徑,才能發(fā)現(xiàn)軟件缺陷。隨著設計規(guī)模愈發(fā)龐大,驗證空間將呈指數(shù)級增長,使用定向激勵覆蓋所有的功能變得越來越困難。

圖4 軟件缺陷尋找過程
定向測試可以找出設計中預期的漏洞,而隨機測試能找出預料不到的漏洞。建立分層隨機激勵測試平臺所需的時間比定向測試平臺多,尤其是自動檢測部分,但其回報卻很高。覆蓋率是考核驗證進度的重要指標,對于那些受約束的隨機測試覆蓋不到的地方,再補充定向測試,直至覆蓋率達到100%。受約束的隨機測試與定向測試的進度比較如圖5所示。在驗證較大規(guī)模設計時,受約束的隨機測試效率更高。

圖5 受約束的隨機測試與定向測試的進度比較
在生成隨機激勵時,需要考慮隨機粒度的劃分和隨機層次的劃分[3]。隨機粒度太細會導致隨機激勵空間爆炸,無法有效完成激勵覆蓋;隨機粒度太粗則會導致構(gòu)造粗粒度隨機單元的人工工作量上升,隨機自動化比例下降。采取分層的隨機激勵架構(gòu),每個層次面向某一抽象級別的功能激勵,各層間相對獨立并相互約束,可以對隨機生成流程進行更有效的管理和擴展。因此,驗證激勵生成流程需要結(jié)合驗證粒度和驗證層次的劃分,達到高效隨機效果和良好的可控性。
System Verilog提供了豐富的約束方式和隨機數(shù)函數(shù)[4],例如$dist_exponential()實現(xiàn)指數(shù)衰落,$dist_normal實現(xiàn)鐘形分布等。Verilog語言使用$random函數(shù)也可以實現(xiàn)隨機化,在模擬芯片接口時序時,使用$random函數(shù)讓信號在Tmin~Tmax之間變化,例如#(Tmin + {$random}%(Tmax-Tmin));使用線性反饋移位寄存器(LFSR)產(chǎn)生偽隨機數(shù),保證數(shù)據(jù)有足夠的跳變,例如data[7:0] = (data[6:0],!{data[3]^data[5] ^data[6]^data[7]})。
2.4 基于specify block的接口時序自動偵錯技術(shù)
FPGA接口測試是指通過時序仿真驗證不同工況下的接口時序性能是否滿足協(xié)議值的要求。傳統(tǒng)驗證方法一般是在時序仿真完成后,由人工對照芯片數(shù)據(jù)手冊檢查接口信號的仿真波形,該方法對人工判讀質(zhì)量和仔細程度要求較高,當執(zhí)行多次仿真(如3種工況下的時序仿真)時,人工檢查接口時序會耗費較長時間,無法實現(xiàn)結(jié)果的自動化檢查。Verilog和System Verilog語言提供了specify block指定塊,從而實現(xiàn)時序檢查,當發(fā)現(xiàn)時序違例會自動報錯。specify block可以執(zhí)行以下2類時序檢查:
1)檢查時序窗口的穩(wěn)定性,使用$setup,$hold檢查建立和保持時間,使用$recovery和$removal檢查恢復和移除時間;
2)檢查時鐘和控制信號在指定事件之間的時間間隔,使用$skew檢查限制最大偏斜,使用$width檢查最小脈寬,使用$period檢查最小周期,使用$nochange限制信號不發(fā)生變化等。

圖6 根據(jù)芯片接口時序編寫specify指定塊
如圖6所示,specify block指定塊能在仿真過程中持續(xù)監(jiān)視接口時序,一旦發(fā)現(xiàn)時序違例會自動報錯,其執(zhí)行步驟如下:
1)根據(jù)芯片接口時序編寫specify指定塊。以HY27UF081G2A芯片為例,根據(jù)地址鎖存時序和時間參數(shù)編寫specify block,示例中寫信號WE低電平最小脈寬為15ns,在specify block中表述為$width(negedge iWE, 15);
2)執(zhí)行功能仿真或時序仿真。如果接口時序滿足芯片手冊要求,則仿真工具不會提示任何信息;如果發(fā)生時序錯誤,仿真工具會報告錯誤發(fā)生的時刻和具體信息。
該技術(shù)使接口時序的自動偵錯成為可能。一種常見的情景是測試人員在下班前編寫好specify block時序檢查語句,然后利用非工作時間在服務器上執(zhí)行3種工況下的時序仿真,再次上班時查看仿真報告是否發(fā)生時序錯誤。而傳統(tǒng)方式是執(zhí)行完一次仿真,人工在波形窗口用標尺測量各個時間,檢查無誤后再執(zhí)行下次仿真。對于大規(guī)模設計,傳統(tǒng)的人工檢查可能存在遺漏且耗時較長,specify block技術(shù)能將接口測試效率提升幾個數(shù)量級。
2.5 基于SVA斷言的FPGA軟件功能驗證自動偵錯技術(shù)
傳統(tǒng)的功能驗證結(jié)果檢查方法是等到仿真結(jié)束后,錯誤傳遞到輸出端口,通過查看日志文件和分析仿真波形來查找缺陷,這消耗了驗證人員大量的時間和精力。基于斷言的驗證是通過在RTL代碼中插入斷言語句,然后在動態(tài)仿真過程中由這些斷言語句來判斷實現(xiàn)的設計是否跟設計的規(guī)范相一致。
SVA (System Verilog Assertion)斷言可以執(zhí)行協(xié)議接口檢查(如PCI,USB協(xié)議接口)、邏輯控制信號檢查(如SDRAM控制信號)、有限狀態(tài)機(FSM)和仲裁器等時序和功能檢測,這些斷言埋在FPGA設計中,仿真過程中斷言不停地監(jiān)視著設計的預期行為,一旦在某個插入點發(fā)現(xiàn)缺陷時就會打印出相關(guān)的缺陷報告,直接定位缺陷發(fā)生的位置。在FPGA軟件RTL代碼中可以斷言的插入點包括:
1)接口協(xié)議檢查
使用SVA斷言對標準協(xié)議接口進行有效監(jiān)控,例如借助斷言檢查內(nèi)部寄存器配置,檢查復位后相關(guān)信號的波形等。
2)有限狀態(tài)機檢查
使用斷言檢查狀態(tài)機各狀態(tài)間的轉(zhuǎn)換是否正確,且不違背任何時序上的要求。一種可以借鑒的方法是先畫出FSM狀態(tài)轉(zhuǎn)換矩陣,然后分析出各個狀態(tài)禁止發(fā)生的跳轉(zhuǎn)。

propertyp_forbid_l;@(posedgeclk)disableiff(!reset)((current_state[2:0]==`ACTIVE)||(current_state[2:0]==`HALT)||(current_state==`CPU)||(current_state==`READY))|->$past((current_state==`IDLE)==0);endpropertya_forbid_1:assertproperty(p_forbid_1),else$fatal;
屬性p_forbid_1表示如果當前狀態(tài)為ACTIVE,HALT,CPU或READY,那么FSM的前一個周期狀態(tài)就不能是IDLE。
3)FIFO狀態(tài)監(jiān)視
檢測FIFO的操作是否符合設計要求,F(xiàn)IFO的上溢和下溢,以及錯誤時中斷申請信號的觸發(fā)。例如,監(jiān)視FIFO空信號和讀信號,當FIFO已空,再讀出就會報下溢錯;監(jiān)視FIFO滿信號和寫信號,如果FIFO已滿,再寫入會報上溢錯。
4)邏輯輸出信號斷言
例如要驗證屬性:“當信號a 在某一個時鐘周期為高電平時,那么在接下來的2~4個時鐘周期內(nèi),信號b 應該為高電平”,其SVA代碼為:

propertya2b_p;@(posedgesclk)$rose(a)|->[2:4]$rose(b);endpropertya2b_a:assertproperty(a2b_p);//生效a2b_c:coverproperty(a2b_p);//覆蓋語句
5)脈沖寬度斷言
方法1:使用SVA直接對屬性進行描述;方法2:使用SVA庫中的assert_width模塊,通過配置相關(guān)參數(shù)實現(xiàn)寬度斷言:

assert_width[#(severity_level,min_cks,max_cks,options,msg,cate?gory,coverage_level_l,coverage_level_2,coverage_level_3)]
SVA可以監(jiān)視設計模塊的內(nèi)部、模塊與模塊間連接信號的各種時序關(guān)系,與RTL代碼綜合,用于調(diào)試,也可以進行設計的功能覆蓋。
2.6 基于VBA宏的FPGA管腳配置自動檢查技術(shù)
傳統(tǒng)的管腳配置檢查方法是依據(jù)軟件需求分析的管腳定義人工逐項核對FPGA工程文件中管腳配置,大規(guī)模FPGA設計使用的管腳可能達到幾百個
且雜亂無章地排列,通過人工逐個檢查的效率低下,且可能存在漏判的情況。Excel具有快捷方便的數(shù)據(jù)輸入和強大的數(shù)據(jù)處理能力,它提供的VBA(Visual Basic for Application)宏語言可以方便地開發(fā)出用戶需要的功能。
本文開發(fā)的“管腳配置檢查宏”能自動比較Excel表格中來自軟件需求分析和FPGA工程中的信號名和管腳號,其原理如圖7所示,測試人員首先將軟件需求分析中的管腳配置信息復制到Excel表格A/B列,然后將FPGA工程中的管腳配置報告復制到C/D列,最后點擊“檢查FPGA管腳配置”執(zhí)行檢查。宏將依次從A列和C列中尋找匹配的端口名稱(如A列4行和C列9行的端口localclk),再比較B列和D列對應行的FPGA管腳(B列4行的管腳名稱A9和D列9行的管腳名稱C9),如果二者一致,則報告檢查通過;如果不一致,則報告錯誤。該技術(shù)可以在幾秒內(nèi)完成上百個管腳配置的檢查,顯著提升檢查效率。

圖7 使用Excel執(zhí)行管腳配置檢查
為統(tǒng)計FPGA軟件的驗證效率,本文引入式(1)的效率計算公式計算千行代碼消耗的人時數(shù)。例如,某測試組10人一年測試了12萬行代碼,按一年工作280天,每天工作10小時,其中70%的時間用于測試,測試效率為163人·小時/千行。
=163人*小時/千行
(1)為驗證本文總結(jié)的6項改進措施的實際效果,將測試團隊分為采用傳統(tǒng)驗證手段和采用自動化驗證技術(shù)2個組,計算在一段時間內(nèi)(3個月)2個組的驗證效率。經(jīng)測算,改進前平均千行代碼耗時176人·小時,改進后平均千行代碼耗時144人·小時,效率提升了18.2%。實踐表明,本文介紹的FPGA軟件自動化驗證平臺、基于Perl語言的Testbench自動生成技術(shù)、受約束的隨機激勵生成技術(shù)、接口時序自動偵錯技術(shù)、SVA斷言以及基于VBA宏的管腳配置自動檢查技術(shù)等6種改進策略,能充分利用各類語言的優(yōu)勢提升FPGA軟件驗證的自動化程度,從而降低測試成本,保證測試充分性。
深入分析了FPGA軟件全生命周期驗證流程,闡述了提高了FPGA軟件測試平臺搭建和自動化偵錯的6點改進技術(shù),這些自動化技術(shù)一方面輔助測試人員快速搭建驗證平臺,另一方面實現(xiàn)了部分測試結(jié)果的自動比對,將功能驗證中程式化和標準化的工作交由工具完成,從而實現(xiàn)FPGA軟件批量化和自動化測試,減輕了測試人員的工作量,將測試人員的精力更多地放在測試用例設計環(huán)節(jié),最大化提高驗證效率和質(zhì)量。
[1] 王石. 基于FPGA芯片的功能仿真平臺構(gòu)建及靜態(tài)時序分析[D]. 西安:西安電子科技大學,2008. (Wang Shi.Construction of Function Simulation Platform and Static Timing Analysis Based on FPGA Chips [D]. Xian: Xidian University, 2008.)
[2] 費亞男,周輝,朱偉杰. FPGA軟件自動驗證平臺設計與實踐[J]. 計算機測量與控制,2016,24(5):139-142.(Fei Yanan, Zhou Hui, Zhu Weijie. Auto Verify Platform Design and Practice for FPGA Software [J]. Computer Measurement and Control, 2016,24(5):139-142.)
[3] 殷燎.面向SoC的IP核及嵌入式處理器功能驗證方法研究[D]. 杭州:浙江大學博士論文,2010.(Yin Liao. Research on IP Core and Embedded Processor Function Verification Method Based on SoC [D]. Hangzhou: Zhejiang University, 2010.)
[4] Chris Spear.張春,麥宋平,趙益新,譯. System Verilog驗證測試平臺編寫指南[M].北京:科學出版社,2009.
Research and Practice of Automation Technology on FPGA Function Verification
Zhu Weijie, Yang Hui, Fei Yanan, Li Yang, Wang Chang
Beijing Aerospace Automatic Control Institute, Beijing 100854, China
Inthispaper,thefactorsthataffecttheefficiencyandqualityofFPGAfunctionverificationareanalyzeddeeply,thetraditionalmethodofbuildingtheFPGAverificationplatformisimproved,andsiximprovementstrategiessuchastheautomatictechnologyofbuildingverificationplatform,theTestbenchgenerationmethodbasedonthePerllanguage,thegenerationtechnologyoftheconstrainedrandomteststimulus,theerrordetectingtechnologyoftheinterfacetimingsequence,thesystemVerilogassertionandtheautomaticinspectionofpinconfigurationareintroduced.Byusingtheseautomatictechnologies,theprogramandstandardizedworkinthefunctionverificationarecompletedbythecomputer,andtheefficiencyofbuildingtheverificationplatformandcheckingthesimulationresultsisimproved.
Functionverification;Errordetecting;Automaticverificationplatform;Constrainedrandomteststimulus
2016-12-16
朱偉杰 (1987-),男,山東威海人,碩士研究生,工程師,主要研究方向為FPGA軟件設計與測試;陽 徽(1985-),男,湖南邵陽人,碩士研究生,高級工程師,主要研究方向為FPGA軟件設計與測試;費亞男 (1988-),女,長春人,碩士研究生,工程師,主要研究方向為FPGA軟件測試;李 洋(1989-),男,哈爾濱人,碩士研究生,工程師,主要研究方向FPGA軟件設計與測試;王 昶(1989-),男,黑龍江雙城人,碩士研究生,工程師,主要研究方向為FPGA軟件設計與測試。
TP316.2
A
1006-3242(2017)02-0072-06