Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Appendix A: Chapter Maps to the Earlier Books

Two books precede this one, and either prepares you for it: The UVM Primer (SystemVerilog) and Python for RTL Verification (Python/cocotb/pyuvm). This appendix maps every chapter of this book to its companion chapters in both, for readers who want to compare treatments — or to lend the right book to a colleague. A dash means the topic has no mirror in that book; Chapters 5 and 21 cover ground (ownership; macros) neither predecessor made visible.

Rust for RTL VerificationThe UVM PrimerPython for RTL Verification
Ch. 1: Why Rust?Ch. 1: IntroductionWhy Python and why UVM?
Ch. 2: Rust ConceptsPython concepts
Ch. 3: Rust BasicsPython basics
Ch. 4: Conditions, Loops, and matchConditions and loops / Ranges
Ch. 5: Ownership(no mirror — GC did this silently)(no mirror)
Ch. 6: Borrowing and References(no mirror)(no mirror)
Ch. 7: Structs, Enums, and MethodsCh. 4: OOP; Ch. 7: Static MethodsClasses
Ch. 8: CollectionsPython sequences / Lists / Strings / Dictionaries
Ch. 9: Result, Option, and the End of ExceptionsExceptions
Ch. 10: TraitsCh. 5: Classes and Extension; Ch. 6: PolymorphismInheritance / super() / protocols
Ch. 11: GenericsCh. 8: Parameterized Class Definitions(duck typing, throughout)
Ch. 12: Closures and IteratorsGenerators / comprehensions
Ch. 13: Smart PointersProtecting attributes
Ch. 14: Modules, Crates, and CargoModules
Interlude: The Complete TinyALU Testbench(the destination, previewed)(testbench 8.0, previewed)
Ch. 15: async/await and the Executor(the simulator’s scheduler, opened up)Coroutines
Ch. 16: Tasks, Channels, and Sim-Aware QueuesCh. 17: Interthread Communicationcocotb Queue
Ch. 17: Simulating with rustdv-simSimulating with cocotb
Ch. 18: Basic Testbench: 1.0Ch. 2: A Conventional TestbenchBasic testbench: 1.0
Ch. 19: TinyAluBfmCh. 3: Interfaces and BFMsTinyAluBfm
Ch. 20: Struct-Based Testbench: 2.0Ch. 10: An Object-Oriented TestbenchClass-based testbench: 2.0
Ch. 21: Macros(the `uvm_*_utils macros, demystified)(decorators; design patterns)
Ch. 22: Why UVM?Ch. 1: IntroductionWhy UVM?
Ch. 23: uvm_test Testbench: 3.0Ch. 11: UVM Testsuvm_test testbench: 3.0
Ch. 24: ComponentsCh. 12: UVM Componentsuvm_component
Ch. 25: uvm_env Testbench: 4.0Ch. 13: UVM Environmentsuvm_env testbench: 4.0
Ch. 26: LoggingCh. 19: UVM ReportingLogging
Ch. 27: Configuration(uvm_config_db, in passing)ConfigDB()
Ch. 28: Configuration DebuggingDebugging the ConfigDB()
Ch. 29: The FactoryCh. 9: The Factory PatternThe UVM factory
Ch. 30: Variation-Point Testbench: 5.0UVM factory testbench: 5.0
Ch. 31: Component CommunicationsCh. 14: A New Paradigm; Ch. 18: Put and Get PortsComponent communications
Ch. 32: Analysis PortsCh. 15: Talking to Multiple ObjectsAnalysis ports
Ch. 33: Components in Testbench 6.0Ch. 16: Analysis Ports in a TestbenchComponents in testbench 6.0
Ch. 34: Connections in Testbench 6.0Ch. 18: Put and Get in Action; Ch. 22: UVM AgentsConnections in testbench 6.0
Ch. 35: TransactionsCh. 20: Deep Operations; Ch. 21: UVM Transactionsuvm_object in Python
Ch. 36: Sequence Testbench: 7.0Ch. 23: UVM SequencesSequence testbench: 7.0
Ch. 37: Out-of-Order Transactions: Testbench 7.1Ch. 23: UVM SequencesFibonacci testbench: 7.1 / get_response() testbench: 7.2
Ch. 38: Fibonacci Testbench: 7.2Ch. 23: UVM SequencesFibonacci testbench: 7.1
Ch. 39: Virtual Sequence Testbench: 8.0Ch. 23: UVM SequencesVirtual sequence testbench: 8.0
Ch. 40: The Complete TinyALU Testbench(no mirror)(no mirror)

This book has no closing what-comes-next chapter — the earlier books each wrote one, and their futures arrived on their own schedules. The book ends with the testbench.