SoC Encounter Tutorial
SoC Encounter Tutorial
You should then find that Common Timing Libraries and LEF Files are filled up.
In the Design Import window, specify the Verilog Netlist file (generated by Design Compiler) and the Timing
Constraint File (.sdc) generated by synthesis, and the Max/Min/Common Timing Libraries and the LEF File from the
technology directories. You can either let Encounter automatically recognize your top level design (select Auto
Assign), or explicitly write in the top level design name (select By User) as shown above. There are also some settings
in the Advanced tab, set up by the configuration file, so you don't need to worry about that.
Any options that you change, you can save these options in a configuration file *.conf (e.g. mod_m_counter.conf).
Click OK, your design is imported, and you can find the design status is In Memory at the top-right corner of the GUI
window.
4. Specify Floorplan
Click Floorplan →Specify Floorplan and then select Specify by Size and Core Size by: and Aspect Ratio. Set Ratio
(H/W) to 1 and Core Utilization to 0.7. Set Core Margins by: to Core to IO Boundary and all Core Margins to 40, then
click OK.
In the end, click Apply, then Check, and finally Close. (Always check the command window for possible errors)
5. Power Planning
Click Power → Power Planning → Add Rings
In the add rings window, the power and ground nets (VSS VDD) should already be there. Select the same "H"
(horizontal) metal layer for Top and Bottom ring, and neighboring "V" (vertical) metal layer for Left and Right ring.
For example, for the Top and Bottom layer use METAL 5, and then you can use METAL 6 for the Left and Right layers.
Then, set all the Width and Spacing to 5, and select Center in channel for Offset, then click OK, as shown below.
This will generate several pairs of power and ground wires in vertical direction which are distributed in horizontal
direction as shown below:
6. Setup controls for power routing
Click Route → Special Route. In the special route window, the power and ground nets (VDD and VSS) should already
be there. Deselect Pad pins and Pad rings. The window should look like this:
In the Advanced tab click on Extension Control. For Standard cell pins and stripes choose Last pad rings or pad pins.
For Block pins choose Nearest Ring/Stripe. However, it is not guaranteed that those choices fit your design. The
routed wires may still stop before reaching your desired ring/strip. In such cases, try different extension control
options. In a large design, the special route may take a long time and have a lot of undesired connections, because
the same extension control options may not be applicable to all the parts. Then click OK to add VDD and VSS supply
lines, as shown:
Now save you design as mod_m_counter_pre_place.enc (or something like that) from Design → Save Design As as
bellow:
7. Placement
Click Place → Standard Cells.
Click OK. After it has finished, click Place → Check Placement and then OK. This will generate
mod_m_counter.checkPlace file in your current working directory. Read the report and make sure no violation has
happened. You can also check this via the console window. At this point, by clocking on Physical view button the
Encounter window should look like:
8. Check Timing
Click Timing → Analyze Timing. In the Timing Analysis window, make sure Pre-CTS is selected.
Click OK. This will first run a Trial Route (you can see the route result in Encounter window as shown below) and then
perform timing analysis based on the trial routing result.
Look in the Terminal window to see if there are any path violations:
If a violation happens, click Timing → Optimize and then click OK. After that, run Timing Analysis again. If violations
still exist, you should re-synthesize your HDL design, possibly using a slower clock, and redo all the procedures up to
this point. It is a good idea to optimize your design before moving to the next step even there is no violation.
Execute report_timing in command window to see more details on the design’s critical path:
Click Gen Spec. In Generate Clock Spec window, select from BUFX2 all through RFRDX4 and then click Add so that
they appear in the Selected Cells list, as shown
Click OK in Synthesize Clock Tree window and the design should look like this:
Perform Timing → Analyze Timing but with Post-CTS selected this time and check the result on command window. If
there is a violation, run Timing → Optimize (with Post-CTS and Setup and/or Hold selected) and do Analyze Timing
again to see if the problem is fixed. Now save you design as mod_m_counter_post_CTS.enc (or something like that).
Click Route → Trial Route. Select high effort and click OK, as shown:
Click Timing → Extract RC and then click OK. Next, click Timing → Analyze Timing. Select Use Existing Extraction and
Timing Data and then click OK. Look at Terminal, find if any violation exists. If yes, try to run Timing → Optimize (with
Post-Route selected) to fix that.
10. Routing and Filler insertion
Click Route → Nanoroute → Route. Select Timing Driven (you can change effort) and SI Driven, then click OK, as
shown:
Look into the Terminal, make sure there are no violations or errors. Perform Timing → Analyze Timing with Post-
Route and Include SI selected and check the result on command window.
If there is a violation, run Timing → Optimize (with Post-Route and Setup and Include SI selected). Click SI Options
and select High for Effort Level. Click Done in Fix Crosstalk and OK in Optimization window. Do Analyze Timing (with
Include SI selected) to see if the problem is fixed.
Click Select in front of Cell Name(s) and then select and add all the cells in the Cells List to Selectable Cells List, then
click OK.
The design should look like this:
Once again, click Floorplan → Connect Global Nets. Click Apply, then Close. Perform Timing → Analyze Timing with
Post-Route and Include SI selected and check the result on command window. If there is a violation, run Timing →
Optimize (with Post-Route and Setup and Include SI selected).
Now Encounter has enough information for delay calculation. Click Timing → Calculate Delay. Specify the name of
the mod_m_counter_enc.sdf file, and then click OK.
Now you can save your design by clicking Design → Save → Netlist and selecting mod_m_counter_enc.v as the name.
You may also want to save your design as mod_m_counter_final.enc by clicking Design → Save Design As → SoCE.