日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

使用abstrct model代替real model

rfdqdzdg ? 來(lái)源:CSDN ? 2023-08-29 14:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

“空間爆炸”大大增加了formal工具處理的復(fù)雜度,在有限的資源內(nèi),難以達(dá)到收斂。所以采用一些abstraction的手段,是十分有效且必要的。正確的abstraction處理,使用abstrct model代替real model,不會(huì)影響目標(biāo)結(jié)果,同時(shí)加速證明。

Abstraction vs. Reduction

abstraction不等同于簡(jiǎn)單的reduction,如下示例:

43d602fa-4621-11ee-a2ef-92fbcf53809c.png

RTL中,當(dāng)timer大于1000時(shí),觸發(fā)timeout。需要運(yùn)行1000個(gè)cycle才會(huì)觸發(fā)。

Reduction將閾值設(shè)置為5,縮減到5個(gè)cycle觸發(fā)。

因?yàn)樵璕TL中還有一個(gè)heartbeat,可以重置timer,此時(shí)reduction不可以實(shí)現(xiàn)原RTL的所有場(chǎng)景(如heartbeat是由另一個(gè)計(jì)數(shù)器控制,閾值是100,而timer每次在5個(gè)cycle后就報(bào)timeout了,已不滿足原有時(shí)序關(guān)系) Abstraction通過(guò)assume重寫了rtl:1. heartbeat拉高,重置timer 2. heartbeat為低,timer非0,則下個(gè)cycle timer非0 3. heartbeat為低,timer為0,則下個(gè)cycle timer非0 Abstraction的方式可以復(fù)現(xiàn)原RTL的所有場(chǎng)景,同時(shí)縮短cycle depth.

440af956-4621-11ee-a2ef-92fbcf53809c.png

采用Reduction還是Abstraction,需要case by case分析;有時(shí)Redcution也是Abstraction,理解RTL意圖才是關(guān)鍵。

Complexity Manager

有些需要abstraction處理的地方是顯而易見的,如較大的counter或者mem;我們也可以通過(guò)FPV工具自帶的復(fù)雜度分析功能來(lái)提取哪些地方是收斂瓶頸,然后針對(duì)此處做abstraction處理。

當(dāng)然并不是所有東西都要盡善盡美,要綜合ROI考量;對(duì)于難以full proof的assertion,采用bounded的方式也是合理可取的,后節(jié)對(duì)bounded proof會(huì)補(bǔ)充介紹。

常見的abstraction策略總結(jié)如下幾種:

Case Splitting

通過(guò)assume區(qū)分不同場(chǎng)景的case,單獨(dú)運(yùn)行。例如:assume property (mode == 2’b00); JasperGold也支持task分隔,更方便管理case splitting。

44373e3a-4621-11ee-a2ef-92fbcf53809c.png

Counter Abstraction (Design Reductions)

FPV工具支持自動(dòng)識(shí)別counter,jaspergold中可以通過(guò)abstract -counter處理;當(dāng)然也可以手動(dòng)處理;

Constant Propagation and blackboxing

對(duì)于不關(guān)心的功能,可以設(shè)置為常量,如.scan_mode(0); 對(duì)于不關(guān)心的邏輯,可以設(shè)置為blackboxing;

Design Size (parameter) Reduction

對(duì)于參數(shù)化配置的rtl,縮減參數(shù)配置;對(duì)于較大的mem,過(guò)約束地址訪問(wèn)空間;如下:

4451e168-4621-11ee-a2ef-92fbcf53809c.png

直接Reduction地址空間有一點(diǎn)不“安全”,這改變了原有RTL行為;需要配合simulation仿真加強(qiáng)驗(yàn)證結(jié)果的置信度;或者采用abstraction的方式,F(xiàn)PV工具也提供常見的mem,fifo abstraction model供用戶快速部署;Jaspergold的abstraction model如下:

4467129a-4621-11ee-a2ef-92fbcf53809c.png

Cutpoints and Abstract Models

Cutpoint:切斷rtl中的某個(gè)信號(hào),其輸出值不再受原有邏輯錐影響,F(xiàn)PV工具會(huì)賦值為任意值驅(qū)動(dòng)后續(xù)邏輯。blackboxing的所有輸出端口其實(shí)就是每個(gè)cutpoint的node.

Cupoint在不同F(xiàn)PV工具設(shè)置語(yǔ)法不同,JG中Stopat設(shè)置,VC Formal中snip_drive設(shè)置

447788c8-4621-11ee-a2ef-92fbcf53809c.png

單獨(dú)cutpoint某個(gè)信號(hào),不加約束,可能會(huì)assertion誤報(bào);一般需要額外assumption處理;如果簡(jiǎn)單幾行assumption無(wú)法準(zhǔn)確描述,需要glue logic或者glue moduel提供abstract model建模描述;

