chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

參數(shù)化接口和可重用VIP:第一部分

星星科技指導(dǎo)員 ? 來源:synopsys ? 作者:Aron Pratt ? 2023-05-29 10:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景

基于SystemVerilog的驗(yàn)證引入了接口的概念來表示設(shè)計(jì)模塊之間的通信。在其最基本的形式中,SystemVerilog 接口只是一個(gè)命名的信號(hào)束,可以通過模塊端口作為單個(gè)項(xiàng)目進(jìn)行通信。然后,接收此接口的設(shè)計(jì)模塊可以通過此接口參考訪問信號(hào)。但是,接口的更高級(jí)別函數(shù)也可以提供更強(qiáng)類型的通信,以更好地表示設(shè)計(jì)意圖。以下是系統(tǒng)Verilog接口中可用的高階函數(shù)的子集:

可以通過使用時(shí)鐘塊和模塊端口在信號(hào)列表上執(zhí)行訪問規(guī)則

函數(shù)和任務(wù)可用于封裝高階排序或訪問控制

初始?jí)K和始終塊等進(jìn)程可以添加功能

連續(xù)賦值語句還可以添加功能

斷言可以確保正確的集成

SystemVerilog 接口的一個(gè)非常重要的用途是將靜態(tài)設(shè)計(jì)元素連接到動(dòng)態(tài)測(cè)試平臺(tái)元素。動(dòng)態(tài)測(cè)試平臺(tái)元素需要訪問靜態(tài)設(shè)計(jì)元素才能采樣和驅(qū)動(dòng)信號(hào),但可重用的測(cè)試平臺(tái)元素?zé)o法訪問靜態(tài)設(shè)計(jì)元素,除非通過稱為虛擬接口的特殊構(gòu)造。虛擬接口是測(cè)試平臺(tái)代碼中的接口句柄,可以與接口實(shí)例一起分配。虛擬接口是動(dòng)態(tài)屬性,可以分配給不同測(cè)試平臺(tái)中的不同接口實(shí)例,從而提高可重用性。

設(shè)計(jì)可重用設(shè)計(jì)塊的常用技術(shù)是使用參數(shù)使設(shè)計(jì)塊的不同實(shí)例具有獨(dú)特的特征。例如,可以對(duì)模塊進(jìn)行參數(shù)化,以允許在聲明模塊并提供參數(shù)值時(shí)定義數(shù)據(jù)總線寬度。SystemVerilog 接口也支持參數(shù)化,但參數(shù)化接口的使用在測(cè)試平臺(tái)端帶來了不可預(yù)見的復(fù)雜性。為了與賦值兼容,參數(shù)化虛擬接口必須專用于接口實(shí)例專用的相同值。除非采取預(yù)防措施,否則這可能會(huì)使一些非常丑陋的測(cè)試平臺(tái)代碼具有更丑陋的使用模型。

參數(shù)擴(kuò)散:蠻力法

參數(shù)化虛擬接口引入的問題是,訪問它的測(cè)試平臺(tái)元素必須知道強(qiáng)類型接口。因此,當(dāng)接口專用化尚未知時(shí),無法編寫泛型類以使用參數(shù)化虛擬接口。此問題的一個(gè)解決方案是參數(shù)化訪問參數(shù)化虛擬接口的類。例如,可以使用 UVM 驅(qū)動(dòng)程序必須使用的虛擬接口類型進(jìn)行參數(shù)化。然而,這只是將問題向上移動(dòng)了一層,因?yàn)楝F(xiàn)在實(shí)例化該參數(shù)化驅(qū)動(dòng)程序的代理也必須參數(shù)化,以便它可以創(chuàng)建驅(qū)動(dòng)程序的正確專用實(shí)例。這會(huì)不斷向上移動(dòng),直到您到達(dá)“知道”正在測(cè)試的特定專業(yè)化存在的頂層測(cè)試平臺(tái)組件。以下代碼段演示了此問題。

首先,我們定義參數(shù)化的虛擬接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
interface param_if#(int width = 8);
logic clk;
logic[width-1:0] data;
clocking active_cb @(posedge clk);
default input #1 output #1;
output data;
endclocking
modport active_mp (clocking active_cb);
endinterface
typedef virtual param_if param_vif

接下來,我們定義可重復(fù)使用的 VIP 代碼。此測(cè)試平臺(tái)代碼必須設(shè)計(jì)為可在參數(shù)化接口可以使用的任何環(huán)境中重用,因此還必須參數(shù)化VIP代碼本身,以便可以訪問正確的接口。以下代碼段演示必須如何參數(shù)化 UVM 驅(qū)動(dòng)程序類和包含該驅(qū)動(dòng)程序的代理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//=======================================================================
class param_driver#(type vif_t=param_vif) extends uvm_driver#(cust_data);
`uvm_component_param_utils(param_driver#(vif_t))
vif_t vif;
function void build_phase(uvm_phase phase);
if (!uvm_config_db#(vif_t)::get(this, "", "vif", vif))
`uvm_fatal("build", "A valid interface was not received.");
endfunction
endclass
//=======================================================================
class cust_agent#(type vif_t=param_vif) extends uvm_agent;
`uvm_component_param_utils(param_agent#(vif_t))
vif_t vif;
param_driver#(vif_t) param_driver;
function void build_phase(uvm_phase phase);
if (!uvm_config_db#(vif_t)::get(this, "", "vif", vif))
`uvm_fatal("build", "A valid interface was not received.");
uvm_config_db#(vif_t)::set(this, "param_driver", "vif", vif);
param_driver = param_driver#(vif_t)::type_id::create("param_driver", this);
endfunction
endclass

