


DMCHECKOUT(5ICD)	     9/18/85		 DMCHECKOUT(5ICD)



NNNNAAAAMMMMEEEE
     dmCheckOut - initiate a DDM cell transaction

SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
     ####iiiinnnncccclllluuuuddddeeee """"ddddmmmmiiiinnnnccccllll....hhhh""""

     DDDDMMMM____CCCCEEEELLLLLLLL ****ddddmmmmCCCChhhheeeecccckkkkOOOOuuuutttt ((((ddddmmmmpppprrrroooojjjjeeeecccctttt,,,, cccceeeellllllll,,,, vvvveeeerrrrssssiiiioooonnnnssssttttaaaattttuuuussss,,,, vvvveeeerrrrssssiiiioooonnnnnnnnuuuummmmbbbbeeeerrrr,,,, vvvviiiieeeewwww,,,, mmmmooooddddeeee))))
     DDDDMMMM____PPPPRRRROOOOJJJJEEEECCCCTTTT ****ddddmmmmpppprrrroooojjjjeeeecccctttt;;;;
     cccchhhhaaaarrrr ****cccceeeellllllll,,,, ****vvvveeeerrrrssssiiiioooonnnnssssttttaaaattttuuuussss,,,, ****vvvviiiieeeewwww;;;;
     iiiinnnntttt vvvveeeerrrrssssiiiioooonnnnnnnnuuuummmmbbbbeeeerrrr,,,, mmmmooooddddeeee;;;;


PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
     ddddmmmmpppprrrroooojjjjeeeecccctttt
	     is a pointer to a valid DDDDMMMM____PPPPRRRROOOOJJJJEEEECCCCTTTT as obtained from
	     dmOpenProject().

     cccceeeellllllll    is a character string naming the cell to be checked
	     out, this cell can not be an imported cell (or alias
	     name).

     vvvveeeerrrrssssiiiioooonnnnssssttttaaaattttuuuussss
	     specifies the required versionstatus of the cell.
	     Valid status types (as pre-defined in "dmincl.h")
	     are:
	     WWWWOOOORRRRKKKKIIIINNNNGGGG - the working version, not a member of the
		consistent tree.  If updates are made to the
		primitive design data (as is determined with
		mode) and there is no working version, a working
		version will be created from the actual version.
	     AAAACCCCTTTTUUUUAAAALLLL - the actual version which is a member of the
		consistent tree.  This version parameter is the
		appropriate one to obtain design information of a
		cell when an expansion of this cell has to be
		created at a higher level.  The primary data of
		the actual version may not be modified, to
		guarantee consistency.
	     BBBBAAAACCCCKKKKUUUUPPPP - the backup version. Formerly, this version
		was an actual version. It has obtained the backup
		status on an install of a more recent working
		version as the actual.
	     DDDDEEEERRRRIIIIVVVVEEEEDDDD - the derived version.  The derived status
		is used for cells that have been produced by gen-
		erator or extractor tools.  This versionstatus is
		to be used as an argument value when a derived
		version has to be accessed for verification or
		when a new one has to be generated.

     vvvveeeerrrrssssiiiioooonnnnnnnnuuuummmmbbbbeeeerrrr
	     specifies the version to be used when versionstatus
	     is BBBBAAAACCCCKKKKUUUUPPPP or DDDDEEEERRRRIIIIVVVVEEEEDDDD.  If the versionstatus is
	     AAAACCCCTTTTUUUUAAAALLLL or WWWWOOOORRRRKKKKIIIINNNNGGGG one may use DDDDOOOONNNNTTTTCCCCAAAARRRREEEE (as pre-



		   The Nelsis IC Design System			1






DMCHECKOUT(5ICD)	     9/18/85		 DMCHECKOUT(5ICD)



	     defined in "dmincl.h") since at most one actual or
	     working version will be present.

     vvvviiiieeeewwww    is the view from which design information will be
	     read and written.	Currently, valid views (as pre-
	     defined in "dmincl.h") are LLLLAAAAYYYYOOOOUUUUTTTT, CCCCIIIIRRRRCCCCUUUUIIIITTTT and
	     FFFFLLLLOOOOOOOORRRRPPPPLLLLAAAANNNN.

     mmmmooooddddeeee    Valid modes are:
	     RRRREEEEAAAADDDDOOOONNNNLLLLYYYY - this parameter must be used if you do not
		want to write at all, but only want to read some
		information.
	     UUUUPPPPDDDDAAAATTTTEEEE - this parameter must be used if you want to
		update your primary design data.  Also when a
		cell did not exist, it is created.  This mode can
		only be used when versionstatus is WWWWOOOORRRRKKKKIIIINNNNGGGG or
		DDDDEEEERRRRIIIIVVVVEEEEDDDD.
	     AAAATTTTTTTTAAAACCCCHHHH - this parameter must be used to signal the
		DDM system that you do not want to create a new
		version of the module, but only want to produce
		or update some information giving another
		representation of the object (secondary informa-
		tion), e.g. vln-files or plot-files.  This mode
		means that you won't (and can't) change the prim-
		itive design data.

DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
     Function ddddmmmmCCCChhhheeeecccckkkkOOOOuuuutttt(((()))) must be used to gain access to the
     design files of the specified version of the specified
     module.  A pointer to a new DDDDMMMM____CCCCEEEELLLLLLLL key is returned.  This
     key must be used subsequently by the functions dmOpen-
     Stream() which can then determine which object to access,
     and finally by the function dmCheckIn().

     A cell in the DDM system is not uniquely identified by its
     cell name.  For example, the cell _a_d_d_e_r in the project _c_h_i_p
     is another cell than the cell _a_d_d_e_r in the project _t_e_s_t.
     This distinction is made in the DDM system through the
     DM_PROJECT key that is passed as an argument.  However, this
     still not completely identifies a cell.  A cell _a_d_d_e_r of
     view-type layout is another one than the cell _a_d_d_e_r that was
     created in the circuit view.  This distinction is made in
     the DDM system through the vvvviiiieeeewwww parameter that is passed as
     an argument.

     If the version is the WWWWOOOORRRRKKKKIIIINNNNGGGG version, a lock is set to
     prevent that other designers start working on the same cell.

     Not all combinations of parameters are legal.  The legal
     combinations of parameters match with the different types of
     tools that can act on the DDM system.




2		   The Nelsis IC Design System






DMCHECKOUT(5ICD)	     9/18/85		 DMCHECKOUT(5ICD)



     1111 ---- EEEEddddiiiittttoooorrrr----lllliiiikkkkeeee ttttoooooooollllssss
	     Such tools work on primary design information within
	     one specific view.  It can update this information,
	     which can be stored as a new (WORKING) version.  The
	     version parameter for an editor must always be WORK-
	     ING and mode is UPDATE.

     2222 ---- EEEExxxxttttrrrraaaaccccttttoooorrrr----lllliiiikkkkeeee ttttoooooooollllssss
	     (Cross-view tools).  Such tools derive from a design
	     description in one view a design description in
	     another view.  So, it generates equivalences between
	     objects in different views.  It has to perform at
	     least two cell transactions, one for the existing
	     cell and one for the generated cell.  For the source
	     design data, the version parameter may be ACTUAL,
	     WORKING, BACKUP or DERIVED and mode is READONLY.
	     For the generated design data the version parameter
	     is DERIVED and mode is UPDATE.

     3333 ---- DDDDeeeerrrriiiivvvveeee ttttoooooooollllssss
	     (like makevln, simulators, verifiers etc.).  Such
	     tools do not create new objects, yet derive addi-
	     tional information of a certain cell and attach this
	     information to the cell.  The version parameter may
	     be ACTUAL, WORKING, BACKUP or DERIVED and the mode
	     is ATTACH.

     4444 ---- RRRReeeeaaaadddd----oooonnnnllllyyyy ttttoooooooollllssss
	     (like show).  Such tools don't write information to
	     the DDM system at all.  The version parameter can be
	     ACTUAL, WORKING, BACKUP or DERIVED and the mode is
	     READONLY.

     SUMMARY:

	    TOOL	   MODE       VERSION	NEW OBJECT
	    ______________________________________________
	    EDITOR	   UPDATE     WORKING	YES
	    EXTRACTOR	   READONLY   ALL	NO
	    EXTRACTOR	   UPDATE     DERIVED	YES
	    DERIVE TOOLS   ATTACH     ALL	NO
	    READ-ONLY	   READONLY   ALL	NO
	    ______________________________________________



DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
     If properly executed, dmCheckOut() will return a pointer to
     a structure of type DDDDMMMM____CCCCEEEELLLLLLLL.  If dmCheckOut() fails NNNNUUUULLLLLLLL
     will be returned, after a call to function dmError() is
     done, and ddddmmmmeeeerrrrrrrrnnnnoooo will be set to indicate the error.
     This might happen in the following cases:



		   The Nelsis IC Design System			3






DMCHECKOUT(5ICD)	     9/18/85		 DMCHECKOUT(5ICD)



     DDDDMMMMEEEE____BBBBAAAADDDDKKKKEEEEYYYY    No legal project key.

     DDDDMMMMEEEE____BBBBAAAADDDDAAAARRRRGGGG    Bad arguments call.

     DDDDMMMMEEEE____BBBBAAAADDDDNNNNAAAAMMMMEEEE   Cell name not correct.

     DDDDMMMMEEEE____BBBBAAAADDDDVVVVIIIIEEEEWWWW   Illegal view.

     DDDDMMMMEEEE____NNNNOOOOCCCCEEEELLLLLLLL    The cell does not exist in the specified view
		   of the specified project.

     DDDDMMMMEEEE____LLLLOOOOCCCCKKKK	   Cell is locked: cell has already been checked
		   out by this process.

     DDDDMMMMEEEE____SSSSYYYYSSSS	   Cannot execute system call.


EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
     A plot program may initiate a cell transaction in the fol-
     lowing way:

     key = dmCheckOut (dmproject, cell, ACTUAL, DONTCARE, LAYOUT,
     READONLY);


     1	  cell is a character string containing the name of a
	  cell in the database.  This cell must be present in the
	  layout view of the project identified by ddddmmmmpppprrrroooojjjjeeeecccctttt.

     2	  AAAACCCCTTTTUUUUAAAALLLL means that the program accesses the actual ver-
	  sion of the module.

     3	  LLLLAAAAYYYYOOOOUUUUTTTT means that the program will access the layout
	  description of the cell.

     4	  RRRREEEEAAAADDDDOOOONNNNLLLLYYYY means that the program won't write data back
	  to the database.

     5	  The function dmCheckOut() returns a pointer to a
	  DDDDMMMM____CCCCEEEELLLLLLLL which must be used by the functions dmOpen-
	  Stream(), dmCloseStream() and dmCheckIn().


     The program 'makevln' may initiate a cell transaction in the
     following way:

     key = dmCheckOut (dmproject, cell, ACTUAL, DONTCARE, LAYOUT,
     ATTACH);

     1	  AAAATTTTTTTTAAAACCCCHHHH means that the program will add some information
	  to the accessed version of the module.  The DDM system
	  will nnnnooootttt create a new version.



4		   The Nelsis IC Design System






DMCHECKOUT(5ICD)	     9/18/85		 DMCHECKOUT(5ICD)



     2	  Instead of the actual version, the program may also
	  access the latest version if it wishes, using WORKING
	  as the version parameter.


     A layout editor may (must) initiate a cell transaction in
     the following way:

     key = dmCheckOut (dmproject, cell, WORKING, DONTCARE, LAY-
     OUT, UPDATE);

     1	  WWWWOOOORRRRKKKKIIIINNNNGGGG means that the program will access the latest
	  version of the evolutionary chain of versions of the
	  module.  This is the so-called working version, or, if
	  there is no working version, one is created where the
	  editor stores the updated design description.  A lock
	  is set to prevent that other people start working on
	  the same cell.

     2	  The view LLLLAAAAYYYYOOOOUUUUTTTT indicates that the program will write
	  layout data back into the database.


     An extractor may initiate its cell transactions in the fol-
     lowing way:

     key1 = dmCheckOut (dmproject, cell, WORKING, DONTCARE, LAY-
     OUT, READONLY);
     key2 = dmCheckOut (dmproject, cell, DERIVED, DONTCARE, CIR-
     CUIT, UPDATE);

     1	  CCCCIIIIRRRRCCCCUUUUIIIITTTT indicates that the program will produce infor-
	  mation for the circuit view.

SSSSEEEEEEEE AAAALLLLSSSSOOOO
     dmCheckIn(5ICD).

NNNNOOOOTTTTEEEE
     Since versioning is not yet supported in Release 3, ACTUAL,
     WORKING, BACKUP and DERIVED refer to the same data.















		   The Nelsis IC Design System			5



