首 頁
手機版

uvm實戰(zhàn)卷1 張強pdf掃描版

uvm實戰(zhàn)卷1是目前一本用研究的眼光解讀如何搭建基于UVM搭建驗證平臺的圖書,由資深驗證工程師張震編著。本書脫胎于網(wǎng)絡(luò)上廣為流傳的《UVM1.1應(yīng)用指南及源碼分析》,內(nèi)容愈加爐火純青,涉及的內(nèi)容包括:全面的UVM驗證方法學(xué)理論知識、豐富的實戰(zhàn)經(jīng)驗和范例,并且步步清晰引導(dǎo)讀者掌握UVM的精髓和實用技巧。全書從理論到實踐、從初級到高級、從搭建平臺到系統(tǒng)調(diào)試,不但講述非常清楚,而且邏輯聯(lián)系嚴(yán)密。學(xué)習(xí)完本書,并且按照書中的實例進行練習(xí),就能夠系統(tǒng)地掌握UVM的使用和調(diào)試技術(shù)。

內(nèi)容介紹

《uvm實戰(zhàn)卷1》主要介紹UVM的使用。全書詳盡介紹了UVM的factory機制、sequence機制、phase機制、objection機制及寄存器模型等的使用。此外,本書還試圖引導(dǎo)讀者思考UVM為什么要引入這些機制,從而使讀者知其然,更知其所以然。本書以一個完整的示例開篇,使得讀者一開始就對如何使用UVM搭建驗證平臺有總體的概念。
《uvm實戰(zhàn)卷1》同時提供大量示例代碼,這些代碼都經(jīng)過實際的運行。全書內(nèi)容力求簡單易懂,盡量將UVM中的概念與讀者已有的概念聯(lián)系起來。在第11章還專門介紹了OVM與UVM的區(qū)別,為那些從OVM遷移到UVM的用戶提供很大幫助。本書主要面向UVM的初學(xué)者及想對UVM追根尋底的中級用戶。針對沒有面向?qū)ο缶幊袒A(chǔ)的用戶,本書在附錄中簡要介紹了面向?qū)ο蟮母拍罴癝ystemVerilog中區(qū)別于其他編程語言的一些特殊語法。

章節(jié)目錄