到目前為止,這看起來還不錯(cuò)!它給類定義增加了一點(diǎn)復(fù)雜性,但不會(huì)太多。然而,在你檢查測(cè)試平臺(tái)必須如何訪問這些參數(shù)化類之前,這些問題不會(huì)變得明顯。以下段顯示了測(cè)試如何根據(jù)接口的參數(shù)化方式唯一地訪問 VIP 的每個(gè)實(shí)例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//=======================================================================
class cust_test extends uvm_test;
`uvm_component_utils(cust_test)
param_agent#(virtual param_if#(8)) param_agent8;
param_agent#(virtual param_if#(16)) param_agent16;
param_agent#(virtual param_if#(32)) param_agent32;
virtual function void build_phase(uvm_phase phase);
param_agent8 = param_agent#(virtual param_if#(8))::type_id::create("param_agent8", this);
param_agent16 = param_agent#(virtual param_if#(16))::type_id::create("param_agent16", this);
param_agent32 = param_agent#(virtual param_if#(32))::type_id::create("param_agent32", this);
endfunction
endclass
//=======================================================================
module test_top;
param_if#(8) if8();
param_if#(16) if16();
param_if#(32) if32();
initial begin
uvm_config_db#(virtual param_if#(8))::set(uvm_root::get(), "uvm_test_top.param_agent8", "vif", if8);
uvm_config_db#(virtual param_if#(16))::set(uvm_root::get(), "uvm_test_top.param_agent16", "vif", if16);
uvm_config_db#(virtual param_if#(32))::set(uvm_root::get(), "uvm_test_top.param_agent32", "vif", if32);
run_test("cust_test");
end
endmodule

如您所見,對(duì) VIP 的每個(gè)引用都必須使用要使用的正確接口類型進(jìn)行參數(shù)化。這不僅會(huì)影響VIP建設(shè),還會(huì)影響回調(diào)注冊(cè)、工廠覆蓋等。這給測(cè)試平臺(tái)開發(fā)人員帶來了很大的負(fù)擔(dān),并限制了這些環(huán)境的可重用性。

向驗(yàn)證組件添加參數(shù)是可重用VIP的有效技術(shù)解決方案,但它使使用模型大大復(fù)雜化,并限制了測(cè)試平臺(tái)的可重用性。

審核編輯:郭婷

聲明:本文內(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)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9521

    瀏覽量

    157040
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1374

    瀏覽量

    114529
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    183

    瀏覽量

    20018
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    保護(hù)您的 IP 核——第一部分軟 IP——前言

    保護(hù)您的 IP 核——第一部分軟 IP——前言 隨著全球硬件設(shè)計(jì)和制造過程的激增以及IP供應(yīng)商之間的競(jìng)爭(zhēng),IP盜版/假冒、虛假所有權(quán)等威脅正在加劇。因此,保護(hù)?? IP 核設(shè)計(jì)的要求及其代表的專有
    發(fā)表于 02-23 11:59

    免調(diào)節(jié)中頻VCO的實(shí)現(xiàn)(第一部分)

    免調(diào)節(jié)中頻VCO的實(shí)現(xiàn)(第一部分)
    發(fā)表于 05-07 13:21 ?24次下載

    射頻識(shí)別基礎(chǔ):第一部分

    射頻識(shí)別基礎(chǔ):第一部分:天線是個(gè)產(chǎn)生電流和電荷的器件,并且其影響對(duì)于遠(yuǎn)處的觀看者無法消除。對(duì)于個(gè)要工作的天線來說,顯然要改變些事情:輻射是被延遲的信號(hào)無
    發(fā)表于 09-25 08:12 ?45次下載

    微型模塊電源產(chǎn)品第一部分

    微型模塊電源產(chǎn)品第一部分,有需要的下來看看
    發(fā)表于 03-17 17:43 ?0次下載

    GBT 20234.1-2011 第一部分

    電動(dòng)汽車傳導(dǎo)充電用連接裝置第一部分,通用部分
    發(fā)表于 05-10 14:24 ?1次下載

    中國(guó)NB-IOT產(chǎn)業(yè)聯(lián)盟-第一部分問題清單-20160824

    中國(guó)NB-IOT產(chǎn)業(yè)聯(lián)盟-第一部分問題清單
    發(fā)表于 01-11 12:16 ?9次下載

    2012年P(guān)SoC數(shù)?;旌显O(shè)計(jì)培訓(xùn)_第一部分

    2012年P(guān)SoC數(shù)?;旌显O(shè)計(jì)培訓(xùn)_第一部分
    發(fā)表于 10-27 09:35 ?4次下載

    怎樣通過Altera 的設(shè)計(jì)商店找到并使用實(shí)例設(shè)計(jì) (第一部分)

    怎樣通過Altera 的設(shè)計(jì)商店找到并使用實(shí)例設(shè)計(jì) (第一部分)
    的頭像 發(fā)表于 06-11 17:19 ?2652次閱讀
    怎樣通過Altera 的設(shè)計(jì)商店找到并使用實(shí)例設(shè)計(jì) (<b class='flag-5'>第一部分</b>)

    AN-388: 使用Σ-Δ轉(zhuǎn)換器—第一部分[中文版]

    AN-388: 使用Σ-Δ轉(zhuǎn)換器—第一部分[中文版]
    發(fā)表于 03-19 08:32 ?0次下載
    AN-388: 使用Σ-Δ轉(zhuǎn)換器—<b class='flag-5'>第一部分</b>[中文版]

    有時(shí)你需要點(diǎn)收獲第一部分

    有時(shí)你需要點(diǎn)收獲第一部分
    發(fā)表于 04-20 10:31 ?1次下載
    有時(shí)你需要<b class='flag-5'>一</b>點(diǎn)收獲<b class='flag-5'>第一部分</b>

    第一部分、硬件設(shè)計(jì)

    第一部分、硬件設(shè)計(jì)我把個(gè)硬件系統(tǒng)分為五個(gè)單元:電源單元、單片機(jī)單元、輸入單元、輸出單元、通信單元。如下圖:
    發(fā)表于 12-09 12:36 ?16次下載
    <b class='flag-5'>第一部分</b>、硬件設(shè)計(jì)

    《家用和類似用途電器的安全第一部分:通用要求》pdf

    《家用和類似用途電器的安全第一部分:通用要求》pdf
    發(fā)表于 01-07 11:50 ?3次下載

    生成任意量級(jí)偏置電流網(wǎng)絡(luò)(第一部分

    生成任意量級(jí)偏置電流網(wǎng)絡(luò)(第一部分
    發(fā)表于 11-03 08:04 ?1次下載
    生成任意量級(jí)偏置電流網(wǎng)絡(luò)(<b class='flag-5'>第一部分</b>)

    參數(shù)接口重用VIP:第三部分

    在本系列的第一部分中,介紹了SystemVerilog接口的基本概念,并描述了這些接口參數(shù)給測(cè)試平臺(tái)代碼帶來的問題。在第二
    的頭像 發(fā)表于 05-29 10:32 ?1413次閱讀

    驅(qū)動(dòng)ADC 第一部分

    電子發(fā)燒友網(wǎng)站提供《差驅(qū)動(dòng)ADC 第一部分.pdf》資料免費(fèi)下載
    發(fā)表于 11-23 16:36 ?0次下載
    差<b class='flag-5'>分</b>驅(qū)動(dòng)ADC <b class='flag-5'>第一部分</b>