SystemC: From the Ground Up, Second Edition (eBook)

eBook Download: PDF
2009 | 2nd ed. 2010
XXIII, 281 Seiten
Springer US (Verlag)
978-0-387-69958-5 (ISBN)

Lese- und Medienproben

SystemC: From the Ground Up, Second Edition - David C. Black, Jack Donovan, Bill Bunton, Anna Keist
Systemvoraussetzungen
106,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

SystemC provides a robust set of extensions to the C++ language that enables rapid development of complex models of hardware and software systems. The authors focus on practical use of the language for modeling real systems, showing:

  • A step-by-step build-up of syntax
  • Code examples for each concept
  • Over 8000 lines of downloadable code examples
  • Updates to reflect the SystemC standard, IEEE 1666
  • Why features are as they are
  • Many resource references
  • How SystemC fits into an ESL methodology

This new edition of an industry best seller is updated to reflect the standardization of SystemC as IEEE 1666 and other improvements that reflect feedback from readers of the first edition. The wide ranging feedback also include suggestions from editors of the Japanese and Korean language translations, professors and students, and computer engineers from a broad industrial and geographical spectrum, all who have successfully used the first edition.

New chapters have been added on the SystemC Verification Library and the Transaction Level Modeling, and proposed changes to the current SystemC standard.

David Black and Jack Donovan, well known consultants in the EDA industry, have teamed with Bill Bunton and Anna Keist, experienced SystemC modeling engineers, to write the second edition of this highly popular classic. As a team the authors bring over 100 years of ASIC and system design experience together to make a very readable introduction to SystemC.


SystemC provides a robust set of extensions to the C++ language that enables rapid development of complex models of hardware and software systems. The authors focus on practical use of the language for modeling real systems, showing: A step-by-step build-up of syntax Code examples for each concept Updates to reflect the SystemC standard, IEEE 1666 Why features are as they are Many resource references How SystemC fits into an ESL methodology This new edition of an industry best seller is updated to reflect the standardization of SystemC as IEEE 1666 and other improvements that reflect feedback from readers of the first edition. The wide ranging feedback also include suggestions from editors of the Japanese and Korean language translations, professors and students, and computer engineers from a broad industrial and geographical spectrum, all who have successfully used the first edition. New chapters have been added on the SystemC Verification Library and the Transaction Level Modeling, and proposed changes to the current SystemC standard. David Black and Jack Donovan, well known consultants in the EDA industry, have teamed with Bill Bunton and Anna Keist, experienced SystemC modeling engineers, to write the second edition of this highly popular classic. As a team the authors bring over 100 years of ASIC and system design experience together to make a very readable introduction to SystemC.

