国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于UVM 的節(jié)能化電梯運(yùn)行控制系統(tǒng)設(shè)計(jì)和驗(yàn)證

2023-04-13 02:02梁光勝李朝洋楊松梁兆楷
電子制作 2023年4期
關(guān)鍵詞:參考模型狀態(tài)機(jī)覆蓋率

梁光勝,李朝洋,楊松,梁兆楷

(華北電力大學(xué) 電氣與電子工程學(xué)院,北京,102206)

0 引言

隨著集成電路復(fù)雜度增長(zhǎng),驗(yàn)證工作成為制約集成電路發(fā)展的瓶頸,高效的驗(yàn)證方法不僅能確保設(shè)計(jì)功能正常,還可以提高設(shè)計(jì)效率[1~2]。隨著城市化進(jìn)程日益加快,電梯使用量增加,電梯能耗在建筑總能耗中占比較大,節(jié)能化電梯日益受到重視[3~4]。本文從提升驗(yàn)證效率和可靠性角度,以SystemVerilog 為驗(yàn)證語(yǔ)言,以電梯運(yùn)行控制系統(tǒng)為DUT,搭建了基于UVM 的驗(yàn)證平臺(tái),采用受約束的隨機(jī)測(cè)試用例,通過(guò)收集覆蓋率完成對(duì)測(cè)試進(jìn)展的度量,根據(jù)仿真結(jié)果優(yōu)化驗(yàn)證環(huán)境,提高UVM 驗(yàn)證平臺(tái)的高重用性、可移植性、可靠性和可擴(kuò)展性。

1 節(jié)能化電梯運(yùn)行控制系統(tǒng)的設(shè)計(jì)

1.1 節(jié)能化電梯運(yùn)行控制系統(tǒng)的功能規(guī)劃

電梯運(yùn)行控制系統(tǒng)以FPGA 作為核心控制芯片,通過(guò)按鍵模擬外部各種信號(hào)的輸入,借助LED 亮滅和數(shù)碼管顯示模擬真實(shí)電梯的運(yùn)行過(guò)程,系統(tǒng)可實(shí)現(xiàn)對(duì)電梯多種運(yùn)行模式的轉(zhuǎn)換與控制。

節(jié)能化電梯運(yùn)行控制系統(tǒng)的主要功能如下:①響應(yīng)電梯轎廂內(nèi)外的按鍵請(qǐng)求指令,按方向優(yōu)先原則依次響應(yīng);②當(dāng)電梯運(yùn)行到各個(gè)樓層時(shí),相應(yīng)樓層指示燈亮起,數(shù)碼管顯示樓層數(shù);③外部控制開關(guān),一層只有向上按鈕,頂層只有向下按鈕,其余樓層有上下行按鈕;④具有超載報(bào)警、預(yù)超載和故障報(bào)警功能,此時(shí)電梯門處于打開狀態(tài),直至故障解除;⑤同一時(shí)間既有上行又有下行指令時(shí),電梯會(huì)在響應(yīng)完同一方向指令后再響應(yīng)另一方向指令;⑥電梯在高峰時(shí)段自動(dòng)切換到分層模式,電梯只響應(yīng)奇數(shù)層呼梯信號(hào);⑦當(dāng)沒(méi)有呼梯指令時(shí),電梯會(huì)在指定時(shí)間后自行關(guān)閉電梯門和轎廂照明,進(jìn)入低功耗等待狀態(tài)。

1.2 FPGA 控制模塊的頂層設(shè)計(jì)

采用自頂向下的設(shè)計(jì)方法,電梯運(yùn)行控制系統(tǒng)中FPGA控制模塊頂層架構(gòu)設(shè)計(jì)如圖1 所示,由信號(hào)控制、運(yùn)動(dòng)判斷、運(yùn)動(dòng)狀態(tài)機(jī)和輸出控制模塊組成。

圖1 FPGA 控制模塊的頂層架構(gòu)

1.3 運(yùn)動(dòng)判斷模塊的設(shè)計(jì)

