Thanks very much to Thomson and vale, your suggestions helped me a lot ;p
I have two more questions:
1) two modules, one is DELAY coded, I mean, use #1(ns) for example, before each unblocking-assignment, the other one, however, no #1 used. There are some handshakes between the two synchronized modules.
I know it's not necessary to use DELAY if sdf back-annotated, but in functional simulation with no intra-delay, if I remove all the DELAY from the first module, any problem with the original timing of the handshake? Hope I have clearly expressed ;p
2) how many of you use #DLY before unblocking-assignment in your design and how many not? I know that many guides suggest to use #DLY in the behavior RTL code. What is the essential of using #DLY?
tks!