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

Topic revision: r12 - 2020-02-17 - 15:34:57 - JimLewis
 
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback