From: Steven Sharp (sharp@cadence.com)
Date: Fri Sep 03 1999 - 13:30:10 PDT
This is feedback from the implementor who worked on $lsi_dumpports. I would
suggest that the standard be modified to match the existing implementation
if doing so would not remove a significant capability. The page numbers
cited appear to be from an earlier draft than draft 3.
-------------------------------------------------------------------------
Here is my review of the enhance VCD formally known as
$lsi_dumpports.
--David
The IEEE definition is incompatable with the present Cadence
implementation. Cadence's implementation treats each port in the
module definition as a unique port, the IEEE spec will break a port
expression up if found. Along with the expression processing the port
size field has been replaced with a part select reference. For
example:
1) module foo(a,b);
output [3:0] a;
input [4:1] b;
CADENCE:
$var port 4 <0 a $end
$var port 4 <1 b $end
IEEE
$var port [3:0] <0 a $end
$var port [4:1] <1 b $end
<p> 2) module foo(.bar({a,b}), c);
output [3:0] a;
output [4:1] b;
input [7:0] c;
CADENCE:
$var port 8 <0 bar $end
$var port 8 <1 c $end
IEEE
$var port [3:0] <0 a $end
$var port [4:1] <1 b $end
$var port [7:0] <2 c $end
<p> 3) module foo(.bar1(a[3:2]), .bar2(a[1:0], b);
output [3:0] a;
input [4:1] b;
CADENCE:
$var port 2 <0 bar1 $end
$var port 2 <1 bar2 $end
$var port 4 <2 b $end
IEEE
ERROR message reporting unsupport port construct. or something
like:
$var port [3:0] <0 a $end
$var port [4:1] <2 b $end
4) module foo(.bar1({a[1:0],a[3:2]}), b);
output [3:0] a;
input [4:1] b;
CADENCE:
$var port 4 <0 bar1 $end
$var port 4 <1 b $end
IEEE
ERROR message reporting unsupport port construct. or something
like:
$var port [3:0] <0 a $end
$var port [4:1] <2 b $end
<p>Some rework to the existing Cadence $dumpports would be required. The
list of modifications follows:
) Add support for multiple scopes to the same dumpfile.
) Add support to tie different dumpport call together via file name.
) Update code and documentation to match the new port format.
) IEEE has a caveat about strong/weak collisions that Cadence does
not have. See 3rd if statement on page 226. Supporting this is
not a big deal. Nor should it break any customers. NOTE: this
caveat (in my opinion) is unnecessary and comes PURELY from LSI.
) New routines need to be created:
$dumpportsof, $dumpportson, $dumpportsall, $dumpportslimit
PROBLEMS with the IEEE spec:
) The description of the part select issue is vague and not useful.
) The use of the keyword "index" is wrong should this be msb_index
and lsb_index.
) There is no discussion on what to do with out-of-module drivers.
ie: assign out = top.some.thing.x;
assign top.dut.out = b;
where does the driver exist? in the scope that contains the
statement or the scope of the object being driven?
) There no description of how to deal with forces.
) Examples need to be made for cases 3 & 4. Please note the IEEE
output may no longer be consistent with the modules defintion.
) The example on the bottom of page 224 is wrong.
------------- End Forwarded Message -------------
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:53:29 PDT
and
sponsored by Boyd Technology, Inc.