在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VMM驗(yàn)證方法學(xué)的MCU驗(yàn)證環(huán)境

            基于VMM驗(yàn)證方法學(xué)的MCU驗(yàn)證環(huán)境

            作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

            1 簡介

            本文引用地址:http://www.biyoush.com/article/201609/303456.htm

            隨著設(shè)計(jì)的復(fù)雜程度不斷增加,要求把更多的資源放到驗(yàn)證上,不但要求驗(yàn)證能夠覆蓋所有的功能,還希望能夠給出大量的異常情況來檢查DUT對應(yīng)異常的處理狀態(tài),這在傳統(tǒng)測試方法下往往是難以實(shí)現(xiàn)的。此外,設(shè)計(jì)不斷地重用,而驗(yàn)證也希望能夠重用一樣的驗(yàn)證模塊,這就催生了層次化的驗(yàn)證方法。 Synopsys的 驗(yàn)證方法學(xué)提供了基于的驗(yàn)證方法,包括了有約束的隨機(jī)數(shù)生成,層次化的驗(yàn)證結(jié)構(gòu),以及以功能覆蓋率為指標(biāo)的驗(yàn)證流程。在本文中,圍繞Synopsys的(Verification Methodology Manual)構(gòu)建了一個(gè)MCU驗(yàn)證環(huán)境。

            2 DUT

            在這個(gè)環(huán)境中驗(yàn)證了一個(gè)8位MCU,該CPU時(shí)鐘周期即為指令周期,兼容MCU指令集,包含8位的運(yùn)算邏輯單元,包含了ACC、B、PSW等常用的寄存器,4組R0-R7的R寄存器,支持直接,間接尋址,支持位操作,跳轉(zhuǎn)指令可以為8位有符號(hào)相對地址跳轉(zhuǎn)或者11位,16位無符號(hào)絕對地址跳轉(zhuǎn)。

            4個(gè)優(yōu)先級(jí)12個(gè)中斷,中斷包括外部輸入中斷,以及串口和計(jì)數(shù)器等的內(nèi)部中斷,15位可編程Watchdog,另外包含程序ROM接口,外部RAM接口,內(nèi)部RAM以及SFR接口。MCU本身并不包含memory,所有的ROM以及RAM都是通過外部接口進(jìn)行通信,這里在環(huán)境里實(shí)現(xiàn)了行為級(jí)的 memory model,來保存程序代碼和數(shù)據(jù)。以下是MCU的簡要模塊框圖。

            MCU內(nèi)部結(jié)構(gòu)圖

            圖1 MCU內(nèi)部結(jié)構(gòu)

            這個(gè)MCU也是在原有基礎(chǔ)上改進(jìn)了指令周期,減少了大部分指令執(zhí)行所需的指令周期。因?yàn)椴糠种噶钏枰闹噶钪芷诘目s短,很多原有采樣和賦值時(shí)間相應(yīng)發(fā)生較大變化,在功能驗(yàn)證的基礎(chǔ)上,需要關(guān)注是否因此對下一條指令產(chǎn)生影響,特別是中斷和部分指令同時(shí)發(fā)生時(shí)的一些特殊情況。

            MCU的指令執(zhí)行都會(huì)通過讀寫RAM memory來實(shí)現(xiàn),另外所有的外設(shè)都會(huì)通過配置SFR memory來啟動(dòng)相應(yīng)功能,并會(huì)對相應(yīng)的SFR置位來顯示外設(shè)的工作結(jié)果或是狀態(tài),這里RAM memory和SFR memory內(nèi)容就是需要關(guān)注的檢測點(diǎn),只要保證RAM memory以及SFR memory內(nèi)容的正確,就可以驗(yàn)證MCU的所有功能正確。

            3 基于VMM的MCU驗(yàn)證結(jié)構(gòu)

            基于VMM的MCU驗(yàn)證就需要充分利用VMM的特點(diǎn),即為有約束的隨機(jī)數(shù)生成、自動(dòng)數(shù)據(jù)對比檢查,和功能覆蓋率收集。

            3.1 有約束的隨機(jī)指令生成

            傳統(tǒng)的MCU驗(yàn)證,需要寫匯編代碼,注入MCU程序ROM進(jìn)行仿真,匯編代碼的質(zhì)量和覆蓋率是影響驗(yàn)證的主要因素。除了可以將應(yīng)用程序作為 TestCase,只能根據(jù)驗(yàn)證目標(biāo)編寫對應(yīng)的TestCase。這樣的TestCase屬于Direct TestCase,只能覆蓋一部分功能,尤其是MCU有指令組合的情況,以及除了ALU單元的外設(shè)單元,當(dāng)外設(shè)單元與內(nèi)部指令并行工作,Direct TestCase往往是不能滿足要求的。這里,VMM提供了有約束的隨機(jī)數(shù)生成,可以將MCU指令集進(jìn)行分類,將同一格式的指令歸為一類,這樣可以通過一定的約束隨機(jī)的生成指令以及指令所需的參數(shù),在下一節(jié)的指令類中會(huì)詳細(xì)講解關(guān)于指令的分類與生成。指令生成后,實(shí)現(xiàn)了一個(gè)匯編器,這個(gè)匯編器是由C代碼實(shí)現(xiàn)的,通過DPI將MCU的C模型接入驗(yàn)證環(huán)境中,這樣生成的匯編指令可以實(shí)時(shí)轉(zhuǎn)化為16進(jìn)制代碼,并且直接讀入MCU的ROM進(jìn)行仿真。隨機(jī)指令生成,可以添加節(jié)省人力,并且給出更加特殊的TestCase,此外還可以對易錯(cuò)的情況添加額外的約束,讓邊緣情況測試幾率更大,從而做到更多的驗(yàn)證。

            3.2 自動(dòng)數(shù)據(jù)對比檢查

            寫匯編代碼,讀入程序ROM,通過仿真來觀測結(jié)果,結(jié)果的正確性通過波形觀察,這種驗(yàn)證方法測試數(shù)量比較有限,只能在人力控制范圍內(nèi)進(jìn)行驗(yàn)證,不適合于遞歸以及大量TestCase的驗(yàn)證。此外,在以往的MCU驗(yàn)證中,一旦發(fā)生功能錯(cuò)誤,真正的錯(cuò)誤點(diǎn)有可能是多個(gè)指令之前,需要往前查找波形,往往 debug時(shí)候查找問題源會(huì)耗費(fèi)大量時(shí)間,甚至有些深層次的問題因?yàn)椴粚儆隍?yàn)證目標(biāo),或者不在觀測點(diǎn)內(nèi),往往會(huì)被忽略。在環(huán)境里,已經(jīng)引入的隨機(jī)的指令生成,這就需要一個(gè)參照模型能夠生成對應(yīng)的參照結(jié)果。這里實(shí)現(xiàn)一個(gè)用C語言描述的MCU參照模型,同樣通過DPI將MCU的C模型接入驗(yàn)證環(huán)境中,這個(gè)模型以16進(jìn)制代碼作為輸入,可以在每一條指令執(zhí)行寫出一個(gè)參照結(jié)果。MCU的都是通過RAM保存數(shù)據(jù),SFR寄存器來保存狀態(tài),可以通過對比memory中的數(shù)據(jù),來保證MCU的每一條指令的工作狀態(tài)都是和參考模型是一致的。而且每次添加TestCase后都不需要觀測波形或是生成參照結(jié)果,甚至可以直接將應(yīng)用程序放入環(huán)境中加以測試。在環(huán)境里通過C參考模型寫出的每一條指令后的狀態(tài)會(huì)保存下來,由ScoreBoard來讀入,環(huán)境可以讀出MCU執(zhí)行程序 ROM后RAM和SFR的值并傳遞給ScoreBoard,由ScoreBoard來進(jìn)行自檢,并且在log中寫出自檢結(jié)果。

            3.3 功能覆蓋率收集

            在Direct TestCase下,匯編代碼都是特定目的的測試代碼,所關(guān)注的寄存器狀態(tài),或是真實(shí)指令執(zhí)行情況往往很難統(tǒng)計(jì),代碼覆蓋率能提供的信息相當(dāng)有限。在 VMM環(huán)境中,可以通過模型的執(zhí)行結(jié)果來統(tǒng)計(jì)指令的執(zhí)行情況,因?yàn)槟P秃蚏TL是功能一致的,內(nèi)部數(shù)據(jù)每條指令之后都會(huì)對比自檢,可以將模型運(yùn)行的結(jié)果和模型內(nèi)部對應(yīng)的SFR狀態(tài)位作為功能覆蓋率收集點(diǎn),將關(guān)注的功能寫為覆蓋率模型,在仿真中自動(dòng)收集,并在仿真所有TestCase后將覆蓋率結(jié)果合并在一起,給出一個(gè)最終的功能覆蓋率,這里要求功能覆蓋率和代碼覆蓋率都為100%。

            4 驗(yàn)證功能模塊的具體實(shí)現(xiàn)

            4.1 簡介

            以VMM為基礎(chǔ),實(shí)現(xiàn)了一個(gè)驗(yàn)證8位MCU的平臺(tái),這個(gè)平臺(tái)可以隨機(jī)生成一系列的指令,并且在每個(gè)指令后進(jìn)行自檢。下面就這個(gè)平臺(tái)的詳細(xì)實(shí)現(xiàn)加以介紹,4.2小節(jié)將會(huì)介紹隨機(jī)指令生成,以及Scenario約束的實(shí)現(xiàn),4.3小節(jié)將會(huì)介紹Driver部分,這里Driver實(shí)現(xiàn)了 Transactor的任務(wù),除了實(shí)現(xiàn)匯編,將16進(jìn)制代碼讀入ROM模型中,還要調(diào)用MCU的C模型并產(chǎn)生結(jié)果供后續(xù)ScoreBoard對比。 4.4小節(jié)將會(huì)介紹MCU的C模型,C模型行為是直接影響MCU是否正確的保證。4.5小節(jié)將會(huì)介紹memory模型的實(shí)現(xiàn),包括Internal SFR、Internal RAM、External SFR以及External RAM。4.6小節(jié)介紹過于ScoreBoard的自檢機(jī)制,以及自動(dòng)終止仿真的方法。4.7小節(jié)將會(huì)介紹關(guān)于功能覆蓋率模型的建立。


            上一頁 1 2 3 下一頁

            關(guān)鍵詞: SystemVerilog VMM

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