[Milkymist-devel] Fwd: Re: VCOMP problem with blocking assignments

Sébastien Bourdeauducq sebastien.bourdeauducq at lekernel.net
Tue Feb 9 02:16:21 PST 2010


----------  Forwarded Message  ----------

Subject: Re: VCOMP problem with blocking assignments
Date: Tuesday 09 February 2010
From: Paul Campbell <paul at taniwha.com>
To: Sébastien Bourdeauducq <sebastien.bourdeauducq at lekernel.net>

On Tue, 09 Feb 2010, you wrote:
> Wow, that's wicked. I can hear the VHDL people laughing. Thanks for the 
heads-
> up, I will fix my code as you suggested.

heh - it's a historical thing I'm afraid and a little too subtle to be obvious 
which is why people get caught by it - the original verilog (pre-vhdl) was 
done by people who probably didn't understand a lot about computer languages 
but did understand hardware - that left us with a bunch of cruft that 
interpreted well but made writing compilers really hard. (I wrote the first 
version of this compiler prior to VCS).

When I started doing chip design (I have a background writing compilers) a lot 
of people still made assumptions about 0-time event ordering that had to do 
with virtually secret knowledge of how Verilog (the original simulator) did 
things (this particular issue with output regs is just such an area) - of 
course depending on any event ordering is just plain wrong - if you do you may 
well have something that mostly works

I've recently seen a bunch of low level hardware people who still think it's a 
good way to define an extracted latch is:

	assign q = (mux?in:q);

rather than including the delays they would need in the real world to make 
such a thing work reliably

	Paul

-------------------------------------------------------


More information about the Devel mailing list