Re: Confused with "task" keyword.
- From: Chuck Gales <cgales@xxxxxxxxx>
- Date: Wed, 27 Jul 2005 11:32:06 GMT
On Tue, 26 Jul 2005 21:37:57 +0800, Confused Frank wrote:
> I wrote a task to feed test vectors to my design, however, I realized some
> differences between
> "task" and the normal state machines I used to do. One sample code below, I
> am expecting the
> the signal "trd_sample" to be delayed by one cycle of "trc", i.e. 2nd
> posedge of trc. However,
> why does the simulation shows on the first posedge of trc?
>
Frank,
I am confused as to what behavior you are expecting. Your always@ block
at the end will make trd_sample equal to trd every time that there is a
posedge of trc. Since you are using non-blocking assigments, the signals
are assigned immediately, with no regards to clocks. That also means
that there is also no 'guarantee' of the order of assignment either. When
you have three non-blocking assignments in sequence, the simulator might
not execute them in the same order as written, generating some
interesting race conditions.
Chuck
.
- Follow-Ups:
- Re: Confused with "task" keyword.
- From: Confused Frank
- Re: Confused with "task" keyword.
- References:
- Confused with "task" keyword.
- From: Confused Frank
- Confused with "task" keyword.
- Prev by Date: Re: Jump addresses messed up with GNU as
- Next by Date: Re: C question
- Previous by thread: Confused with "task" keyword.
- Next by thread: Re: Confused with "task" keyword.
- Index(es):
Relevant Pages
|