User Tools

Site Tools


Sidebar

GitHub

CoreLib

Sponsors

This website is sponsored by

Notes

This wiki uses icons from icons8.com licensed under CC BY-ND 3.0.

proposals:tbv:tbv7

TBV7 - Sync and handshaking (event objects)

Summary Sync and handshaking (event objects)
Related issues
Current status Proposal submitted
Date submitted 06/18/03
Author submission Bhasker Jayaram
Author email jbhasker@esilicon.com

Enhancement

For synchronization and hand-shaking between processes, events are required. VHDL already has the notion of events and can wait for events. What is missing is an easy way to create events.

This proposal first declares a signal to be an “event” kind of signal – specified in the declaration of the signal.

signal Check: BIT event;

Such an event signal cannot be assigned a value or read from – this is the only restriction for the event signal, otherwise it behaves just like any other signal. It can however be used in event lists (to wait for) and the new attribute 'CAUSE_EVENT can be applied to it. Event signals can be passed as subprogram parameters, where they are treated just like signals.

The 'CAUSE_EVENT when applied to an event signal causes an event in the next delta if no delay value is specified. If a delay value is specified, then an event occurs after the specified delay.

Check'CAUSE_EVENT();
Check'CAUSE_EVENT(10 ns);

The 'CAUSE_EVENT attribute is a procedure – so it can act either as a sequential procedure or a concurrent procedure. When two events are scheduled in multiple processes at exactly the same time, the events cancel each other out (bus resolution).

Processes waiting for a event to occur on Check will get triggered when an event occurs – could be either a wait statement or could be in the sensitivity list of a process.

proposals/tbv/tbv7.txt · Last modified: 29.08.2016 08:59 by paebbels