A newbie question...

D

Deepak Varshney

Guest
Hi,

I am learning Verilog now and have a doubt.
Can someone please tell me what is the difference between a non-blocking
assignment and a parallel block(using fork..join). Any illustrative examples
will definitely be useful. Any pointers to some reference material will be
useful.

Thanks.

Cheers,
Deepak
----------------------------------------------------------------------------
--------------
"...Tribulation produces perseverance, and perseverance character, and
character
hope...."
---St. Paul
----------------------------------------------------------------------------
--------------
 
Hi Deepak,

Check out the book HDL Chip Design by Douglas J Smith. That book
should answer all your questions.

As a rule of thumb, for sequential "always" cases, non-blocking
statements are used, whereas for combinational "always" cases,
blocking statements are used.

Shumon.


"Deepak Varshney" <ihatespam@nospam.net> wrote in message news:<c5gpui$1a4i8$1@ID-197462.news.uni-berlin.de>...
Hi,

I am learning Verilog now and have a doubt.
Can someone please tell me what is the difference between a non-blocking
assignment and a parallel block(using fork..join). Any illustrative examples
will definitely be useful. Any pointers to some reference material will be
useful.

Thanks.

Cheers,
Deepak
----------------------------------------------------------------------------
--------------
"...Tribulation produces perseverance, and perseverance character, and
character
hope...."
---St. Paul
----------------------------------------------------------------------------
--------------
 
shumong@yahoo.com (shumon) wrote in message news:<819b6c6e.0405062237.2d8c0080@posting.google.com>...
Hi Deepak,

Check out the book HDL Chip Design by Douglas J Smith. That book
should answer all your questions.

As a rule of thumb, for sequential "always" cases, non-blocking
statements are used, whereas for combinational "always" cases,
blocking statements are used.

Shumon.


"Deepak Varshney" <ihatespam@nospam.net> wrote in message news:<c5gpui$1a4i8$1@ID-197462.news.uni-berlin.de>...
Hi,

I am learning Verilog now and have a doubt.
Can someone please tell me what is the difference between a non-blocking
assignment and a parallel block(using fork..join). Any illustrative examples
will definitely be useful. Any pointers to some reference material will be
useful.

Thanks.

Cheers,
Deepak
----------------------------------------------------------------------------
--------------
"...Tribulation produces perseverance, and perseverance character, and
character
hope...."
---St. Paul
----------------------------------------------------------------------------
--------------

Deepak,

Treat this like this...

sequential block

begin

statements...

end

Parallel block

fork

statements...

join

Now under these blocks add all the assignments that you can think of
such as blocking, non-blocking, with delay, without delay, tasks,
functions etc. Then you have the complete scenario of how it works.
(Try Mix blocking and non-blocking statements).

Consider the two scenario's below.

1) Add below statements under sequential and parallel blocks.

a <= b;
c <= a;

2)

begin

packet_send;
packet_check;

end

fork

packet_send;
packet_check;

join

The first (begin - end) one sends packet and then parses it !!!
The second (fork - join) one sends packet while parses it.

Hope this helps...
 

Welcome to EDABoard.com

Sponsor

Back
Top