


GCR(1ICD)		     5/21/87			GCR(1ICD)



NNNNAAAAMMMMEEEE
     gcr - Gridless Channel Router

SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
     ggggccccrrrr [----ffffhhhhiiiilllloooossssttttuuuuUUUUvvvv] [----rrrr rulefile] [----dddd dir] [----pppp level]
     [channel_file]

OOOOPPPPTTTTIIIIOOOONNNNSSSS
     The following arguments can be specified:

     cccchhhhaaaannnnnnnneeeellll____ffffiiiilllleeee
	  The name of the file in which the channel is described.
	  If no channel_file is specified, _g_c_r will search for a
	  file called "channel".

     ----ffff   Disable the automatic fan out of terminals.  If the
	  channel was not routed completely due to terminal spac-
	  ing constraints, _g_c_r will automatically try solve the
	  problem by moving ('fanning out') terminals.	Use the
	  '-f' option if you want to prevent this.

     ----hhhh   Help: print the list of options.

     ----iiii   Interactive mode (some selected Apollo versions only).
	  If this option is supplied, the program will start up
	  in a window and display the channel.

     ----llll   Generate a file called "<channel_file>.stat" containing
	  the wire length and the number of vias used in each
	  net.	See the description below for more details.

     ----oooo   Invoke net scheduler optimizer.  This option enhances
	  _g_c_r's performance as a river router.	However, for
	  large channels it will consume considerably more CPU-
	  time, with only marginal improvements.

     ----ssss   Print detailed routing statistics.

     ----tttt   Trace option.  If supplied, the program will print the
	  result of each attempt to route a net.

     ----uuuu   Pile Up the left- and right-side terminals at minimum
	  spacing distance.  If this option is not supplied,
	  these terminals will be piled up in such a way that no
	  territory overlap will occur in the adjacent channels.

     ----UUUU   Pile Up the left- and right-side terminals at a little
	  more than minimum spacing distance.

     ----vvvv   Verbose mode.  The actions performed by _g_c_r are
	  printed.




		   The Nelsis IC Design System			1






GCR(1ICD)		     5/21/87			GCR(1ICD)



     ----rrrr rrrruuuulllleeeeffffiiiilllleeee
	  Sets the name of the design rule file to be used
	  (default 'Route_rules').

     ----dddd ddddiiiirrrr
	  Sets the directory in which the channel file is to be
	  found to 'dir'.

     ----pppp lllleeeevvvveeeellll
	  Set the postprocessing level to 'level'.  Default: max-
	  imum postprocessing (level = 6).  See description for
	  more details.

DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
     The program _g_c_r is a 3-layer contour-based gridless channel
     router which is able to route irregularly shaped channels.
     Given a set of terminals, a net list and the shape of the
     channel, the program will generate the wire to interconnect
     the terminals of each net.  The router attempts to minimize
     both the channel width and the number of contact holes.  The
     terminals are allowed at any position and in any layer along
     the channel boundary.  The width of each terminal and every
     wire segment can be specified.

     _G_c_r is called automatically by _s_e_q_u, which generates the
     necessary input file.  However, _g_c_r can also be called as a
     separate tool.  Unlike the other programs of the system, _g_c_r
     reads its input out of normal files in the current project
     directory.  Two input files are expected and two types of
     output are generated:

     (input)
	  A ddddeeeessssiiiiggggnnnn rrrruuuulllleeeessss ffffiiiilllleeee in which all relevant process
	  parameters are specified.  This file, called
	  "Route_rules", is read from the current project direc-
	  tory.  If no file with that name is present in the pro-
	  ject directory, the default design rules file of the
	  database will be used.  In other words: the designer
	  can specify his/her own design rules by placing a
	  "Route_rules" file in the project directory.	The syn-
	  tax of this file is described in detail in the users
	  manual or in the online manual pages _r_o_u_t_e__r_u_l_e_s(3ICD).

     (input)
	  A cccchhhhaaaannnnnnnneeeellll ffffiiiilllleeee in which the shape of the channel, the
	  position and layer of each terminal, the connectivity
	  of the terminals and a number of options can be speci-
	  fied.  The name of this file can be specified in the
	  invocation command line.

     (output)
	  A cccceeeellllllll which is written into the layout view of the



2		   The Nelsis IC Design System