運(yùn)動(dòng)判斷模塊是電梯運(yùn)行的主要控制模塊。根據(jù)電梯運(yùn)行方向優(yōu)先原則和運(yùn)行警示原則對(duì)輸入信號(hào)賦予不同的優(yōu)先級(jí),其中轎廂所處樓層優(yōu)先級(jí)最低。超重信號(hào)和預(yù)超重信號(hào)優(yōu)先級(jí)最高,處于第一優(yōu)先級(jí),其有效時(shí)整個(gè)電梯進(jìn)入等待狀態(tài)。上下行脈沖處于第二優(yōu)先級(jí),在上行脈沖有效時(shí),上行信號(hào)優(yōu)先級(jí)高于下行信號(hào);在下行脈沖有效時(shí),下行信號(hào)優(yōu)先級(jí)高于上行信號(hào)。

1.4 運(yùn)動(dòng)狀態(tài)機(jī)的設(shè)計(jì)

電梯按照方向優(yōu)先和就近原則運(yùn)行,相同用戶指令在不同運(yùn)行狀態(tài)時(shí)會(huì)執(zhí)行不同的運(yùn)行程序。運(yùn)行狀態(tài)有上行態(tài)、下行態(tài)、空閑態(tài)。當(dāng)處于上行態(tài)時(shí),上行指令比下行指令優(yōu)先級(jí)高;當(dāng)電梯處于空閑態(tài)時(shí),與電梯??繕菍余徑挠脩糁噶顑?yōu)先級(jí)高。

判斷模塊輸出為狀態(tài)機(jī)輸入,主要信號(hào)包括上行、下行、到達(dá)相應(yīng)樓層、開門、關(guān)門、啟動(dòng)、結(jié)束。狀態(tài)機(jī)有空閑、等待、上行、下行、開關(guān)門5 種狀態(tài),如圖2 所示。

圖2 電梯運(yùn)行控制系統(tǒng)的狀態(tài)機(jī)

2 UVM 驗(yàn)證平臺(tái)的構(gòu)建

采用SystemVerilog 構(gòu)建層次化和模塊化的UVM 驗(yàn)證平臺(tái),主要目的是確保待測(cè)模塊的正確性與完備性,主要任務(wù)是模擬待測(cè)模塊可能出現(xiàn)的情況,產(chǎn)生相應(yīng)隨機(jī)化激勵(lì)信號(hào),驅(qū)動(dòng)待測(cè)模塊運(yùn)行[5~8]。

2.1 UVM 驗(yàn)證平臺(tái)的架構(gòu)

UVM 驗(yàn)證平臺(tái)的架構(gòu)如圖3 所示,包括待測(cè)模塊DUT、驅(qū)動(dòng)模塊Driver、監(jiān)測(cè)模塊Monitor、激勵(lì)產(chǎn)生模塊Sequence、激勵(lì)仲裁模塊Sequencer、參考模型Reference Model、比較器Scoreboard、驗(yàn)證環(huán)境Agent和Env、測(cè)試頂層Top 等組件。

圖3 UVM 驗(yàn)證平臺(tái)的架構(gòu)

sequence 產(chǎn)生待測(cè)模塊的所有激勵(lì)信號(hào),并包裝成transaction 事務(wù)包,發(fā)送給sequencer,sequencer 進(jìn)行內(nèi)部檢查確認(rèn)后再發(fā)送給driver,driver 用這些激勵(lì)信號(hào)驅(qū)動(dòng)DUT 和參考模型,monitor 對(duì)DUT 輸入輸出結(jié)果監(jiān)測(cè),計(jì)分板將收集并比對(duì)DUT 的輸出和參考模型的結(jié)果。

由于driver、sequencer 和monitor 使用同一通信協(xié)議且結(jié)構(gòu)相似,因此可集成在一個(gè)agent 中。而agent、scoreboard 和參考模型屬于同一層次的模塊,將其集成在一起構(gòu)成了整個(gè)驗(yàn)證平臺(tái)的基本框架,同時(shí)也構(gòu)建了UVM驗(yàn)證平臺(tái)的樹形結(jié)構(gòu)。

2.2 UVM 驗(yàn)證平臺(tái)的通信傳輸機(jī)制

