Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tools:layout:start [2024/06/16 16:06] – [The rect file format] rajit | tools:layout:start [2025/03/20 20:44] (current) – [Coordinate system] ole | ||
---|---|---|---|
Line 14: | Line 14: | ||
ACT also generates the LEF for each cell along with the technology LEF. When the unrouted cells are used, ACT uses dummy pin locations for this purpose. Once the cell is routed (step 2), the generated LEFs will includes pin information, | ACT also generates the LEF for each cell along with the technology LEF. When the unrouted cells are used, ACT uses dummy pin locations for this purpose. Once the cell is routed (step 2), the generated LEFs will includes pin information, | ||
- | ==== The rect file format ==== | + | ===== The rect file format |
Preliminary layout files for cells required for place and route are generated in the '' | Preliminary layout files for cells required for place and route are generated in the '' | ||
Line 42: | Line 42: | ||
A rectangle can be followed by an optional string that is '' | A rectangle can be followed by an optional string that is '' | ||
- | === Coordinate system === | + | ==== Coordinate system |
- | The coordinate system used by rectangles in this file are designed to work directly with '' | + | The internal |
< | < | ||
:box 0 0 10 20 | :box 0 0 10 20 | ||
Line 50: | Line 50: | ||
is of size 10 by 20 units. If we view a box as a collection of 1 by 1 pixels, then this box occupies pixels starting from (0,0) to (9,19). All '' | is of size 10 by 20 units. If we view a box as a collection of 1 by 1 pixels, then this box occupies pixels starting from (0,0) to (9,19). All '' | ||
- | === Bounding box === | + | the rect command is specifed by 2 coordinate pairs, following the above example: |
+ | < | ||
+ | rect < | ||
+ | |||
+ | rect # m1 0 0 9 19 | ||
+ | </ | ||
+ | ==== Bounding box ==== | ||
This bounding box corresponds to the place and route boundary for the cell. Note that this is for convenience only; this box is automatically re-computed by the ACT layout library based on the geometry of the cell. The '' | This bounding box corresponds to the place and route boundary for the cell. Note that this is for convenience only; this box is automatically re-computed by the ACT layout library based on the geometry of the cell. The '' | ||
Line 56: | Line 62: | ||
A user-specified place and route boundary and bounding box can be specified using the '' | A user-specified place and route boundary and bounding box can be specified using the '' | ||
- | === Abutment and attributes | + | ==== Abutment and alignment ==== |
The layout library has support for manipulating layout. To aid in this, a '' | The layout library has support for manipulating layout. To aid in this, a '' | ||
+ | |||
+ | A aliment box is required to mark the boundary the next cell is abutted to: | ||
< | < | ||
Line 64: | Line 72: | ||
</ | </ | ||
This means that the box used for abutting this cell with another has the specified coordinates. | This means that the box used for abutting this cell with another has the specified coordinates. | ||
+ | |||
+ | The layout engine checks if it can abut 2 cells by looking up if they have a matching label, so next to the abutmentbox you need to specify abutment markers: | ||
+ | these markers are just a single coordinate thus the first coordinate pair is just repeated. | ||
< | < | ||
Line 73: | Line 84: | ||
rect $r:name2 $align 2 8 2 8 | rect $r:name2 $align 2 8 2 8 | ||
</ | </ | ||
- | This means that a right edge alignment marker called ' | + | This means that a right edge alignment marker called |
Similarly, '' | Similarly, '' | ||