Initial Value Abstractions (IVAs)

FPV工具每次從reset狀態(tài)開始,隨著cycle的深入,遍歷狀態(tài)空間。如果某些狀態(tài)需要較大的cycle depth,那么是否可以從一個(gè)中間狀態(tài)開始呢?答案是可以的,從某個(gè)中間狀態(tài),而不是復(fù)位狀態(tài)開始,我們稱為“warm" state。Jaspergold可以通過(guò)abstrace -init_value約束一個(gè)初始值

44980ab2-4621-11ee-a2ef-92fbcf53809c.png

Engine selection

fomal工具內(nèi)置不同的算法引擎,每個(gè)App的適用場(chǎng)景不同,調(diào)用的engine不同;對(duì)于FPV app,不同類型的assertion,也和不同類型的engine相”友好“。每個(gè)engine的具體特性,驗(yàn)證人員不需要特別了解(有些engine需要配合使用才能發(fā)揮最大效果;有些engine同時(shí)運(yùn)行可能沖突;有些engine一次只能處理一個(gè)assertion,有些可以并行處理多個(gè)),一般使用工具的auto模式,由工具自動(dòng)編排調(diào)度engines即可。

不同F(xiàn)PV tool的Engine selection不同,以JasperGold為例:第一次運(yùn)行,工具并不知道哪個(gè)engine最適合哪個(gè)property;而是通過(guò)采用多個(gè)engine并行處理某一個(gè)assertion,如果其中一個(gè)engine求解成功,則這些engine會(huì)被安排處理下一個(gè)未處理的assertion。

相當(dāng)于多個(gè)engine”競(jìng)爭(zhēng)“; 如果多個(gè)engine在限定時(shí)間內(nèi)都沒(méi)有求解出來(lái),則會(huì)放棄當(dāng)前assertion,安排處理下一個(gè)未處理的assertion。當(dāng)?shù)诙吻蠼庵暗腶ssertion時(shí),engine的求解時(shí)間會(huì)乘以一個(gè)系數(shù),例如之前1min沒(méi)有求解出,第二次可能會(huì)10min,第三次可能會(huì)100min. JG提供ProofGrid,可以圖像化顯示engine調(diào)度和進(jìn)展;JG還提供了Proof Profiling Database,可以記錄上次求解時(shí)的高效engien,下次運(yùn)行優(yōu)先調(diào)度此engien;Proof Cache則可以保留一些中間數(shù)據(jù),如果rtl和env改動(dòng)不大,下次運(yùn)行可以使用這些中間數(shù)據(jù),加速求解;

Property Writing

Formal Verification (二) FPV、APPs[1]在這一篇中講解如何書寫友好的property;本節(jié)再補(bǔ)充三點(diǎn):

1.Cut assertion

如果一個(gè)end-to-end的assertion跨越的cycle很長(zhǎng),可以嘗試在中間分隔多個(gè)assertion

44b6176e-4621-11ee-a2ef-92fbcf53809c.png

2.livness assertion

對(duì)于livness assertion(含有[0:$],eventually等無(wú)限周期的),如果可以使用固定周期值,建議使用固定值,切換為safety assertion。

44dc8944-4621-11ee-a2ef-92fbcf53809c.png

livness assertion的求解,工具會(huì)在stem后尋找一個(gè)loop,當(dāng)找到這個(gè)loop時(shí),就相當(dāng)于找個(gè)一CEX,此assertion被證偽。

engine對(duì)于loop的尋找是很艱難的,所以livness assertion一般很難被full proof。

當(dāng)發(fā)現(xiàn)CEX時(shí),也不一定是RTL的問(wèn)題,可能是缺少fairness constraints. 例如兩個(gè)入口port(A,B), 一個(gè)出口port(C),C round-robin處理A,B的burst數(shù)據(jù);斷言當(dāng)A port接收數(shù)據(jù)后,無(wú)限期 s_eventually周期后,C port一定把A的數(shù)據(jù)送出;斷言當(dāng)B port接收數(shù)據(jù)后,無(wú)限期 s_eventually周期后,C port一定把B的數(shù)據(jù)送出;此時(shí)兩個(gè)livness assertion fail。

CEX場(chǎng)景是A一直發(fā)送數(shù)據(jù),C一直輸出A的數(shù)據(jù),B發(fā)送的第一筆數(shù)據(jù)被無(wú)限期阻塞。實(shí)際情況是A不會(huì)無(wú)限期連續(xù)發(fā)送數(shù)據(jù),總會(huì)停止發(fā)送。可以加上fairness constraints約束A的最大長(zhǎng)度為某一個(gè)值。同理B也是。

44f47360-4621-11ee-a2ef-92fbcf53809c.png

1.Symbolic Variables