UVM 驗(yàn)證平臺(tái)各組件采用TLM 通信方式,成功地將模塊內(nèi)的計(jì)算和模塊之間的通信從時(shí)間跨度方面剝離開,通過(guò)事務(wù)級(jí)端口將各組件通信時(shí)所需變量和約束條件打包傳輸,采用虛擬接口完成DUT與驗(yàn)證組件之間的通信和時(shí)序同步。

針對(duì)DUT 設(shè)置虛擬接口信號(hào),通過(guò)config_db 實(shí)現(xiàn)驗(yàn)證平臺(tái)與DUT 交互;Driver 組件通過(guò)模擬傳輸協(xié)議驅(qū)動(dòng)DUT 和參考模型;參考模型以新編程語(yǔ)言編寫待測(cè)模塊代碼并將運(yùn)行結(jié)果傳給計(jì)分板;比較器將待測(cè)模塊和參考模型的輸出結(jié)果比對(duì)分析。

2.3 電梯運(yùn)行控制系統(tǒng)UVM 驗(yàn)證平臺(tái)實(shí)現(xiàn)

按照層次化和模塊化原則構(gòu)建UVM 驗(yàn)證平臺(tái),在頂層實(shí)例化電梯控制系統(tǒng),使用config_db 機(jī)制通信,首先在頂層完成set 操作:

uvm_config_db#(virtual ele_if)::set(null, "uvm_test_top.env.i_agt.drv", "vif", m_ahb_if);

uvm_config_db#(virtual ele_if)::set(null, "uvm_test_top.env.i_agt.mon", "vif", m_ahb_if);

其中第一個(gè)和第二個(gè)參數(shù)聯(lián)合起來(lái)組成目標(biāo)路徑,與此路徑符合的目標(biāo)才能收信。第一個(gè)參數(shù)必須是一個(gè)uvm_component 實(shí)例的指針,第二個(gè)參數(shù)是相對(duì)此實(shí)例的路徑。第三個(gè)參數(shù)表示一個(gè)記號(hào),用以說(shuō)明這個(gè)值是傳給目標(biāo)中的哪個(gè)成員,第四個(gè)參數(shù)是要設(shè)置的值。然后利用TLM 通信中g(shù)et 操作完成對(duì)虛擬接口數(shù)據(jù)的獲取,在底層driver 組件和monitor 組件中完成get 操作,同時(shí)判斷底層組件是否接收到虛擬接口中的數(shù)據(jù):

