幫助中心 | 我的帳號 | 關於我們

UVM實戰

  • 作者:編者:張強|責編:遲振春
  • 出版社:機械工業
  • ISBN:9787111470199
  • 出版日期:2014/06/01
  • 裝幀:平裝
  • 頁數:368
人民幣:RMB 99 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書主要介紹UVM的使用。全書詳盡介紹了UVM的factory機制、sequence機制、phase機制、objection機制及寄存器模型等的使用。此外,本書還試圖引導讀者思考UVM為什麼要引入這些機制,從而使讀者知其然,更知其所以然。
    本書以一個完整的示例開篇,使得讀者一開始就對如何使用UVM搭建驗證平台有總體的概念。本書提供大量示例代碼,這些代碼都經過實際的運行。全書內容力求簡單易懂,盡量將UVM中的概念與讀者已有的概念聯繫起來。在第11章還專門介紹了OVM與UVM的區別,為那些從OVM遷移到UVM的用戶提供很大幫助。
    本書主要面向UVM的初學者及想對UVM追根尋底的中級用戶。針對沒有面向對象編程基礎的用戶,本書在附錄中簡要介紹了面向對象的概念及SystemVerilog中區別于其他編程語言的一些特殊語法。

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

目錄
前言
第1章  與UVM的第一次接觸
  1.1  UVM是什麼
    1.1.1  驗證在現代IC流程中的位置
    1.1.2  驗證的語言
    1.1.3  何謂方法學
    1.1.4  為什麼是UVM
    1.1.5  UVM的發展史
  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  加入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基礎
  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相關的宏
    3.1.5  與uvm_component相關的宏
    3.1.6  uvm_component的限制
    3.1.7  uvm_component與uvm_object的二元結構
  3.2  UVM的樹形結構
    3.2.1  uvm_component中的parent參數
    3.2.2  UVM樹的根
    3.2.3  層次結構相關函數
  3.3  field automation機制
    3.3.1  field automation機制相關的宏
    3.3.2  field automation機制的常用函數
    3.3.3  field automation機制中標誌位的使用

    3.3.4  field automation中宏與if的結合
  3.4  UVM中列印信息的控制
    3.4.1  設置列印信息的冗余度閾值
    3.4.2  重載列印信息的嚴重性
    3.4.3  UVM_ERROR到達一定數量結束模擬
    3.4.4  設置計數的目標
    3.4.5  UVM的斷點功能
    3.4.6  將輸出信息導入文件中
    3.4.7  控制列印信息的行為
  3.5  config_db機制
    3.5.1  UVM中的路徑
    3.5.2  set與get函數的參數
    3.5.3  省略get語句
    3.5.4  跨層次的多重設置
    3.5.5  同一層次的多重設置
    3.5.6  非直線的設置與獲取
    3.5.7  config_db機制對通配符的支持
    3.5.8  check_config_usage
    3.5.9  set_config與get_config
    3.5.10  config_db的調試
第4章  UVM中的TLM1.0通信
  4.1   TLM
    4.1.1  驗證平台內部的通信
    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內有多個IMP
    4.3.3  使用FIFO通信
    4.3.4  FIFO上的埠及調試
    4.3.5  用FIFO還是用IMP
第5章  UVM驗證平台的運行
  5.1  phase機制
    5.1.1  task phase與function phase
    5.1.2  動態運行phase
    5.1.3  phase的執行順序
    5.1.4  UVM樹的遍歷
    5.1.5  super.phase的內容
    5.1.6  build階段出現UVM_ERROR停止模擬
    5.1.7  phase的跳轉

    5.1.8  phase機制的必要性
    5.1.9  phase的調試
    5.1.10  超時退出
  5.2  objection機制
    5.2.1  objection與task phase
    5.2.2  參數phase的必要性
    5.2.3  控制objection的最佳選擇
    5.2.4  set_drain_time的使用
    5.2.5  objection的調試
  5.3  domain的應用
    5.3.1  domain簡介
    5.3.2  多domain的例子
    5.3.3  多domain中phase的跳轉
