SUAVE: VHDL Extensionsfor System-Level Modeling
In a Nutshell ...
Current Design Flows
Future Design Flows
High-Level Modeling
High-Level Modeling Support
High-Level Modeling Support
SUAVE Extensions
Language Design Principles
Agenda
Abstract Data Types (ADTs)
Package Example
Package Example
Private Types/Private Parts
Secure ADT Example
Limited Private Types
Limited Private Type Example
Limited Private Type Example
Limited Private Type Example
Lightweight Packages
Package Example
Package Example
Agenda
Primitive Operations & Inheritance
Tagged Record Types
Tagged Record Example
Type Extension
Type Extension Example
Abstract Types and Operations
Abstract Type/Op Example
Abstract Type/Op Example
Class-wide Types
Dynamic Dispatch
Class-wide Operations
Example: Instruction Register
Example: Instruction Register
Type Conversion
Extension Aggregates
Encapsulation and Extension
Private Extension Example
Private Extension Example
Private Extension Example
Private Extension Example
Agenda
Type Generics
Example: Generic Mux
Example: Generic Mux
Generic Type Definitions
Generic Type Definitions
Generic Type Definitions
Example: Generic Counter
Example: Generic Counter
Example: Generic Shift Register
Example: Generic Shift Register
Example: Generic Shift Register
Agenda
Generic Packages/Subprograms
Example: Generic Queue
Example: Generic Queue
Example: Generic Swap
Example: Generic Collection
Example: Generic Collection
Example: Generic Collection
Example: Generic Collection
Example: Generic Collection
Example: Generic Collection
Example: Generic Collection
Mixin Inheritance
Example: Addressing Modes
Example: Addressing Modes
Agenda
Communication
Abstract Communication
Channel Types
Channel Objects
Channel Example
Interface Channel Conformance
Interface Channel Example 1
Interface Channel Example 2
Message Passing: Send
Message Passing: Receive
Send & Receive Example
Message Passing: Select
Select Example
Select Example
Select Example 1
Select Example 2
Dynamically Created Channels
Agenda
Abstraction of Concurrency
Process Declarations
Static Process Instantiation
Dynamic Process Instantiation
Process Termination
Example: Client/Server System
Example: Client/Server System
Example: Client/Server System
Example: Client/Server System
Conclusion