if(!uvm_config_db#(virtual ele_if)::get(this, "", "vif", vif))

‘uvm_error("NOVIF",{"virtual interface must be set for: ",get_full_name(),".vif"});

以此完成driver、monitor 與電梯控制系統(tǒng)的互聯(lián)通信。

驗(yàn)證平臺(tái)組件和待測(cè)模塊通過(guò)虛擬接口互聯(lián),避免使用絕對(duì)路徑,增強(qiáng)組件的可移植性和可重用性。虛擬接口的主要信號(hào)通過(guò)rand 語(yǔ)句將所要定義的信號(hào)變量設(shè)為隨機(jī)變量,完成對(duì)接口信號(hào)字段的定義和隨機(jī)化,使信號(hào)能取所定義范圍中任何一個(gè)隨機(jī)數(shù)。通過(guò)關(guān)鍵字constraint 約束隨機(jī)信號(hào),從而產(chǎn)生出有效的激勵(lì)供測(cè)試平臺(tái)調(diào)用。這種隨機(jī)化激勵(lì)完善了激勵(lì)的完備性,可測(cè)試出DUT 更多的邊界條件。虛擬接口主要信號(hào)包括各樓層按鍵信號(hào)rand bit [16:0] key、電梯使能信號(hào)rand bit key_en、電梯超載和預(yù)超載以及故障報(bào)警信號(hào)rand bit key_weight、電梯運(yùn)行模式控制信號(hào)rand bit [1:0] key_ctl、電梯運(yùn)行顯示信號(hào)rand bit [5:0] led、電梯樓層顯示信號(hào)rand bit [7:0] seven_tube。

Driver 和Monitor 是驗(yàn)證平臺(tái)與DUT 交互的組件,其功能是收集事務(wù)級(jí)數(shù)據(jù),根據(jù)待測(cè)模塊功能和時(shí)序要求將其轉(zhuǎn)換成DUT 各輸端口信號(hào)。Driver 繼承uvm_component的uvm_driver 類,首先通過(guò)宏完成driver 的工廠注冊(cè),將其登記在UVM 內(nèi)部網(wǎng)表;其次端口例化,build_phase完成與DUT 互聯(lián);最后run_phase 完成所有信號(hào)時(shí)序描述,將事務(wù)級(jí)端口數(shù)據(jù)轉(zhuǎn)換成信號(hào)級(jí)驅(qū)動(dòng)DUT。run_phase 包含reset_phase 和do_drive 等任務(wù),reset_phase 完成復(fù)位工作,do_drive 完成節(jié)能化電梯運(yùn)行控制系統(tǒng)端口的時(shí)序描述和事務(wù)級(jí)端口數(shù)據(jù)的轉(zhuǎn)換。

參考模型繼承uvm_component 類,是針對(duì)DUT 的驗(yàn)證基準(zhǔn),通過(guò)算法模仿DUT 的功能需求,并認(rèn)定所實(shí)現(xiàn)的功能是完全正確的。參考模型接入與DUT 相同的激勵(lì),其輸出與DUT 輸出自動(dòng)比對(duì),結(jié)果一致時(shí)認(rèn)為DUT 符合設(shè)計(jì)需求,不一致時(shí)判定DUT 存在錯(cuò)誤或缺陷。創(chuàng)建參考模型時(shí),需要完成組件繼承、宏的工廠注冊(cè),并定義與DUT 對(duì)應(yīng)的功能模塊;然后定義兩個(gè)端口,其中一個(gè)端口接受Driver發(fā)來(lái)的事務(wù)級(jí)信號(hào)作為輸入,另一端口則把輸出的事務(wù)級(jí)信號(hào)發(fā)送到Scoreboard 進(jìn)行數(shù)據(jù)的自動(dòng)比對(duì)。參考模型在build_phase 中完成初始化。當(dāng)輸入端口接收到Driver的信號(hào)時(shí),判斷電梯控制系統(tǒng)的運(yùn)行模式,將結(jié)果發(fā)送到Scoreboard 進(jìn)行比對(duì)。

在底層組件定義完畢后,創(chuàng)建驗(yàn)證環(huán)境Agent 和Env。每個(gè)測(cè)試的功能點(diǎn)可以使用不同的Agent 進(jìn)行打包,所有的Agent 統(tǒng)一在Env 中實(shí)例化,根據(jù)不同的需求調(diào)用不同的Agent。所有的env 都派生自u(píng)vm_env,與底層組件一樣使用uvm_component_utils宏來(lái)實(shí)現(xiàn)工廠注冊(cè)。在build_phase中使用new 函數(shù)完成i_agent、o_agent、參考模型和比較器等底層組件的實(shí)例化,并指定各個(gè)agent 的工作模式;在connect_phase 中使用uvm_tlm_analysis_fifo 完成各個(gè)組件的事務(wù)級(jí)通信。

3 節(jié)能化電梯運(yùn)行控制系統(tǒng)的驗(yàn)證

3.1 功能驗(yàn)證點(diǎn)提取

運(yùn)行UVM 驗(yàn)證平臺(tái),檢驗(yàn)電梯控制系統(tǒng)能否根據(jù)外界輸入正常工作,能否完成預(yù)期的各項(xiàng)功能,其功能驗(yàn)證點(diǎn)和方案如表1 所示。

表1 電梯運(yùn)行控制系統(tǒng)的功能驗(yàn)證點(diǎn)和驗(yàn)證方案

3.2 驗(yàn)證過(guò)程數(shù)據(jù)報(bào)告

編寫多個(gè)測(cè)試用例來(lái)驗(yàn)證不同測(cè)試點(diǎn)的完備性,利用VCS 編譯仿真并產(chǎn)生編譯報(bào)告、覆蓋率結(jié)果。通過(guò)make命令對(duì)各驗(yàn)證組件和DUT 編譯,若編譯成功則生成可執(zhí)行文件和編譯結(jié)果信息。通過(guò)運(yùn)行可執(zhí)行文件,選擇不同的測(cè)試項(xiàng)testcase 仿真,利用“'uvm_info”宏打印當(dāng)前比對(duì)的事務(wù)信息,比對(duì)成功時(shí)打印“Compare successfully”等信息,比對(duì)失敗則報(bào)錯(cuò)。電梯運(yùn)行控制系統(tǒng)的部分?jǐn)?shù)據(jù)報(bào)告如圖4 所示。

圖4 電梯運(yùn)行控制系統(tǒng)的部分?jǐn)?shù)據(jù)報(bào)告

