Академический Документы
Профессиональный Документы
Культура Документы
Apollo
Apollo version 1999.4
展業一路一號1樓
交通:
1.園區門口1路公車站下車 中國 高速
宏碁
走路約1.6公里 商銀 新 安 路 電腦
2.加油站1路公車站下車
走大學路至第一個路口左轉 晶片 警衛
園區 停車場 交大
,約1.3公里,上班期間車子 中心
非常多不好走,請注意安全管理局 展 正門 南大門
3.計程車 業
加油站至CIC100或150元 一 太空
中 交大女二舍
火車站至CIC約200元 山 路 計畫室 餐廳
(不跳表上車前議價) 高
速
PS: 1路公車從火車站經清華
公 鐵欄干
、加油站、園區大門….. 路
約10~15分鐘一班
交大
園區
大學路 大門
大門
#1路公車
往竹東 光 復 * 加油
路 站
新竹 遊 #1路公車
往市區
交流道 覽
* 台汽
車
茶水
女廁 男廁
儲藏室 UPS
配電
上 訓練教室B
卸貨平台
安全門
安全門
會議室101
訓練教室A
晶片組
訓練教室C
大會議室
組長室 檔案室 測試實驗室
櫃檯
大門
主任室 行政組 用餐:大會議室
文具影印室
大門 訓練教室C
配電 公共空間
訓練教室B
機房
廚房 訓練教室A
女廁 男廁 上
茶水
Menu banner
Command
Message/Input area History area
Prompt area
Cells
Layer mapping
prBoundary unitTile
blockage
pin
Frame View(1)
The unit tile is the basic unit of area for placement of standard cells. It is the width of metal2 pitch and
about the height of the standard cells.
The prBounbary is the bounding box of the unit tiles used by a standard cell. It marks the lines along
which cells are abut; that is, the polygon that encloses the unit tiles in a standard cell. Apollo uses
prBoundary to align wire tracks and power and ground rails during cell placement.
unitTile
row
minimum
distance
M2 pitch
standard cell
wire
track
pad
pad pad pad
definePad “pad” “0” definePad “pad” “180”
definePad “pad” “90” definePad “pad” “270”
cpad cpad
cpad cpad
Referenced
Referencedcell
celllibrary
library
Data Preparation
A technology file defines the following characteristics of a cell library:
# Units
# Colors, stipple patterns, and line styles
# Layers
# Capacitances and resistances (for timing-driven layout)
# Devices
# Design rules
In Apollo, you can import a netlist in EDIF or Verilog HDL format. Apollo will translate it into a
netlist cell, which represents the logical connectivity of a design at the top level.
The “Top Design Format” (TDF) file is used to describe the pad placements when designing a chip,
or pin placements when designing a block-level layout. Also, it can define the clock waveform
used in timing driven layout and clock tree synthesis.
A cell library can contain both top-level designs and the cells used in those designs. In some cases,
cells in a library can contain cells from other libraries. Instead of copying cells to multiple libraries,
Apollo references the other libraries, which are called “reference libraries”.
Your Design
Library
Physical layout
Import Design
To access Milkyway application, select Tools % Data Prep in Apollo session; when you want to go
back to Apollo, select Tools % ApolloII.
Apollo P&R system can not deal with the hierarchical netlist, hence, before binding the netlist into
the Apollo cell, the netlist should be expanded to enough levels of hierarchy to provide information
necessary for binding with the physical layout.
※1
chip→core→a. chip.core.a. Enable
chip.core.a\. Disable
※2
chip→core→\a[3] chip.core.a[3] Enable
chip.core.\a[3] Disable
※3
sub si (.port(net([4:1])…); → input [3:0] port;
sub si (.port(net([1:4])…); → input [0:3] port;
The paragraph on the right side of ※1 describes how to add VDD & VSS as global nets.
VDD Power
VDD VDD1
Cell1 VDD
Cell2
(1’b1)
GND VSS
VSS Ground
Floorplan
After the design is imported into Apollo, do the following:
& Create and load the top design format file to set the constraints for pad placement.
& Setup the rectangular floorplan. The rectilinear floorplan is beyond the scope of this training
course.
& If your design contains macros, place them before cell placement. To place macros, you can
use Modify > Move command to move macros to the location you desired. Also, you can
place macros automatically by PrePlace > Place Blocks command.
& You can create groups and regions for better floorplan. Better P&R result will be obtained
with better floorplan.
C ll C lr
Ref [14]
…. 2 1
cell
3
region
Core to Top
Region Group
(M1 Group) Constraint
(M1 Group)
Pre-Route Nets
You can pre-route any net, but you typically pre-route power, ground, and clock nets in 2 steps:
& Trunk routing before standard cell placement
& Standard cell P/G pins routing after standard cell placement
This is because the cells must be placed so that they do not interfere with the trunks, but the
standard cell P/G pins can be routed only after cells are placed.
LH RH
TL TH macro
BL BH
LL RL
Step
Group1
Group2
Pitch
Create Straps
& Select horizontal or vertical for strap direction in direction field. Type the horizontal (vertical)
coordinate where you want the vertical (horizontal) strap to start in Start X (Start Y) field.
& Type the names of the nets for which you want to specify a strap in the Net Name(s) field. To
specify two or more nets, separate the names with commas. The number of net names
specified determines the number of straps in a group.
& You can configure the straps by specifying Groups, Step, and Stop. A Group contains straps of
the nets you specify. The Step is the distance from the reference strap of one group to the
reference strap of an adjacent group. The Stop is the stop coordinate.
& Pitch within Group is the distance you want placed between the center lines of two adjacent
straps within the same group.
& The straps can end at the core boundary, the first target, or the coordinate you specify. The
first target is the same net that the strap reaches first.
VDD VSS
Pre-Route Macros/Pads
Connect power and ground pins in macros or pads to pre-routed rings, straps, and custom wires
using PreRoute > Macro/Pads. The width of the power and ground connection is the same as the
original power and ground pin.
Cell Placement
The placement phase of the design flow places the cells in the core area. You have the option of
weighting cell placement to optimize various factors of a design. Use Place > Placement Common
Options to set these options. After the placement options are set, place the cells and optimize the
result.
VSS VSS
User Padding:
Select to add padding defined by you. User defined padding takes precedence over automatic
padding and can relieve highly congested areas more efficiently than the Master Padding option.
If you have groups or regions, don’t forget to select the Region or Group placement constraint.
14/12
Horizontal demand = 14
GRcell Horizontal supply = 12
1.20 Overflow = 2
0.99
0.81 0.76
0.43 6/5 8/5
∑
Vertical supply = 5
capacity
Congestion Map
In the 2-D congestion map, edges of overflowing gcells are displayed in colors representing the
severity of the overflow. Each gcell has a vertical and horizontal capacity. This is the number of
unblocked tracks available for routing. Each gcell also has a vertical and horizontal demand. This
is the number of nets assigned to the gcell by the global router. The difference between the
capacity and the demand is the overflow.
The 1-D congestion maps are bar graphs along the left and bottom edges of the design. They show
the sum of the gcell demand versus the sum of the gcell capacity along a cut line. A red line marks
value 1.0. 1-D congestion map values greater than 1.0 indicate trouble. Generally, the 1-D
congestion map is not as useful as 2-D congestion map. The 1-D c9ongestion map is useful only
for small designs.
Optimize Placement
& After placement, find routing congestion then try to change the placement to decrease the
congestion. If the violations are extreme, go back to the floorplan step. If there are only minor
violations, use area placement and search & refine placement to improvement the placement.
& When you use area placement, the placer will attempt to reduce the congested areas by
moving standard cells away into less congested areas. The area you specify should include
congested and less congested areas, to give Apollo the space needed to move cells.
& Repeated manual area placement requires practice to learn and time to execute. The Search &
Refine placement command automatically performs area placement on a design until
user-specified termination conditions are met. The Search & Refine command never makes
your placement worse because it reverts to your initial placement if it cannot improve the
placement. You can specify areas in which Apollo runs Search & Refine using PrePlace >
Create Search & Refine Constraint.
FF 2 FF
clk clk 1
FF 2 FF
2 2
FF FF FF FF
Before running CTS, you have to specify some timing information. First, you should specify the
clock net. Second, if you use the cell library provided by CIC, you should set the timing
option-delay model as TLU. Third, you should define the clock source and waveform in TDF file
and load it. After those described above are prepared completely, use Clock > Auto. (Gated) Clock
Tree to create the clock trees.
clk
ipad CIN to core
source point
clock
0 5 10
The source point in the example is a hierarchical name. It means the source point is “CIN” pin of
the pad instance “ipad”.
Ref [25]
FF
FF
The clock must arrive
FF here early in order to
FF
Source reach all FF at the
point same time.
FF Macro FF
Delay FF
d source,sync FF
d phase
clk!buffda!2!0
clk!2!0
clk!buffda!1!0 clk!buffda!2!1
clk clk!1!0 clk!2!1
clk!buffda!2!2
clk!2!2
Macro FF Macro FF
Delay FF Delay FF
FF FF
Add Filler
& Add core filler for better electrical characteristic.
& It is necessary to add pad filler because the pad cells are not placed close to each other, there’s
a gap between a pair of pad cells. The pad fillers connect the P/G nets of the pad cells. If you
do not add pad fillers, the pad cells will be lack of power.
& The cell name of the core filler in the cell library provided by CIC is feedth.
& The cell names of the pad fillers in the cell library provided by CIC are iofeedth002,
iofeedth046, and iofeedth864.
& You should specify the pad filler that can be overlapped as well as the non-overlapped filler;
if not, there maybe some gap leaving blank between pad cells.
Routing
After the cells are placed and the clock trees are synthesized, you can start routing. A sample
routing design flow is presented below:
& Route the P/G pins of the standard cells to the pre-routed P/G ring or strap to make sure that
the P/G ports of all standard cells are connected.
& Route the clock net before all other signals are routed.
& Using Route > Auto Route to route all the other signals.
& Verify the result of routing and make sure all signals are routed successfully.
& Optimize routing to reduce the wire length and the number of vias.
You can select nets that begin with the original clock net name. The selected nets will be
highlighted so you can see the clock routing result easily.
GRcell
Core Area
Assigned nets – available wire track = overflow
(demand)
GRcells
! Routes the design using 5 by 5 switch
boxes. Every net is routed, even if
this causes violations.
! Routes the design again using 9 by 9
switch box. Again, every net is
routed, even if it causes violations.
Verify Routing
& After detail routing, the total DRC violations are shown in message/input area. If the number
of total violations are not 0, use Route > Search & Repair to eliminate the violations.
& Search & Repair command concentrates on areas that contain violations. It does this by
building a switch box centered around each violation (or group of violations) and re-routing it.
The size of each switch box is determined automatically.
Ref [31]
Optimize Routing
After all violations have been eliminated, use Route > Optimize Routing to improve routing quality
by reducing wire length and eliminating vias. Optimization will not change the die size of the
design.
Ref [32]
DRC/LVS Check
The design rule checking (DRC) operation checks for design rule violations in the current design,
including the following:
& Objects with widths less than the minimum width set for the layer.
& Notches smaller than the minimum distance required between objects on the same layer.
& Same-layer objects closer together than the minimum spacing set for the layer.
& Different-layer objects closer together than the minimum spacing set for the two layers.
The DRC operation creates an error cell, from which you can request a summary of errors or
highlight errors of specific types. By default, the cell name is chip_drc.err.
The LVS operation checks for inconsistencies between the schematic and the physical layout of the
current design, including floating ports (pins not connected to a wire segment), floating nets (wire
segments not connected to a pin), shorts (nets connected that should not be), and opens (nets not
connected that should be).
The LVS operation creates an error cell, from which you can request a summary of errors or
highlight errors of specific types. By default, the cell name is chip_lvs.err.
Export Data
Use Output > Stream Out command in Milkyway to export your design data to GDSII stream file.
Ref [35]
Post-layout Verification
GDSII layout
(Dracula DRC)
DRC Overview(1)
DRC checks the layout geometries against fabrication rules
width check area check
WIDTH MT1 LT 0.5 OUT M1W1 59 AREA CO RANGE 0.159 0.161 COTMP
NOT CO COTMP COW1B OUTPUT COW1B 59
If the width of this
geometric is less than
design rule, report this
DRC error.
geom1
geom2 geom2
geom1
Note
Other analogous DRC violation : M2W1, M3W1, M4W1
Note
Other analogous DRC violation : M2S1, M3S1, M4S1
Metal1 to wide Metal1 (larger than 10um) spacing is less than 0.8um.
Note
Other analogous DRC violation : M2S2S, M2S2D, M3S2S, M3S2D, M4S2S, M4S2D
Note
Other analogous DRC violation : V2W1, V3W1
Metal1 enclose
VIA1 spacing is
less than 0.2um.
Note
Other analogous DRC violation : M2E1, V2E1, M3E1, V3E1, M4E1
2
PDRACULA Command File Errors
Compile Dracula command file
Run Files
3 4
** NOTE : ALL TEMPORARY DATA FILES CREATED BY THIS JOB WILL BE DELETED
Unix% jxrun.com
jxrun.com > drc.log
drc .log
M1 to M1
capacitance
M1
M1 to M2
capacitance
VDD VDD
VSS VSS
VIA
VSS VSS
pre-layout
post-layout
....
critical path delay
clk
critical path delay data
... . . .data
0.5u 35-60%
0.35u 40-75%
Gate-level
Analysis
Tr-level
Gate-level post-layout
Analysis
timing analysis
SPICE netlist
simulation Post-layout
TimeMill/PowerMill
pattern simulation
simulation
result
LPE z2
(layout parasitic extraction)
VSS i z1
VDD VDD z2
PRE
(parasitic resistance extraction)
i zn z1
VSS VSS
TimeMill
qtimemill : perform simulation
PowerMill
check result You can use qstat to check the queue status
! Input files
& gentech control file % gentech.ctl
& spice model file % ls35_4_1.l
! Important output files
& output technology file which contains a large amount of
Hspice simulation result.
& log file % gentech.log
integer outf;
initial begin
outf = $fopen("input.dat");
. . . . .
$fclose(outf);
$finish;
end
nodename file
ADRS[0]
ADRS[1]
. . . . . .
CLK
DATA[0]
. . . . . .
TOP
TOP CNTR
REGF
XREG_load_en
! Starting nWave
unix% nWave &
0.00000e+00 - 1.00010e+03 ns
Node: vdd
Average current : -3.53355e+05 uA
RMS current : 3.53388e+05 uA
Fig. 1
8. Select “Library % Open” from menu banner, and fill the fields in Open Library form as shown
below (Use the left mouse button to select commands or objects). And then click OK. The
message window will show “Open library successfully”.
9. Select “Cell % Open” from menu banner, Open Cell form will be shown. This time we click
Browse… button in Open Cell form to select the cell we want to open. The Browse Cell form
now appears.
10. Click c4msram32x4s in the left column of Browse Cell form, and then it will be displayed in
4. Select “Cell % Open” from menu banner, and fill the fields in Open Cell form as shown below.
And then click OK. The cell window appears. What view is opened now? Check the upper left
corner of the window to find the answer.
5. Using “Query-object” button to find the following answers: 1) What is the layer name and
number of the rectangle with red border? 2) What is the layer name and number of the light blue
polygon? 3) What is the layer name and number of the dark blue rectangle? 4) What is the layer
name and number of the rectangle with yellow dashed border?
6. Select “Cell % Close”, “Close Window” form appears. Click “Discard All” button and click OK
to close the cell window without save.
7. Select “Cell % Open” from menu banner, and fill the fields in Open Cell form as shown below.
And then click OK.
8. Click the “Layer panel” button and “Layer Panel” window appears. The PRBoundary layer is
covered completely by boundary layer. Show PRBoundary layer in the cell window by disabling
the visibility of boundary layer.
9. Use Ruler to measure the width and height of this cell. Write down the cell width and height.
10. Select “Cell % Close”, “Close Window” form appears. Click “Discard All” button and click OK
to close the cell window without save.
11. Select “Cell % Open” from menu banner, and fill the fields in Open Cell form as shown below.
And then click OK.
From Lab3 to Lab6, you transfer the gate level net list into the verified gds2 layout.
The design hierarchy is shown below:
Hierarchy 1 Hierarchy 2 Hierarchy 3
IO pads
(pc3d01, pc3o05…)
mem (32x4 synchronous sram)
chip
ctrl (control signal generator)
The top module of the design.
lab mul (8x8 pipeline multiplier)
div (16/5 divider)
outstage (output buffers)
The IO pads of the design are listed below:
Type Master Name Number
Input pc3d01 6
Ouput pc3o05 5
Core power/ground
pvdb/pv0b 1/1
IO DC power/ground
IO AC power/ground pcda/pv0a 1/1
Corner p14frell/p14frelr/p14freul/p14freur 1/1/1/1
6. A library named lab3 is created. Now the library contains only NET view.
7. Move the cursor to Terminal window, type ls lab3, you should see the subdirectory NETL.
8. Choose “Library % Add Ref”.
9. Complete the form as shown and click Apply.
Mode Add
Net Name VDD
Port Pattern VDD
15. Complete the form as shown and click Apply. Then click Hide.
Mode Add
Net Name VSS
Port Pattern VSS
Snap None
9. Complete the form as shown and click Apply. The DIV group is created.
10. Complete the form as shown and click Apply. The MUL group is created.
13. In input/message window, type load “create_region.cmd” to load the pre-defined region. (If you
want to create regions manually, use “Design Setup % Create Region”.
14. Choose “Cell % Save”.
15. Choose “Cell % Save As”.
16. Complete the form as shown and click OK.
19. Complete the form as shown and click OK. The macro ring appears.
34. Select the DIV group to see if its members are placed in the corresponding region.
Choose “Select % (De)select by Name”.
35. Complete the form as shown and click Apply.
Name DIV
Pattern match Disable
Type group
Mode select
Select members of objects
Name DIV
Pattern match Disable
Type group
Mode deselect
Select members of objects
30. Choose “Query % List PR Summary” and find the following section.
31. Write down the Total Wire Length & Total Number of Contacts.
32. Choose “Route % Optimize Routing”.
33. Use default settings and click OK.
34. Choose “Query % List PR Summary” and find the following section.
35. Compare the Total Wire Length & Total Number of Contacts to the previous values. Is there any
improvement?
36. Choose “Cell % Save”.
37. Choose “Cell % Save As”.
38. Complete the form as shown and click OK.