內容簡介
systemC既是系統級語言,也是硬體描述語言。本書介紹的是SystemC2.0標準,主要介紹SystemC有關硬體建模方面的語法特性,換言之,是介紹SystemC的RTL可綜合子集。其主要內容包括:SystemC數據類型、組合邏輯建模、同步邏輯建模、三態驅動器建模、常用的設計函式模型、測試平台的編寫及系統級建模的功能等。隨書附帶1張光碟,內含本書所有例子的代碼。
本書所有例子都經過SystemC2.0.1的驗證。本書可作為想要了解和學習SystemC的設計工程師和系統工程師的參考書,也可用做大學講授體系結構、數字設計或系統設計課程的教材。
前言
J.Bhasker在數字積體電路設計界具有很好的聲譽。包括美國和中國在內的各國數字電路和系統設計者,無論是新手,還是從VHDL轉到Verilog的老手,其中很多人都閱讀過J.Bhasker編寫的AVerilogHDLPrimer。J.Bhasker的教材以簡明扼要、清晰易懂著名。ASystemCPrimer一書是介紹SystemC基礎知識的教科書,符合他編書的一貫風格,特別適合作為入門教材。
SystemC對許多中國讀者來說,還是一種新的硬體描述語言。近年來,由於基於平台設計方法學的推廣,系統驗證已成為設計工作中的瓶頸。而SystemC由於是一種基於C++的語言,具有學習方便的優點,更重要的是其高速的仿真性能已得到多家設計公司的認可,因此被廣泛用做SoC系統驗證語言。由OSCI組織的推薦,2004年SystemC2.0被正式批准為IEEE標準,與SystemVerilog並列成為最主要的系統驗證語言之一。
本書是根據J.Bhasker編寫的ASystemCPrimer第2版翻譯的。2004年起原書在數字積體電路驗證界逐漸走紅並非偶然。在世界各地的大學中,教師和學生們所熟悉的主要程式語言和環境是C++。而SystemC是C++的一個子集合,不存在編程環境和學習基礎的問題,所以比SystemVerilog更便於推廣和套用。
本書的翻譯工作安排如下:第2版序言、序言、前言、第1~6章及附錄A、B和索引等由夏宇聞負責,第7~9章由神州龍芯IC設計公司的甘偉工程師負責。全書最後的審校與定稿由夏宇聞負責。
在神州龍芯IC設計公司工作的工程師和實習研究生樊榮、洪雷、周鵬飛、劉家正、陳岩、李鵬、宋成偉、邢志成、管麗、徐偉俊、楊鑫、蘇宇、張雲帆、邢小地、李鵬、李琪、陳岩等認真閱讀了最後完成的翻譯稿,並提出了許多改進意見,使翻譯工作的質量有了顯著提高。在翻譯稿最後完成之際,謹向他們表示誠摯的感謝。
全書翻譯稿完成之後,我以前的學生、上海瀾起IC設計公司的技術總監山崗、威盛IC設計公司的高級設計師楊柳女士和田玉文女士等認真閱讀了全書,並提出了寶貴的修改意見,在此一併表示感謝。
2006年我從北京航空航天大學退休後,受曾明總裁的邀請到神州龍芯IC設計公司擔任顧問。本書的翻譯工作是在他的支持下完成的。該公司不但為我提供了舒適的辦公條件和自由寬鬆的工作時間,而且還為我安排了既謙虛好學又能幹的年輕工程師甘偉擔任助手。沒有曾明總裁的支持,本書的翻譯工作不可能既快又高質量地完成。在本書出版之際,讓我向曾明總裁、甘偉工程師和神州龍芯IC設計公司的全體員工表示衷心的感謝。
夏宇聞
北京航空航天大學教授
2008年4月1日於神州龍芯IC設計公司
目錄
專家推薦
譯者序
序言
前言
本書是如何組織的
如何閱讀本書
附加資料來源
感謝
第1章 導論
驗證生產率2
提高生產率2
驗證組件3
基於接口的設計4
針對驗證的設計5
使用斷言的好處6
方法學的實現7
方法學的採納7
指導原則9
基本的編碼指導原則10
術語的定義11
第2章 驗證計畫
計畫過程14
功能驗證的需求15
驗證環境的需求18
驗證計畫的實現方案22
回響檢查24
嵌入式監視器25
斷言26
精確性28
記分板30
參考模型30
離線檢查31
總結32
第3章 斷言
斷言的指定33
斷言語言基本知識35
DUT(被測設計)內部信號上的斷言39
外部接口上的斷言47
斷言編碼的指導原則50
覆蓋率屬性58
基於斷言的可重用檢查器63
簡單檢查器63
基於斷言的驗證IP71
基於斷言的IP結構74
文檔與發行內容82
斷言的鑑定83
總結84
第4章 測試平台的基本結構
測試平台的架構86
信號層89
指令層96
功能層98
場景層101
測試層102
仿真控制104
訊息服務111
數據和事務115
類屬性/數據成員118
方法126
約束條件129
事務處理器132
物理層接口138
事務層接口139
完成和回響模型144
基元按序執行模型145
亂序基元執行模型149
非基元事務執行151
被動回響154
從動回響156
時序接口159
回調方法161
特定的測試平台164
傳統的匯流排功能模型168
VMM兼容升級168
VMM兼容接口169
總結171
第5章 激勵與回響
激勵的生成173
隨機激勵174
定向激勵180
異常的生成182
嵌入式激勵186
對隨機生成的控制187
基元生成190
場景生成191
多流生成195
基於狀態的生成197
應選用哪種發生器202
自檢查結構203
記分板206
與事務處理器的集成209
異常的處理211
總結212
第6章 針對覆蓋率的驗證
覆蓋率度量指標214
覆蓋率模型215
結構覆蓋率建模216
功能覆蓋率建模216
功能覆蓋率分析218
覆蓋率評級219
功能覆蓋率實現方案219
覆蓋率組221
覆蓋率屬性228
反饋機制228
總結230
第7章 用於形式化驗證的斷言
模型檢查和斷言233
對數據的斷言242
不使用局部變數242
使用局部變數245
形式化驗證工具的兼容性250
總結250
第8章 系統級驗證
可擴展的驗證組件252
XVC的結構253
XVC的實現255
動作的實現257
XVC管理器261
預定義的XVC管理器262
系統級驗證環境263
塊互聯結構的驗證267
基本集成驗證269
低層次系統功能驗證271
系統認證驗證272
驗證事務層模型274
事務層接口276
硬體輔助的驗證277
外設測試塊的結構279
總結281
第9章 處理器集成驗證
軟體測試環境283
基本軟體集成驗證285
全系統驗證環境286
軟體測試結構289
測試動作292
編譯過程296
測試的運行298
引導模組299
總結300
附錄 AVMM標準庫技術說明書
VMM_VERSION302
VMM_ENV303
VMM_LOG306
vmm_log_msg319
vmm_log_format320
vmm_log_callbacks322
VMM_DATA324
VMM_CHANNEL330
VMM_BROADCAST342
VMM_SCHEDULER346
vmm_scheduler_election350
VMM_NOTIFY352
vmm_notification357
VMM_XACTOR358
vmm_xactor_callbacks364
VMM_ATOMIC_GEN364
VMM_SCENARIO_GEN368
附錄 BVMM檢查器庫
OVL等價的檢查器(SVL)381
高級檢查器387
附錄 CXVC標準庫技術說明書
XVC_MANAGER393
XVC_XACTOR395
XVC_ACTION397
VMM_XVC_MANAGER399
注意400
檔案結構401
命令403
附錄D 軟體驗證框架
基本類型417
系統描述符418
外設描述符418
中斷描述符421
DMA通道描述符422
測試動作423
低層次服務429
高速快取鎖定434
中斷控制器436
與XVC的軟體接口的連線440
索引441
作者介紹468