Depricated: Protected Type Update - Now separate proposals
Proposal Information
- State of this Proposal: Raw / Stream of Conscious
- Current Owner: JimLewis, ...
- Contributors: JimLewis, ...
- Date Proposed: 2012-Jan-05
- Date Last Updated: 2012-Aug-10
- Priority:
- Complexity:
- Focus: Testbench
- Related Issues: None
- Competing Issues: None
Requirement Summary
Collection of potential updates to protected types
What is the nature of a protected type?
A protected type is a container. It has members in the form of private variables and subprogram methods (aka: procedures and functions). Variables inside a protected type are local and cannot be modified directly. Instead they are modified by calls to the protected type methods.
As a container, protected types are useful for creating data structures, such as scoreboards, FIFOs, memories, and functional coverage models.
A protected type is used with a shared variable (when declared in a concurrent declaration region - such as an architecture) or a regular variable (when declared in a sequential declaration region - such as a process). However, calling it a variable in some ways is troubling. Assignment operations are not supported for protected type. So instead, a variable of a protected type is simply a handle that is used to call methods within the protected type.
With modification, it has potential to be an abstract interface or channel between objects (such as entities).
Usage on Entity Interfaces
See proposal:
Shared Variables on Entity Interface
Motivation: Abstract interface/Communication Channel
Mechanism to Suspend and Wake on Event
See proposal:
Protected Types: Wait and Private Signals
Motivation: Handshaking between different models connected by a shared variable.
Private Signal Members
See proposal:
Protected Types: Wait and Private Signals
Motivation: Event triggers
Public Signal Members
See proposal:
Protected Types with Public Signals
Motivation: Abstract interface/Communication Channel. Connection similar to a record.
File Parameters on Protected Type Methods
See proposal
Allow Protected Type Method Parameters to be ...
Alias to Methods
See proposal:
Protected Types and Aliases
Motivation: allow subprograms to have alternate names. Helps with long term maintence of subprograms where a name change may be necessary to align with another group's methodology.
Attributes to Determine Declaration Context
See proposal:
Paths to Protected Type Instances and Subprogram Calls
Motivation: get 'instance_name and 'path_name of corresponding variable / shared variable declaration
Composites of PTs
See proposal:
composites of protected types
Arrays and records with PTs as elements.
Uses: Arrays of scoreboards, Arrays of Coverage Models, Arrays of Interfaces, ...
Function with protected type inputs
See Proposal:
Allow access and protected type parameters on function interfaces
Generics on Protected Types
See proposal:
Generics on Protected Types