www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 芯片驗(yàn)證工程師
[導(dǎo)讀]UVM內(nèi)建了許多關(guān)鍵的處理機(jī)制,幫助實(shí)現(xiàn)驗(yàn)證工程師需要的功能。a.Factory機(jī)制Factory機(jī)制是產(chǎn)生通用代碼的一種典型的軟件設(shè)計(jì)思路。在功能驗(yàn)證中,引入的類(lèi)經(jīng)常需要變化。例如,在許多測(cè)試中我們可能需要給事務(wù)增加更多的約束或字段,或者想在整個(gè)環(huán)境中或僅僅一個(gè)單接口中使用新的...

UVM 內(nèi)建了許多關(guān)鍵的處理機(jī)制,幫助實(shí)現(xiàn)驗(yàn)證工程師需要的功能。

a. Factory 機(jī)制
Factory機(jī)制是產(chǎn)生通用代碼的一種典型的軟件設(shè)計(jì)思路。在功能驗(yàn)證中,引入的類(lèi)經(jīng)常需要變化。例如,在許多測(cè)試中我們可能需要給事務(wù)增加更多的約束或字段,或者想在整個(gè)環(huán)境中或僅僅一個(gè)單接口中使用新的派生類(lèi)。UVM 提供了一個(gè)內(nèi)建的工廠(chǎng)機(jī)制,促進(jìn)環(huán)境重用和調(diào)整預(yù)定義的驗(yàn)證 IP。工廠(chǎng)機(jī)制最大的優(yōu)點(diǎn)之一是,其對(duì)于測(cè)試人員簡(jiǎn)單、透明, 并且減少了開(kāi)發(fā)者和用戶(hù)對(duì)面向?qū)ο笾R(shí)的需求。


我的理解就是利用 factory 機(jī)制,我們可以方便快捷地更換驗(yàn)證環(huán)境中的任何一個(gè)組件。


b. Phase 機(jī)制
UVM 將 testbench 建立、仿真啟動(dòng)到最后仿真結(jié)束分為不同的階段,各個(gè)階段稱(chēng)為不同的phase。在正式運(yùn)行仿真的階段稱(chēng)之為run_phase,在 run_phase 之前有 build_phase、connect_phase 等,在run_phase 之后有 check_phase、report_phase等。各個(gè) phase 都有自己需要完成的動(dòng)作。


UVM 中的 phase 根據(jù)是否消耗仿真時(shí)間分為 task phase 和 function phase。只有 run_phase 是 task phase。


在 UVM1.0 時(shí)代, run_phase 是其中唯一的一個(gè) task_phase。當(dāng) UVM 進(jìn)化到1.1 版 本 后,又 增 加 了 configure_phase、pre_main_phase、main_phase、post_main_phase 等 12 個(gè) task_phase,同時(shí)為了兼容以前的 1.0 版本保留了
run_phase。這 12 個(gè) phase 共同實(shí)現(xiàn)了 run_phase 的功能,通過(guò)這 12 個(gè) task_phase可以實(shí)現(xiàn)對(duì)仿真過(guò)程更精細(xì)化的控制。


phase 的執(zhí)行是有先后順序的,是按照整個(gè) testbench 的建立順序依次執(zhí)行。

對(duì)于 task_phase 來(lái)說(shuō), UVM 中不同 component 的同一個(gè) phase 的執(zhí)行順序是并行執(zhí)行。UVM1.1 應(yīng)用指南及源碼分析中有提到是“自上而下啟動(dòng),并行運(yùn)行”。


c. Field_automation 機(jī)制
Field_automation 機(jī)制用于產(chǎn)生 transaction。使用該機(jī)制,我們能夠很方便的用 transaction 的成員函數(shù),比如 print()、compare()(這個(gè)在 scoreboard 用的比較多)、pack()(這個(gè)函數(shù)在 driver 用的比較多)、unpack()(這個(gè)在 monitor 用的比較多)等等,簡(jiǎn)化了很多工作。


d. Sequence 機(jī)制
sequence 機(jī)制不能不說(shuō)是 UVM 的一大創(chuàng)新, sequence 使得激勵(lì)的產(chǎn)生和驅(qū)動(dòng)相互分離,我們通過(guò)定義不同的 sequence 來(lái)使得 testbench 代碼可重用,增加了激勵(lì)產(chǎn)生的靈活性。?


引入 sequence 之后,在不同的 case 中將不同的 sequence設(shè)置成 sequencer 中 main_phase 的 default_sequence,這樣就完成了不同激勵(lì)的加
載。同時(shí) sequence 能夠通過(guò) starting_phase 來(lái)控制驗(yàn)證平臺(tái)的開(kāi)啟。


e. Config 機(jī)制
Config 機(jī)制用于在整個(gè)驗(yàn)證環(huán)境中傳遞變量,通過(guò) config 機(jī)制,可以在驗(yàn)證平臺(tái)的頂層設(shè)置任何一個(gè) component 或者某些指定 component 中的參數(shù)。在驗(yàn)證平臺(tái)中 driver和 monitor 的虛接口和實(shí)體接口的連接就是通過(guò) config 機(jī)制實(shí)現(xiàn)的。


f. Callback 機(jī)制
Callback 機(jī)制也是為了提高驗(yàn)證平臺(tái)的可重用性,其原理類(lèi)似于 phase 機(jī)制,但是不同于 phase 機(jī)制的是,其僅僅提供了 callback 的接口函數(shù),函數(shù)中全部為空,需要開(kāi)發(fā)者自己去填寫(xiě),通過(guò)對(duì) callback 接口函數(shù)中填充不同的內(nèi)容,來(lái)適應(yīng)不同測(cè)試的需求。


比如我們要計(jì)算 mac 幀的 crc 校驗(yàn)值,那么只能等到 transaction 中的除了 crc之 外 的 其 他 值 全 部 固 定 (randomize) 之 后 才 能 計(jì) 算 , 這 個(gè) 計(jì) 算 可 以 通 過(guò)post_randomize()函數(shù)來(lái)完成,這個(gè)函數(shù)就是一個(gè) callback 函數(shù)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