Responsive image
博碩士論文 etd-0822108-181607 詳細資訊
Title page for etd-0822108-181607
論文名稱
Title
先進微處理器之設計驗證方法
The Design Verification Methodology for an Advanced Microprocessor
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
169
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2008-07-07
繳交日期
Date of Submission
2008-08-22
關鍵字
Keywords
驗證語言、微處理器驗證、微處理器驗證環境、模擬驗證法、測試程式產生器
testbench generator, microprocessor verification environment, verification language, simulation base verification, microprocessor verification
統計
Statistics
本論文已被瀏覽 5659 次,被下載 6
The thesis/dissertation has been browsed 5659 times, has been downloaded 6 times.
中文摘要
根據相關的論文描述, 一個專案在測試驗證的時間佔總時程的大約60˜70%, 再加上現今
產品的生命週期縮短, 因此測試驗證的方法對於能否在計劃的時間內有效率完成, 佔有很重要
的因素。而在針對處理器的驗證方面, 更因為有許多更加強的運算功能, 造成在驗證與條件設
計測試程式時更加困難。
而本論文中是以本實室所發展的一顆以ARM 1022E 架構與V5TE 指令集為基礎的處
理器SYS32TME III, 做為測試驗證的處理器, 在論文中主要是說明處理器的驗證流程, 並配
合實作出可以幫助產生測試程式的工具verification language, 使用者可以利用verification
language 快速的產生testbench 加速驗證的時程, 也利用針對corner case 手寫產生測試
程式, 並且可在不同的驗證環境下重複使用, 最後再使用C 語言撰寫應用程式, 也根據不同的
特性建立了不同的驗證環境, 最後找出處理器、驗證環境、介面轉換電路、指令模擬器的錯誤
並修正電路, 並在電路內部嵌入monitor 藉以提供資訊給驗證者, 可以知道測試程式的功能
驗證涵蓋率。
Abstract
According to references, testing and verification of a hardware circuit project
occupy about 60%˜70% of project time. Now that product cycle time is decreasing,
verification methodology is an important parameter for effective and successful
completion of a design project. Enhanced processor functions also make verification
conditions more difficult.
In this thesis the processor SYS32IME III, which is constructed based on architecture
of ARM 1022E, is verified by using V5TE instruction set. This thesis
focus on processor verification flow and others to help verification method. The
verification language that is used to help generate testbench are described in this
paper. Also, corner cases are generated, producing test cases that may be reused
in different verification environments. Lastly, errors from CPU architecture, verification
environments, interface wrapper and instruction set simulator were found
in different verification environment and fixed. To conclude the study, insertion
of self-implemented RTL monitor circuit into CPU architecture supply verification
information about testbench’s coverage of functional verification.
目次 Table of Contents
1 Introduction 1
1.1 Back ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Research methodology . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Thesis structural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Related work 5
2.1 Test program generate method . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Verification method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Formal verification . . . . . . . . . . . . . . . . . . . . . . . . 6
Equivalence checking . . . . . . . . . . . . . . . . . . . . . . . 6
Model checking (assertions) . . . . . . . . . . . . . . . . . . . 8
2.2.2 Simulation base . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Instruction set model . . . . . . . . . . . . . . . . . . . . . . . 10
Test template language . . . . . . . . . . . . . . . . . . . . . . 11
Functional fault model . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 ATPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Verification environment in different stages . . . . . . . . . . . . . . . 19
2.3.1 Direct test (Deterministic) Test . . . . . . . . . . . . . . . . . 19
2.3.2 Tightly couple memory bus system . . . . . . . . . . . . . . . 20
2.3.3 On-chip bus base system . . . . . . . . . . . . . . . . . . . . . 20
2.3.4 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Research methodology 22
3.1 RTL syntax and style checking . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Linting check . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 RTL module verification . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1 Component function verification . . . . . . . . . . . . . . . . . 25
3.2.2 System function verification . . . . . . . . . . . . . . . . . . . 26
Directed testing . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Random testing . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Verification language . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Instruction set format: . . . . . . . . . . . . . . . . . . . . . . 31
3.3.2 Testbench describe file: . . . . . . . . . . . . . . . . . . . . . . 47
3.4 Simulation environment . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4.1 Tightly couple memory bus . . . . . . . . . . . . . . . . . . . 57
3.4.2 On-chip bus base system . . . . . . . . . . . . . . . . . . . . . 58
3.5 Verification environment . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6 Verification coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6.1 Code coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6.2 Functional coverage . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6.3 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4 Bug found and fix 70
4.1 Verification plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2 Classify bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.3 Bug found and fix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.1 nLint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Coding style . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.2 Tightly couple memory bus . . . . . . . . . . . . . . . . . . . 77
Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3.3 On-chip bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Miss understand Spec. . . . . . . . . . . . . . . . . . . . . . . 93
5 Conclusion 94
6 Future work 95
A Appendix 96
A.1 SYS32TME III architecture . . . . . . . . . . . . . . . . . . . . . . . 96
A.2 SYS32TEM-III project file usage description . . . . . . . . . . . . . . 102
A.3 Testbench file usage description . . . . . . . . . . . . . . . . . . . . . 106
A.4 Testbench generator project file usage description . . . . . . . . . . . 107
A.5 How to get the golden pattern in ADS . . . . . . . . . . . . . . . . . 108
A.6 EASY environment file usage description . . . . . . . . . . . . . . . . 108
A.7 SVN file usage description . . . . . . . . . . . . . . . . . . . . . . . . 113
A.8 Implementation hardware experience . . . . . . . . . . . . . . . . . . 114
A.8.1 Important debug information wire . . . . . . . . . . . . . . . 114
A.8.2 Every important function block and wire description . . . . . 117
Fetch instruction and data rule . . . . . . . . . . . . . . . . . 121
A.9 Design compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
A.9.1 Start Design compiler library path setup . . . . . . . . . . . . 144
A.9.2 Synthesis script . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Reference 152
參考文獻 References
[1] F. Hunsinger, S. Francois, and A. Jerraya, “Definition of a systematic method
for the generation of software test programs allowing the functional verification
of system on chip (soc),” in Proceedings of the Fourth International Workshop
on Microprocessor Test and Verification Common Challenges and Solutions,
2003.
[2] S. Ezer and S. Johnson, “Smart diagnostics for configurable procesor verification,”
in ACM/IEEE Design Automation Conference, June 2005, pp. 13–17.
[3] J. Bergeron, Writing Testbenches: Functional Verification of HDL Models.
Kluwer Academic, January 2000.
[4] Verification Advisor: The Specman Elite. Verisity Design.
[5] VERA - Testbench Automation for Functional Verification. Synopsis.
[6] TransEDA, “Vn-cover.”
[7] A. Gluska, “Practical methods in coverage-oriented verification of the merom
microprocessor,” in Proc. 43rd ACM/IEEE Design Automation Conference,
24–28 July 2006, pp. 332–337.
[8] Geun-young, J. Ju-sung, P. Hyun-woo, J. Byung-woo, and Y. M. jin Lee, “Arm7
compatible 32-bit risc processor design and verification,” in Russian-Korean
inernational Symposium,, July 2005, pp. 607–610.
[9] A. A. Mir, S. Balakrishnan, and S. Tahar, “Modeling and verification of embedded
systems using cadence smv,” in Electrical and Computer Engineering,
2000, pp. 179–183.
[10] S. Vasudvan, V. Viswanath, and J. A. Abraham, “Efficient microprocessor verification
using antecedent conditioned slicing,” in 20th International Conference
on VLSI Design, 2007.
[11] L. Bening and H. Foster, Principles Of Verifiable RTL Design Second Edition.
Kluwer Acdemic, 2002.
[12] C.-H. Lee, H.-M. Yang, S.-H. Kwak, and M.-K. Lee, “Efficient random vector
verification method for an embedded 32bit risc core,” in Proceedings Of The
Second IEEE Asia Pacific Conference on ASIC, 2000.
[13] A. Chandra, V. Iyengar, D. Jameson, and R. Jawalekar, “Avpgena test generator
for architecture verificaton,” in IEEE Transactions On Very Large Scale
Integration Systems, June 1995.
[14] A. Aharon, D. Goodman, M. Levinger, and Y. Lichtenstein, “Test program generation
for functional verification of powerpc processors in ibm,” in ACM/IEEE
Design Automation Conference, 1995.
[15] L. Fournier, Y. Arbetman, and M. Levinger, “Functional verification methodology
for microprocessors using the genesys test-program generator application
to the x86 microprocessors family,” in Design Automation And Test In Europe,
1999.
[16] A. Adir, E. Almog, and L. Fournier, “Genesys-pro: Innovations in test program
generation for functional processor verification,” in IEEE Design & Test of
Computers, 2004, pp. 84–93.
[17] P. Grun, A. Halambi, A. Khare, V. Ganesh, N. Dutt, and A. Nicolau, “Expression:
An adl for system level design exploration,” in Department Of Information
And Computer Science University Of California, Irvine, Sept 1998.
[18] P. Mishra and N. Dutt, “Functional coverage driven test generation for validation
of pipelined processors,” in Proceedings Of The Design, Automation And
Test In Europe, 2005.
[19] H.-M. Koo, H.-M. Koo, P. Mishra, J. Bhadra, and M. Abadir, “Directed microarchitectural
test generation for an industrial processor: A case study,” in Proc.
Seventh International Workshop on Microprocessor Test and Verification MTV
’06, P. Mishra, Ed., 2006, pp. 33–36.
[20] F. I. Haque, K. A. Khan, and J. Michelson, THE ART OF VERIFICATION
WITH VERA. VERIFICATION CENTER, 2001.
[21] ARM7TDMI Data Sheet, Advanced RISC Machines Ltd, 1995.
[22] ARM, AMBA Specification (Rev 2.0) ARM IHI0011A, May 1999.
[23] C.-C. Hu, “Design and implementation of an arm10-like microprocessor,” Master’s
thesis, National Sun Yat-sen University, april 2008.
[24] S. S. Wang, Logic Synthesis with Design Compiler Training Manual, july-2005.
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內公開,校外永不公開 restricted
開放時間 Available:
校內 Campus: 已公開 available
校外 Off-campus:永不公開 not available

您的 IP(校外) 位址是 3.131.13.37
論文開放下載的時間是 校外不公開

Your IP address is 3.131.13.37
This thesis will be available to you on Indicate off-campus access is not available.

紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code