GCR(1ICD)		     5/21/87			GCR(1ICD)



	  database.  It contains all rectangles of which the
	  wires in the channel consist.  The name of the cell can
	  be specified in the channel file.  However, if no name
	  was specified, the cell will obtain the name of the
	  channel file itself.

     (output)
	  An oooouuuuttttppppuuuutttt cccchhhhaaaannnnnnnneeeellll ffffiiiilllleeee of which _s_e_q_u(1ICD) can deduce
	  the width of the channel and the positions of the
	  floating terminals on the left and right side boun-
	  daries of the channel.  It resembles the input channel
	  file very much.  The output channel file will obtain
	  the name of the input channel file name, extended with
	  ".out".

     (output, optionally)
	  A SSSSttttaaaattttiiiissssttttiiiiccccssss ffffiiiilllleeee containing data about the wire length
	  length of each net.  This file will obtain the name of
	  the input channel file name, extended with ".stat".  If
	  the '-S' option is supplied to _s_e_q_u(1ICD), this program
	  will collect the data of all individual channels to
	  make global wire length statistics.  The first line of
	  the file contains the name of the channel, the total
	  wire length of all nets, the total length in metal1,
	  the total length in poly/metal2 and the total number of
	  vias, respectively.  In the next lines the length data
	  of each net is specified (netname, total length, metal
	  length, poly/metal2 length, number of vias)

PPPPOOOOSSSSTTTTPPPPRRRROOOOCCCCEEEESSSSSSSSIIIINNNNGGGG
     The program _g_c_r has a powerful postprocessor which removes
     unnecessary jogs in wires.  Notice however, that postpro-
     cessing does not affect the channel width.  There are 7 dif-
     ferent levels of postprocessing which can be specified using
     the '-p' option:


     level = 0
	  No postprocessing at all.  This is the fastest way to
	  route the channel.

     level = 1
	  Simple postprocessing.  On this level some metal wires
	  are straightened.  It takes about 7% extra cpu-time.
	  The number of rectangles will remain unchanged.

     level = 2
	  Exhaustive postprocessing.  On this level nearly all
	  unnecessary wire bumps are removed.  It takes 30-60%
	  extra cpu-time, but 40-75% less rectangles are gen-
	  erated.




		   The Nelsis IC Design System			3






GCR(1ICD)		     5/21/87			GCR(1ICD)



     level = 3
	  As the previous level, but also limited contact hole
	  shift to minimize the wire length in some layers (as
	  polysilicon).  A level > 2 is only useful if the design
	  rule parameter 'minlength[layer]' was specified in the
	  "Route_rules" design rule file.

     level = 4
	  As the previous level, but more extensive contact hole
	  shift (10% extra cpu time).

     level = 5
	  As the previous level, but also 'metalisation' of a few
	  long POLY wires.

     level = 6 (default)
	  As the previous level, but also 'metalisation' of ALL
	  long POLY wires.  Depending on the number of terminals
	  in the channel this could take some extra cpu-time.

AAAAUUUUTTTTHHHHOOOORRRR
     Patrick Groeneveld

FFFFIIIILLLLEEEESSSS
     proj_dir/Route_rules      or
     IIIICCCCDDDDPPPPAAAATTTTHHHH/lib/process/_p_r_o_c_e_s_s__n_a_m_e/Route_rules
     proj_dir/channel		      (default input channel file)
     proj_dir/layout/_c_e_l_l/box
     proj_dir/layout/_c_e_l_l/term
     proj_dir/layout/_c_e_l_l/info
     proj_dir/layout/_c_e_l_l/nor
     proj_dir/layout/_c_e_l_l/mc
     proj_dir/channel.out	      (output channel file)
     proj_dir/channel.stat	      (output statistics file)

SSSSEEEEEEEE AAAALLLLSSSSOOOO
     H. Cai and P. Groeneveld, "Delft Placement and Routing Sys-
     tem User's Manual", The Nelsis IC Design System Documenta-
     tion, Delft, March 1988.
     P. Groeneveld, "GCR: Gridless Channel Router Users Manual",
     TUD internal paper, Delft, July 1987.
     glroute(1ICD), ipp(1ICD), route_rules(3ICD), sequ(1ICD).

DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
     Warnings and error messages are very detailed. Therefore
     even small errors can produce an impressive amount of error
     messages.








4		   The Nelsis IC Design System



