Active sources

V

valtih1978

I read in
http://rti.etf.bg.ac.rs/rti/ri5rvl/tutorial/TUTORIAL/IEEE/HTML/1076_12.HTM
that signal is active during simulation cycle

- If one of its sources is active or
- the signal is named in the formal part of an association element in a
port association list and the the corresponding actual is active.

=1= This immediately raises the question: how is the activity status
propagated? We see that the source or active port's actual causes formal
to be active. I do not understand why activity propagates down the
hierarchy: when you have active parent module signal then, connected as
input to the children, submodules will see it's activity as formal part
activity. Why activity should not propagate in the opposite direction,
through the output ports, from formal part to the actual?

I see a similar double standard in the driving value definition. It says
that if signal source is a port then formal part driver is used. You
cannot drive the input port this way but this is not necessary -
effective values are rather propagated downwards. We first propagate
info upwards through output ports by driving values and then signals
propagate downwards as effective values. Right? I see no such
bi-directional mechanism for the signal activity propagation.


=2= Moreover, I do not see how the signal activity flag is connected to
anything else. For instance, I see how driver's value originates from
the transaction, how this determines the driving values of signals and,
furthermore, the effective values. However, I see that all what
determines the signal activity flag is the activity flag of another
signal! I want to know how is the first active signal can ever appear in
such system?


=3= Ports are also sources. Why sources and ports are treated
separately? BTW, why not to instantiate the drivers for the ports also?
To avoid delta-cycle delays in ports?

=4= BTW, is slice a signal?

I have such a mess in my head. Will Ashenden fix it?
 
A

Andy

Ashendon may have been thinking that "one of its sources is active" covers output signal "propagating" (see 3 below) back up through the hierarchy (from submodule to module). Is he using "sources" synonymously with "drivers"?

=2= Signals are not the only things that cause events in simulation. Delays on "wait ... for" statements also cause events to be directly scheduled, with the process owning the wait statement being sensitive to the scheduled event. I remember being confused by a waveform at the end of one of mysimulations. The clock and all signal activity had stopped a long time before the simulation actually stopped. Then I realized my testbench had a timeout on a wait statement that had not yet expired when I killed the clock (and thus all signal activity) in the testbench. The simulation had continued to "run" even though the wait statement had already triggered. Also, every process is executed at time zero.

=3= Instead of a signal "propagating up through the hierachy", think ofports as just a short-hand way of aliasing external signals (or aliasing external aliases to external signals). In 1076-2008, with the addition of references to external signals, one could do the same thing as ports and portmaps with aliases to signals/aliases up or down the hierachical chain.

The modality of ports allows the compiler to verify the appropriateness of driving and/or reading those aliases. And since an alias is nothing but another reference to an existing signal, there is no delta cycle propagation delay associated with the ports/maps between driver and reader.

Note also that 2008 allows expressions in port maps (beyond type conversions). These break the implicit aliases before and after the expression, and an implied process (concurrent statement) is inserted between the two aliases/signals. The same delta cycle happened before when type conversions were used on port maps. I do not know if a built-in type conversion between "closely related" ports/actuals (really just a compile-time accounting trick) inserts a delta delay or not.

Andy
 
V

valtih1978

This immediately raises the question: how is the activity status propagated

Ok, I have realized that driver is a source and active driver is the
originator of signal activity. But, I still do not understand how does
the activity propagate downwards.
 
A

Andy

But, I still do not understand how does the activity propagate downwards.

You mean downwards through a hierachy via a series of in or inout ports/maps?

Again, if you think of ports and port maps as a shorthand way to define aliases to signals "on the other side" of the entity interface, there is no "propagation" of values involved (unless expressions are used in the port maps). Aliases are not copies of signals that are manipulated by the simulatorto always keep the same values. They are new references to the same original signal (like an access type, but not dynamically associable with different signals).

There is but one signal for an entire series of mappings through a hierachyof entity/architecture pairs (defined at the uppermost level in the port chain), with many references to it in different entity/architectures.

Andy
 
V

valtih1978

Basically, my question is how does LRM specify the aliasing you are
talking about. The notion of alias implies that activity is propagated
up and down. However, in the spec I see only upward propagation. Port
source is active if actual is active. This implies downward propagation.
 
A

Andy

The LRM is silent WRT ports/maps being aliases. It is just my observation of the overall effects of ports and port maps (specifically that there are no delta-delays associated with ports/maps, only with associated expressions..) If you don't like my observation, you are free to ignore it, and substitute your own, or anyone else's, so long as it satisfies the LRM definitionsof ports and port maps.

Propagation is a loosely defined term. I believe you are referring to how adriven value on a submodule's OUT port is made available outside that module, or how an instantiating module's driven value on a signal associated with a submodule's IN port is made available inside the submodule.

That is explained by the fact that only one signal exists in either of those cases. The compiler controls, by scope, map(s) and mode(s), where that signal's value can be legally read or driven. With only one signal, what is there to propagate?

Andy
 
V

valtih1978

Propagation is a loosely defined term. I believe you are referring to how a driven value on a submodule's OUT port is made available outside that module, or how an instantiating module's driven value on a signal associated with a submodule's IN port is made available inside the submodule.


I believe that I am talking about the signal activity propagation, that
I have quoted "

signal is active during simulation cycle
- If one of its sources is active or
- the signal is named in the formal part of an association element
in a port association list and the the corresponding actual is active.

" and hyperlinked,
http://rti.etf.bg.ac.rs/rti/ri5rvl/tutorial/TUTORIAL/IEEE/HTML/1076_12.HTM,
in the very beginning of my question!
 
V

valtih1978

Yes, that's it. I just do not understand how do they follow from the
definition. I believe that notes just repeat the points that are
hard-to-spot, yet present in the definition. I do not see how the upward
activity propagation follows from the downward.
 
V

valtih1978

Ok, it seems that ports are a kind of source. Therefore, activity will
spread both upwards and downwards. But, then I do not understand why did
they stipulate the active -> formal activity propagation right in the
definition if it follows from the notion of source? Why not just pick
this in the notes as it is done with formal -> actual output ports?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top