0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實(shí)現(xiàn)一個(gè)驗(yàn)證MCU指令

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-29 17:00 ? 次閱讀

1 簡(jiǎn)介

隨著設(shè)計(jì)的復(fù)雜程度不斷增加,要求把更多的資源放到驗(yàn)證上,不但要求驗(yàn)證能夠覆蓋所有的功能,還希望能夠給出大量的異常情況來檢查DUT對(duì)應(yīng)異常的處理狀態(tài),這在傳統(tǒng)測(cè)試方法下往往是難以實(shí)現(xiàn)的。此外,設(shè)計(jì)不斷地重用,而驗(yàn)證也希望能夠重用一樣的驗(yàn)證模塊,這就催生了層次化的驗(yàn)證方法。Synopsys的 VMM驗(yàn)證方法學(xué)提供了基于SystemVerilog的驗(yàn)證方法,包括了有約束的隨機(jī)數(shù)生成,層次化的驗(yàn)證結(jié)構(gòu),以及以功能覆蓋率為指標(biāo)的驗(yàn)證流程。在本文中,圍繞Synopsys的VMM(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)相對(duì)地址跳轉(zhuǎn)或者11位,16位無符號(hào)絕對(duì)地址跳轉(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)行通信,這里在VMM環(huán)境里實(shí)現(xiàn)了行為級(jí)的 memory model,來保存程序代碼和數(shù)據(jù)。

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

MCU的指令執(zhí)行都會(huì)通過讀寫RAM memory來實(shí)現(xiàn),另外所有的外設(shè)都會(huì)通過配置SFR memory來啟動(dòng)相應(yīng)功能,并會(huì)對(duì)相應(yīng)的SFR置位來顯示外設(shè)的工作結(jié)果或是狀態(tài),這里RAM memory和SFR memory內(nèi)容就是需要關(guān)注的檢測(cè)點(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ù)對(duì)比檢查,和功能覆蓋率收集。

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

傳統(tǒng)的MCU驗(yàn)證,需要寫匯編代碼,注入MCU程序ROM進(jìn)行仿真,匯編代碼的質(zhì)量和覆蓋率是影響驗(yàn)證的主要因素。除了可以將應(yīng)用程序作為 TestCase,只能根據(jù)驗(yàn)證目標(biāo)編寫對(duì)應(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,此外還可以對(duì)易錯(cuò)的情況添加額外的約束,讓邊緣情況測(cè)試幾率更大,從而做到更多的驗(yàn)證。

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

寫匯編代碼,讀入程序ROM,通過仿真來觀測(cè)結(jié)果,結(jié)果的正確性通過波形觀察,這種驗(yàn)證方法測(cè)試數(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),或者不在觀測(cè)點(diǎn)內(nèi),往往會(huì)被忽略。在環(huán)境里,已經(jīng)引入的隨機(jī)的指令生成,這就需要一個(gè)參照模型能夠生成對(duì)應(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),可以通過對(duì)比memory中的數(shù)據(jù),來保證MCU的每一條指令的工作狀態(tài)都是和參考模型是一致的。而且每次添加TestCase后都不需要觀測(cè)波形或是生成參照結(jié)果,甚至可以直接將應(yīng)用程序放入環(huán)境中加以測(cè)試。在環(huán)境里通過C參考模型寫出的每一條指令后的狀態(tài)會(huì)保存下來,由ScoreBoard來讀入,環(huán)境可以讀出MCU執(zhí)行程序 ROM后RAM和SFR的值并傳遞給ScoreBoard,由ScoreBoard來進(jìn)行自檢,并且在log中寫出自檢結(jié)果。

3.3 功能覆蓋率收集

在Direct TestCase下,匯編代碼都是特定目的的測(cè)試代碼,所關(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ì)對(duì)比自檢,可以將模型運(yùn)行的結(jié)果和模型內(nèi)部對(duì)應(yīng)的SFR狀態(tài)位作為功能覆蓋率收集點(diǎn),將關(guān)注的功能寫為覆蓋率模型,在仿真中自動(dòng)收集,并在仿真所有TestCase后將覆蓋率結(jié)果合并在一起,給出一個(gè)最終的功能覆蓋率,這里要求功能覆蓋率和代碼覆蓋率都為100%。

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

4.1 簡(jiǎn)介

以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對(duì)比。 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)于功能覆蓋率模型的建立。

4.2 指令數(shù)據(jù)包以及Scenario Generator

在VMM環(huán)境中,所有的數(shù)據(jù)都是擴(kuò)展vmm_data得到,在這里首先對(duì)指令分類,相同格式的指令皆為同一類型

分類的依據(jù)在于指令格式,例如對(duì)從工作寄存器Rn到A的操作,或是從直接地址Rx到A的操作,這樣可以通過約束一個(gè)種類來隨機(jī)化指令格式,生成指令格式以后可以根據(jù)指令格式來填入相應(yīng)的隨機(jī)值。首先就是約束指令格式對(duì)應(yīng)的指令,代碼如:

constraint add_mode_decide_kind{

(addr_mode==RN_A) -> kind inside {MOV, ADD, ADDC, SUBB, XCH, ANL, ORL, XRL};

(addr_mode==RX_A) -> kind inside {MOV, ADD, ADDC, SUBB, XCH, ANL, ORL, XRL};

…………}

然后約束對(duì)應(yīng)的寄存器地址,立即數(shù),相對(duì)地址等,代碼如:

constraint inst_valid{

di_x inside {[0:255]};

reg_y inside {[0:255]};

reg_i inside {0, 1};

reg_n inside {[0: 7]};

…。}

得到了指令的格式,隨機(jī)得到指令,指令參數(shù),在以上約束下就可以生成一條符合語法的指令。通過在TestCase中約束指令格式,或是地址數(shù)據(jù)就可以在TestCase中控制Generator生成的指令,通過變換隨機(jī)種子就可以生成不同類型的指令集合。

使用宏定義對(duì)數(shù)據(jù)類擴(kuò)展就可以得到數(shù)據(jù)類的Generator和Channel:

`vmm_channel(inst)

`vmm_scenario_gen(inst, “inst”)

每次scenario Generator生成一條指令,并且通過channel傳遞給Driver。可以將一系列約束做為一個(gè)scenario,這樣可以控制指令與指令之間的關(guān)系,將一系列scenario合并可以生成更多的隨機(jī)組合,例如:

$void(scenario_kind) == R0_OP -> {

foreach(items[i]){

items[i].addr_mode inside {0,1,2,4,5,6,7,8,10,11,12,13,14,21,22,23,24,26,27,28=};

items[i].reg_x inside {0};

items[i].reg_n inside {0};

items[i].reg_i inside {0};

}

}

驗(yàn)證這里能夠做到盡可能大量重復(fù)地測(cè)試某些指令的集合,以便將一些邊緣情況測(cè)到,例如實(shí)際應(yīng)用上會(huì)反復(fù)使用累加器或是反復(fù)調(diào)用R0-R7,都可以通過約束來實(shí)現(xiàn)。大量隨機(jī)的代碼測(cè)試下,可以給出更邊緣的TestCase,盡可能地測(cè)試到一些邊緣情況。

4.3 Driver

這里Driver實(shí)現(xiàn)了Transactor的功能,除了實(shí)現(xiàn)將asm代碼匯編,將16進(jìn)制代碼讀入ROM模型中,還要調(diào)用MCU的C模型并產(chǎn)生結(jié)果,供后續(xù)ScoreBoard對(duì)比。

