»»»Home «««
»»»TELL «««
»»»Toped «««
»»»Ifaces «««
|
Table of Contents Caltech Intermediate form (CIF) is a low level graphics langage for specifying the geometry of integrated circuits. In contrast with GDS, the CIF is a text format exposed by nature to a different user interpretation and expansion. It appears that even the root format definitions are not quite followed by some of the major EDA vendors. Toped CIF interfaces are written to comply with CIF 2.0 definition as described in "A Guide to LSI implementation, Second Edition" by Robert W. Hon and Carlo H.Sequin. Toped is using also some of the CIF user expansions for which although "widely accepted" an authorithative reference was not found. See the wiki pages for more details on Toped CIF interface implementation.
Parse a CIF file - this is the first step of the two-step process of CIF conversion. When executed this function parses the CIF file into memory checking it for validity, hierarchy structure and used layers. The function returns a list of strings containing the names of the top-level structures in the parsed file. To convert a CIF structure into TDT, use cifimport. When done, call cifclose to free the memory occupied by this operation. Only one CIF DB can reside in memory at a time. cifread will automatically remove the previous CIF database (if any) from the memory.
Convert CIF structure to TDT cell - this is the second step of the CIF import process. Function requires that a CIF file has been already parsed into the memory using cifread. It transfers the data from CIF representation into the corresponding TDT types. It is important to note that this function does not create a new TDT database. Instead it simply adds new cells to the TDT. This is supposed to facilitate the work of transferring layout blocks from design to design.
Toped will import only the layers listed in the layer_map. The layers not listed there will be silently omited. The function getciflaymap can be used to obtain the defualt layer map of the parsed CIF database. Example 2. cifimport cifimport("top", {{1,"L01"}, {3,"L03"}, {4,"POLY"}}, true, false); cifimport(cifread("test_file.cif"), defaultciflaymap(), true, false); In the example above, current TDT layout database will be updated with the CIF hierarchy starting with the cell named top_structure. All existing TDT cells will be preserved. Only 3 layers form the CIF data base will be imported. The second example will convert the entire test_file.cif using default CIF layer map Clean-up the memory from the CIF data parsed with cifread. After executing cifclose, cifimport can not be called until the next cifread. It is important to use this function, when parsed CIF database is no longer required.
Convert TDT database to CIF - The function translates the active layout or part of it database into CIF format.
Toped will export only the layers listed in the layer_map. The layers not listed there will be silently omited. The function getciflaymap can be used to obtain the defualt layer map of the TDT data base. Example 4. cifexport cifexport({{2,"L2"}, {4,"L4"}}, "/home/user/layout/seed.cif", false); cifexport("crop" , true, getciflaymap(false), "seed_part.cif", false); In the first example above, current TDT layout database will be exported, but only layers 2 and 4. In the second one, cell hierarchy starting with the cell named crop will be converted, including all referenced cells. Prints the list of used layers in a CIF structure. The function can be used only if there is a CIF database in the memory.
This function always takes into account the layers used in the entire hierarchy of structures, starting from struct_name. Returns TDT-CIF layer map suitable for use in the interface functions cifimport and cifexport. The function checks whether a layer map has been already saved in the memory (see setciflaymap). It returns the saved map if it exists. If a map doesn’t exists in memory - the function generates a default layer map.
If a default layer map can not be generated the function will issue an error on the log window. Depending on the input parameter this could be because a TDT ot CIF data base doesn’t exists in the memory. Example 6. getciflaymap lmap list cifExportMap = getciflaymap(false); cifexport(cifExportMap, "all_design.cif", false); Stores a TDT-CIF layer map as a Toped property. The map can be later retrieved using getciflaymap and is also used as an initial layer map in the CIF import/export dialogue boxes. The map will be dumped along with other editor properties by propsave
Example 7. setciflaymap lmap list cifDefaultMap = {{2,"ACTI"},{4,"POLY"},{60,"TEXT"}}; setciflaymap(cifDefaultMap); Clean-up the memory from the layer map stored by setciflaymap. After executing clearciflaymap, getciflaymap will return the default layer map.
|