TRIO Netlist Input Format



Overall

The TRIO input/output file format is GDIF, which is EDIF-like and designed to be:

This manual only gives some simple features of GDIF to explore the TRIO capabilties.


Structure of a GDIF File

A GDIF file consists of items where each item is defined by

A GDIF file is simply one item whose keyword is ``gdif''. For example, the following is a valid GDIF file:

    (gdif
        (comment example of a simple GDIF file)
    )

The keyword of an item identifies the contents of the item. The item can be named optionally by appending the name to the keyword separated by a colon ':'. For example, the keyword ``cell:and'' defines a ``cell'' that is named ``and''. TRIO only optimizes the netlists of the top level cell, i.e., ``cell:top'' (must be the last cell if there are many). Keywords are context sensitive and are usually defined using a hierarchical way:

    cell
       port
            type  //  IN, OUT, INOUT. OUT is source, IN is sink
            layer //  layer name, e.g., MET2
            pt    //  x-y location, in um.

For example:

	  (port:out0 (type OUT)(layer MET2)(pt 0 0))
	  
 
       instance
	    cellRef  // which cell type for the cell instance
	    pt       // x-y location of the cell instances

For example:

	(instance:src1   (cellRef bufx10) (pt 0 0))
		
       path
	    layer // which layer
	    width // width of the path
	    pt    // 

For example:

    (path:path_net15
     (new)(layer MET2)(width 0.22)(pt 9000 16.5)(pt 10000 16.5)
     (new)(layer MET2)(width 0.66)(pt 8000 16.5)(pt 9000 16.5))
		 
       net
            portRef  // which port, it can be a top level port 
		             // or a port in its cell instances
            pathRef  // which path

For example:

   (net:net15
    (pathRef path_net15)
    (portRef out (instRef src2)) 
         // port reference to a port 'out' of cell instance 'src2'
    (portRef out3) 
        // port reference to a top level port 'out3'
   )
   

Unless specifically stated, each item can be defined zero or more times. For example, the cell item can contain zero or more port items.


Netlist Example

1. A simple netlist with topology.

(gdif 
  (gdifVersion 1 0 1)
  (comment "Netlist with cell instances")

  (cell:bufx10
    (comment "This is a schematic cell with no real position info")

    (port:in  (layer MET2) (type IN)  (pt 0 0 ))
    (port:out (layer MET2) (type OUT) (pt 0 0 ))
  )

  (cell:top
    (comment "This is a point to point route (2mm) route")

    (instance:src1   (cellRef bufx10) (pt 0 0))
    (instance:load1a (cellRef bufx10) (pt 1000.0  1000.0))
    (instance:load1b (cellRef bufx10) (pt 1000.0 -1000.0))

    (instance:src2   (cellRef bufx10) (pt 0 3))
    (instance:load2a (cellRef bufx10) (pt 800  3))

    (path:p1a (layer MET2)(pt 0 0)(pt 1000 0)(pt 1000 1000)
        (new) (pt 1000 0)(pt 1000 -1000))

    (path:p2a (layer MET2)(pt 0 3)(pt 500 3)(pt 800 3))

    (net:net1a
      (pathRef p1a)
      (portRef out (instRef src1))
      (portRef in (instRef load1a))
      (portRef in (instRef load1b))
    )
    (net:net2a
      (group net2)
      (pathRef p2a)
      (portRef out (instRef src2))
      (portRef in (instRef load2a))
    )
  )
)

2. A 10-pin net without topology. TRIO can construct the topology

(gdif
 (gdifVersion 1 0 0)
 (comment 10-pin net) 
  (cell:top 

  (port:src (layer MET2) (type OUT) (pt 1500 5800) )
  (port:sink1 (layer MET2) (type IN) (pt 500 200) )
  (port:sink2 (layer MET2) (type IN) (pt 1500 9900) )
  (port:sink3 (layer MET2) (type IN) (pt 6200 7500) )
  (port:sink4 (layer MET2) (type IN) (pt 4500 3200) )
  (port:sink5 (layer MET2) (type IN) (pt 2900 4900) )
  (port:sink6 (layer MET2) (type IN) (pt 9500 8000) )
  (port:sink7 (layer MET2) (type IN) (pt 3700 2700) )
  (port:sink8 (layer MET2) (type IN) (pt 8100 9600) )
  (port:sink9 (layer MET2) (type IN) (pt 600 5200) )
  (net:net1 
    (portRef src)
    (portRef sink1)
    (portRef sink2)
    (portRef sink3)
    (portRef sink4)
    (portRef sink5)
    (portRef sink6)
    (portRef sink7)
    (portRef sink8)
    (portRef sink9)
  )
 )
)

3. A 4-bit bus structure with topoloty. TRIO can perform GISS

(gdif
 (gdifVersion 1 0 0)
 (comment 4-bit Bus)
 (cell:top
  (port:out0 (layer MET2 ) (type OUT) (pt 0 0 ))
  (port:out1 (layer MET2 ) (type OUT) (pt 0 3 ))
  (port:out2 (layer MET2 ) (type OUT) (pt 0 6 ))
  (port:out3 (layer MET2 ) (type OUT) (pt 0 9 ))
  (port:in0 (layer MET2 ) (type IN) (pt 10000 0 ))
  (port:in1 (layer MET2 ) (type IN) (pt 10000 3 ))
  (port:in2 (layer MET2 ) (type IN) (pt 10000 6 ))
  (port:in3 (layer MET2 ) (type IN) (pt 10000 9 ))

  (path:p0 (layer MET2 ) (pt 0 0 ) (pt 10000 0 ) )
  (net:net0
    (pathRef p0)
    (portRef in0)
    (portRef out0)
  )
  (path:p1 (layer MET2 ) (pt 0 3 ) (pt 10000 3 ) )
  (net:net1
    (pathRef p1)
    (portRef in1)
    (portRef out1)
  )
  (path:p2 (layer MET2 ) (pt 0 6 ) (pt 10000 6 ) )
  (net:net2
    (pathRef p2)
    (portRef in2)
    (portRef out2)
  )
  (path:p3 (layer MET2 )
    (new) (pt 0 9 ) (pt 1000 9 )
    (new) (pt 1000 9 ) (pt 2000 9 )
    (new) (pt 2000 9 ) (pt 3000 9 )
    (new) (pt 3000 9 ) (pt 4000 9 )
    (new) (pt 4000 9 ) (pt 5000 9 )
    (new) (pt 5000 9 ) (pt 6000 9 )
    (new) (pt 6000 9 ) (pt 7000 9 )
    (new) (pt 7000 9 ) (pt 8000 9 )
    (new) (pt 8000 9 ) (pt 9000 9 )
    (new) (pt 9000 9 ) (pt 10000 9 )
    )
  (net:net3
    (pathRef p3)
    (portRef in3)
    (portRef out3)
  )
 )
)
Go back to TRIO User Manual