第6章  UVM中的sequence
  6.1  sequence基礎
    6.1.1  從driver中剝離激勵產生功能
    6.1.2  sequence的啟動與執行
  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相關宏及其實現
    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進階應用
    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之間的複雜同步
    6.5.4  僅在virtual sequence中控制objection
    6.5.5  在sequence中慎用fork join_none
  6.6  在sequence中使用config_db
    6.6.1  在sequence中獲取參數
    6.6.2  在sequence中設置參數
    6.6.3  wait_modified的使用
  6.7  response的使用
    6.7.1  put_response與get_response
    6.7.2  response的數量問題
    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  控制執行次數
    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中前門訪問的實現
    7.3.2  後門訪問操作的定義
    7.3.3  使用interface進行後門訪問操作
    7.3.4  UVM中後門訪問操作的實現:DPI+VPI
    7.3.5  UVM中後門訪問操作介面
  7.4  複雜的寄存器模型
    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  寄存器模型中一些內建的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_PREDICT_DIRECT功能與mirror操作
    7.7.3  寄存器模型的隨機化與update
    7.7.4  擴展位寬
  7.8  寄存器模型的其他常用函數
    7.8.1  get_root_blocks
    7.8.2  get_reg_by_offset函數
第8章  UVM中的factory機制
  8.1  SystemVerilog對重載的支持
    8.1.1  任務與函數的重載
    8.1.2  約束的重載
  8.2  使用factory機制進行重載
    8.2.1  factory機制式的重載
    8.2.2  重載的方式及種類
    8.2.3  複雜的重載
    8.2.4  factory機制的調試
  8.3  常用的重載

    8.3.1  重載transaction
    8.3.2  重載sequence
    8.3.3  重載component
    8.3.4  重載driver以實現所有的測試用例
  8.4  factory機制的實現
    8.4.1  創建一個類的實例的方法
    8.4.2  根據字元串來創建一個類
    8.4.3  用factory機制創建實例的介面
    8.4.4  factory機制的本質
第9章  UVM中代碼的可重用性
  9.1  callback機制
    9.1.1  廣義的callback函數
    9.1.2  callback機制的必要性
    9.1.3  UVM中callback機制的原理
    9.1.4  callback機制的使用
    9.1.5  子類繼承父類的callback機制
    9.1.6  使用callback函數/任務來實現所有的測試用例
    9.1.7  callback機制、sequence機制和factory機制
  9.2  功能的模塊化:小而美
    9.2.1  Linux的設計哲學:小而美
    9.2.2  小而美與factory機制的重載
    9.2.3  放棄建造強大sequence的想法
  9.3  參數化的類
    9.3.1  參數化類的必要性
    9.3.2  UVM對參數化類的支持
  9.4  模塊級到晶元級的代碼重用
    9.4.1  基於env的重用
    9.4.2  寄存器模型的重用
    9.4.3  virtual sequence與virtual sequencer
第10章  UVM高級應用
  10.1  interface
    10.1.1  interface實現driver的部分功能
    10.1.2  可變時鐘
  10.2  layer sequence
    10.2.1  複雜sequence的簡單化
    10.2.2  layer sequence的示例
    10.2.3  layer sequence與try_next_item
    10.2.4  錯峰技術的使用
  10.3  sequence的其他問題
    10.3.1  心跳功能的實現
    10.3.2  只將virtual_sequence設置為default_sequence
    10.3.3  disable fork語句對原子操作的影響
  10.4  DUT參數的隨機化
    10.4.1  使用寄存器模型隨機化參數
    10.4.2  使用單獨的參數類
  10.5  聚合參數
    10.5.1  聚合參數的定義
    10.5.2  聚合參數的優勢與問題
  10.6  config_db
    10.6.1  換一個phase使用config_db

    10.6.2  config_db的替代者
    10.6.3  set函數的第二個參數的檢查
第11章  OVM到UVM的遷移
  11.1  對等的遷移
  11.2  一些過時的用法
    11.2.1  sequence與sequencer的factory機制實現
    11.2.2  sequence的啟動與uvm_test_done
    11.2.3  手動調用build_phase
    11.2.4  純凈的UVM環境
附錄A SystemVerilog使用簡介
附錄B DUT代碼清單
附錄C UVM命令行參數匯總
附錄D UVM常用宏匯總

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032