Release 2.10a
Tue Oct 12 14:52:37 CDT 2004
Major release that adds more Verilog 2001 features, fixes problems
related to new FPGA libraries that use Verilog 2001 features, and changes
to explicitly sized C types so compile and run in 32 bit mode works
on 64 bit Linux systems.
- Added support for initializing variable declaration assignments (see 2001
LRM section 6.2.1). Example is: "integer i = 3;". Following the LRM
the assignment is made at the beginning of time 0, so the initial value
will not be passed to declaration constructs until time 0.
- Fixed bug in wider than 32 bit arithmetic right shift. This bug was
causing new FPGA designs using wide signed libraries to get wrong answers.
- Changed so that all types used in Cver source contain their explicit
size, i.e. int32, word32, word64 etc. Change allows Cver to compile
and run in 32 bit mode on 64 bit Linux systems.
- Changed behavior of unsized number widening to follow Verilog 2001.
Now instead of widening unsized and unsigned constants where the high
order bit is x/z to 32 bits of x/z and then zeroing any high bits,
the number is x/z extended to the size of the expression containing
the number. See Note at the bottom of the first page of section 2.5.1.
for discussion of the change. This change is not backward compatible
with Verilog 1995 so if needed, we could put in a switch to turn it off.
- Fixed bug in signed mult and add and other binary operators whose
result width is determined by the operands. The operation was wrongly
being evaluated as unsigned.
- Constant folding was wrongly removing signs.
- Multi-word widing was sometimes not sign extending or wrongly setting
some bits to x/z. For very wide vector sign extends, the widening
would also sometimes core dump. This happened for both signed and
unsigned widening.
- Fix bug in timing checks that was causing spurious and wrong extra
timing violations to be detected and printed. Problem was that
sometimes the data event was being recorded as the reference event.
It happened when a second data event edge occured within on time tick.
- Fixed parameter problem when a per instance value was set by a pound
or defparam and a design contained many constants. The symptom was
a core dump during the second elaboration pass.