3.3 DVE 界面波形

驗(yàn)證平臺(tái)通過(guò)虛擬接口與DUT 連接,將ele_slv_if.sv中虛擬接口信號(hào)導(dǎo)入DVE 波形分析器,選用不同測(cè)試用例就可得到DUT 不同的輸入輸出波形,如圖5 所示。

圖5 電梯運(yùn)行控制系統(tǒng)的部分運(yùn)行波形

3.4 覆蓋率

覆蓋率是評(píng)估驗(yàn)證工作進(jìn)度與驗(yàn)證是否完備的指標(biāo),包括代碼覆蓋率和功能覆蓋率。代碼覆蓋率分為語(yǔ)句覆蓋率、條件覆蓋率、決策覆蓋率、跳轉(zhuǎn)覆蓋率和狀態(tài)機(jī)覆蓋率,是衡量待測(cè)模塊運(yùn)行情況的標(biāo)準(zhǔn)。在仿真過(guò)程中EDA 軟件自動(dòng)收集代碼覆蓋率,當(dāng)參數(shù)NUMBER_PACKETS 為5000、TEST_MODE 為1、+ntb_random_SEED 為1651198619 時(shí),其覆蓋率報(bào)告如圖6 所示。

圖6 電梯運(yùn)行控制系統(tǒng)的覆蓋率報(bào)告

完成驗(yàn)證后再下載到FPGA 芯片中,應(yīng)用開發(fā)板中,可觀察到節(jié)能化電梯運(yùn)行控制系統(tǒng)功能已全部實(shí)現(xiàn),UVM 驗(yàn)證平臺(tái)的重用性和完備性良好。

4 結(jié)論

本文以電梯運(yùn)行系統(tǒng)為待測(cè)對(duì)象,搭建了UVM 通用驗(yàn)證平臺(tái),以覆蓋率為驗(yàn)證指標(biāo),檢測(cè)了UVM 驗(yàn)證平臺(tái)的高重用性、可移植性、可靠性和可擴(kuò)展性。

猜你喜歡
參考模型狀態(tài)機(jī)覆蓋率
民政部等16部門:到2025年村級(jí)綜合服務(wù)設(shè)施覆蓋率超80%
我國(guó)全面實(shí)施種業(yè)振興行動(dòng) 農(nóng)作物良種覆蓋率超過(guò)96%
基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
基于環(huán)境的軍事信息系統(tǒng)需求參考模型
語(yǔ)義網(wǎng)絡(luò)P2P參考模型的查詢過(guò)程構(gòu)建
基于噴丸隨機(jī)模型的表面覆蓋率計(jì)算方法
2015年湖南省活立木蓄積量、森林覆蓋率排名前10位的縣市區(qū)
基于參考模型的制造業(yè)MES需求建模
基于數(shù)據(jù)的PID設(shè)計(jì)方法比較
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
万盛区| 萨嘎县| 东丰县| 卓尼县| 仪陇县| 台州市| 兴安盟| 澄迈县| 彩票| 衢州市| 曲周县| 南康市| 安多县| 石渠县| 汉阴县| 涿州市| 万荣县| 阿勒泰市| 唐山市| 萨嘎县| 永福县| 广汉市| 太湖县| 乌拉特中旗| 永顺县| 横峰县| 珲春市| 女性| 上林县| 常熟市| 巩留县| 惠安县| 宜君县| 鄂托克前旗| 冷水江市| 巍山| 安福县| 丹棱县| 岑溪市| 高唐县| 南乐县|