Workshop Report
Workshop Report
Objective: Build a balanced clock tree to distribute the clock signal evenly throughout
the design, minimizing clock skew and ensuring timing integrity.
Steps:
o Design and insert the clock tree, ensuring balanced delays from the clock
source to all clock sinks.
o Run timing analysis to check clock skew and propagation delays.
Key Outputs: Clock tree network and clock timing reports.
9. Routing
Tool: Cadence Innovus Implementation System.
Objective: Route the interconnections between placed standard cells, ensuring that
signals can travel without congestion or delay.
Steps:
o Perform global and detailed routing of all signal and power nets.
o Ensure DRC compliance and optimize signal integrity.
Key Outputs: Fully routed design ready for post-layout verification.
10. Post-Layout Static Timing Analysis (STA)
Tool: Cadence Tempus.
Objective: Perform post-layout STA to check for timing violations caused by
parasitics introduced during placement and routing.
Steps:
o Extract parasitics from the layout.
o Run STA to verify that timing constraints (setup, hold, skew) are met.
o Fix any remaining violations by adjusting the layout or gate sizes.
Key Outputs: Timing reports with post-layout analysis.
11. Power Analysis
Tool: Cadence Voltus.
Objective: Analyze power consumption and ensure the power delivery network can
supply sufficient current without excessive voltage drops.
Steps:
o Run dynamic and static power analysis.
o Optimize power distribution to meet power integrity constraints.
Key Outputs: Power reports and a verified power distribution network.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Aim:
Write a Verilog code for UART and carry out the following:
• To Verify the Functionality using test Bench
• Synthesize Design using constraints
• Tabulate Reports using various Constraints
Tool Required:
• Functional Simulation: Incisive Simulator (ncvlog, ncelab, ncsim)
• Synthesis: Genus
Design Information :
UART (Universal Asynchronous Receiver/Transmitter) is an integrated circuit in
microcontrollers designed for serial data communication, distinct from protocols such as I2C
or SPI. It facilitates both serial and parallel data transmission. The transmitter side includes a
transmit hold register, a shift register, and control logic, while the receiver side mirrors this
setup with its own registers and control logic. Both sections use a baud-rate generator to
synchronize the speed of data transmission and reception.
UART communication is straightforward, requiring only two wires: TX (transmit) and RX
(receive). This simplicity makes it popular in microcontrollers. For flow control, additional
RTS (Request to Send) and CTS (Clear to Send) lines can be used. UART data frames
typically contain start, stop, and optional parity bits to ensure data integrity. Despite its ease
of use, UART is not ideal for high-speed communication over long distances when compared
to more advanced protocols like SPI or I2C.
Creating a Workspace:
1. Make sure the Licensing Server is switched ON and the client is connected to the
server.
2. General Note: Before starting to work on a design, create a Workspace (Folder) for the
project individually.
3. Open a terminal from the Sub-Directory. In a terminal window, type csh in the
command prompt to invoke the C shell. #csh
4. To verify that the path to the software is properly set in the cshrc file. #source
/home/install/cshrc
5. A welcome string “Welcome to Cadence Tool Suite” appears indicating a terminal
ready to invoke Cadence Tools available for you.
6. Create <sourcecode>.tb and <testbench>.tb using gedit command and run using irun
and waveform is obtained.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Waveform:
1. Getting Started
o Make sure you close out all the Incisive tool windows first
o Synthesis requires three files as follows,
Liberty Files (.lib)
Verilog/VHDL Files (.v or .vhdl or .vhd)
SDC (Synopsis Design Constraint) File (.sdc)
2. Creating an SDC File
3. Performing Synthesis
The Liberty files are present in the below path,
/home/install/FOUNDRY/digital/<Technology_Node_number>nm/dig/lib/
The Available technology nodes are 180nm ,90nm and 45nm.
In the terminal, initialise the tools with the following commands if a new terminal is
being used.
csh
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
source /home/install/cshrc
The tool used for Synthesis is “Genus”. Hence, type “genus -gui” to open the tool.
The Following are commands to proceed,
1. read_libs /home/install/FOUNDRY/digital/90nm/dig/lib/slow.lib
2. read_hdl {uart.v} //Choose any one
3. elaborate
4. read_sdc constraints_top.sdc //Reading Top Level SDC
5. set_db syn_generic_effort medium //Setting effort medium
6. set_db syn_map_effort medium
7. set_db syn_opt_effort medium
8. syn_generic
9. syn_map
10. syn_opt //Performing Synthesis Mapping and Optimisation
11. report_timing > uart_timing.rep
//Generates Timing report for worst datapath and dumps into file
12. report_area > uart_area.rep
//Generates Synthesis Area report and dumps into a file
13. report_power > uart_power.rep
//Generates Power Report [Pre-Layout]
14. report_qor > uart_qor.rep
15. write_hdl > uart_netlist.v
//Creates readable Netlist File
16. write_sdc > uart_sdc.sdc
//Creates Block Level SDC
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Physical Design
Tool Required:
• Functional Simulation: Incisive Simulator (ncvlog, ncelab, ncsim)
• Synthesis: Genus
• Physical Design: Innovus
Mandatory Inputs for PD:
Floor Planning
Power Planning
Placement
CTS (Clock Tree Synthesis)
RoutingModule
Importing Design
To Import Design, all the Mandatory Inputs are to be loaded and this can be done either using
script files named with .globals and .view/.tcl or through GUI
Else, if you would like to import your design using GUI, open the Innovus tool and from the
GUI, go to File → Import Design.
• A new pop-up window appears.
• First load the netlist. You can browse for the file and select “Top cell : Auto Assign”.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
3. Delay Corners
4. Constraints (SDC)
Once all of them are added, Analysis Views are created and assigned to Setup and Hold.
In order to add any of the objects, make a right click on the corresponding label → Select
New.
Adding Liberty Files under “Library Sets”
Similarly, add fast.lib with a label Fast or any identifier of your own.
Adding RC Corners can also be done in a similar process. The temperature value can
be found under the corresponding liberty file. Also, cap table and RC Tech files can be
added from Foundry where available.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Analysis Views are formed from combinations of SDC and Delay Corner.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Once “Best” and “Worst” Analysis views are created, assign them to Setup and Hold.
Once all the process is done, Click on “Save&Close” and save the script generated
with any name of your choice.
Make sure the file extension remains .view or .tcl
After saving the script, go back to Import Design window and Click “OK” to load
your design.
• To load the complete netlist and the analysis configuration to the Innovus tool.
• A rectangular or square box appears in your GUI if and only if all the inputs are read
properly.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Floorplan
Steps under Floorplan :
1. Aspect Ratio [Ratio of Vertical Height to Horizontal Width of Core]
2. Core Utilisation [The total Core Area % to be used for Floor Planning]
3. Channel Spacing between Core Boundary to IO Boundary
Power Planning
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
In order to Tap in Power from a distant Power supply, Wider Nets and Parallel connections
improve efficiency. Moreover, the cells that would be placed inside the core area are expected
to have shorter Nets for lower resistance.
Hence Power Rings [Around Core Boundary] and Power Stripes [Across Core Boundary] are
added which satisfies the above conditions.
Select Power → Power Planning → Add Rings to add Power rings ‘around Core Boundary’.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Select the Nets from Browse option OR Directly type in the Global Net Names separated by a
space being Case and Spelling Sensitive.
Select the Highest Metals marked ‘H’ [Horizontal] for Top and Bottom and Metals marked
‘V’ [Vertical] for Right and Bottom. This is because Highest metals have Highest Widths and
thus Lowest Resistance.
• Click on Update after the selection and “Set Offset : Centre in Channel” in order to
get the Minimum Width and Minimum Spacing of the corresponding Metals and then
Click “OK”.
• Similarly, Power Stripes are added using similar content to that of Power Rings.
• On adding Power Stripes, The Power mesh setup is complete as shown. However,
There are no Vias that could connect Metal 9 or Metal 8 directly with Metal 1
[VDD or VSS of Standard Cells are generally made up of Metal 1].
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
• The connection between the Highest and Lowest Metals is done through Stacking
of Vias done using “Special Route”.
• To perform Special Route, Select Route → Special Route → Add Nets → OK.
• After the Special Route is complete, all the Standard Cell Rows turn to the Color
coded
Placement
• The Placement stage deals with Placing of Standard Cells as well as Pins.
• Select Place → Place Standard Cell → Run Full Placement → Mode → Enable
‘Place I/O Pins’ → OK → OK .
•
•
•
•
•
•
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Source the Script as shown in the above snapshot through the Terminal and then Select Clock
→ CCOpt Clock Tree Debugger → OK to build and view clock tree.
Routing :
• All the net connections shown in the GUI till CTS are only based on the Logical
connectivity.
• These connections are to be replaced with real Metals avoiding Opens, Shorts,
Signal Integrity [Cross Talks], Antenna Violations etc.
• To run Routing, Select Route → Nano Route → Route and enable Timing Driven
and SI Driven for Design Physical Efficiency and Reliability.
OMKAR SHIRASGAONKAR Workshop Day 1: 12-08-2024 240938016
Extracting RC Data:
The capacitance and resistance values for all the nets in the design are extracted by the
Extract RC form.
Extraction is run in pre-route mode prior to signal routing and in post-route mode after the
signals are routed with NanoRoute. In post-route mode there are four effort levels to choose
from (low, medium, high and signoff) which increase with accuracy at the expense of longer
run-times.
The RC extraction mode can be changed by the Tools →Set Mode Specify RC Extraction
Mode form.
Select Timing - Extract RC
Write the SDF: Select Timing → Write SDF
GDSII:
The GDS File is a Binary Format File which is not human readable and is fed to the
Fabrication unit with data of various layers used depicted in terms of Geometrical Shapes.
Objective:
• To set up and run simulations on the Differential Amplifier Test design.
• To run the simulation for Differential Amplifier and plot the Transient, DC and AC
characteristics.
• Layout and Physical Verification of Differential Amplifier.
Theory:
The differential amplifier is one of the most commonly used circuit components in analog
integrated circuits, particularly in operational amplifiers (Op Amps). This amplifier can be
constructed using either BJTs or MOSFETs.
Its primary function is to amplify the voltage difference between two inputs (Vin+ - Vin-) by
a constant factor called the differential gain (Ad). The amplifier can have either a single
output or two outputs, where the key signal is the voltage difference between the two outputs.
Additionally, a differential amplifier is designed to reject the portion of the input signals that
are the same for both inputs (Vin+ + Vin-)/2, known as the common mode signal.
Getting Started:
1. Select “Open in Terminal”.
2. In a terminal window, type csh in the command prompt to invoke the C shell. #csh
3. To verify that the path to the software is properly set in the cshrc file. #source
/home/install/cshrc
Schematic Entry:
Objective: To create a library and build a schematic of a Differential Amplifier.
Execute Tools – Library Manager in the CIW or Virtuoso window to open Library Manager.
4. After entering components, click Cancel in the Add Instance form or press Esc with
your cursor in the schematic window.
4. The “Virtuoso Layout Suite XL Editing” window pops up. Click on “F” to fit the
cross wire to the center of the Virtuoso Layout Editor.
Note: We have created a Template for gpdk180.
5. To instantiate all the devices from the Virtuoso Schematic Editor, select
“Connectivity → Generate → All From Source”
6. The “Generate Layout” window pops up. Click on “OK” .
7. To edit the device properties, use a Right Mouse Click and select “Properties” .
8. The “Edit Instance Properties” window.
OMKAR SHIRASGAONKAR Workshop Day 2: 12-08-2024 240938016
• Select “Extraction Type → RC” and the other options like “R only”, “C only” and
others can be checked as per the requirements. Select the “Ref Node → VSS”,
Disable HRCX and click on “OK.
OMKAR SHIRASGAONKAR Workshop Day 2: 12-08-2024 240938016
The impact of these parasitic devices can be checked out through the Backannotation(Post
Layout Simulation) process.
• The “New File” window pops up. Select the “Type → config” from the drop down.
Soon as the “Type → config” is selected, “View →config” and in “Application”,
“Open with → Hierarchy Editor” gets updated. Click on “OK”.
• Click on the drop down and select “Name → Spectre”, the name of the Simulator and
click on “OK”.
The updated “New Configuration” window pops up.
OMKAR SHIRASGAONKAR Workshop Day 2: 12-08-2024 240938016
• The “Top Cell → View → Schematic” has to be selected using the drop down. The
“New Configuration” window gets updated.
• Top Cell → View → Schematic.
• Click on “OK” and the “Virtuoso Hierarchy Editor: New Configuration” window
• pops up .
• Two types of views, “Table View” and “Tree View” can be seen. Select “Tree View”,
the instance “I0” which is the Instance number of the Symbol with which we had
created the Test Schematic can be seen.
• Select the Instance “I0”, make a Right Click, select “Set Instance View →
av_extracted”.
OMKAR SHIRASGAONKAR Workshop Day 2: 12-08-2024 240938016
• Click on “Launch → ADE L” and select “Session → Load State” to open the Saved
State.
OMKAR SHIRASGAONKAR Workshop Day 2: 12-08-2024 240938016
• Re-run the Simulation and check for the waveforms of Transient Analysis and DC
Analysis.