Black_Frontmatter_O.pdf 2
Anchor 1 6
Anchor 3 8
Anchor 4 8
Anchor 5 9
Anchor 6 10
Anchor 7 11
Anchor 8 12
Anchor 9 12
Anchor 10 13
Black_Ch01_O.pdf 23
Chapter 1 23
Why SYSTEMC: ESL and TLM 23
1.1 .Introduction 23
1.2 .ESL Overview 24
1.2.1 .Design Complexity 24
1.2.2 .Shortened Design Cycle = Need For Concurrent Design 25
1.2.2.1 .Traditional System Design Approach 26
1.3 .Transaction-Level Modeling 29
1.3.1 .Abstraction Models 29
1.3.2 .An Informal Look at TLM 30
1.3.3 .TLM Methodology 32
1.3.3.1 .Algorithmic Modeling 33
1.3.3.2 .Architectural Modeling 34
1.3.3.3 .Virtual Software Development Platform 34
1.3.3.4 .Hardware Refinement 35
1.3.3.5 .Functional and Architectural Verification 35
1.4 .A Language for ESL and TLM: SystemC 36
1.4.1 .Language Comparisons and Levels of Abstraction 37
1.4.2 .SystemC: IEEE 1666 38
1.4.3 .Common Skill Set 38
1.4.4 .Proper Simulation Performance and Features 38
1.4.5 .Productivity Tool Support 39
1.4.6 .TLM Concept Support 39
1.5 .Conclusion 40
Black_Ch02_O.pdf 41
Chapter 2 41
Overview of SystemC 41
2.1 .C++ Mechanics for SystemC 42
2.2 .SystemC Class Concepts for Hardware 44
2.2.1 .Time Model 44
2.2.2 .Hardware Data Types 45
2.2.3 .Hierarchy and Structure 45
2.2.4 .Communications Management 45
2.2.5 .Concurrency 46
2.2.6 .Summary of SystemC Features for Hardware Modeling 46
2.3 .Overview of SystemC Components 47
2.3.1 .Modules and Hierarchy 47
2.3.2 .SystemC Threads and Methods 47
2.3.3 .Events, Sensitivity, and Notification 48
2.3.4 .SystemC Data Types 49
2.3.5 .Ports, Interfaces, and Channels 49
2.3.6 .Summary of SystemC Components 50
2.4 .SystemC Simulation Kernel 51
Black_Ch03_O.pdf 53
Chapter 3 53
Data Types 53
3.1 .Native C++ Data Types 53
3.2 .SystemC Data Types Overview 54
3.3 .SystemC Logic Vector Data Types 55
3.3.1 .sc_bv.< W>
3.3.2 .sc_logic and sc_lv.< W>
3.4 .SystemC Integer Types 57
3.4.1 .sc_int.< W>
3.4.2 .sc_bigint.< W>
3.5 .SystemC Fixed-Point Types 58
3.6 .SystemC Literal and String 61
3.6.1 .SystemC String Literals Representations 61
3.6.2 .String Input and Output 62
3.7 .Operators for SystemC Data Types 63
3.8 .Higher Levels of Abstraction and the STL 65
3.9 .Choosing the Right Data Type 66
3.10 .Exercises 66
Black_Ch04_O.pdf 68
Chapter 4 68
Modules 68
4.1 .A Starting Point: sc_main 68
4.2 . The Basic Unit of Design: SC_MODULE 70
4.3 .The SC_MODULE Class Constructor: SC_CTOR 71
4.4 .The Basic Unit of Execution: Simulation Process 72
4.5 .Registering the Basic Process: SC_THREAD 73
4.6 .Completing the Simple Design: main.cpp 74
4.7 .Alternative Constructors: SC_HAS_PROCESS 74
4.8 .Two Styles Using SystemC Macros 76
4.8.1 .The Traditional Coding Style 76
4.8.2 .Recommended Alternate Style 77
4.9 .Exercises 78
Black_Ch05_O.pdf 80
Chapter 5 80
A Notion of Time 80
5.1 .sc_time 80
5.1.1 .SystemC Time Resolution 81
5.1.2 .Working with sc_time 82
5.2 .sc_time_stamp() 82
5.3 .sc_start() 83
5.4 .wait(sc_time) 84
5.5 .Exercises 85
Black_Ch06_O.pdf 86
Chapter 6 86
Concurrency 86
6.1 .Understanding Concurrency 86
6.2 .Simplified Simulation Engine 89
6.3 .Another Look at Concurrency and Time 91
6.4 .The SystemC Thread Process 92
6.5 .SystemC Events 93
6.5.1 Causing Events 94
6.6 .Catching Events for Thread Processes 95
6.7 .Zero-Time and Immediate Notifications 96
6.8 .Understanding Events by Way of Example 99
6.9 .The SystemC Method Process 102
6.10 .Catching Events for Method Processes 104
6.11 .Static Sensitivity for Processes 104
6.12 .Altering Initialization 107
6.13 .The SystemC Event Queue 108
6.14 .Exercises 109
Black_Ch07_O.pdf 110
Chapter 7 110
Dynamic Processes 110
7.1 .Introduction 110
7.2 .sc_spawn 110
7.3 .Spawn Options 112
7.4 .A Spawned Process Example 113
7.5 .SC_FORK/SC_JOIN 114
7.6 .Process Control Methods 117
7.7 . Exercises 118
Black_Ch08_O.pdf 119
Chapter 8 119
Basic Channels 119
8.1 .Primitive Channels 120
8.2 .sc_mutex 120
8.3 .sc_semaphore 122
8.4 .sc_fifo 124
8.5 .Exercises 126
Black_Ch09_O.pdf 127
Chapter 9 127
Evaluate-Update Channels 127
9.1 .Completed Simulation Engine 128
9.2 .SystemC Signal Channels 130
9.3 .Resolved Signal Channels 133
9.4 .Template Specializations of sc_signal Channels 135
9.5 .Exercises 136
Black_Ch10_O.pdf 137
Chapter 10 137
Structure 137
10.1 .Module Hierarchy 137
10.2 .Direct Top-Level Implementation 139
10.3 .Indirect Top-Level Implementation 139
10.4 .Direct Submodule Header-Only Implementation 140
10.5 .Direct Submodule Implementation 140
10.6 .Indirect Submodule Header-Only Implementation 141
10.7 .Indirect Submodule Implementation 142
10.8 .Contrasting Implementation Approaches 143
10.9 .Exercises 143
Black_Ch11_O.pdf 144
Chapter 11 144
Communication 144
11.1 .Communication: The Need for Ports 144
11.2 .Interfaces: C++ and SystemC 145
11.3 .Simple SystemC Port Declarations 148
11.4 .Many Ways to Connect 149
11.5 .Port Connection Mechanics 151
11.6 .Accessing Ports From Within a Process 153
11.7 .Exercises 154
Black_Ch12_O.pdf 155
Chapter 12 155
More on Ports & Interfaces
12.1 .Standard Interfaces 155
12.1.1 .SystemC FIFO Interfaces 155
12.1.2 SystemC Signal Interfaces 157
12.1.3 sc_mutex and sc_semaphore Interfaces 158
12.2 .Sensitivity Revisited: Event Finders and Default Events 158
12.3 .Specialized Ports 160
12.4 .The SystemC Port Array and Port Policy 163
12.5 .SystemC Exports 166
12.6 .Connectivity Revisited 171
12.7 .Exercises 173
Black_Ch13_O.pdf 174
Chapter 13 174
Custom Channels and Data 174
13.1 .A Review of SystemC Channels and Interfaces 174
13.2 .The Interrupt, a Custom Primitive Channel 175
13.3 .The Packet, a Custom Data Type for SystemC 176
13.4 .The Heartbeat, a Custom Hierarchical Channel 179
13.5 .The Adaptor, a Custom Primitive Channel 181
13.6 .The Transactor, a Custom Hierarchical Channel 183
13.7 .Exercises 187
Black_Ch14_O.pdf 188
Chapter 14 188
Additional Topics 188
14.1 .Error and Message Reporting 188
14.2 .Elaboration and Simulation Callbacks 191
14.3 .Configuration 192
14.4 .Programmable Structure 194
14.5 .sc_clock, Predefined Processes 198
14.6 .Clocked Threads, the SC_CTHREAD 199
14.7 .Debugging and Signal Tracing 202
14.8 .Other Libraries: SCV, ArchC, and Boost 204
14.9 .Exercises 204
Black_Ch15_O.pdf 205
Chapter 15 205
SCV 205
15.1 .Introduction 205
15.2 . Data Introspection 205
15.2.1 .Components for scv_extension Interface 206
15.2.2 .Built-In scv_extensions 208
15.2.3 .User-Defined Extensions 209
15.3 .scv_smart_ptr Template 209
15.4.1 .Global Configuration 210
15.4.2 .Basic Randomization 212
15.4.3 .Constrained Randomization 213
15.5 .Callbacks 216
15.6 .Sparse Arrays 217
15.7 .Transaction Sequences 218
15.8 .Transaction Recording 219
15.9 .SCV Tips 220
15.10 .Exercises 220
Black_Ch16_O.pdf 222
Chapter 16 222
OSCI TLM 222
16.1 .Introduction 222
16.2 .Architecture 223
16.3 .TLM Interfaces 225
16.3.1 .Unidirectional Blocking Interfaces 226
16.3.2 .Unidirectional Non-Blocking Interfaces 226
16.3.3 .Bidirectional Blocking Interface 228
16.4 .TLM Channels 228
16.5 .Auxiliary Components 229
16.5.1 .TLM Master 230
16.5.2 .TLM Slave 230
16.5.3 .Router and Arbiter 231
16.6 .A TLM Example 232
16.7 .Summary 235
16.8 .Exercises 235
Black_Ch17_O.pdf 237
Chapter 17 237
Odds & Ends
17.1 .Determinants in Simulation Performance 237
17.1.1 .Saving Time and Clocks 238
17.1.2 .Moving Large Amounts of Data 239
17.1.3 .Too Many Channels 240
17.1.4 .Effects of Over Specification 241
17.1.5 .Keep it Native 241
17.1.6 . C++ Compiler Optimizations 241
17.1.7 .C++ Compilers 241
17.1.8 .Better Libraries 241
17.1.9 .Better and More Simulation Computers 242
17.2 .Features of the SystemC Landscape 242
17.2.1 .Things You Wish Would Just Go Away 242
17.2.2 .Development Environment 244
17.2.3 .Conventions and Coding Style 244
17.3 .Next Steps 245
17.3.1 .Guidelines for Adopting SystemC 245
There are a number of companies supporting SystemC methodologies. A quick visit to the OSCI web site www.systemc.org can 245
Black_Backmatter_O.pdf 248
Appendix A 248
C++ Basics 248
A.1 Background of C++ 249
A.2 Structure of a C Program 249
A.3 Comments 250
A.4 Streams (I/O) 250
A.4.1 Streaming vs. printf 251
A.5 Basic C Statements 251
A.5.1 Expressions and Operators 251
A.5.2 Conditional 253
A.5.3 Looping 254
A.5.4 Altering Flow 255
A.6 Data Types 255
A.6.1 Built-In Data Types 256
A.6.2 User-Defined Data Types 256
A.6.2.1 Pointers, Arrays, and References 256
A.6.2.2 Structures 257
A.6.2.3 STL 259
A.6.3 Constants 259
A.6.4 Declaration vs. Definition 259
A.7 Functions 260
A.7.1 Pass By Value and Return 261
A.7.2 Pass by Reference 261
A.7.3 Overloading 262
A.7.4 Constant Arguments 262
A.7.5 Defaults for Arguments 263
A.7.6 Operators as Functions 263
A.8 Classes 264
A.8.1 Member Data and Member Functions 264
A.8.2 Constructors and Destructors 265
A.8.2.1 Initialization 267
A.8.3 Destructors 268
A.8.4 Inheritance 269
A.8.4.1 Adding Members 269
A.8.4.2 Initialization of a Base Class 269
A.8.4.3 Overriding Inherited Member Functions 270
A.8.4.4 Multiple Inheritance 270
A.8.5 Public, Private and Protected Access 271
A.8.5.1 Friends 271
A.8.6 Polymorphism 271
A.8.6.1 Virtual 272
A.8.6.2 Abstract and Interface Classes 272
A.8.7 Constant Members 273
A.8.8 Static Members 273
A.9 Templates 274
A.9.1 Defining Template Functions 274
A.9.2 Using Template Functions 274
A.9.3 Defining Template Classes 275
A.9.4 Using Template Classes 275
A.9.5 Template Considerations 275
A.10 Names and Namespaces 276
A.10.1 Meaningful Names 276
A.10.2 Ordinary Scope 276
A.10.3 Defining Namespaces 277
A.10.4 Using Names and Namespaces 277
A.10.5 Anonymous Namespaces 277
A.11 Exceptions 278
A.11.1 Watching for and Catching Exceptions 278
A.11.2 Throwing Exceptions 279
A.11.3 Functions that Throw 280
A.12 Standard Library Tidbits 281
A.12.1 Strings 281
A.12.2 File I/O 281
A.12.3 Standard Template Library 283
A.13 Closing Thoughts 283
A.14 References 284
Black_Index_O.pdf 285

Erscheint lt. Verlag 18.12.2009
Zusatzinfo XXIII, 281 p.
Verlagsort New York
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Software Entwicklung
Mathematik / Informatik Informatik Theorie / Studium
Informatik Weitere Themen CAD-Programme
Technik Elektrotechnik / Energietechnik
Technik Nachrichtentechnik
Schlagworte ASIC Design • C++ • C++ code example • C++ code examples • David Black • EDA Standard • Electronic design automation (EDA) • ESL Methodology • Ground Up • Hardware description language (HDL) • IEEE Standard 1666 • Jack Donovan • SystemC • SystemC Verification Library • SystemC Verification Library; • TLM-based Methodolo
ISBN-10 0-387-69958-9 / 0387699589
ISBN-13 978-0-387-69958-5 / 9780387699585
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 17,5 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Technologische Grundlagen und industrielle Praxis

von André Borrmann; Markus König; Christian Koch …

eBook Download (2021)
Springer Fachmedien Wiesbaden (Verlag)
89,99
Agilität kontinuierlich verbessern

von Irun D. Tosh

eBook Download (2024)
tredition (Verlag)
19,99