電子與嵌入式系統設計叢書:UVM實戰

基本介紹

內容簡介

《電子與嵌入式系統設計叢書:UVM實戰(卷1)》主要介紹UVM的使用。全書詳盡介紹了UVM的factory機制、sequence機制、phase機制、objection機制及暫存器模型等的使用。此外,《電子與嵌入式系統設計叢書:UVM實戰(卷1)》還試圖引導讀者思考UVM為什麼要引入這些機制,從而使讀者知其然,更知其所以然。

作者簡介

張強,資深驗證工程師,畢業於浙江大學超大規模積體電路研究所,研究方向為模擬及數模混合積體電路,主要從事模擬電源管理晶片、運算放大器及套用於高性能CPU的SRAM的研究與設計,持有兩個與SRAM相關的專利。畢業後一直從事數字積體電路的設計和驗證工作,曾經參與過高速智慧型列車數據採集及通信系統、高性能智慧型投影儀晶片的研究與開發。目前主要從事手機等消費電子低功耗圖形顯示晶片的研究。2011年年底,在熟讀UVM原始碼的情況下,在網上發布了《UVM1.1套用指南及原始碼解析》,深受讀者肯定。

圖書目錄

前言
第1章與UVM的第一次接觸
1.1UVM是什麼
1.1.1驗證在現代IC流程中的位置
1.1.2驗證的語言
1.1.3何謂方法學
1.1.4為什麼是UVM
1.1.5UVM的發展史
1.2學了UVM之後能做什麼
1.2.1驗證工程師
1.2.2設計工程師
第2章一個簡單的UVM驗證平台
2.1驗證平台的組成
2.2隻有driver的驗證平台
2.2.1最簡單的驗證平台
2.2.2加入factory機制
2.2.3加入objection機制
2.2.4加入virtualinterface
2.3為驗證平台加入各個組件
2.3.1加入transaction
2.3.2加入env
2.3.3加入monitor
2.3.4封裝成agent
2.3.5加入referencemodel
2.3.6加入scoreboard
2.3.7加入field_automation機制
2.4UVM的終極大作:sequence
2.4.1在驗證平台中加入sequencer
2.4.2sequence機制
2.4.3default_sequence的使用
2.5建造測試用例
2.5.1加入base_test
2.5.2UVM中測試用例的啟動
第3章UVM基礎
3.1uvm_component與uvm_object
3.1.1uvm_component派生自uvm_object
3.1.2常用的派生自uvm_object的類
3.1.3常用的派生自uvm_component的類
3.1.4與uvm_object相關的宏
3.1.5與uvm_component相關的宏
3.1.6uvm_component的限制
3.1.7uvm_component與uvm_object的二元結構
3.2UVM的樹形結構
3.2.1uvm_component中的parent參數
3.2.2UVM樹的根
3.2.3層次結構相關函式
3.3fieldautomation機制
3.3.1fieldautomation機制相關的宏
3.3.2fieldautomation機制的常用函式
3.3.3fieldautomation機制中標誌位的使用
3.3.4fieldautomation中宏與if的結會
3.4UVM中列印信息的控制
3.4.1設定列印信息的冗餘度閾值
3.4.2重載列印信息的嚴重性
3.4.3UVM_ERROR到達一定數量結束仿真
3.4.4設定計數的目標
3.4.5UVM的斷點功能
3.4.6將輸出信息導入檔案中
3.4.7控制列印信息的行為
3.5config_db機制
3.5.1UVM中的路徑
3.5.2set與get函式的參數
3.5.3省略get語句
3.5.4跨層次的多重設定
3.5.5同一層次的多重設定
3.5.6非直線的設定與獲取
3.5.7config_db機制對通配符的支持
3.5.8check_config_usage
3.5.9set_config與get_config
3.5.10config_db的調試
第4章UVM中的TLM1.0通信
4.1TLM1.0
4.1.1驗證平台內部的通信
4.1.2TLM的定義
4.1.3UVM中的PORT與EXPORT
4.2UVM中各種連線埠的互連
4.2.1PORT與EXPORT的連線
4.2.2UVM中的IMP
4.2.3PORT與IMP的連線
4.2.4EXPORT與IMP的連線
4.2.5PORT與PORT的連線
4.2.6EXPORT與EXPORT的連線
4.2.7blocking_get連線埠的使用
4.2.8blocking_transport連線埠的使用
4.2.9nonblocking連線埠的使用
4.3UVM中的通信方式
4.3.1UVM中的analysis連線埠
4.3.2一個component內有多個IMP
4.3.3使用FIFO通信
4.3.4FIFO上的連線埠及調試
4.3.5用FIFO還是用IMP
第5章UVM驗證平台的運行
5.1phase機制
5.1.1taskphase與functionphase
5.1.2動態運行phase
5.1.3phase的執行順序
5.1.4UVM樹的遍歷
5.1.5super.phase的內容
5.1.6build階段出現UVMERROR停止仿真
5.1.7phase的跳轉
5.1.8phase機制的必要性
5.1.9phase的調試
5.1.10逾時退出
5.2objection機制
5.2.1objection與taskphase
5.2.2參數phase的必要性
5.2.3控制objection的最佳選擇
5.2.4set_drain_time的使用
5.2.5objection的調試
5.3domain的套用
5.3.1domain簡介
5.3.2多domain的例子
5.3.3多domain中phase的跳轉
第6章UVM中的sequence
6.1sequence基礎
6.1.1從driver中剝離激勵產生功能
6.1.2sequence的啟動與執行
6.2sequence的仲裁機制
6.2.1在同一sequencer上啟動多個sequence
6.2.2sequencer的lock操作
6.2.3sequencer的grab操作
6.2.4sequence的有效性
6.3sequence相關宏及其實現
6.3.1uvm_do系列宏
6.3.2uvm_create與uvm_send
6.3.3uvm_rand_send系列宏
6.3.4start_item與finish_item
6.3.5pre_do.mid_do與post_do
6.4sequence進階套用
6.4.1嵌套的sequence
6.4.2在sequence中使用rand類型變數
6.4.3transaction類型的匹配
6.4.4p_sequencer的使用
6.4.5sequence的派生與繼承
6.5virtualsequence的使用
6.5.1帶雙路輸入輸出連線埠的DUT
6.5.2sequence之間的簡單同步
6.5.3sequence之間的複雜同步
6.5.4僅在virtualsequence中控制objection
6.5.5在sequence中慎用forkjoin_none
6.6在sequence中使用config_db
6.6.1在sequence中獲取參數
6.6.2在sequence中設定參數
6.6.3wait_modified的使用
6.7response的使用
6.7.1put_response與get_response
6.7.2response的數量問題
6.7.3responsehandler與另類的response
6.7.4rsp與req類型不同
6.8sequencelibrary
6.8.1隨機選擇sequence
6.8.2控制選擇算法
6.8.3控制執行次數
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.1UVM中前門訪問的實現
7.3.2後門訪問操作的定義
7.3.3使用interface進行後門訪問操作
7.3.4UVM中後門訪問操作的實現:DPI+VPI
7.3.5UVM中後門訪問操作接口
7.4複雜的暫存器模型
7.4.1層次化的暫存器模型
7.4.2reg_file的作用
7.4.3多個域的暫存器
7.4.4多個地址的暫存器
7.4.5加入存儲器
7.5暫存器模型對DUT的模擬
7.5.1期望值與鏡像值
7.5.2常用操作及其對期望值和鏡像值的影響
7.6暫存器模型中一些內建的sequence
7.6.1檢查後門訪問中hdl路徑的sequence
7.6.2檢查默認值的sequence
7.6.3檢查讀寫功能的sequence
7.7暫存器模型的高級用法
7.7.1使用reg_predictor
7.7.2使用UVM_PREDICTDIRECT功能與mirror操作
7.7.3暫存器模型的隨機化與update
7.7.4擴展位寬
7.8暫存器模型的其他常用函式
7.8.1get_root_blocks
7.8.2get_reg_by_offset函式
第8章UVM中的factory機制
8.1SystemVerilog對重載的支持
8.1.1任務與函式的重載
8.1.2約束的重載
8.2使用factory機制進行重載
8.2.1factory機制式的重載
8.2.2重載的方式及種類
8.2.3複雜的重載
8.2.4factory機制的調試
8.3常用的重載
8.3.1重載transaction
8.3.2重載sequence
8.3.3重載component
8.3.4重載driver以實現所有的測試用例
8.4factory機制的實現
8.4.1創建一個類的實例的方法
8.4.2根據字元串來創建一個類
8.4.3用factory機制創建實例的接口
8.4.4factory機制的本質
……
第9章UVM中代碼的可重用性
第10章UVM高級套用
第11章OVM到UVM的遷移
附錄ASystemVerilog使用簡介
附錄BDUT代碼清單
附錄CUVM命令行參數匯總
附錄DUVM常用宏匯總

熱門詞條

聯絡我們