Driver的作用是從sequencer中獲得數(shù)據(jù)項(xiàng),按照接口協(xié)議將數(shù)據(jù)項(xiàng)驅(qū)動(dòng)到總線上。UVM類庫(kù)提供了uvm_driver基類,所有的Driver類都應(yīng)該直接或間接地從該類中擴(kuò)展出來(lái)。Driver有一個(gè)TLM port,通過(guò)它與sequencer進(jìn)行通信。
要?jiǎng)?chuàng)建一個(gè)Driver:
- 派生自u(píng)vm_driver基類。
- 注冊(cè)到factory機(jī)制。
- 從sequencer中獲取下一個(gè)數(shù)據(jù)項(xiàng),將數(shù)據(jù)項(xiàng)驅(qū)動(dòng)到總線上。
- 在Driver中聲明一個(gè)virtual interface,配置到連接DUT實(shí)際interface的virtual interface上。
下面例子中的simple_driver定義了一個(gè)Driver類。這個(gè)例子從uvm driver派 生 出 simple_driver(參數(shù)化為simple_item事務(wù)類型),并使用seq_item_port中的方法與sequencer進(jìn)行通信。simple_driver包括一個(gè)構(gòu)造函數(shù),以及使用**`uvm_component_utils宏**在factory中注冊(cè)simple_driver類型。
- 第1行 擴(kuò)展出driver。
- 第5行 添加UVM宏,注冊(cè)simple_driver類型。
- 第13行 獲取virtual interface配置
- 第22行 調(diào)用get_next_item(),從sequencer中獲取下一個(gè)激勵(lì)的數(shù)據(jù)項(xiàng)。
- 第25行 向sequencer發(fā)出信號(hào),表示當(dāng)前數(shù)據(jù)項(xiàng)的驅(qū)動(dòng)已經(jīng)完成。
- 第30行 在這里驅(qū)動(dòng)virtual interface來(lái)完成數(shù)據(jù)項(xiàng)激勵(lì)。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
連載....小編考慮到一個(gè)好的連續(xù)劇不能沒(méi)有結(jié)尾,所以后期會(huì)持續(xù)更新ic驗(yàn)證的UVM相關(guān)內(nèi)容.......今天更新一個(gè)最簡(jiǎn)單的驗(yàn)證平臺(tái),只有driver的驗(yàn)證平臺(tái).....driver是驗(yàn)證平臺(tái)最基本
發(fā)表于 12-04 15:48
加入factory機(jī)制 上一節(jié)《IC驗(yàn)證"一個(gè)簡(jiǎn)單的UVM驗(yàn)證平臺(tái)"是如何搭建的(五)》給出了一個(gè)只有driver、使用UVM搭建的驗(yàn)證平臺(tái)。嚴(yán)格來(lái)說(shuō)這根本就不算是UVM驗(yàn)證
發(fā)表于 12-08 12:07
/my_driver.sv 13 task my_driver::main_phase(uvm_phase phase); 14 phase.raise_objection(this); 15 `
發(fā)表于 12-09 18:28
原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章內(nèi)容主要講述兩個(gè)內(nèi)容,芯片驗(yàn)證以及驗(yàn)證計(jì)劃。那本章我們主要講述的內(nèi)容有介紹什么是uvm
發(fā)表于 01-21 16:00
?! D示是一個(gè)典型的uvm測(cè)試平臺(tái)的結(jié)構(gòu)圖,構(gòu)成測(cè)試平臺(tái)的每一個(gè)元素稱為組件,既component。 下面從底層到高層,就每一個(gè)組件來(lái)說(shuō)明它們?cè)跍y(cè)試平臺(tái)中所起到了作用?! 〉谝粋€(gè)組件是driver
發(fā)表于 01-22 15:33
UVM代碼如何把testcase與driver分開(kāi)
發(fā)表于 03-11 07:58
直觀的印象,就是uvm驗(yàn)證平臺(tái),它是分層的結(jié)構(gòu)。圖中的每一個(gè)巨型框都代表著平臺(tái)的一個(gè)構(gòu)成元素。這些元素呢,我們稱為平臺(tái)組建,下面來(lái)簡(jiǎn)單的分析一下。從最底層上來(lái)看,agent 中包含了driver,monitor和sequencer,其中
發(fā)表于 02-14 06:46
uvm_object基類擴(kuò)展得到。UVM sequences不是在仿真的開(kāi)始,而是在仿真的過(guò)程中生成并分配內(nèi)存的,也沒(méi)有類似uvm_component的層次結(jié)構(gòu)。隨著仿真的進(jìn)行,將創(chuàng)建
發(fā)表于 04-11 16:43
, this); endfunction m_rh是uvm_report_handler class類型的。在1個(gè)基于uvm_report_object繼承過(guò)來(lái)的class在new的時(shí)候,會(huì)自動(dòng)創(chuàng)建出m_rh
發(fā)表于 03-17 16:41
很多UVM用戶平時(shí)更多的使用get_response()方式去獲得uvm_driver的response,但get_response有些缺點(diǎn)
發(fā)表于 05-23 16:56
?1786次閱讀
driver應(yīng)該派生自uvm_driver,而uvm_driver派生自uvm_component。
發(fā)表于 05-26 14:38
?1400次閱讀
Driver的作用是從sequencer中獲得數(shù)據(jù)項(xiàng),按照接口協(xié)議將數(shù)據(jù)項(xiàng)驅(qū)動(dòng)到總線上。
發(fā)表于 05-30 09:22
?1024次閱讀
sequencer生成激勵(lì)數(shù)據(jù),并將其傳遞給driver執(zhí)行。UVM類庫(kù)提供了uvm_sequencer基類,其參數(shù)為request和response數(shù)據(jù)類型。
發(fā)表于 06-07 11:58
?1697次閱讀
uvm_do宏及其變體提供了創(chuàng)建、隨機(jī)化和發(fā)送transaction items或者sequence的方法。
發(fā)表于 06-09 09:36
?5019次閱讀
在UVM中,Testcase是一個(gè)類,它封裝了測(cè)試用例開(kāi)發(fā)者編寫的特定激勵(lì)序列。
發(fā)表于 06-15 09:41
?1606次閱讀
評(píng)論