[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-user: cell0 and cell1 references in EDIF file?



People,

I need some help here!  I'm using iverilog to provide simulation
capability, and to generate an EDIF design file to submit to a Lattice
Semiconductor package for place and route.  Everything seems to go OK up
to the submission of the EDIF file, at which point the Lattice package
doesn't seem to understand reference to "cell0" and "cell1".  Frankly,
looking at the EDIF file, I don't understand them either.

I should explain that in generating the schematics I have used custom
generated (by myself) symbols that call Lattice's verilog library.  I
finally figured out that I needed to use the ipad-1.sym and opad-1.sym
symbols from the gEDA verilog library to which I added the high-1.sym
and low-1.sym elements.  The ipad and opad references apparently permit
iverilog to recognize and properly instantiate the input and output
ports while the high and low references wind up generating "assign
<netname> 1'b1;" and "assign <netname> 1'b0;" statements respectively.
At this point I was able to generate and simulate pretty much an entire
chip successfully.  Problems began to occur following the iverilog-fpga
call which generated the EDIF file that I submitted to the Lattice
compiler.

To help understand things without the clutter of my own design issues, I
have generated a very simple circuit.  Attached you will find copies of
the postscript output from gEDA gschem, the test.v file generated by
iverilog -t vvp, and the final test.edn file generated by iverilog -t
fpga.  I would appreciate it if someone could look at these files and
tell me what the references to cell0 and cell1 represent.  In this
example, please note that the EDIF file contains references to both
these entities, however only cell1 appears to have an associated net.

Hoping for some understanding.

	Regards,

	Harold Skank

Attachment: test.ps
Description: PostScript document

/* structural Verilog generated by gnetlist */
/* WARNING: This is a generated file, edits */
/*        made here will be lost next time  */
/*        you run gnetlist!                 */
/* Id ..........$Id: gnet-verilog.scm,v 1.14 2005/02/03 12:49:36 danmc Exp $ */
/* Source.......$Source: /home/cvspsrv/cvsroot/eda/geda/devel/gnetlist/scheme/gnet-verilog.scm,v $ */
/* Revision.....$Revision: 1.14 $ */
/* Author.......$Author: danmc $ */

module TEST (
       TstOut
      );

/* Port directions begin here */
output TstOut ;


/* Wires from the design */
wire TstOut ;
wire unnamed_net1 ;

/* continuous assignments */
assign unnamed_net1 = 1'b1;

/* Package instantiations */
OB11 U3 ( 
    .A0 ( unnamed_net1 ),
    .XO0 ( TstOut )
    );

endmodule
(edif TEST
    (edifVersion 2 0 0)
    (edifLevel 0)
    (keywordMap (keywordLevel 0))
    (status
     (written
        (timeStamp 0 0 0 0 0 0)
        (author "unknown")
        (program "Icarus Verilog/fpga.tgt")))
    (external LPM_LIBRARY (edifLevel 0) (technology (numberDefinition))
      (cell cell1 (cellType GENERIC)
            (view net
              (viewType NETLIST)
              (interface
                (port Result0 (direction OUTPUT))
                (property LPM_CValue (integer 1))
                (property LPM_Width (integer 1))
                (property LPM_Type (string "LPM_CONSTANT")))))
      (cell cell0 (cellType GENERIC)
            (view net
              (viewType NETLIST)
              (interface
                (port Result0 (direction OUTPUT))
                (property LPM_CValue (integer 0))
                (property LPM_Width (integer 1))
                (property LPM_Type (string "LPM_CONSTANT")))))
      (cell BUF (cellType GENERIC)
            (view net
              (viewType NETLIST)
              (interface
                (port Result (direction OUTPUT) (property LPM_Polarity (string "INVERT")))
                (port Data (direction INPUT))
                (property LPM_Size (integer 1))
                (property LPM_Width (integer 1))
                (property LPM_TYPE (string "LPM_INV")))))
    )
    (library DESIGN
      (edifLevel 0)
      (technology (numberDefinition))
      (cell TEST
        (cellType GENERIC)
        (view net
          (viewType NETLIST)
          (interface
            (port TstOut (direction OUTPUT))
          )
          (contents
(instance U2 (viewRef net (cellRef cell1 (libraryRef LPM_LIBRARY))))
(instance U1 (viewRef net (cellRef BUF (libraryRef LPM_LIBRARY))))
(net N0 (joined (portRef Result0 (instanceRef U2)) (portRef Data (instanceRef U1))))
(net N1 (joined (portRef Result (instanceRef U1)) (portRef TstOut)))
          )
        )
      )
    )
    (design TEST
      (cellRef TEST (libraryRef DESIGN))
    )
)