第1章 與UVM的第一次接觸
1.1 UVM是什么
1.1.1 驗證在現(xiàn)代IC流程中的位置
1.1.2 驗證的語言
1.1.3 何謂方法學(xué)
1.1.4 為什么是UVM
1.1.5 UVM的發(fā)展史
1.2 學(xué)了UVM之后能做什么
1.2.1 驗證工程師
1.2.2 設(shè)計工程師
第2章 一個簡單的UVM驗證平臺
2.1 驗證平臺的組成
2.2 只有driver的驗證平臺
*2.2.1 最簡單的驗證平臺
*2.2.2 加入factory機制
*2.2.3 加入objection機制
*2.2.4 加入virtual interface
2.3 為驗證平臺加入各個組件
*2.3.1 加入transaction
*2.3.2 加入env
*2.3.3 加入monitor
*2.3.4 封裝成agent
*2.3.5 加入reference model
*2.3.6 加入scoreboard
*2.3.7 加入field_automation機制
2.4 UVM的終極大作:sequence
*2.4.1 在驗證平臺中加入sequencer
*2.4.2 sequence機制
*2.4.3 default_sequence 的使用
2.5 建造測試用例
*2.5.1 加入base_test
*2.5.2 UVM中測試用例的啟動
第3章 UVM基礎(chǔ)
3.1 uvm_component與uvm_object
3.1.1 uvm_component派生自uvm_object
3.1.2 常用的派生自uvm_object的類
3.1.3 常用的派生自uvm_component的類
3.1.4 與uvm_object相關(guān)的宏
3.1.5 與uvm_component相關(guān)的宏
3.1.6 uvm_component的限制
3.1.7 uvm_component與uvm_object的二元結(jié)構(gòu)
3.2 UVM的樹形結(jié)構(gòu)
3.2.1 uvm_component中的parent參數(shù)
3.2.2 UVM樹的根
3.2.3 層次結(jié)構(gòu)相關(guān)函數(shù)
3.3 field automation機制
3.3.1 field automation機制相關(guān)的宏
3.3.2 field automation機制的常用函數(shù)
*3.3.3 field automation機制中標(biāo)志位的使用
*3.3.4 field automation中宏與if的結(jié)合
3.4 UVM中打印信息的控制
*3.4.1 設(shè)置打印信息的冗余度閾值
*3.4.2 重載打印信息的嚴(yán)重性
*3.4.3 UVM_ERROR到達一定數(shù)量結(jié)束仿真
*3.4.4 設(shè)置計數(shù)的目標(biāo)
*3.4.5 UVM的斷點功能
*3.4.6 將輸出信息導(dǎo)入文件中
*3.4.7 控制打印信息的行為
3.5 config_db機制
3.5.1 UVM中的路徑
3.5.2 set與get函數(shù)的參數(shù)
*3.5.3 省略get語句
*3.5.4 跨層次的多重設(shè)置
*3.5.5 同一層次的多重設(shè)置
*3.5.6 非直線的設(shè)置與獲取
*3.5.7 config_db機制對通配符的支持
*3.5.8 check_config_usage
3.5.9 set_config與get_config
3.5.10 config_db的調(diào)試
第4章 UVM中的TLM1.0通信
4.1 TLM1.
4.1.1 驗證平臺內(nèi)部的通信
4.1.2 TLM的定義
4.1.3 UVM中的PORT與EXPORT
4.2 UVM中各種端口的互連
*4.2.1 PORT與EXPORT的連接
*4.2.2 UVM中的IMP
*4.2.3 PORT與IMP的連接
*4.2.4 EXPORT與IMP的連接
*4.2.5 PORT與PORT的連接
*4.2.6 EXPORT與EXPORT的連接
*4.2.7 blocking_get端口的使用
*4.2.8 blocking_transport端口的使用
4.2.9 nonblocking端口的使用
4.3 UVM中的通信方式
*4.3.1 UVM中的analysis端口
*4.3.2 一個component內(nèi)有多個IMP
*4.3.3 使用FIFO通信
4.3.4 FIFO上的端口及調(diào)試
*4.3.5 用FIFO還是用IMP
第5章 UVM驗證平臺的運行
5.1 phase機制
*5.1.1 task phase與function phase
5.1.2 動態(tài)運行phase
*5.1.3 phase的執(zhí)行順序
*5.1.4 UVM樹的遍歷
5.1.5 super.phase的內(nèi)容
*5.1.6 build階段出現(xiàn)UVM_ERROR停止仿真
*5.1.7 phase的跳轉(zhuǎn)
5.1.8 phase機制的必要性
5.1.9 phase的調(diào)試
5.1.10 超時退出
5.2 objection機制
*5.2.1 objection與task phase
*5.2.2 參數(shù)phase的必要性
5.2.3 控制objection的最佳選擇
5.2.4 set_drain_time的使用
*5.2.5 objection的調(diào)試
5.3 domain的應(yīng)用
5.3.1 domain簡介
*5.3.2 多domain的例子
*5.3.3 多domain中phase的跳轉(zhuǎn)
第6章 UVM中的sequence
6.1 sequence基礎(chǔ)
6.1.1 從driver中剝離激勵產(chǎn)生功能
*6.1.2 sequence的啟動與執(zhí)行
6.2 sequence的仲裁機制
*6.2.1 在同一sequencer上啟動多個sequence
*6.2.2 sequencer的lock操作
*6.2.3 sequencer的grab操作
6.2.4 sequence的有效性
6.3 sequence相關(guān)宏及其實現(xiàn)
6.3.1 uvm_do系列宏
*6.3.2 uvm_create與uvm_send
*6.3.3 uvm_rand_send系列宏
*6.3.4 start_item與finish_item
*6.3.5 pre_do、mid_do與post_do
6.4 sequence進階應(yīng)用
*6.4.1 嵌套的sequence
*6.4.2 在sequence中使用rand類型變量
*6.4.3 transaction類型的匹配
*6.4.4 p_sequencer的使用
*6.4.5 sequence的派生與繼承
6.5 virtual sequence的使用
*6.5.1 帶雙路輸入輸出端口的DUT
*6.5.2 sequence之間的簡單同步
*6.5.3 sequence之間的復(fù)雜同步
6.5.4 僅在virtual sequence中控制objection
*6.5.5 在sequence中慎用fork join_none
6.6 在sequence中使用config_db
*6.6.1 在sequence中獲取參數(shù)
*6.6.2 在sequence中設(shè)置參數(shù)
*6.6.3 wait_modified的使用
6.7 response的使用
*6.7.1 put_response與get_response
6.7.2 response的數(shù)量問題
*6.7.3 response handler與另類的response
*6.7.4 rsp與req類型不同
6.8 sequence library
6.8.1 隨機選擇sequence
6.8.2 控制選擇算法
6.8.3 控制執(zhí)行次數(shù)
6.8.4 使用sequence_library_cfg
第7章 UVM中的寄存器模型
7.1 寄存器模型簡介
*7.1.1 帶寄存器配置總線的DUT
7.1.2 需要寄存器模型才能做的事情
7.1.3 寄存器模型中的基本概念
7.2 簡單的寄存器模型
*7.2.1 只有一個寄存器的寄存器模型
*7.2.2 將寄存器模型集成到驗證平臺中
*7.2.3 在驗證平臺中使用寄存器模型
7.3 后門訪問與前門訪問
*7.3.1 UVM中前門訪問的實現(xiàn)
7.3.2 后門訪問操作的定義
*7.3.3 使用interface進行后門訪問操作
7.3.4 UVM中后門訪問操作的實現(xiàn):DPI+VPI
*7.3.5 UVM中后門訪問操作接口
7.4 復(fù)雜的寄存器模型
*7.4.1 層次化的寄存器模型
*7.4.2 reg_file的作用
*7.4.3 多個域的寄存器
*7.4.4 多個地址的寄存器
*7.4.5 加入存儲器
7.5 寄存器模型對DUT的模擬
7.5.1 期望值與鏡像值
7.5.2 常用操作及其對期望值和鏡像值的影響
7.6 寄存器模型中一些內(nèi)建的sequence
*7.6.1 檢查后門訪問中hdl路徑的sequence
*7.6.2 檢查默認(rèn)值的sequence
*7.6.3 檢查讀寫功能的sequence
7.7 寄存器模型的高級用法
*7.7.1 使用reg_predictor
*7.7.2 使用UVM_PREDICT_DIRECT功能與mirror操作
*7.7.3 寄存器模型的隨機化與update
7.7.4 擴展位寬
7.8 寄存器模型的其他常用函數(shù)
7.8.1 get_root_blocks
7.8.2 get_reg_by_offset函數(shù)
第8章 UVM中的factory機制
8.1 SystemVerilog對重載的支持
*8.1.1 任務(wù)與函數(shù)的重載
*8.1.2 約束的重載
8.2 使用factory機制進行重載
*8.2.1 factory機制式的重載
*8.2.2 重載的方式及種類
*8.2.3 復(fù)雜的重載
*8.2.4 factory機制的調(diào)試
8.3 常用的重載
*8.3.1 重載transaction
*8.3.2 重載sequence
*8.3.3 重載component
8.3.4 重載driver以實現(xiàn)所有的測試用例
8.4 factory機制的實現(xiàn)
8.4.1 創(chuàng)建一個類的實例的方法
*8.4.2 根據(jù)字符串來創(chuàng)建一個類
8.4.3 用factory機制創(chuàng)建實例的接口
8.4.4 factory機制的本質(zhì)
第9章 UVM中代碼的可重用性
9.1 callback機制
9.1.1 廣義的callback函數(shù)
9.1.2 callback機制的必要性
9.1.3 UVM中callback機制的原理
*9.1.4 callback機制的使用
*9.1.5 子類繼承父類的callback機制
9.1.6 使用callback函數(shù)/任務(wù)來實現(xiàn)所有的測試用例
9.1.7 callback機制、sequence機制和factory機制
9.2 功能的模塊化:小而美
9.2.1 Linux的設(shè)計哲學(xué):小而美
9.2.2 小而美與factory機制的重載
9.2.3 放棄建造強大sequence的想法
9.3 參數(shù)化的類
9.3.1 參數(shù)化類的必要性
*9.3.2 UVM對參數(shù)化類的支持
9.4 模塊級到芯片級的代碼重用
*9.4.1 基于env的重用
*9.4.2 寄存器模型的重用
9.4.3 virtual sequence與virtual sequencer
第10章 UVM高級應(yīng)用
10.1 interface
10.1.1 interface實現(xiàn)driver的部分功能
*10.1.2 可變時鐘
10.2 layer sequence
*10.2.1 復(fù)雜sequence的簡單化
*10.2.2 layer sequence的示例
*10.2.3 layer sequence與try_next_item
*10.2.4 錯峰技術(shù)的使用
10.3 sequence的其他問題
*10.3.1 心跳功能的實現(xiàn)
10.3.2 只將virtual_sequence設(shè)置為default_sequence
10.3.3 disable fork語句對原子操作的影響
10.4 DUT參數(shù)的隨機化
10.4.1 使用寄存器模型隨機化參數(shù)
*10.4.2 使用單獨的參數(shù)類
10.5 聚合參數(shù)
10.5.1 聚合參數(shù)的定義
10.5.2 聚合參數(shù)的優(yōu)勢與問題
10.6 config_db
10.6.1 換一個phase使用config_db
*10.6.2 config_db的替代者
*10.6.3 set函數(shù)的第二個參數(shù)的檢查
第11章 OVM到UVM的遷移
11.1 對等的遷移
11.2 一些過時的用法
*11.2.1 sequence與sequencer的factory機制實現(xiàn)
11.2.2 sequence的啟動與uvm_test_done
*11.2.3 手動調(diào)用build_phase
11.2.4 純凈的UVM環(huán)境
附錄A SystemVerilog使用簡介
附錄B DUT代碼清單
附錄C UVM命令行參數(shù)匯總
附錄D UVM常用宏匯總

使用說明

1、下載并解壓,得出pdf文件

2、如果打不開本文件,請務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進行閱讀

收起介紹展開介紹
  • 下載地址
uvm實戰(zhàn)卷1 張強pdf掃描版

有問題? 點此報錯

發(fā)表評論

0條評論