Symbolic Variables有很多叫法例如Pseudo-constants、Free variables,采用這總方式書寫assertion,不僅減少assertion數(shù)量,便于描述assertion,對(duì)工具也更友好。如下示例:

genvari;
generatefor(i=0;i
$past(rv_plic.le[i])||$past(intr_src_i[i]),clk_i,!rst_ni)
end

上述通過(guò)generate生成多個(gè)并行重復(fù)的assertion;而使用Symbolic Variables,聲明一個(gè)變量src_sel,并加上合理的約束,可以實(shí)現(xiàn)多個(gè)并行assertion的效果。

logic[$clog2(N_SOURCE)-1:0]src_sel;
`ASSUME_FPV(IsrcRange_M,src_sel>=0&&src_sel
$past(rv_plic.le[src_sel])||$past(intr_src_i[src_sel]),clk_i,!rst_ni)

小結(jié)

上述介紹的多種方法,都是為了降低復(fù)雜度;需要case by case的分析采用哪一種;還有一些方法屬于更高階的使用,需要tool by tool。如JasperGold提供SST(State-Space Tunneling)功能,通過(guò)增加helper assertions加速求解。

FPV for cache

驗(yàn)證cache采用FPV的手段,是一個(gè)典型的場(chǎng)景,會(huì)覆蓋上述提到的所有abstraction strategy。

以icache為例:icache大小32 KB,4路組相連,每個(gè)cache line大小是32B,一共有256組set;cache line size是32 Bytes,offset為5位;256組,index為8位,剩下的為tag部分,占用35位,其中tag的最高bit為valid flag;tam部分放在tag_mem存儲(chǔ);data放在data_mem存儲(chǔ);當(dāng)發(fā)生cache evict時(shí),根據(jù)LRU(least recently used)策略替換某一個(gè)way的cacheline,lru數(shù)據(jù)放在lru_mem存儲(chǔ),下圖未畫出(Cache的基本原理[2]):

451844ac-4621-11ee-a2ef-92fbcf53809c.png

Case Splitting :將assertion歸為不同task分別運(yùn)行;

Counter Abstraction :執(zhí)行cache flush時(shí),內(nèi)部counter會(huì)遞增,依次flush 每個(gè)cacahe line。對(duì)整個(gè)空間做flush不現(xiàn)實(shí),需要對(duì)counter做abstract;

Constant Propagation and blackboxing :測(cè)試function feature時(shí),約束mbist為disabel constant;對(duì)不關(guān)心的邏輯blackboxing;

Design Size (parameter) Reduction :icache可能支持多bank,不同組相連,不同cache line size的配置,選取一個(gè)最小的特征配置;

Cutpoints and Abstract Models :為了減少mem空間,需要過(guò)約束取指端口命中的set數(shù)量,同時(shí)對(duì)tag_mem,data_mem,lru_mem做abstraction處理;

Initial Value Abstractions :FPV默認(rèn)從復(fù)位開始,icache復(fù)位后自動(dòng)flush cache,所有每次都是從invalid狀態(tài)開始 ”震蕩“ 狀態(tài)空間;可以利用IVAs給tag_mem,data_men,lru_mem使用約束賦合理的初始值,加速求解;

Cut assertion :對(duì)從取指到icache返回指令的斷言,可以看作一個(gè)end to end的斷言,如果cache miss, cycle-depth會(huì)增加,F(xiàn)PV求解難度加大,可以嘗試cut assertion;

livness assertion :上述end to end的assertion,一般也是livness的;可能需要添加一些fairness constraints;一般livness assertion都是bounded proof;

Symbolic Variables :對(duì)于同一set不可能出現(xiàn)相同tag的斷言,采用Symbolic Variables的方式書寫assertion;





審核編輯:劉清

聲明:本文內(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)注

    關(guān)注

    68

    文章

    20343

    瀏覽量

    255359
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    39

    文章

    7758

    瀏覽量

    172283
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2321

    瀏覽量

    98622
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    395

    瀏覽量

    62908
  • FPV
    FPV
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    5294

原文標(biāo)題:Formal Verification (三) abstraction strategy、reduce complexity

文章出處:【微信號(hào):數(shù)字芯片設(shè)計(jì)工程師,微信公眾號(hào):數(shù)字芯片設(shè)計(jì)工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Model S和Model X將升級(jí)8.0版固件,增強(qiáng)駕駛體驗(yàn)

    Model S和Model X的車主們,即將迎來(lái)8.0版固件更新,除了自推出以來(lái)的用戶界面大改版之外,它還帶來(lái)了全新的Autopilot功能。
    發(fā)表于 07-04 09:58 ?1322次閱讀

    BLE MESH 智能開關(guān)開發(fā) 情景模式(睡眠、明亮) 藍(lán)牙model如何分配,如何配置model

    server 和 client model 再加上一個(gè)vendor model(對(duì)應(yīng)阿里的那個(gè)vendor model),每個(gè)繼電器元素的模型有g(shù)eneric onoff server mo
    發(fā)表于 02-12 23:54

    PROTUES仿真no model specified for adc0809,誰(shuí)有ADC0809的model?

    PROTUES仿真no model specified for adc0809,誰(shuí)有ADC0809的model?
    發(fā)表于 05-09 13:24

    Java開發(fā):Web開發(fā)模式——ModelⅠ#Java

    JAVAModel
    學(xué)習(xí)硬聲知識(shí)
    發(fā)布于 :2022年11月16日 13:25:45

    Java開發(fā):Web開發(fā)模式——ModelⅡ#Java

    JAVAModel
    學(xué)習(xí)硬聲知識(shí)
    發(fā)布于 :2022年11月16日 13:26:13

    PSpice如何利用Model Editor建立模擬用的Model

    PSpice 提供Model Editor 建立組件的Model,從組件供貨商那邊拿該組件的Datasheet,透過(guò)描點(diǎn)的方式就可以簡(jiǎn)單的建立組件的Model,來(lái)做電路的模擬。PSpice 如何利用
    發(fā)表于 03-31 11:38

    PSpice Model Editor建模

    PSpice Model Editor建模參考資料
    發(fā)表于 06-21 11:02

    IC設(shè)計(jì)基礎(chǔ):說(shuō)說(shuō)wire load model

    說(shuō)起wire load model,IC設(shè)計(jì)EDA流程工程師就會(huì)想到DC的兩種工具模式:線負(fù)載模式(wire load mode)和拓?fù)淠J?topographicalmode)。為什么基本所有深亞
    發(fā)表于 05-21 18:30

    使用Redis緩存model

    〈譯〉使用REDIS處理RAILS MODEL緩存
    發(fā)表于 04-18 17:07

    Model B的幾個(gè)PCB版本

    盡管樹莓派最新版的型號(hào)Model B+目前有著512 MB的內(nèi)存和4個(gè)USB端口,但這些都不會(huì)是一成不變的。除了Model B+外,標(biāo)準(zhǔn)的Model B還有兩個(gè)變種的型號(hào)。如果你買到的是一個(gè)雙面的樹莓派
    發(fā)表于 08-08 07:17

    Model3電機(jī)是什么

    特斯拉的Model S、Model X都采用感應(yīng)電機(jī),而Model 3首次采用嵌入式永磁同步電機(jī),今天我們就通過(guò)下面的視頻帶大家了解一下Model 3的心臟。 特斯拉加入永磁同步電機(jī)陣
    發(fā)表于 08-26 09:12

    Cycle Model Studio 9.2版用戶手冊(cè)

    Cycle Model Studio提供了一個(gè)集成環(huán)境,將系統(tǒng)驗(yàn)證與硬件開發(fā)流程并行。Cycle Model Stu dio中的Cycle Model Compiler采用RTL硬件模型,并創(chuàng)建一個(gè)
    發(fā)表于 08-12 06:26

    Life Model of Florida Scrub Li

    We develop a model for the population dynamics of the Florida scrub lizards. Two parts compose
    發(fā)表于 09-30 18:51 ?39次下載

    Model Y車型類似Model3 但續(xù)航里程會(huì)低于Model3

    馬斯克在連續(xù)發(fā)布了Model3標(biāo)準(zhǔn)版上市、關(guān)閉線下門店等多項(xiàng)重大消息之后,繼續(xù)放大招,在Twitter上,馬斯克表示,將于3月14日在洛杉磯發(fā)布旗下跨界SUV Model Y純電動(dòng)汽車根據(jù)馬斯克此前
    發(fā)表于 03-05 16:17 ?2652次閱讀
    <b class='flag-5'>Model</b> Y車型類似<b class='flag-5'>Model</b>3 但續(xù)航里程會(huì)低于<b class='flag-5'>Model</b>3

    仿真器與Model的本質(zhì)區(qū)別

    ,對(duì)Schematic的加法得到:Critical Part Model、BA Model;對(duì)Schematic的減法得到:VerilogA;VerilogAMS;Real Number Mo
    的頭像 發(fā)表于 06-08 17:23 ?7711次閱讀
    南阳市| 廊坊市| 库尔勒市| 临高县| 成都市| 天峨县| 营口市| 乐安县| 蕲春县| 驻马店市| 桐庐县| 额尔古纳市| 崇明县| 伊金霍洛旗| 安远县| 栾川县| 车险| 满城县| 阳山县| 上虞市| 镇平县| 城口县| 茂名市| 桂东县| 连平县| 高要市| 黄陵县| 留坝县| 淳化县| 镶黄旗| 杭锦旗| 峨山| 上虞市| 太仓市| 屏南县| 将乐县| 庆安县| 吉林市| 崇文区| 涡阳县| 迁西县|