Hardware verification with C++: a practitioner's handbook
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
New York
Springer
2006
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XX, 341 S. |
ISBN: | 0387255435 9780387255439 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV022233096 | ||
003 | DE-604 | ||
005 | 20070205 | ||
007 | t | ||
008 | 070119s2006 |||| 00||| eng d | ||
020 | |a 0387255435 |9 0-387-25543-5 | ||
020 | |a 9780387255439 |9 978-0-387-25543-9 | ||
035 | |a (OCoLC)79001050 | ||
035 | |a (DE-599)BVBBV022233096 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-898 |a DE-573 | ||
050 | 0 | |a TK7874.58 | |
082 | 0 | |a 621.3815 |2 22 | |
084 | |a ST 150 |0 (DE-625)143594: |2 rvk | ||
100 | 1 | |a Mintz, Mike |e Verfasser |4 aut | |
245 | 1 | 0 | |a Hardware verification with C++ |b a practitioner's handbook |c Mike Mintz ; Robert Ekendahl |
264 | 1 | |a New York |b Springer |c 2006 | |
300 | |a XX, 341 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a C++ (Computer program language) | |
650 | 4 | |a Integrated circuits |x Verification | |
650 | 0 | 7 | |a Hardwareverifikation |0 (DE-588)4214982-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++ |0 (DE-588)4193909-8 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Hardwareverifikation |0 (DE-588)4214982-4 |D s |
689 | 0 | 1 | |a C++ |0 (DE-588)4193909-8 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Ekendahl, Robert |e Verfasser |4 aut | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015444150&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-015444150 |
Datensatz im Suchindex
_version_ | 1804136221675356160 |
---|---|
adam_text | Contents
Preface xix
Acknowledgments xxi
Chapter 1: Introduction 1
Background 3
What is Functional Verification? 4
Why Focus on C++? 4
A Tour of the Handbook 5
For Further Reading 6
Part I:
C++ and Verification
(The Why and How) 7
Chapter 2: Why C + + ? 9
Overview 10
C++: A Good Verification Language 11
A Look at Hardware Verification Languages 13
Randomization 13
Coverage 14
Object oriented support 14
Main Benefits of Using C++ 15
Other Benefits of Using C++ 16
Drawbacks of Using C++ 17
For Further Reading 17
Chapter 3: OOP, C + + , and Verification ....19
Overview 20
The Evolution of OOP and C++ 21
Assembly programming: The early days 21
Procedural languages: The next big step 21
OOP: Inheritance for functionality 22
OOP: Inheritance for interface 24
OOP: Templates 24
C++: The standard template library 25
The Evolution of Functional Verification 25
Verification through inspection 25
Verification through randomness 26
The emergence of
hardware verification languages 27
OOP: A current trend in
hardware verification languages 27
OOP: Problems with the current approach 28
OOP: A possible next step 28
OOP Using C++ 29
Data abstraction through classes 29
A DAAA descriptor example 29
Access control 31
Constructors and destructors 32
Member methods and variables 33
Operator overloading 34
Inheritance for functionality 34
Inheritance for interface 36
Templating 38
A word about user defined templates 39
Namespaces 39
Summary 41
For Further Reading 41
Chapter 4: A Layered Approach 43
Overview 44
A Whiteboard Drawing 46
An ends in approach 47
Refining the whiteboard blocks 47
The Common Currency Components 48
The Interface Layer in Detail 49
The wire layer 50
The agent layer 52
The transaction layer 53
The Top Layer Components 54
What is a Test? 56
The Test Component 58
The Test Irritator 60
A Complete Test 61
Summary 63
For Further Reading 63
Part II:
An Open Source Environment with C++ 65
Chapter 5: Teal Basics 67
Overview 68
What Teal provides 68
Teal s similarity to HDLs 69
A tiny but complete example 69
Teal s Main Components 71
Using Teal 73
Initialization 73
Your C++ test 74
Registers 74
Creating registers 74
Working with a reg or vreg 75
Logging Output 76
Using Test Parameters 79
Accessing Memory 81
A memory note example 82
Constrained Random Numbers 84
Required initialization 84
Using random numbers 84
Working with Simulation Events and Concurrency .... 86
Summary 88
For Further Reading 88
Chapter 6: Truss: A Standard Verification
Framework 91
Overview 92
General Considerations 93
Using a language other than C++ 93
Keeping it simple 94
Major Classes and Their Roles 95
Key test algorithm: The dance 96
The verification_component Abstract Base Class 99
Detailed Responsibilities
of the Major Components 100
The testbench class 101
Watchdog timer 102
Test class 102
Test Component and Irritator Classes 106
The test component abstract base class 106
An AHB example 108
Test component housekeeping functionality 109
The irritator abstract base class 110
Using the irritator 112
Summary 113
Chapter 7: Truss Flow 115
Overview 116
About verification_top.cpp 116
The Test Component Dance 119
The Irritator Dance 121
Compiling and Running Tests 122
Truss run script 123
Switches 124
The Truss makefile 125
The First Test: A Directed Test 125
The Second Test:
Adding Channels and Random Parameters 127
The channel classes 128
Building the second test 129
Building the second test s test_component 132
Adjusting the second test s parameters 134
The Remaining Tests:
Mix and Match Test Components 136
Summary 137
Chapter 8: Truss Example 139
Overview 140
Directory Structure 140
Theory of Operation 142
Running the Simple ALL) Example 144
Points of Interest 144
Power on Reset 145
Driver and Monitor Protocol 146
The alu_test_component 147
Checking the Chip 147
Completing the Test 149
Summary 150
Part III:
Using OOP for Verification
(Best Practices) 153
Chapter 9: Thinking OOP 155
Overview 156
Sources of Complexity 157
Essential complexity vs.
implementation complexity 157
Flexibility vs. complexity 158
Apparent simplicity vs.
hiding inherent complexity 161
Example: How hiding complexity
can create confusion 161
Example: How apparent simplicity
leads to later problems 162
Team dynamics 164
Team roles 164
Using a code buddy 165
Creating Adaptable Code 166
Achieving adaptability 166
Why is adaptability tricky? 167
Architectural Considerations
to Maximize Adaptability 168
Changes are easy or just plain impossible 168
Where is adaptation likely to happen? 170
Separating Interface from Implementation 170
Interface, Implementation, and Base Classes 171
Summary 173
For Further Reading 173
Chapter 10: Designing with OOP 175
Overview 176
Keeping the Abstraction Level Consistent 176
Using Correct by Construction 178
The Value of Namespaces 181
Data Duplication A Necessary Evil 183
Designing Well, Optimizing Only When Necessary ... .184
Using the Interface, Only the Interface 185
Verification Close to the Programming Model 186
The Three Parts of Checking 187
Separating the Test from the Testbench 189
Summary 190
For Further Reading 191
Chapter 11: OOP Classes 193
Overview 194
Defining Classes 195
How Much Electricity? 195
Classes 196
Namespaces 196
Operator overloading 196
Pointers and virtual functions 197
Even more electricity 197
Smart pointers 197
Global Services 198
Namespaces 198
Static methods 200
Singletons A Special Case of Static Methods 200
Namespaces or static methods? 201
Other considerations 202
Class Instance Identifiers 203
Object memory address as identifiers 203
Strings as identifiers 203
Static integers as identifiers 204
Combination identifiers 204
Class Inheritance for Reuse 205
A BFM base class example 205
A BFM agent class 206
Reusing the BFM class 206
Class Inheritance for Interfaces 207
Inheritance for a verification component 208
Inheritance for a payload interface 208
Operator Overloading for
Common Currency Classes 210
Operator overloading in a communications channel. .211
Considerations 212
Creating Classes
What the Compiler Will Do for You 212
Advanced Class Techniques 214
Summary 215
For Further Reading 216
Chapter 12: OOP Connections 217
Overview 218
How Tight a Connection? 219
Types of Connections 221
Peer to peer connections 221
Master to slave and push vs. pull connections 221
Two Tight Connection Techniques 223
Using pointers 223
Using inheritance 224
Threads and Connections 226
Events explicit blocking interconnects 226
Hiding the thread block in a method 227
Fancier Connections 229
Listener or callback connections 230
Channel connections 231
Action object connections 232
Summary 233
For Further Reading 234
Chapter 13: Coding OOP 235
Overview 236
If Tests A Necessary Evil 236
If tests and abstraction levels 237
If tests and code structure 238
Repeated if expressions 239
If tests and factory functions 240
A factory function example 241
Coding Tricks 244
Coding only what you need to know 244
Reservable resources 245
Using register fields instead of
hard coded integers 245
Using data members carefully 246
Coding Idioms 248
The singleton idiom 248
Public nonvirtual methods:
Virtual protected methods 249
Pointers for change, references for efficiency 251
Avoiding accessor methods
using constant references instead 252
Enumeration for Data, Integer for Interface 253
Using the constructor and destructor
to simplify the code 254
Using a boolean to indicate success 255
What s in a Name? 257
Keeping class name the same as file name 257
Keeping class and instance names related 258
Coding with Style 259
Proceeding with caution 259
General syntax conventions 260
Syntactic sugar 260
Using override and non_virtual 261
Using owner and cached 262
Identifying private and protected members 263
Using Templates 264
Standard templates for data management 264
Writing templates for adaptable code 267
Summary 268
For Further Reading 269
Part IV:
Examples
(Putting It All Together) 271
Chapter 14: Block Level Testing 273
Overview 274
Theory of Operation 275
Verification environment 276
Verification IP 277
UARTVIPs 277
Wishbone VIP 278
The verification dance 279
Running the UART Example 279
Points of Interest 280
Configuration 280
VIP UART configuration class 281
Randomization of enums 282
UART 16550 configuration class 284
Configuring the Chip 286
Register access 286
The wishbone_memory_bank and
wishbone_driver 289
Traffic Generation 290
The generator_agent and uart_bfm_agent classes. . .291
The Checker 293
Checking the data 294
Connecting It All Together 296
The testbench 296
Building the channels 296
Building the configuration and interface port 297
Building the interface layer objects 298
The wishbone objects 299
The test component 300
The uart_basic_test_component::randomize()
method 301
The basic data test 302
More Tests 304
Summary 304
Chapter 1 5: Chip Level Testing 307
Overview 308
Theory of Operation 308
Verification environment 309
Running the UART Example 310
The quad_test_components Test 310
The quad_uart_irritators Test 312
UART irritator class 312
The test 314
The quad_uart_vectors Test 317
The uart_test_O Test 319
Summary 319
Chapter 16: Things to Remember 321
Part I: Use C++ and Layers! 322
Part II: An Open Source Approach 322
Part III: OOP Best Practices 323
Part IV: Examples Copy and Adapt! 324
Conclusion to the Conclusion 325
Index 327
|
adam_txt |
Contents
Preface xix
Acknowledgments xxi
Chapter 1: Introduction 1
Background 3
What is Functional Verification? 4
Why Focus on C++? 4
A Tour of the Handbook 5
For Further Reading 6
Part I:
C++ and Verification
(The Why and How) 7
Chapter 2: Why C + + ? 9
Overview 10
C++: A Good Verification Language 11
A Look at Hardware Verification Languages 13
Randomization 13
Coverage 14
Object oriented support 14
Main Benefits of Using C++ 15
Other Benefits of Using C++ 16
Drawbacks of Using C++ 17
For Further Reading 17
Chapter 3: OOP, C + + , and Verification .19
Overview 20
The Evolution of OOP and C++ 21
Assembly programming: The early days 21
Procedural languages: The next big step 21
OOP: Inheritance for functionality 22
OOP: Inheritance for interface 24
OOP: Templates 24
C++: The standard template library 25
The Evolution of Functional Verification 25
Verification through inspection 25
Verification through randomness 26
The emergence of
hardware verification languages 27
OOP: A current trend in
hardware verification languages 27
OOP: Problems with the current approach 28
OOP: A possible next step 28
OOP Using C++ 29
Data abstraction through classes 29
A DAAA descriptor example 29
Access control 31
Constructors and destructors 32
Member methods and variables 33
Operator overloading 34
Inheritance for functionality 34
Inheritance for interface 36
Templating 38
A word about user defined templates 39
Namespaces 39
Summary 41
For Further Reading 41
Chapter 4: A Layered Approach 43
Overview 44
A Whiteboard Drawing 46
An "ends in" approach 47
Refining the whiteboard blocks 47
The "Common Currency" Components 48
The Interface Layer in Detail 49
The wire layer 50
The agent layer 52
The transaction layer 53
The Top Layer Components 54
What is a Test? 56
The Test Component 58
The Test Irritator 60
A Complete Test 61
Summary 63
For Further Reading 63
Part II:
An Open Source Environment with C++ 65
Chapter 5: Teal Basics 67
Overview 68
What Teal provides 68
Teal's similarity to HDLs 69
A tiny but complete example 69
Teal's Main Components 71
Using Teal 73
Initialization 73
Your C++ test 74
Registers 74
Creating registers 74
Working with a reg or vreg 75
Logging Output 76
Using Test Parameters 79
Accessing Memory 81
A memory note example 82
Constrained Random Numbers 84
Required initialization 84
Using random numbers 84
Working with Simulation Events and Concurrency . 86
Summary 88
For Further Reading 88
Chapter 6: Truss: A Standard Verification
Framework 91
Overview 92
General Considerations 93
Using a language other than C++ 93
Keeping it simple 94
Major Classes and Their Roles 95
Key test algorithm: The "dance" 96
The verification_component Abstract Base Class 99
Detailed Responsibilities
of the Major Components 100
The testbench class 101
Watchdog timer 102
Test class 102
Test Component and Irritator Classes 106
The test component abstract base class 106
An AHB example 108
Test component housekeeping functionality 109
The irritator abstract base class 110
Using the irritator 112
Summary 113
Chapter 7: Truss Flow 115
Overview 116
About verification_top.cpp 116
The Test Component Dance 119
The Irritator Dance 121
Compiling and Running Tests 122
Truss run script 123
Switches 124
The Truss makefile 125
The First Test: A Directed Test 125
The Second Test:
Adding Channels and Random Parameters 127
The channel classes 128
Building the second test 129
Building the second test's test_component 132
Adjusting the second test's parameters 134
The Remaining Tests:
Mix and Match Test Components 136
Summary 137
Chapter 8: Truss Example 139
Overview 140
Directory Structure 140
Theory of Operation 142
Running the Simple ALL) Example 144
Points of Interest 144
Power on Reset 145
Driver and Monitor Protocol 146
The alu_test_component 147
Checking the Chip 147
Completing the Test 149
Summary 150
Part III:
Using OOP for Verification
(Best Practices) 153
Chapter 9: Thinking OOP 155
Overview 156
Sources of Complexity 157
Essential complexity vs.
implementation complexity 157
Flexibility vs. complexity 158
Apparent simplicity vs.
hiding inherent complexity 161
Example: How hiding complexity
can create confusion 161
Example: How apparent simplicity
leads to later problems 162
Team dynamics 164
Team roles 164
Using a "code buddy" 165
Creating Adaptable Code 166
Achieving adaptability 166
Why is adaptability tricky? 167
Architectural Considerations
to Maximize Adaptability 168
Changes are easy or just plain impossible 168
Where is adaptation likely to happen? 170
Separating Interface from Implementation 170
Interface, Implementation, and Base Classes 171
Summary 173
For Further Reading 173
Chapter 10: Designing with OOP 175
Overview 176
Keeping the Abstraction Level Consistent 176
Using "Correct by Construction" 178
The Value of Namespaces 181
Data Duplication A Necessary Evil 183
Designing Well, Optimizing Only When Necessary . .184
Using the Interface, Only the Interface 185
Verification Close to the Programming Model 186
The Three Parts of Checking 187
Separating the Test from the Testbench 189
Summary 190
For Further Reading 191
Chapter 11: OOP Classes 193
Overview 194
Defining Classes 195
How Much Electricity? 195
Classes 196
Namespaces 196
Operator overloading 196
Pointers and virtual functions 197
Even more electricity 197
Smart pointers 197
Global Services 198
Namespaces 198
Static methods 200
Singletons A Special Case of Static Methods 200
Namespaces or static methods? 201
Other considerations 202
Class Instance Identifiers 203
Object memory address as identifiers 203
Strings as identifiers 203
Static integers as identifiers 204
Combination identifiers 204
Class Inheritance for Reuse 205
A BFM base class example 205
A BFM agent class 206
Reusing the BFM class 206
Class Inheritance for Interfaces 207
Inheritance for a verification component 208
Inheritance for a payload interface 208
Operator Overloading for
Common Currency Classes 210
Operator overloading in a communications channel. .211
Considerations 212
Creating Classes
What the Compiler Will Do for You 212
Advanced Class Techniques 214
Summary 215
For Further Reading 216
Chapter 12: OOP Connections 217
Overview 218
How Tight a Connection? 219
Types of Connections 221
Peer to peer connections 221
Master to slave and push vs. pull connections 221
Two Tight Connection Techniques 223
Using pointers 223
Using inheritance 224
Threads and Connections 226
Events explicit blocking interconnects 226
Hiding the thread block in a method 227
Fancier Connections 229
Listener or callback connections 230
Channel connections 231
Action object connections 232
Summary 233
For Further Reading 234
Chapter 13: Coding OOP 235
Overview 236
"If" Tests A Necessary Evil 236
"If" tests and abstraction levels 237
"If" tests and code structure 238
Repeated "if" expressions 239
"If" tests and factory functions 240
A factory function example 241
Coding Tricks 244
Coding only what you need to know 244
Reservable resources 245
Using register fields instead of
hard coded integers 245
Using data members carefully 246
Coding Idioms 248
The singleton idiom 248
Public nonvirtual methods:
Virtual protected methods 249
Pointers for change, references for efficiency 251
Avoiding accessor methods
using constant references instead 252
Enumeration for Data, Integer for Interface 253
Using the constructor and destructor
to simplify the code 254
Using a boolean to indicate success 255
What's in a Name? 257
Keeping class name the same as file name 257
Keeping class and instance names related 258
Coding with Style 259
Proceeding with caution 259
General syntax conventions 260
Syntactic sugar 260
Using override and non_virtual 261
Using owner and cached 262
Identifying private and protected members 263
Using Templates 264
Standard templates for data management 264
Writing templates for adaptable code 267
Summary 268
For Further Reading 269
Part IV:
Examples
(Putting It All Together) 271
Chapter 14: Block Level Testing 273
Overview 274
Theory of Operation 275
Verification environment 276
Verification IP 277
UARTVIPs 277
Wishbone VIP 278
The verification dance 279
Running the UART Example 279
Points of Interest 280
Configuration 280
VIP UART configuration class 281
Randomization of enums 282
UART 16550 configuration class 284
Configuring the Chip 286
Register access 286
The wishbone_memory_bank and
wishbone_driver 289
Traffic Generation 290
The generator_agent and uart_bfm_agent classes. . .291
The Checker 293
Checking the data 294
Connecting It All Together 296
The testbench 296
Building the channels 296
Building the configuration and interface port 297
Building the interface layer objects 298
The wishbone objects 299
The test component 300
The uart_basic_test_component::randomize()
method 301
The basic data test 302
More Tests 304
Summary 304
Chapter 1 5: Chip Level Testing 307
Overview 308
Theory of Operation 308
Verification environment 309
Running the UART Example 310
The quad_test_components Test 310
The quad_uart_irritators Test 312
UART irritator class 312
The test 314
The quad_uart_vectors Test 317
The uart_test_O Test 319
Summary 319
Chapter 16: Things to Remember 321
Part I: Use C++ and Layers! 322
Part II: An Open Source Approach 322
Part III: OOP Best Practices 323
Part IV: Examples Copy and Adapt! 324
Conclusion to the Conclusion 325
Index 327 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Mintz, Mike Ekendahl, Robert |
author_facet | Mintz, Mike Ekendahl, Robert |
author_role | aut aut |
author_sort | Mintz, Mike |
author_variant | m m mm r e re |
building | Verbundindex |
bvnumber | BV022233096 |
callnumber-first | T - Technology |
callnumber-label | TK7874 |
callnumber-raw | TK7874.58 |
callnumber-search | TK7874.58 |
callnumber-sort | TK 47874.58 |
callnumber-subject | TK - Electrical and Nuclear Engineering |
classification_rvk | ST 150 |
ctrlnum | (OCoLC)79001050 (DE-599)BVBBV022233096 |
dewey-full | 621.3815 |
dewey-hundreds | 600 - Technology (Applied sciences) |
dewey-ones | 621 - Applied physics |
dewey-raw | 621.3815 |
dewey-search | 621.3815 |
dewey-sort | 3621.3815 |
dewey-tens | 620 - Engineering and allied operations |
discipline | Informatik Elektrotechnik / Elektronik / Nachrichtentechnik |
discipline_str_mv | Informatik Elektrotechnik / Elektronik / Nachrichtentechnik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01514nam a2200409 c 4500</leader><controlfield tag="001">BV022233096</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20070205 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">070119s2006 |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0387255435</subfield><subfield code="9">0-387-25543-5</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780387255439</subfield><subfield code="9">978-0-387-25543-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)79001050</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV022233096</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-898</subfield><subfield code="a">DE-573</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">TK7874.58</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">621.3815</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 150</subfield><subfield code="0">(DE-625)143594:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Mintz, Mike</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Hardware verification with C++</subfield><subfield code="b">a practitioner's handbook</subfield><subfield code="c">Mike Mintz ; Robert Ekendahl</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">New York</subfield><subfield code="b">Springer</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 341 S.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">C++ (Computer program language)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Integrated circuits</subfield><subfield code="x">Verification</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Hardwareverifikation</subfield><subfield code="0">(DE-588)4214982-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Hardwareverifikation</subfield><subfield code="0">(DE-588)4214982-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Ekendahl, Robert</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015444150&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-015444150</subfield></datafield></record></collection> |
id | DE-604.BV022233096 |
illustrated | Not Illustrated |
index_date | 2024-07-02T16:33:07Z |
indexdate | 2024-07-09T20:52:57Z |
institution | BVB |
isbn | 0387255435 9780387255439 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-015444150 |
oclc_num | 79001050 |
open_access_boolean | |
owner | DE-898 DE-BY-UBR DE-573 |
owner_facet | DE-898 DE-BY-UBR DE-573 |
physical | XX, 341 S. |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Springer |
record_format | marc |
spelling | Mintz, Mike Verfasser aut Hardware verification with C++ a practitioner's handbook Mike Mintz ; Robert Ekendahl New York Springer 2006 XX, 341 S. txt rdacontent n rdamedia nc rdacarrier C++ (Computer program language) Integrated circuits Verification Hardwareverifikation (DE-588)4214982-4 gnd rswk-swf C++ (DE-588)4193909-8 gnd rswk-swf Hardwareverifikation (DE-588)4214982-4 s C++ (DE-588)4193909-8 s DE-604 Ekendahl, Robert Verfasser aut HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015444150&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Mintz, Mike Ekendahl, Robert Hardware verification with C++ a practitioner's handbook C++ (Computer program language) Integrated circuits Verification Hardwareverifikation (DE-588)4214982-4 gnd C++ (DE-588)4193909-8 gnd |
subject_GND | (DE-588)4214982-4 (DE-588)4193909-8 |
title | Hardware verification with C++ a practitioner's handbook |
title_auth | Hardware verification with C++ a practitioner's handbook |
title_exact_search | Hardware verification with C++ a practitioner's handbook |
title_exact_search_txtP | Hardware verification with C++ a practitioner's handbook |
title_full | Hardware verification with C++ a practitioner's handbook Mike Mintz ; Robert Ekendahl |
title_fullStr | Hardware verification with C++ a practitioner's handbook Mike Mintz ; Robert Ekendahl |
title_full_unstemmed | Hardware verification with C++ a practitioner's handbook Mike Mintz ; Robert Ekendahl |
title_short | Hardware verification with C++ |
title_sort | hardware verification with c a practitioner s handbook |
title_sub | a practitioner's handbook |
topic | C++ (Computer program language) Integrated circuits Verification Hardwareverifikation (DE-588)4214982-4 gnd C++ (DE-588)4193909-8 gnd |
topic_facet | C++ (Computer program language) Integrated circuits Verification Hardwareverifikation C++ |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015444150&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT mintzmike hardwareverificationwithcapractitionershandbook AT ekendahlrobert hardwareverificationwithcapractitionershandbook |