由于匯編器需要將所有指令代碼讀入進(jìn)行統(tǒng)一匯編,由Generator生成的所有指令代碼在Driver中會(huì)被寫入asm文件,通過DPI調(diào)用一個(gè)匯編的 C function來處理這個(gè)asm文件,生成一個(gè)HEX 代碼文件,Driver可以讀入這個(gè)HEX 代碼,并且寫入一個(gè)用SystemVerilog實(shí)現(xiàn)的ROM模型中,另外通過DPI調(diào)用一個(gè)C的MCU仿真器,可以實(shí)時(shí)寫出每一條指令MCU的SFR、 RAM狀態(tài),同樣這些狀態(tài)都保留在單獨(dú)的文件中,以作為ScoreBoard的輸入。

因?yàn)镸CU的指令組合可以說是無法測(cè)全的,真正的測(cè)試往往要發(fā)生在應(yīng)用代碼測(cè)試上,Driver除了可以接受從channel中得到的指令,也可以直接從外部文件得到asm代碼或是16進(jìn)制代碼,這樣已有的MCU測(cè)試代碼或是應(yīng)用程序都可以在這個(gè)環(huán)境中直接調(diào)用。此外,中斷的外部輸入也有隨機(jī)的數(shù)據(jù)灌入,外部端口的輸入數(shù)據(jù)也是在指令數(shù)據(jù)包中產(chǎn)生,并且由TestCase控制的。MCU工作方式的特殊性,導(dǎo)致Driver相對(duì)于驗(yàn)證環(huán)境較為獨(dú)立,與驗(yàn)證環(huán)境的接口都是磁盤文件。

4.4 C模型

環(huán)境中使用兩個(gè)C模型:匯編器和仿真器,將asm代碼匯編成為16進(jìn)制代碼,并仿真16進(jìn)制代碼。通過DPI調(diào)用C函數(shù)如下:

import “DPI” function void asmb_r(string in_file, string out_file);

import “DPI” function void siml(int run_for_n_ins, string in_file2, string in_file1, string in_file, string out_file, string out_file2, string out_file3, string out_file4);

如Driver所示,輸入輸出都是磁盤文件。匯編器通過查表將指令翻譯成16進(jìn)制代碼,對(duì)于變量將用哈希表實(shí)現(xiàn),通過查表替換,插入校驗(yàn)碼,最后得出的16進(jìn)制代碼,作為MCU的C模型仿真輸入,并且由Driver的ROM模型讀入。

仿真器輸入16進(jìn)制代碼,通過先解碼16進(jìn)制代碼,然后逐條執(zhí)行代碼,所有memory都是在C中實(shí)現(xiàn),每個(gè)指令分別調(diào)用相應(yīng)的函數(shù),此外還有相應(yīng)的中斷函數(shù)處理中斷,在每一條指令后寫出SFR,Internal RAM以及External RAM中的值到磁盤文件中,以作為RTL仿真的參照,C模型的結(jié)果直接影響整個(gè)驗(yàn)證的準(zhǔn)確性,因?yàn)镽TL是由時(shí)鐘驅(qū)動(dòng),而C模型是不帶時(shí)序關(guān)系,有些指令的執(zhí)行結(jié)果需要根據(jù)時(shí)序做部分調(diào)整,調(diào)整模型在驗(yàn)證中占去較多資源。

4.5 memory模型

MCU外圍連接了四個(gè)外部memory,包括Internal SFR、Internal RAM、External SFR以及External RAM。在驗(yàn)證MCU時(shí),memory中的值就可以保證MCU的工作狀態(tài),因此在驗(yàn)證中,MCU的外部memory都是用SystemVerilog實(shí)現(xiàn)的行為模型,除了通過interface io來響應(yīng)MCU的讀寫要求之外,還有數(shù)據(jù)通道通往ScoreBoard,這里每個(gè)MCU時(shí)鐘都會(huì)將memory值記錄下來送往ScoreBoard,由于Internal SFR、Internal RAM、External SFR僅有128 byte,數(shù)據(jù)量較小,可以每個(gè)時(shí)鐘周期來檢查,但對(duì)于External RAM有64k byte,對(duì)比或是傳輸都比較耗費(fèi)資源。另外,對(duì)External RAM的操作并不多,這里實(shí)現(xiàn)的是在Testcases中約束對(duì)于External RAM的地址都為低256 byte,這樣可以有效地控制數(shù)據(jù)量并且在每個(gè)時(shí)鐘周期檢查memory狀態(tài),另外一種可選方式是每隔一定數(shù)量的指令來對(duì)比External RAM的值,同樣對(duì)仿真影響較小。

