Академический Документы
Профессиональный Документы
Культура Документы
The first step is to create a new directory in which we will run the different
programs. These programs do not only need the Verilog source code to be
executed, actually they also need a few additional files to be run properly. So here
is what we want to do:
2. Copy the files the compilers will need to be run properly in the processing
folder.
These files contain the scripts you will need to customize. Here is what we need
to do.
- Create folder called encounter/ by typing: mkdir encounter [step3].
- Copy all the files the compilers are going to need to operate by typing:
cp /home/hplp/osu_stdcells/flow/ami05/* ./build_gates [step4].
FYI, here is the list, not all files are necessary but its easier to copy all:
-rwxr-xr-x 1 mrs8n hplp 2335 Oct 13 13:25
compile_bgx.scr*
-rwxr-xr-x 1 mrs8n hplp 2390 Oct 13 13:25
compile_dc.scr*
-rwxr-xr-x 1 mrs8n hplp 2921 Oct 13 13:25
encounter.conf*
-rwxr-xr-x 1 mrs8n hplp 911 Oct 13 13:25
encounter.io*
-rwxr-xr-x 1 mrs8n hplp 3530 Oct 13 13:25
encounter.tcl*
-rwxr-xr-x 1 mrs8n hplp 596 Oct 13 13:25
gds2_encounter.map*
-rwxr-xr-x 1 mrs8n hplp 1595 Oct 13 13:25
gds2_icfb.map*
-rwxr-xr-x 1 mrs8n hplp 507 Oct 13 13:25
gds2_seultra.map*
-rwxr-xr-x 1 mrs8n hplp 23882 Oct 13 13:25
iit05_stdcells.v*
-rwxr-xr-x 1 mrs8n hplp 103485 Oct 13 13:25
iit05_stdcells.vhdl*
Now you need to copy files controller.vh and controller.sdc from the build_gates/
folder into the encounter/ folder. [step9].
The GUI will appear as in the following picture. To zoom in, draw a box with the right mouse
button. To go back to full view, hit "f".
Floor planning
The first step is to import the design. Encounter uses configuration files to neatly organize the
many pieces that make up a design. Do to "Design -> Import", hit "Load..." and load in the file
called "encounter.conf". Hit OK and the design as well as the library data is loaded. Next we
need to create a floorplan. Do "Floorplan -> Specify Floorplan". Set the Core Utilization to 0.5
and the space between the core and the boundary to 30um on all sides. A utilization of 50%
leaves enough room for buffer insertion during optimization. Inside the 30um we will place
supply rings.
Next we add supply rings. Do "Floorplan -> Power Planning -> Add Rings". Set the top and
bottom layer to Metal3 and set the ring width to. Finally, make the ring centered in the channel.
This will create 2 rings, for VDD and GND, around the core.
Finally, now we are ready to route the power grid. Do "Route -> Sroute" and hit
OK. The default values are okay. This will route all power tracks in Metal1 and will
insert vias between the stripes, rings and tracks. Your layout will look as follows
but with no vertical red lines.
To place the cells, do "Place -> Place". Hit OK. The placement should look like this:
The first step in timing optimization is to insert a clock tree. First we will have Encounter create
a specification file. Do "Clock -> Create Clock Tree Spec" and put "buf" and "inv" as the
footprints for the buffer and inverter. Encounter uses footprints to up- and down-size instances of
the same functionality.
One could now edit the spec file but we will accept the default.Do "Clock ->
Specify Clock Tree" and accept the default file, which is the one we just created.
To create the clock tree do "Clock -> Synthesize Clock Tree" and accept the default values. Next
we can run timing optimization based on the clock tree we inserted. Do "Timing ->
Optimization" and check "PostCTS". Hit OK and the result can be seen in the command window.
Routing
We use "Nanoroute" to perform global and detail routing. It is an extremely powerful router and
replaces the older WRoute tool. To route the design, to "Route -> Nanoroute" and hit OK. To
get actual layout on the screen in the gui window hit the layout button in view menu.
Now we can run post-route optimization. This allows Encounter to optimize the design based on
actual wires. Any modified net will automatically be re-routed by Nanoroute. To start, do
"Timing -> Optimization" and select "postRoute" mode. The result can be seen in the command
window.
The final step is to add filler cells. These are empty cells that provide nwell continuity. Do "Place
-> Filler -> Add Filler". Enter "FILL" as the cell name (in the IIT cell library this is the name of
the filler cell). The value "FILLER" will be used as the prefix for the instance name of each filler
cell added.
After adding filler, hit "f" to redraw the window. It can be seen that the core area is completely
covered with cell instances(your layout will be slightly different than following).
Encounter offers geometry violation check. Do "Verify -> Geometry" and hit OK. The
result will be shown in the command line window. If there is a violation, use "Verify ->
Violation Browser" to see a list of violations.
We can also check the connectivity of the design, i.e. missing or in-complete routes or
floating pins. Do "Verify -> Connectivity" and hit OK. The result is shown in the command line
window.
The last step is to export the design to GDS. This is the format used by Layout Editors (e.g.
Cadence Virtuoso) and IC foundries. It requires a map file, to map layer names to layer numbers.
In this case we use a map file that matches Mosis layer numbers. Do "Save -> GDS", choose any
name for the resulting file and select the map file. Your GDS Structure name should be
controller.
Finally, do "Design -> Save Design" to save the entire design to disk. Then next time you run
Encounter, you can do "Design -> Restore Design".