北京廣利核系統(tǒng)工程有限公司 張運(yùn)濤,宋立新,曹宗生,邊慶杰
UVM方法學(xué)在核安全級(jí)可編程邏輯仿真驗(yàn)證中的應(yīng)用
北京廣利核系統(tǒng)工程有限公司張運(yùn)濤,宋立新,曹宗生,邊慶杰
FPGA及CPLD在核電DCS領(lǐng)域被大量應(yīng)用。可編程邏輯產(chǎn)品的驗(yàn)證是保證產(chǎn)品安全性、正確性的重要環(huán)節(jié)[1,2]。針對(duì)可編程邏輯產(chǎn)品,采用行為仿真是保障產(chǎn)品安全性的重要驗(yàn)證方法。當(dāng)前對(duì)于核電DCS可編程邏輯產(chǎn)品仿真常用的方法是先根據(jù)測(cè)試大綱編寫測(cè)試用例,所有測(cè)試用例專家評(píng)審?fù)ㄟ^(guò)后,通過(guò)編寫定向測(cè)試激勵(lì)進(jìn)行功能仿真。這種方法的局限性是針對(duì)每個(gè)測(cè)試用例都要重新編寫測(cè)試環(huán)境,測(cè)試代碼的更改量大,可復(fù)用性不高。
UVM (Universal Verification Methodology)是ASIC領(lǐng)域新興的一種驗(yàn)證方法,主要用于IC芯片驗(yàn)證[3]。它是一種面向?qū)ο蟮姆椒?,由于它具備良好的可?fù)用性及靈活性,UVM已經(jīng)廣泛用于國(guó)內(nèi)外眾多芯片廠商[3,4]。本文介紹UVM方法在DCS系統(tǒng)可編程邏輯產(chǎn)品驗(yàn)證中的應(yīng)用。在通信路由板卡的可編程邏輯驗(yàn)證工作中引入U(xiǎn)VM驗(yàn)證方法,在能保證與傳統(tǒng)方法同等覆蓋率指標(biāo)的基礎(chǔ)上,提高了Testbench的復(fù)用性及驗(yàn)證效率。
UVM是IC驗(yàn)證業(yè)界一種新興驗(yàn)證方法學(xué),它的特點(diǎn)是面向?qū)ο?,可?fù)用性、擴(kuò)展性好[3]。采用UVM進(jìn)行驗(yàn)證工作的主要優(yōu)點(diǎn)為[3~6]:
(1)UVM Testbench為模塊化結(jié)構(gòu),便于驗(yàn)證組件復(fù)用。既可橫向復(fù)用,供其它項(xiàng)目使用;也可縱向復(fù)用,滿足同項(xiàng)目中更高層級(jí)的集成。
(2)UVM為達(dá)到覆蓋率驅(qū)動(dòng)(CDV)提供了最佳的框架。覆蓋率驅(qū)動(dòng)結(jié)合受約束隨機(jī)激勵(lì)、自動(dòng)檢查以及覆蓋指標(biāo),可節(jié)省驗(yàn)證時(shí)間。
(3)采用UVM方法學(xué)便于測(cè)試維護(hù),在不修改Testbench情況下,通過(guò)修改testcase的方式來(lái)改變測(cè)試用例,提高測(cè)試靈活性和效率。
2.1UVM測(cè)試平臺(tái)Testbench
UVM 測(cè)試平臺(tái)由可復(fù)用的驗(yàn)證組件(verification component)構(gòu)成。驗(yàn)證組件是封裝的、易用的可配置驗(yàn)證環(huán)境,用于進(jìn)行子模塊設(shè)計(jì)、接口協(xié)議等驗(yàn)證。這些驗(yàn)證組件存儲(chǔ)于驗(yàn)證人員的自開(kāi)發(fā)IP組件庫(kù)中,它們可以被方便的使用,在需要時(shí)根據(jù)驗(yàn)證人員的需求可靈活復(fù)用于多種驗(yàn)證環(huán)境[4],快速搭建起所需要的測(cè)評(píng)平臺(tái)。
圖1展示了一個(gè)驗(yàn)證環(huán)境,它由兩個(gè)agent和一個(gè)virtual sequencer構(gòu)成。每個(gè)agent驗(yàn)證組件遵循一致的架構(gòu),由完整的激勵(lì)、檢查、覆蓋率統(tǒng)計(jì)單元集合而成。驗(yàn)證環(huán)境具有多路sequence機(jī)制(virtual sequencer),它將不同接口的時(shí)鐘及數(shù)據(jù)同步,實(shí)現(xiàn)對(duì)測(cè)試環(huán)境的控制及信號(hào)激勵(lì)。
圖1 UVM測(cè)試平臺(tái)
2.2UVM 類庫(kù)
圖2 UVM類庫(kù)
UVM類庫(kù)以基類形式為創(chuàng)建新的驗(yàn)證組件提供標(biāo)準(zhǔn)化的可派生模板。這種類似于積木的基本構(gòu)件,用戶可快速開(kāi)發(fā)可復(fù)用的架構(gòu)、更優(yōu)的驗(yàn)證組件及驗(yàn)證環(huán)境。常用的UVM類庫(kù)主要基于兩個(gè)典型的基類派生出來(lái)。uvm_component,用來(lái)搭建testbench架構(gòu); uvm_transaction,用于激勵(lì)產(chǎn)生及分析[6]。uvm_object是其共同的基類,提供uvm類的基礎(chǔ)服務(wù)功能,例如類的創(chuàng)建、拷貝、克隆、顯示、比較等[6]。
2.3UVM組件成員
基于事務(wù)的可復(fù)用模塊一般具有transaction,driver,sequencer,monitor,agent等組件。
(1)Transaction (Data items)
Transaction是對(duì)接口時(shí)序的事務(wù)層抽象描述。被測(cè)對(duì)象DUT內(nèi)部及其接口采用信號(hào)級(jí)的描述,在TestBench內(nèi)部各個(gè)組件之間普遍采用事務(wù)級(jí)描述進(jìn)行數(shù)據(jù)交互。Transaction是對(duì)DUT的輸入,如網(wǎng)絡(luò)包、總線事務(wù)或操作指令[6]。
(2)Driver
Driver通常是接口agent中的組成部分,用于實(shí)現(xiàn)將事務(wù)級(jí)描述的激勵(lì)轉(zhuǎn)化為信號(hào)級(jí)的激勵(lì)驅(qū)動(dòng)到被測(cè)對(duì)象。Driver可控制讀/寫功能、地址總線和數(shù)據(jù)總線。典型的driver持續(xù)接收transaction,采樣并將其驅(qū)動(dòng)到DUT[6]。
(3)Sequencer
Sequencer通常是接口agent的組成部分,用于向Driver分發(fā)激勵(lì)事務(wù)。默認(rèn)情況下,sequencer類似簡(jiǎn)單的激勵(lì)發(fā)生器,它依據(jù)driver的請(qǐng)求來(lái)提供隨機(jī)transaction[6]。
(4)Monitor
Monitor通常是agent的組成部分,是被動(dòng)組件,它不驅(qū)動(dòng)DUT,僅觀測(cè)DUT信號(hào)。Monitor用于將觀測(cè)到的信號(hào)轉(zhuǎn)換為事務(wù),這些事務(wù)將其提供給其他組件進(jìn)行覆蓋率統(tǒng)計(jì)和bug檢測(cè)等[6]。
(5)Agent
Agent通常集成了driver,sequencer和monitor,通過(guò)接口(interface)與外界連接。Agent通常代表一個(gè)總線的功能模型,可以把事務(wù)級(jí)激勵(lì)轉(zhuǎn)化為信號(hào)級(jí)激勵(lì),也可以對(duì)總線的信號(hào)時(shí)序轉(zhuǎn)化為事務(wù)級(jí)描述以供其他驗(yàn)證組件分析。Agent可被配置為active或passive,其中Active agent能產(chǎn)生信號(hào)級(jí)的測(cè)試激勵(lì);Passive agent只能監(jiān)視DUT行為[6]。
(6)Environment
Environment是驗(yàn)證組件的頂層組件。它通常包含一個(gè)或多個(gè)agent,也可以包含其他的驗(yàn)證組件(例如monitor、scoreboard、virtual sequencer等),甚至可以包含已往開(kāi)發(fā)的environment。實(shí)現(xiàn)對(duì)內(nèi)部的組件配置,驗(yàn)證人員可以依據(jù)需要進(jìn)行復(fù)用。它主要是對(duì)驗(yàn)證環(huán)境建模,產(chǎn)生受約束的激勵(lì)、監(jiān)測(cè)DUT響應(yīng)、檢查協(xié)議的有效性及收集覆蓋率[6]。
圖3 env驗(yàn)證組件結(jié)構(gòu)
(7)sequence
sequence是UVM生成激勵(lì)的重要方法。 sequence內(nèi)包含名為body的task方法。驗(yàn)證工程師通過(guò)重寫task方法生成事務(wù)級(jí)的測(cè)試激勵(lì),這些事務(wù)級(jí)激勵(lì)將被sequencer取走并分發(fā)給Driver,最終轉(zhuǎn)化為信號(hào)級(jí)激勵(lì)。sequence既可以從頭開(kāi)始,也可以直接集成以往開(kāi)發(fā)的多個(gè)sequence。當(dāng)使用sequence時(shí),body被創(chuàng)建并執(zhí)行。Body方法被用來(lái)執(zhí)行其他sequence或直接產(chǎn)生seq_item對(duì)象并通過(guò)sequencer組件發(fā)送給driver組件。sequence獨(dú)立于testbench組件,這樣可以很方便的定義新測(cè)試用例,提高測(cè)試的靈活性及效率[6]。
圖4 sequence工作原理
本節(jié)以安全級(jí)DCS儀控系統(tǒng)某通信路由器為被測(cè)對(duì)象,簡(jiǎn)要介紹通信路由器內(nèi)FPGA功能及模塊組成。
3.1通信路由器的功能
此通信路由器主要完成以下功能:
(1)通信路由器實(shí)現(xiàn)轉(zhuǎn)發(fā)或直通兩種通信模式。
(2)路由器接收來(lái)自網(wǎng)絡(luò)通信板卡的通信模式切換指令,并根據(jù)切換指令和當(dāng)前工作模式,實(shí)現(xiàn)轉(zhuǎn)發(fā)和直通模式的相互切換功能。
(3)將系統(tǒng)運(yùn)行狀態(tài)傳輸給網(wǎng)絡(luò)通信板卡。
圖5 通信路由器功能示意(①表示直通模式,②表示轉(zhuǎn)發(fā)模式)
3.2FPGA功能模塊
圖6 FPGA功能模塊
通信路由器核心功能由FPGA實(shí)現(xiàn)。FPGA有4個(gè)千兆PHY接口模塊,switch切換管理模塊, rs485接口模塊, miim寄存器管理模塊,狀態(tài)收集模塊等構(gòu)成。
其中RS485接口模塊接收來(lái)自網(wǎng)絡(luò)通信板卡的模式切換指令并傳遞給switch模塊,將路由器工作狀態(tài)通過(guò)RS485傳輸給網(wǎng)絡(luò)通信板卡;switch模塊實(shí)現(xiàn)轉(zhuǎn)發(fā)模式或直通模式功能的切換;4個(gè)PHY接口完成與外部千兆PHY器件數(shù)據(jù)收發(fā)功能,實(shí)現(xiàn)GMII時(shí)序;miim管理模塊對(duì)phy器件初始化,分時(shí)對(duì)phy進(jìn)行寄存器讀寫;status_collector模塊收集路由器運(yùn)行狀態(tài)并通過(guò)RS485接口模塊上傳到網(wǎng)絡(luò)通信板卡。
依據(jù)產(chǎn)品需求說(shuō)明書中的詳細(xì)需求,制定被驗(yàn)證對(duì)象的測(cè)試大綱。依據(jù)測(cè)試大綱中規(guī)定的測(cè)試項(xiàng)要求,即可開(kāi)展驗(yàn)證平臺(tái)的搭建工作。仿真測(cè)試針對(duì)FPGA的頂層模塊及一級(jí)模塊。
4.1驗(yàn)證平臺(tái)
Top層module包含初始化過(guò)程,通過(guò)調(diào)用UVM的run_test方法來(lái)實(shí)現(xiàn)。Run_test開(kāi)啟UVM phase的執(zhí)行,UVM phase控制著testbench建立、激勵(lì)產(chǎn)生及仿真結(jié)果上報(bào)等活動(dòng)的執(zhí)行順序。
圖7 測(cè)試平臺(tái)環(huán)境
在仿真驗(yàn)證執(zhí)行前,需要建立所需的驗(yàn)證組件庫(kù)。在驗(yàn)證組件庫(kù)建立之后,依據(jù)驗(yàn)證需要建立top驗(yàn)證環(huán)境,驗(yàn)證環(huán)境由DUT和驗(yàn)證組件組成。驗(yàn)證開(kāi)發(fā)人員可以單獨(dú)開(kāi)發(fā)測(cè)試用例,依據(jù)測(cè)試大綱,編制不同的sequence,形成不同的測(cè)試用例。
4.2創(chuàng)建agent 組件庫(kù)
針對(duì)FPGA主要功能模塊,開(kāi)發(fā)了與主要功能相對(duì)應(yīng)的agent驗(yàn)證組件。包括用于驗(yàn)證串行通信的rs485驗(yàn)證組件,驗(yàn)證寄存器管理模塊的miim驗(yàn)證組件,驗(yàn)證千兆PHY接口的gmii驗(yàn)證組件。
rs485_agent主要功能為:模擬通信網(wǎng)絡(luò)板卡向DUT發(fā)送模式切換指令。在rs485 agent組件的 monitor中對(duì)觀測(cè)到的串行數(shù)據(jù)位進(jìn)行正確性檢查,并對(duì)數(shù)據(jù)傳輸時(shí)間進(jìn)行檢查。
miim_agent主要功能:模擬外部PHY器件的miim管理功能,實(shí)現(xiàn)MDC和MDIO,用來(lái)傳送MAC層的控制信息和物理層的狀態(tài)信息。來(lái)自通信路由器miim接口的控制信號(hào)可以通過(guò)它訪問(wèn)模擬的PHY器件;模擬PHY器件的狀態(tài)返回給通信路由器miim接口。miim_agent組件的monitor中實(shí)現(xiàn)對(duì)MDC時(shí)鐘進(jìn)行檢查以及控制幀及狀態(tài)幀的正確性檢查。
gmii_agent主要功能:模擬千兆PHY器件的物理層。通過(guò)它將以太網(wǎng)幀發(fā)送給FPGA的phy接口;同時(shí)它可以接收來(lái)自FPGA中phy接口傳送來(lái)的以太網(wǎng)幀。gmii_agent組件的monitor實(shí)現(xiàn)對(duì)以太網(wǎng)幀的正確性及時(shí)序的檢查。
此外開(kāi)發(fā)了async_gpio_agent及sync_gpio_agent組件,用于實(shí)現(xiàn)復(fù)位功能及狀態(tài)觀測(cè)功能。
4.3創(chuàng)建env組件庫(kù)
將agent組件集成到env組件中,形成更高級(jí)別組件。針對(duì)被測(cè)FPGA的主要功能,開(kāi)發(fā)了相應(yīng)的env組件。主要組件有:用于驗(yàn)證RS485切換指令及狀態(tài)的mode_cmd_env,用于驗(yàn)證miim接口功能的phy_miim_env,用于驗(yàn)證直通及轉(zhuǎn)發(fā)功能的one_way_env。
4.3.1mode_cmd_env組件
圖8 mode_cmd_env的組成
mode_cmd_env負(fù)責(zé)向DUT發(fā)送切換指令,并檢查DUT狀態(tài)是否如實(shí)切換。mode_cmd_env中例化了如下agent:
(1)async_gpio_agent #(1) 組件類型的reset_agent,用于采集復(fù)位信號(hào);
(2)sd485_agent組件類型的cmd_in_agent,用于模擬通信板卡的行為,將切換指令發(fā)送給DUT的485模塊的i_rxd串行接收端口;
(3)async_gpio_agent #(1)組件類型的sd485_cmd_sig_ agent,用于采集監(jiān)視來(lái)自DUT內(nèi)部485模塊的串行i_rxd指令接口端口的data信號(hào);
(4)sync_gpio_agent #(2)組件類型的cmd_out_agent,用來(lái)采集并監(jiān)測(cè)DUT內(nèi)部485模塊的輸出到DUT內(nèi)部switch模塊的輸出切換命令。
此外創(chuàng)建mode_cmd_scoreboard組件類型的 mc_sb,此scoreboard類型的組件用來(lái)檢查模擬的通信板卡發(fā)出的切換指令、被測(cè)路由器接收到的串行指令i_rxd以及路由器485模塊發(fā)送給switch模塊的切換指令的正確性及一致性。
4.3.2one_way_env組件
one_way_env負(fù)責(zé)DUT四個(gè)千兆PHY接口在直通或轉(zhuǎn)發(fā)狀態(tài)下的數(shù)據(jù)產(chǎn)生與接收,檢查DUT的switch模塊直通及轉(zhuǎn)發(fā)狀態(tài)是否正確,并檢查數(shù)據(jù)的一致性及正確性。
one_way_env中例化了如下agent:
圖9 mode_cmd_env的組成
(1)gmii_agent組件類型的 fr_gmii_agent,用于模擬PHY器件的通信功能,與DUT的光口接收端口連接。
(2)gmii_agent組件類型的 ft_gmii_agent,用于模擬PHY器件的通信功能,與DUT的光口發(fā)送端口連接。
(3)gmii_agent組件類型的 cr_gmii_agent,用于模擬PHY器件的通信功能,與DUT的電口接收端口連接。
(4)gmii_agent組件類型的 ct_gmii_agent,用于模擬PHY器件的通信功能,與DUT的電口發(fā)送端口連接。
(5)async_gpio_agent組件類型的get_reset_agent,用于采集復(fù)位信號(hào)。
(6)sync_gpio_agent組件類型的get_cut_fwd_agent,用于采集來(lái)自DUT的 switch模塊中輸出的直通及轉(zhuǎn)發(fā)的指示狀態(tài)。
此外,創(chuàng)建了one_way_scoreboard組件類型的sc,此scoreboard類型的組件用來(lái)檢查直通或轉(zhuǎn)發(fā)狀態(tài)下,DUT的四個(gè)PHY接口的數(shù)據(jù)接收及發(fā)送的一致性及正確性,以及檢查switch狀態(tài)機(jī)是否正確。
4.3.3phy_miim_env組件
圖10 phy_miim_env組成
用于配置DUT四個(gè)PHY接口,并檢查配置信息的正確性。phy_miim_env中例化了如下agent:
(1)miim_agent組件類型的fiber_miim_agent,用于模擬光口通訊的外部phy器件的miim管理功能。
(2)miim_agent組件類型的 copper_miim_agent,用于模擬電口通訊的外部phy器件的miim管理功能。
(3)創(chuàng)建了fiber_phy_config_scoreboard組件類型的fpc_ sb,此scoreboard類型的組件,用于檢查DUT的光口配置信息是否正確。
(4)創(chuàng)建了copper_phy_config_scoreboard組件類型的cpc_ sb,此scoreboard類型的組件,用于檢查DUT的電口配置信息是否正確。
4.4創(chuàng)建虛sequencer 組件
虛sequenceer組件類型的vir_sqr用于建立測(cè)試用例的驅(qū)動(dòng)序列與testbench內(nèi)部組件的連接。在Testbench中,虛sequencer創(chuàng)建了如下信號(hào):
ext_reset_sqr用于實(shí)現(xiàn)對(duì)復(fù)位信號(hào)序列控制。cmd485_sqr用于實(shí)現(xiàn)對(duì)切換指令的控制。
top_r0_fr_gmii_sqr用于實(shí)現(xiàn)對(duì)頂層r0光口千兆PHY序列的控制。
top_r0_cr_gmii_sqr用于實(shí)現(xiàn)對(duì)頂層r0電口千兆PHY序列的控制。
top_r1_fr_gmii_sqr用于實(shí)現(xiàn)對(duì)頂層r1光口千兆PHY序列的控制。
top_r1_cr_gmii_sqr用于實(shí)現(xiàn)對(duì)頂層r1電口千兆PHY序列的控制。
copper_miim_sqr用于實(shí)現(xiàn)對(duì)電口PHY接口的miim管理序列的控制。fiber_miim_sqr用于在制定測(cè)試用例時(shí),實(shí)現(xiàn)對(duì)光口PHY接口的miim管理序列的控制。
4.5創(chuàng)建Testbench組件
將mode_cmd_env、one_way_env和phy_miim_env等組件集成到以whole_tb0命名的Testbench中。
圖11 Testbench組成
whole_tb0屬于uvm_env類型,在whole_tb0中例化了如下組件:
(1)async_gpio_agent組件類型ext_reset_agent,用于產(chǎn)生驗(yàn)證環(huán)境中的復(fù)位信號(hào)。可控制定向產(chǎn)生或受約束的隨機(jī)復(fù)位信號(hào)。
(2)oneway_env組件類型的 top_r0_env,top_r1_env。DUT的頂層具有正反兩個(gè)方向的雙向通信通路,因此對(duì)頂層的兩個(gè)通信方向r0和r1例化兩個(gè)env。
(3)oneway_env 組件類型的switch0_r0_env,switch1_r0_ env,switch2_r0_env,switch0_r1_env,switch1_r1_env,switch2_ r1_env。DUT頂層為雙向通訊通路r0及r1兩個(gè)方向,其中每個(gè)通信方向均做了三重冗余處理,因此每個(gè)方向例化三個(gè)env。
(4)phy_miim_env組件類型的top_miim_env。用于配置DUT四個(gè)PHY接口,并檢查配置信息的正確性。
(5)mode_cmd_env組件類型的 top_cmd485_env。負(fù)責(zé)向DUT發(fā)送切換指令。
(6)sync_gpio_agen組件類型的6個(gè)agent組件。用于對(duì)頂層2個(gè)通信方向和r0及r1的冗余通路的直通或轉(zhuǎn)發(fā)狀態(tài)進(jìn)行采集和觀測(cè)。
vir_sequencer組件類型的vir_sqr。虛sequencer組件類型的vir_ sqr用于建立測(cè)試用例的驅(qū)動(dòng)序列與testbench內(nèi)部組件的連接。
驗(yàn)證平臺(tái)搭建完成后,即可依據(jù)測(cè)試大綱開(kāi)展仿真測(cè)試。結(jié)合黑盒及白盒測(cè)試方法進(jìn)行正常功能、異常功能測(cè)試、性能測(cè)試、接口和配置測(cè)試等。
仿真工具采用Questasim軟件。以UVM測(cè)試平臺(tái)發(fā)現(xiàn)的轉(zhuǎn)發(fā)模式時(shí)通信數(shù)據(jù)不一致的錯(cuò)誤為例,簡(jiǎn)要說(shuō)明一下UVM方法仿真發(fā)現(xiàn)缺陷過(guò)程。在仿真環(huán)境中運(yùn)行測(cè)試用例run_tc_forwarding_ mode.bat,查看是否有報(bào)錯(cuò)來(lái)檢查是否發(fā)現(xiàn)缺陷。如圖12所示,通過(guò)在scoreboard組件內(nèi)的數(shù)據(jù)一致性檢查程序發(fā)現(xiàn)在運(yùn)行時(shí)間到17496172ns時(shí),發(fā)現(xiàn)在轉(zhuǎn)發(fā)模式下數(shù)據(jù)不一致錯(cuò)誤,并上報(bào)UVM_ERROR。圖12提示,在通信通路r0發(fā)現(xiàn)轉(zhuǎn)發(fā)模式下,光口fr數(shù)據(jù)與電口ct數(shù)據(jù)不一致。
圖12 transcript報(bào)告發(fā)現(xiàn)的錯(cuò)誤
打開(kāi)wave波形對(duì)此缺陷進(jìn)行確認(rèn),如圖13所示,發(fā)現(xiàn)光口數(shù)據(jù)fr的第二個(gè)數(shù)據(jù)f4(圓圈中所示數(shù)據(jù)),在電口ct(橢圓圈中所示數(shù)據(jù))被重復(fù)發(fā)送3次。說(shuō)明在FPGA內(nèi)部數(shù)據(jù)轉(zhuǎn)發(fā)處理中,存在處理缺陷。
這類缺陷是采用UVM受約束隨機(jī)激勵(lì)方法結(jié)合自動(dòng)檢查程序發(fā)現(xiàn),如果此類錯(cuò)誤通過(guò)人工查看圖形來(lái)檢查,每一幀數(shù)據(jù)有1000多個(gè),如果人工逐個(gè)對(duì)比數(shù)據(jù),是很難發(fā)現(xiàn)的。
本文介紹了UVM方法在核電儀控某通信路由器可編程邏輯仿真驗(yàn)證中的應(yīng)用。采用UVM方法,建立IP核組件庫(kù)(agent組件、env組件)。采用獨(dú)立開(kāi)發(fā)的測(cè)試IP,可以很靈活的復(fù)用,為搭建仿真測(cè)試環(huán)境帶來(lái)方便,簡(jiǎn)化了過(guò)程。采用受約束隨機(jī)激勵(lì)結(jié)合自動(dòng)檢查技術(shù),避免單純用人工檢查,在保證與傳統(tǒng)方法同等覆蓋率的基礎(chǔ)上,提高了測(cè)試自動(dòng)化水平。
Applications of UVM in Nuclear Safety Level Programmable Logic Simulation Verificatio
核電DCS系統(tǒng)中大量應(yīng)用CPLD及FPGA產(chǎn)品,可編程邏輯產(chǎn)品的仿真驗(yàn)證是保證產(chǎn)品質(zhì)量的重要環(huán)節(jié)。本文不同于傳統(tǒng)的驗(yàn)證方法,首次將UVM驗(yàn)證方法應(yīng)用于核安全級(jí)DCS產(chǎn)品可編程邏輯驗(yàn)證。采用獨(dú)立開(kāi)發(fā)的測(cè)試IP,通過(guò)靈活復(fù)用,為搭建仿真測(cè)試環(huán)境帶來(lái)方便,簡(jiǎn)化了過(guò)程。采用受約束隨機(jī)激勵(lì)及自動(dòng)檢查保證測(cè)試的準(zhǔn)確性及充分性,避免單純用人工檢查,在保證覆蓋率指標(biāo)的基礎(chǔ)上,提高了測(cè)試自動(dòng)化水平。目前,此方法已經(jīng)用于DCS系統(tǒng)通信路由以及優(yōu)選裝置的邏輯驗(yàn)證。
UVM方法學(xué);核安全級(jí);可編程邏輯;仿真驗(yàn)證
A large number of FPGA and CPLD products are used in nuclear DCS systems, and the simulation verification for programmable logic products is an important link to ensure the quality of DCS products. In this paper, different from traditional verification methods, UVM method was first used in verification of programmable logic product in nuclear safety level DCS system. The independently developed test IP components were adopted, and by flexible reuse of them, we made it convenient to build simulation test environment, and the test process is thus simplified. Constrained random excitation and automatic check were used to ensure the accuracy and adequacy of the test, which avoided manual inspection and improved the level of test automation while ensuring the coverage index. Currently, this method has already been used in the verification of communication routing and optimization device in DCS systems.
UVM methodology; Nuclear safety level; Programmable logic; Simulation verification