4.6 ScoreBoard

ScoreBoard收集到從各個(gè)memory傳遞過來的memory值,因此對(duì)應(yīng)一塊memory就會(huì)有一塊ScoreBoard,對(duì)比通過讀取MCU 的C模型寫出的memory狀態(tài)值,由于MCU模型寫出的值是每條指令執(zhí)行之后的值而memory傳遞過來的數(shù)據(jù)為每個(gè)時(shí)鐘周期,這里 ScoreBoard不但要負(fù)責(zé)解讀C模型寫出的參照memory結(jié)果文件,通過參照將確認(rèn)每個(gè)指令執(zhí)行時(shí)鐘周期長(zhǎng)度,然后從memory模型傳遞過來的數(shù)據(jù)中選取該指令執(zhí)行之后一個(gè)時(shí)鐘周期的數(shù)據(jù)與參照數(shù)據(jù)進(jìn)行對(duì)比,考慮到部分?jǐn)?shù)據(jù)會(huì)有延遲,ScoreBoard在對(duì)比時(shí),不僅僅考慮當(dāng)前比較時(shí)間點(diǎn)上的數(shù)據(jù),如果對(duì)比失敗,ScoreBoard的自檢會(huì)進(jìn)入子線程,繼續(xù)讀取memory傳遞過來的數(shù)據(jù),考慮到MCU支持指令延遲操作最多8個(gè)時(shí)鐘周期,如果在后續(xù)16個(gè)周期內(nèi)得到正確的值,ScoreBoard會(huì)認(rèn)為結(jié)果正確,并且中止子線程返還檢查成功標(biāo)志。

MCU指令一旦開始運(yùn)行,尤其是隨機(jī)指令,指令執(zhí)行不是順序,有時(shí)會(huì)跳入死循環(huán),很難設(shè)定仿真中止時(shí)間,這里設(shè)定了兩種機(jī)制,一種是仿真指令計(jì)數(shù),另一種就是根據(jù)覆蓋率分析,通過VMM的覆蓋率分析函數(shù),可以動(dòng)態(tài)的得到覆蓋率情況,如果隨機(jī)指令跳入死循環(huán),覆蓋率就會(huì)一直維持不變,每次覆蓋率分析不變就進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)超過限定,就會(huì)讓ScoreBoard結(jié)束,通過環(huán)境對(duì)ScoreBoard的監(jiān)測(cè),一旦ScoreBoard停止,整個(gè)仿真也會(huì)停下。

4.7 功能覆蓋率模型

對(duì)于MCU這樣的DUT,代碼覆蓋率已經(jīng)不能夠代表驗(yàn)證進(jìn)度,而功能覆蓋率也只能代表相當(dāng)一部分待驗(yàn)證的功能,這里對(duì)于基本的memory,功能覆蓋率僅要求所有位都被指令操作過,對(duì)于特殊寄存器SFR,需要指定某些特定位有相應(yīng)的“0”以及“1”狀態(tài)。代碼如下:

coverpoint memory[‘h87]

{

wildcard bins b87m_0_0 = {8’bxxxxxxx0};

wildcard bins b87m_1_0 = {8‘bxxxxxxx1};

wildcard bins b87m_0_1 = {8’bxxxxxx0x};

wildcard bins b87m_1_1 = {8‘bxxxxxx1x};

}

另外可以收集指令與指令參數(shù)的交叉覆蓋率分析,例如:

covergroup gen_port_cov;

coverpoint addr_mode;

coverpoint kind;

cross addr_mode, kind;

option.weight = 0;

endgroup

可以說對(duì)于MCU這樣的DUT,功能點(diǎn)很難被完全描述,但是功能覆蓋率還是提供了一部分量化指標(biāo),供驗(yàn)證參考。

5 小結(jié)

本文實(shí)現(xiàn)了一個(gè)驗(yàn)證MCU指令的基于VMM的驗(yàn)證環(huán)境,在這個(gè)環(huán)境里不但可以使用隨機(jī)的指令生成來輸入指令,也可以使用已有的應(yīng)用程序代碼,另外提供了 memory自檢環(huán)境,可以在每一條指令執(zhí)行后檢查memory值,從最全面角度保證每條指令執(zhí)行結(jié)果是正確的。此外還提供了功能覆蓋率模型,收集覆蓋率結(jié)果。這個(gè)環(huán)境可以被復(fù)用擴(kuò)展,基于這個(gè)MCU開發(fā)的軟件都可以在這個(gè)驗(yàn)證環(huán)境中先運(yùn)行以保證軟件的正確性。
審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351212
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4944

    瀏覽量

    87500
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62622
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68616
  • VMM
    VMM
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    10073
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    。本文主要提出了種基于SystemVerilog的VMM驗(yàn)證方法學(xué)的驗(yàn)證環(huán)境。在這個(gè)驗(yàn)證環(huán)境中,驗(yàn)證
    發(fā)表于 03-24 14:07 ?3336次閱讀

    PSoC? 6中的兩個(gè)獨(dú)立MCU內(nèi)核如何獨(dú)立訪問其指令?

    PSoC? 6 中的兩個(gè)獨(dú)立 MCU 內(nèi)核如何獨(dú)立訪問其指令? 是否有 DUAL_SENSOR_BOX_KIT 內(nèi)核 PSoC? 6 指令存儲(chǔ)器架構(gòu)的框圖有助于解釋? 在什么條件下,從
    發(fā)表于 03-04 08:09

    如何快速搞定個(gè)款新的MCU?

    來源 網(wǎng)絡(luò)任何MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數(shù)量、指令系統(tǒng)等。對(duì)于指令系統(tǒng),雖然形式上看似千差萬別,但實(shí)際上只是符號(hào)的不同,其所代表的含義
    發(fā)表于 01-11 13:23

    如何快速學(xué)習(xí)個(gè)新款的MCU

    任何MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數(shù)量、指令系統(tǒng)等。對(duì)于指令系統(tǒng),雖然形式上看似千差萬別,但實(shí)際上只是符號(hào)的不同,其所代表的含義、所要完成
    發(fā)表于 04-29 10:11

    基于VMM的驗(yàn)證環(huán)境的驗(yàn)證MCU指令實(shí)現(xiàn)設(shè)計(jì)

    驗(yàn)證結(jié)構(gòu),以及以功能覆蓋率為指標(biāo)的驗(yàn)證流程。在本文中,圍繞Synopsys的VMM(Verification Methodology Manual)構(gòu)建了個(gè)
    發(fā)表于 07-01 08:15

    基于VMM驗(yàn)證方法學(xué)的MCU驗(yàn)證環(huán)境實(shí)現(xiàn)方法介紹

    驗(yàn)證結(jié)構(gòu),以及以功能覆蓋率為指標(biāo)的驗(yàn)證流程。在本文中,圍繞Synopsys的VMM(VerificationMethodology Manual)構(gòu)建了個(gè)
    發(fā)表于 07-03 07:40

    怎么設(shè)計(jì)個(gè)嵌入式MCU硬件?

    簡(jiǎn)要概述了MCU硬件設(shè)計(jì)的主要方面。若要設(shè)計(jì)個(gè)性價(jià)比高、競(jìng)爭(zhēng)力強(qiáng)的MCU,還需要進(jìn)行大量的、詳細(xì)的工作,尤其是電路的全功能驗(yàn)證和詳盡測(cè)試,
    發(fā)表于 03-08 06:37

    個(gè)優(yōu)秀的SOC驗(yàn)證環(huán)境應(yīng)該具備哪些功能呢

    小編前段時(shí)間幫客戶找到些人解決了SOC驗(yàn)證環(huán)境的問題。在招人的時(shí)候我們和不少人進(jìn)行了溝通交流,從中發(fā)現(xiàn)SOC驗(yàn)證環(huán)境一千家公司有一千家公司的做法。那么
    發(fā)表于 05-31 11:39

    ARM CPU自主可控指令集設(shè)計(jì)實(shí)現(xiàn)

    1、ARM CPU自主可控指令集設(shè)計(jì)實(shí)現(xiàn)ARM CPU的完備SDK、軟件生態(tài)對(duì)于加速MCU設(shè)計(jì)而言可謂是有如神助,作為ICer,我在設(shè)計(jì)完成MCU RTL后,即可利用ARM提供的SDK
    發(fā)表于 05-31 14:49

    基于驗(yàn)證庫的微處理器指令驗(yàn)證方法

    指令集作為微處理器軟件和硬件的分界線在計(jì)算機(jī)體系結(jié)構(gòu)中占有重要地位。測(cè)試程序自動(dòng)生成(RTPG)是微處理器指令驗(yàn)證的主要方法之。該文比較目前主流的RTPG 技術(shù)和
    發(fā)表于 03-28 10:01 ?8次下載

    HT MCU查表指令的使用

    HT MCU查表指令的使用介 紹:在討論查表指令該如何使用之前,先介紹下程序存儲(chǔ)器(ROM)空間的劃分。Holtek各系列單片機(jī)的ROM空間是按頁(PAGE)來劃分的,
    發(fā)表于 03-26 08:33 ?18次下載

    對(duì)MCU的USB連接:這是對(duì)你的下一個(gè)設(shè)計(jì)嗎?

    幾乎每一個(gè)現(xiàn)代MCU家族都有個(gè)USB外設(shè)。由于USB是個(gè)標(biāo)準(zhǔn),你可能期望所有的USB
    發(fā)表于 05-27 09:31 ?12次下載
    對(duì)<b class='flag-5'>MCU</b>的USB連接:這是對(duì)你的下<b class='flag-5'>一個(gè)</b>設(shè)計(jì)嗎?

    個(gè)真實(shí)網(wǎng)站的驗(yàn)證碼為例,實(shí)現(xiàn)了基于下KNN的驗(yàn)證碼識(shí)別

    很多網(wǎng)站登錄都需要輸入驗(yàn)證碼,如果要實(shí)現(xiàn)自動(dòng)登錄就不可避免的要識(shí)別驗(yàn)證碼。本文以個(gè)真實(shí)網(wǎng)站的驗(yàn)證
    的頭像 發(fā)表于 12-24 17:27 ?7778次閱讀

    如何快速搞定個(gè)款新的MCU

    任何MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數(shù)量、指令系統(tǒng)等。對(duì)于指令系統(tǒng),雖然形式上看似千差萬別,但實(shí)際上只是符號(hào)的不同,其所代表的含義、所要完成
    發(fā)表于 02-11 15:03 ?2次下載
    如何快速搞定<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>款新的<b class='flag-5'>MCU</b>

    HT8 MCU擴(kuò)展指令集應(yīng)用須知

    接尋址,此舉也提高了 CPU 韌體性能。支持?jǐn)U展指令MCU,每條擴(kuò)展指令比對(duì)應(yīng)的普 通指令增加 1 個(gè)
    發(fā)表于 06-26 15:08 ?1次下載
    HT8 <b class='flag-5'>MCU</b>擴(kuò)展<b class='flag-5'>指令</b>集應(yīng)用須知