procedure of PROCESS in VHDL

Status
Not open for further replies.
Since I have access to the vhdl2008 standard I'd like to give you guys some snippets.

Excerpt from 2008 standard

11.3 Process statement
A process statement defines an independent sequential process representing the behavior of some portion of
the design.

So we know that a process is sequential, which means all the events ripple one after each other. Then how is it not the case that a=b=c ??

To understand that, one needs to understand VHDLs concept of drivers & transactions & delta cycles.


What is happening in

Code VHDL - [expand]
1
2
3
4
5
6
7
Process (clock)
begin
if rising_edge (clock) then
b <= a;
c <= b;
end if;
end process;


So going with what the standard tells us.
a is assigned to b at the end of the delta or process here
There is transaction_value = 1, transaction_time = end of clock
b is assigned to c at the end of the delta or process here
There is transaction_value = 2, transaction_time = end of clock/process.
Cometh the end of the process, then these drivers are assigned.

In non-synthesis code you can use after, which changes the transaction_time from next delta.
 


This could be a little misleading, as you inply that the transaction on c occurs at a different time to b, which is untrue. b and c are assigned in the same delta. So the transaction_time will be current_time + interation_number (all simulators set an interation limit - which is the max number of deltas at current_time). The assignment will be seen on the waveform in the delta cycle after the clock has transitioned to '1'.
 

You guys are confusing the way the simulator interprets the statements (sequential) vs the generated hardware (also sequential). For beginners it is probably not helpful to go into details about how the simulator interprets things, delta cycles, etc. Jut don't go there.

The explanation about the back to back connected flops is the easiest to follow.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…