home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.verilog
- Path: sparky!uunet!spool.mu.edu!uwm.edu!zaphod.mps.ohio-state.edu!cs.utexas.edu!wotan.compaq.com!twisto.eng.hou.compaq.com!tiktok.eng.hou.compaq.com!ehlers
- From: ehlers@tiktok.eng.hou.compaq.com (Steve Ehlers)
- Subject: Re: execution of always blocks
- Message-ID: <1992Dec18.200153.25828@twisto.eng.hou.compaq.com>
- Sender: news@twisto.eng.hou.compaq.com (Netnews Account)
- Organization: Compaq Computer Corp.
- References: <13665@optilink.COM> <1992Dec18.174451.11544@newsgate.sps.mot.com>
- Date: Fri, 18 Dec 1992 20:01:53 GMT
- Lines: 17
-
- In article <1992Dec18.174451.11544@newsgate.sps.mot.com> rajesh@chdasic.sps.mot.com writes:
- >manley@optilink.COM (Terry Manley) writes:
- >
- >> always @(posedge Clk) c = b;
- >> always @(posedge Clk) b = a;
- >
- >If you have to use two always blocks, you could put
- >a #0 delay before the procedural assignment that you want
- >done last. That will make VerilogXL schedule that event
- >for processing at the end of that timestamp.
-
- Which is fine if you only care about which ONE is last. If you have
- three (or more) registers, you'll still have problems. Using the
- non-blocking assignment operator ( <= ) will give you the behavior you want:
-
- always @(posedge Clk) c <= b;
- always @(posedge Clk) b <= a;
-