TWiki
>
P1076 Web
>
Vhdl2019CollectedRequirements
>
AsynchronousChannels
(2020-02-17,
JimLewis
)
(raw view)
E
dit
A
ttach
---+ Asynchronous Data Channels <br />%TOC% ---++ Proposal Details * Who Updates:Main.KevinCameron * Date Proposed: * Date Last Updated: * Priority: * Complexity: * Focus: ---+++ Current Situation We only have signals for driving event driven code. Signals do not conserve data, and are intended for modeling wire-like communications. As transistor dimensions shrink the dimension that does not scale well is resistance, meaning that "clock reach" (how many gates you can reach in a clock cycle) keeps shrinking. As a result data moving across a chip usually requires a lot of intermmediate buffer/repeater stages. The RTL logic abstraction is now decades old as a design abstraction and many tools will rip-up the user's RTL description and retime it. It is therefore time to add a construct to the language that allows data to be moved and processed independent of any clocking scheme. ---+++ Requirement Add a signal-like construct for use in abstract logic description that can be used to conservatively transfer data from process to process. Signals are not conservative because there is no requirement that it is read when updated, i.e. if a signal input changes that a process is not sensitive to it the data is lost. ---+++ Implementation details Add the keyword "pipe" which can be used much the same as "signal" - processes can drive values into a pipe directly and can be sensitive to pipes. Pipes behave as FIFO storage, and only reading from a pipe destroys the data. Attributes include depth and number of items in the pipe. A pipe is active while it has data, attached processes are woken up in random order when data is written into a pipe until all process have been tried or the pipe is empty. ---+++ Code Examples pipe my_fifo : integer; -- infinite depth pipe pipe my_fifo4 : integer depth 4; -- 4 deep pipe ---++ Use Cases For self-timed logic descriptions: basically FSMs with no clock. The goal being to allow the synthesis tools to work out the clocking schemes. -- Main.JimLewis - 2013-07-22: Self-timed logic sounds interesting. What other mechanisms do we need. I would think we need a big picture of what needs to happen before implementing some of the details. ---++ Arguments FOR RTL is well past its prime as a design abstraction. ---++ Arguments AGAINST ---++ General Comments ---++ Supporters _Add your signature here to indicate your support for the proposal_
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r4
<
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r4 - 2020-02-17 - 15:34:28 -
JimLewis
P1076
Log In
or
Register
P1076 Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
Webs
Main
P1076
Ballots
LCS2016_080
P10761
P1647
P16661
P1685
P1734
P1735
P1778
P1800
P1801
Sandbox
TWiki
VIP
VerilogAMS
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback