Complete ASIC Flow of ICC2
Complete ASIC Flow of ICC2
I2C communication
protocol
1
● After CTS:..................................................................................................................... 24
Pin Density:............................................................................................................................25
STA, ECO & solving hold violations:...................................................................................................25
Inspecting worst slack path example:.................................................................................... 26
Solution Of worst slack path example :..................................................................................27
Buffer insertions till zero hold violations :...............................................................................28
PrimeTime Reports:...................................................................................................................29
ICC II Output Files:.................................................................................................................... 30
Final Project Folders:................................................................................................................ 31
References................................................................................................................................................. 32
Project description:
In this project we go through the complete ASIC flow to create the layout (GDS) of an I2C
which is a two-wire. We have used the same PDK we used in labs.
Here are the tasks we have done:
1. Synthesis of the code
2. Formal Verification.
3. Performing static timing analysis
4. Creating the floorplan and power plan.
5. Performing clock tree synthesis.
6. Placing and routing the core.
7. Design and layout of the pad ring with all the required inputs and outputs.
8. Signoff and final complete layout
2
Introduction
I2C stands for Inter-Integrated Circuit. It is a bus interface connection protocol incorporated into
devices for serial communication. It was originally designed by Philips Semiconductor in 1982.
Recently, it is a widely used protocol for short-distance communication. It is also known as Two
Wired Interface(TWI). It uses only 2 bi-directional open-drain lines for data communication
called SDA and SCL. Both these lines are pulled high.
● Serial Data (SDA) – Transfer of data takes place through this pin.
● Serial Clock (SCL) – It carries the clock signal.
I2C combines the best features of SPI and UARTs. With I2C, you can connect multiple slaves to
a single master (like SPI) and you can have multiple masters controlling single, or multiple
slaves. This is really useful when you want to have more than one microcontroller logging data
to a single memory card or displaying text to a single LCD.
3
HOW I2C WORKS?
With I2C, data is transferred in messages. Messages are broken up into frames of data. Each
message has an address frame that contains the binary address of the slave, and one or more data
frames that contain the data being transmitted. The message also includes start and stop
conditions, read/write bits, and ACK/NACK bits between each data frame:
Stop Condition: The SDA line switches from a low voltage level to a high voltage level after
the SCL line switches from low to high.
Address Frame: A 7 or 10 bit sequence unique to each slave that identifies the slave when the
master wants to talk to it.
Read/Write Bit: A single bit specifying whether the master is sending data to the slave (low
voltage level) or requesting data from it (high voltage level).
There is a lot to I2C that might make it sound complicated compared to other protocols, but there
are some good reasons why you may or may not want to use I2C to connect to a particular
device:
ADVANTAGES
4
● Well known and widely used protocol
DISADVANTAGES
● Slower data transfer rate than SPI
● The size of the data frame is limited to 8 bits
● More complicated hardware needed to implement than SPI
Synthesis
● Synthesis is achieving an optimal gate level netlist from HDL code
● (Synopsys tool: Design compiler ).
● The logic synthesis process consists of 3 steps:
1. Translation: Translation involves transforming a HDL (RTL) description to gates.
2. Optimization:Synthesis optimises the design for various metrics, such as area, power
consumption, and timing. By leveraging advanced algorithms, it improves the
performance and efficiency of the resulting netlist.
3. Mapping:Technology mapping is the phase of logic synthesis when gates are selected
from a technology library to implement the circuit .
6
Top Module After Elaboration:
Cells are generic technology cells and not mapped to the specific technology yet.
7
Netlist Synthesis inner module:
8
After Synthesis:
Now we observe that cells are mapped to the technology instead of GTECH. cell_library
saed90nm_max_lth
9
Synthesis reports:
Formal Verification
● Formal Verification: An alternative to verification through simulation. As design
becomes larger and more complex and requires more simulation vectors, regression
testing with traditional simulation tools becomes a bottleneck in the design flow.
● It verifies the logical equivalence of RTL, gate, or transistor level netlist to each
other.
- Ignores timing information
- Only Boolean Equivalence.
- Verifies logic functions independent of technology and timing therefore no timing
check.
● Purpose: detect unexpected differences that might have been introduced into a design
during development
10
Figure 14- Formality Flow Overview
11
Figure 16- Formality verification succeeded (log.txt)
12
Figure 17- STA overview
Figure 18- QOR report that shows the critical path slack
13
Floorplanning
Floor planning helps to determine the locations, shape, and size of the modules in a chip, and
such it estimates chip area, delay, and wiring congestion therefore providing a groundwork for
layout
14
Initial Floor planning:
Sets the boundary and defines standard cell placement site array within the core area.
16
Power planning:
● Rings
Rings Carries VDD and VSS around the chip
17
● After STD rail insertion
Rails are used to Connect VDD and VSS to the standard cell VDD and VSS
18
● Check Legality
19
Clock Tree Synthesis (CTS):
– Automatic insertion of buffers/inverters along the clock paths of the design to balance
the clock delay to all clock inputs.
– CTS is performed to balance clock skew and minimise insertion delay.
20
After Placing and Routing:
21
Cell Density:
● After placement:
22
Pin Density:
Figure 33- A Histogram showing number of paths that have a hold violations
23
● Hold violations are critical to be solved since post fabrication they cannot be solved,
unlike setup violations where we can reduce the clock speed.
● We have here 57 paths that have a hold violation and need to solved
Figure 34- details of the critical paths that have a hold violation
Inspecting worst slack path example:
24
Figure 36- More details of the worst slack path
Figure 38-Schematic the worst slack path after inserting some buffers
25
We can notice here that the endpoints got reduced from 57 to 56
26
PrimeTime Reports:
27
ICC II Output Files:
28
Final Project Folders:
• All scripts used can be found here: (Note the standard Cell folder would not be
uploaded)
29
References
1-https://www.design-reuse.com/articles/38949/hold-fixin
g-techniques.html
2-https://link.springer.com/chapter/10.1007/978-3-030-49
636-4_6#:~:text=Download%20chapter%20PDF-,The%20co
ncept%20of%20Clock%20Tree%20Synthesis%20(CTS%20)
%20is%20the%20automatic,insertion%20delay%2C%20CTS
%20is%20performed.
3-lab manuals
4-https://www.geeksforgeeks.org/i2c-communication-prot
ocol/
30