M
Mayan Moudgill
Guest
As a language, VHDL has some interesting, high-level language
properties. However, you can't really use them. Specifically:
- there are tools that need VCDs (e.g. some power estimation tools)
- VCDs weren't specified with HLL features in mind
- so simulators can't/don't generate VCDs while simulating VHDL with
high-level features.
Two examples that come to mind are RECORDs and BLOCKs. Since the VCD
spec does specify how to name a field in a record, most VCD generators
just don't generate any values for record typed SIGNALs
BLOCKs are a slightly different story. I don't quite understand why
SIGNALs declared inside a BLOCK can't have a VCD generated for them, but
they don't. In particular, the work-around for it:
foo: IF true GENERATE
SIGNAL x : type;
BEGIN
...
END GENERATE foo;
produces VCDs generate signal fine.
Is there a new rev of the VCD standard planned? Or even a de-facto
standard from Cadence/Synopsys/MTI that deals with these issues?
properties. However, you can't really use them. Specifically:
- there are tools that need VCDs (e.g. some power estimation tools)
- VCDs weren't specified with HLL features in mind
- so simulators can't/don't generate VCDs while simulating VHDL with
high-level features.
Two examples that come to mind are RECORDs and BLOCKs. Since the VCD
spec does specify how to name a field in a record, most VCD generators
just don't generate any values for record typed SIGNALs
BLOCKs are a slightly different story. I don't quite understand why
SIGNALs declared inside a BLOCK can't have a VCD generated for them, but
they don't. In particular, the work-around for it:
foo: IF true GENERATE
SIGNAL x : type;
BEGIN
...
END GENERATE foo;
produces VCDs generate signal fine.
Is there a new rev of the VCD standard planned? Or even a de-facto
standard from Cadence/Synopsys/MTI that deals with these issues?