Skip to content
Carsten Wulff edited this page Jun 3, 2016 · 3 revisions

Cell is the fundamental object of all objects in the layout (Ok, some object, like Port, inherit only Rect, but most inherit Cell). Cell can be found in cic-core/src/core/cell.cpp

#Properties In the object definition file the Cell can contain certain properties

  • name [mandatory] : Name of the cell, must be uniq
  • class [optional] : will use LayoutCell if it's not specified. In cic-core/src/core/design.cppconstructor there is a list of allowed cells
  • inherit [optional] : Cell from which this cell will inherit all instructions
  • leech [optional] : Cell from which this cell will copy all instructions, but will not follow the inheritance hierarchy. In other words it only cares about the first parent, no grandparents.
  • comment [optional] : can occur anywhere, and is ignored by the compiler
  • new [optional] : Arguments to use for the constructor (NOT IMPLEMENTED AS OF 2016-06-03)

#Action Each cell will trigger actions in a specific sequence. The sequence is as follows:

  • Create object if the class exists
  • Set name
  • Run afterNew of all parents, starting with the oldest
  • Run afterNew of the current cell
  • Set all properties, and run all custom functions on the object
  • Run beforePlace of all parents, starting with the oldest
  • Run beforePlace of the current cell
  • Call place() on the object
  • Run afterPlace of all parents, starting with the oldest
  • Run afterPlace of the current cell
  • Run beforeRoute of all parents, starting with the oldest
  • Run `beforeRoute of the current cell
  • Call route()
  • Run afterRoute of all parents, starting with the oldest
  • Run afterRoute of the current cell
  • Call addAllPorts() on the object, to place remaining Ports.
  • Run beforePaint of all parents, starting with the oldest
  • Run beforePaint of the current cell
  • Call paint() on the object
  • Run afterPaint of all parents, starting with the oldest
  • Run afterPaint of the current cell
  • Add the object as a child of Design
  • Add to the static list of cells
Clone this wiki locally