Soc3 Part2 Final
Soc3 Part2 Final
We would like to present sincere thanks to our Skill Oriented Course -3 Coordinator
Dr. E. KUSUMA KUMARI, M.Tech., Ph.D. for the guidance and help throughout the
development of this Skill Oriented Course-3 on “ASIC SEMI-CUSTOM IC DESIGN AND
FPGA IMPLEMENTATION” by providing us the required information. Without his
supervision, support, and encouragement. We would not gain awareness of many new things
during this Course.
We would like to thank Dr. E. KUSUMA KUMARI, M.Tech., Ph.D. Head of the
department of Electronics & Communication Engineering for supporting us to do our Skill
Oriented Course-3 Successfully.
We would like to sincerely thank to the respected Principal of our college,
Dr.G.V.N.S.R. RATNAKARARAO, BE, ME, Ph.D. for his constant support throughout the
Skill Oriented Course-3.
An Endeavour over long period can also be successful by constant effort and
encouragement.
We wish to take this opportunity to express our deep gratitude to all the people who
have extended their cooperation in various ways during our Skill Oriented Course3. It is our
pleasure to acknowledge the help of all those respected individuals.
Page | III
TABLE OF CONTENTS
SNO TITLE PAGENO
1 CHAPTER-1 INTRODUCTION 1
1.1 Evolution of IC’S 1
1.2 VLSI design flow overview 2
1.3Front-end and Back design 2
1.4 Basic example of 2-input NAND 4
2 CHAPTER-2 ADVANCED VLSI CONCEPTS 5
2.1 Advanced VLSI Concepts 5
2.2 Future Trends in VLSI 5
2.3 Design Styles in VLSI 6
3 CHAPTER-3 DESIGN APPROACH 7
3.1 Full-Custom Design 7
3.2 Semi-Custom Design 8
3.3 Programmable ASIC-FPGA/PLD 8
4 CHAPTER-4 PHYSICAL DESIGN 9
4.1 What is Physical Design? 9
4.2 Steps in Physical Design 9
5 CHAPTER-5 TOOLS 10
5.1 VLSI tools 10
5.2 Open-Source Tools 10
6 CHAPTER-6 UBUNTU 12
6.1 Introduction to UBUNTU 12
6.2 Basic Commands Used 13
7 CHAPTER-7 BAMBU 14
7.1 Introduction to Bambu 14
7.2 Basic commands in Bambu 14
8 CHAPTER-8 ICARUS 16
8.1 Introduction to ICARUS 16
8.2 Basic Commands in ICARUS 16
9 CHAPTER-9 YOSYS 17
9.1 Introduction in Yosys 17
9.2 Basic Commands in Yosys 17
9.3 Output of Yosys 18
10 CHAPTER-10 OpenSTA 19
10.1 Introduction to OpenSTA 19
10.2 Basic Commands in OpenSTA 20
10.3 Output of OpenSTA 21
Page | IV
SNO TITLE PAGENO
11 CHAPTER-11 OpenROAD 23
11.1 Introduction to OpenROAD 23
11.2 Basic Commands in OpenROAD 23
12 CHAPTER-12 FPGA 26
12.1 FPGA Introduction 26
12.2 Implementation Steps 27
12.3 Example for FPGA implementation 28
12.4 Advantages of FPGA 31
13 CHAPTER-13 CONCLUSION 34
14 CHAPTER-14 REFERENCES 35
Page | V
LIST OF FIGURES
FIG.NO NAME OF THE FIGURE PAGENO
1 Moore’s Law 1
2 Front-End and Back-End Design 3
3 Ubuntu interface 12
4 C-language code 13
5 Bambu interface 15
6 C-code in verilog 15
7 Yosys Interface 18
8 Yosys Output 18
9 Interface of openSTA 20
10 Output-1 of OpenSTA 21
11 Output-2 of OpenSTA 21
12 OpenROAD interface 23
13 Nand gate output in OpenROAD 24
14 outputs in OpenROAD 24
15 Output-1 in OpenROAD 25
16 Output-2 in OpenROAD 25
17 FPGA pin description 26
Page | VI
1. INTRODUCTION
Moore's Law, which predicts the doubling of transistors on integrated circuits (ICs) every two
years, has significantly shaped the evolution of semiconductor technology. This exponential growth in
transistor density has enabled smaller, faster, and more energy-efficient ICs. However, as we approach
the physical limits of silicon scaling, particularly at the 3nm and 2nm nodes, maintaining this pace of
advancement has become increasingly challenging. Despite these hurdles, advances in materials, 3D
stacking, and architectural innovations continue to drive the push toward next-generation chips.
From 1 transistor in 1950 to 16 transistors in 1960, and then to 4,500 transistors in 1970 with
the advent of 8-bit processors, semiconductor technology rapidly evolved, enabling more complex and
powerful computing systems.
The development of semiconductor technology began with diodes, which were used for basic
rectification and switching. This led to the creation of the BJT (Bipolar Junction Transistor),
enabling more complex amplification and switching functions. As technology advanced, SSI (Small
Scale Integration) and MSI (Medium Scale Integration) allowed for integrating more transistors
onto a single chip, improving functionality. The progression continued with LSI (Large Scale
Integration), further increasing transistor count and enabling more complex circuits. Eventually,
VLSI (Very Large-Scale Integration) and ULSI (Ultra Large-Scale Integration) technologies
emerged, dramatically increasing integration levels and enabling the development of modern
microprocessors and highly complex systems.
Page | 1
In the 2020s, semiconductor technology has advanced to 2nm and 3nm nodes, enabling
unprecedented transistor density and performance. These cutting-edge processes, leveraging
innovations like gate-all-around (GAA) transistors, are driving next-generation computing power and
energy efficiency.
➢ Specification – This is the initial phase where the goals and requirements of the design are
defined, such as functionality, performance, power, and area constraints.
➢ Architecture Design (RTL) – The design is translated into a high-level architecture, typically
using Register-Transfer Level (RTL) description, which outlines how data flows between
registers and functional units.
➢ Functional & Logical Design – Using logical gates, the design is further refined by creating
circuits that perform the required functions, ensuring correct operation through Boolean logic.
➢ Circuit Design (Transistor Level) – The logical gates are translated into transistor-level
implementations, optimizing for performance, power consumption, and area at the transistor
scale.
➢ Physical Design (Layout) – The circuit is mapped onto a physical layout, detailing the
placement of transistors, routing of interconnections, and optimization for manufacturing
constraints.
➢ Fabrication Design (Chip Design) – The physical design is sent for semiconductor
fabrication, where the chip is created through photolithography, etching, and deposition
processes.
➢ Testing & Packaging – After fabrication, the chip undergoes rigorous testing to ensure
functionality, followed by packaging to protect the chip and make it ready for integration into
systems.
1) Design Specification - Design specification defines the functional requirements, performance goals,
and constraints of the chip, serving as a detailed blueprint for the entire design process. It outlines the
system's expected behavior, power consumption, timing, and other parameters to guide the design
team.
Page | 2
2) RTL Description (HDL) - In this step, the design is described at the Register-Transfer Level (RTL)
using hardware description languages (HDLs) like Verilog or VHDL. RTL captures the data flow and
control logic, defining how the system's components interact and operate at a functional level, without
focusing on physical layout.
3) Functional Verification - Functional verification ensures that the RTL design behaves as expected
through simulation and testing. Using tools like ModelSim or VCS, the design is validated by applying
test vectors to check if it meets the specification and performs the required operations correctly.
4) Logic Synthesis - Logic synthesis converts RTL (Register Transfer Level) descriptions into a gate-
level netlist, optimizing the design for performance, area, and power. It involves mapping high-level
design abstractions to technology-specific gates and components, ensuring correct functionality.
Page | 3
5) Gate-Level Netlist - The gate-level netlist is a representation of the design in terms of logic gates
(AND, OR, NAND, etc.), flip-flops, and other standard cells. It serves as the input for the next stages
of physical design, ensuring that the design logic is mapped to the available technology libraries.
6) Logic Equivalence Check (LEC) - Logic Equivalence Check (LEC) ensures that the synthesized
gate-level netlist is functionally equivalent to the original RTL design. This step verifies that no errors
were introduced during synthesis and that the gate-level representation accurately reflects the intended
design behavior.
7) Place & Route - Place & Route is the process of physically positioning and connecting the standard
cells (gates, flip-flops, etc.) on the chip. Placement optimizes the location of cells, while routing
connects them using metal layers, ensuring that the design meets timing, power, and area constraints.
8) Physical Layout - Physical layout refers to the final arrangement of all components and
interconnections on the chip, including the placement of cells, routing of wires, and definition of metal
layers. The layout must meet design rules for manufacturing and ensure that the chip operates correctly
in real-world conditions.
9) Physical Verification - Physical verification checks the layout against design rules (DRC), ensures
the connectivity matches the schematic (LVS), and performs checks for electrical correctness (ERC).
This step ensures that the layout adheres to manufacturing constraints and functions as intended.
10) GDSII - GDSII (Graphic Data System II) is the file format used to represent the final chip layout
and is used for manufacturing. It contains detailed information about the physical design, including
the placement of cells, routing, and metal layers, and is the format sent to the foundry for chip
fabrication.
Page | 4
2. ADVANCED VLSI
1) Scaling & Power - As transistor sizes shrink, power density increases, making power management
a critical challenge in advanced VLSI design, requiring new techniques like dynamic voltage scaling
and power gating.
2) Design for Low Power - Design for low power focuses on reducing power consumption through
techniques such as clock gating, voltage scaling, and optimizing logic paths to minimize dynamic and
static power dissipation.
3) Design for Testability - Design for testability (DFT) involves incorporating features like scan
chains and built-in self-test (BIST) to ensure that ICs can be easily tested for defects and performance
issues during manufacturing.
4) ASIC vs FPGA - ASICs (Application-Specific Integrated Circuits) are custom-designed for specific
applications, offering high performance and efficiency, while FPGAs (Field-Programmable Gate
Arrays) are reconfigurable, offering flexibility but at the cost of lower performance and higher power
consumption.
5) System on Chip (SoC) - A System on Chip (SoC) integrates multiple components such as
processors, memory, I/O, and peripherals onto a single chip, providing a complete solution for
compact, high-performance, and energy-efficient systems.
1) 3D ICs - 3D ICs stack multiple layers of integrated circuits vertically, improving performance,
reducing interconnect delays, and saving space. This technology allows for higher transistor density,
greater bandwidth, and energy efficiency, particularly useful for high-performance computing and
memory applications.
2) Quantum Computing (Qubits) - Quantum computing leverages quantum bits (qubits), which can
exist in multiple states simultaneously, offering exponential speedup for certain complex problems
like cryptography and simulation. Although still in early stages, quantum computing holds the potential
to revolutionize fields requiring massive parallel processing.
Page | 5
networks. This approach promises to greatly enhance the speed, power efficiency, and scalability of
AI systems by replicating biological learning and memory processes.
1) Full Custom - In full custom design, every aspect of the IC, including the transistor level layout, is
tailored to meet specific requirements, offering maximum performance but requiring significant design
time and effort.
2) Semi-Custom - Semi-custom design uses pre-designed standard cells or blocks (e.g., libraries of
logic gates) and customizes the interconnections, balancing design flexibility and development time.
3) FPGA (Field-Programmable Gate Array) - FPGAs are programmable devices that allow users to
configure the hardware logic after manufacturing, offering flexibility for prototyping and adaptable
designs but with lower performance than ASICs.
5) Structured ASIC - Structured ASICs offer a middle ground between FPGAs and full custom
designs, providing pre-designed logic blocks that can be customized for specific needs, offering faster
time-to-market than full custom designs.
6) SoC (System on Chip) - A System on Chip (SoC) integrates all the components of a complete
system, such as CPU, memory, and peripherals, into a single chip, enabling compact, power-efficient,
and cost-effective solutions for modern applications.
Page | 6
3. DESIGN APPROACH
Full custom design in VLSI is an approach where every aspect of an integrated circuit (IC) is
custom-designed from scratch, providing the highest level of optimization for performance, power,
and area. Unlike semi-custom or standard cell-based designs, where pre-designed components are
reused, full custom design involves designing every logic gate, transistor, and interconnection at the
transistor level. This design approach offers maximum flexibility and control, allowing designers to
optimize each aspect of the circuit, such as speed, power efficiency, and chip area, to meet specific
application requirements. It is typically used in cases where performance is critical, such as in high-
performance processors or specialized circuits.
The full custom design flow begins with the design specification, where the functional and
performance requirements of the circuit are defined. After that, the designer manually creates the
transistor-level schematic, selecting and sizing transistors to meet the desired functionality. The next
step involves custom layout design, where the physical layout of transistors, interconnections, and
components is carefully planned to minimize area and optimize performance. Once the layout is
completed, the design undergoes transistor-level simulations to ensure that the circuit functions as
intended. After simulation, Design Rule Checking (DRC) and Layout vs. Schematic (LVS) checks
are performed to ensure that the layout adheres to manufacturing constraints and matches the
schematic. The final step involves tape-out, where the design is sent to the foundry for fabrication.
Full custom design offers the highest level of performance and efficiency but comes with significant
challenges, including longer development time, higher cost, and increased complexity.
Page | 7
3.2 Semi-Custom Design:
Semi-custom design in VLSI refers to a design approach that strikes a balance between full
custom design and standard cell-based design. It uses pre-designed, reusable blocks or cells (such as
logic gates, flip-flops, and memory modules) while still allowing for some level of customization. In
this approach, designers select and arrange these standard cells to create a functional circuit,
significantly reducing development time and cost compared to full custom designs. The process
typically begins by defining the design specifications and functional requirements, followed by the
selection of appropriate standard cells from a library to meet those needs.
After selecting the cells, the next step involves creating an RTL (Register Transfer Level)
description of the circuit, which is then synthesized into a gate-level netlist. The cells are placed in a
physical layout, where timing analysis and power optimization are performed. Finally, the design
undergoes simulation and design rule checking (DRC) to ensure correctness and compliance with
manufacturing constraints. Semi-custom design is widely used for applications that require a balance
of performance and time-to-market, such as mid-range processors, consumer electronics, or
communication systems. This approach offers a compromise between the flexibility of full custom
design and the time efficiency of standard cell-based design.
The design flow for programmable ASICs begins with defining functional specifications and
selecting the appropriate FPGA or PLD device based on the required resources. Designers then
describe the circuit using HDL (Hardware Description Language), such as VHDL or Verilog. The
design undergoes synthesis, where the HDL code is converted into a netlist of logic gates mapped to
the programmable elements of the device. Next, placement and routing are performed to assign
physical locations and interconnections, followed by functional verification and timing analysis.
Finally, the design is configured into the FPGA or PLD for execution.
Page | 8
4. PHYSICAL DESIGN
Physical design is the process of converting a circuit’s logical netlist into a physical layout,
which defines the actual placement of components and routing of interconnections on the chip. The
goal is to optimize key design constraints such as performance, power consumption, and chip area
while ensuring manufacturability and meeting design rules.
1. Partitioning: Dividing the IC design into smaller subblocks to make the design process more
manageable and modular.
2. Floor planning: Determining the optimal placement of subblocks, I/O pads, and power/ground
regions to ensure efficient layout and signal flow.
3. Placement: Positioning the subblocks on the chip while considering factors like power, ground
connections, and minimizing routing congestion.
4. Clock Tree Synthesis (CTS): Designing a clock distribution network to evenly distribute the
clock signal to all sequential circuits, ensuring synchronized operation.
5. Signal Routing: Connecting the submodules by routing signals between the placed blocks while
minimizing delay and congestion.
6. Timing Closure: Ensuring that all blocks meet timing constraints, such that signals propagate
through the design correctly within the required clock cycles.
7. DRC & LVS: Performing Design Rule Checking (DRC) to verify compliance with fabrication
constraints and Layout vs. Schematic (LVS) to ensure the layout matches the original
schematic design.
Page | 9
5. TOOLS
Cadence Innovus, Synopsys IC Compiler, and Mentor Graphics Calibre are widely used in the
semiconductor industry for physical design, place and route, and physical verification of advanced
integrated circuits, with Innovus and IC Compiler being dominant for high-performance ASIC design,
while Calibre is the industry-standard tool for DRC, LVS, and parasitic extraction in the final
verification stages.
These are proprietary tools from leading EDA (Electronic Design Automation) vendors:
• Cadence Innovus: A comprehensive place and route tool used for physical design, timing
closure, and optimization in VLSI chip design.
• Mentor Graphics Calibre: A widely used physical verification tool, which includes DRC
(Design Rule Checking), LVS (Layout vs. Schematic), and parasitic extraction.
The final outcome of using these tools is the generation of a GDSII file, which contains the
detailed physical layout of the chip, ready for manufacturing.
➢ Ubuntu: This is not a VLSI tool but rather an operating system (a popular Linux distribution)
on which many VLSI and EDA tools can run, including both proprietary and open-source tools.
➢ Bambu: Bambu is a relatively lesser-known open-source FPGA synthesis toolchain, focused
on high-level synthesis (HLS) for FPGA designs.
➢ Icarus Verilog: An open-source simulator for Verilog, used for simulation and verification of
digital designs. It supports compiling and simulating Verilog HDL code.
➢ Yosys: Yosys is an open-source synthesis tool primarily used for FPGA synthesis. It is capable
of optimizing and converting HDL descriptions (like Verilog) into gate-level netlists, primarily
for FPGA devices.
Page | 10
➢ OpenSTA: OpenSTA (Open-Source Static Timing Analysis) is an open-source static timing
analysis tool that can be used for timing verification and optimization of digital designs. It is
often used as a free alternative to proprietary STA tools like Primetime from Synopsys.
➢ OpenROAD: OpenROAD is an open-source tool for full-chip place and route of digital VLSI
designs, providing an open alternative to proprietary tools like Cadence Innovus and Synopsys
IC Compiler. It aims to provide a complete flow for physical design, including placement,
routing, timing closure, and DRC.
Page | 11
6. UBUNTU
Ubuntu’s open-source nature also allows for easy customization, enabling users to optimize
their environment for specific design workflows, whether for FPGA synthesis, static timing analysis,
or physical design [2]. Its stable architecture and ease of access to the terminal make it highly suitable
for running command-line-based VLSI tools and scripts, ensuring efficient handling of resource-
intensive tasks in the design process. Ubuntu’s popularity within the VLSI community further fosters
collaboration and support, as users benefit from a large base of tutorials, forums, and community
contributions [3].
Page | 12
6.2 Basic Commands Used:
Page | 13
7. BAMBU
Bambu is an open-source, high-level synthesis (HLS) tool designed to optimize and generate
hardware implementations for FPGA and ASIC designs from high-level programming languages like
C or C++ [4]. Developed as part of the Xilinx Research Lab initiative, Bambu enables the automatic
generation of hardware descriptions (in Verilog or VHDL) by translating high-level algorithmic code
into efficient hardware structures. This tool simplifies the design process for FPGA designers by
automating many of the steps involved in hardware creation, allowing them to focus more on
algorithmic optimization rather than manual RTL (Register Transfer Level) coding [5]. It supports
parallelism, pipelining, and other performance-enhancing techniques that are essential for modern
hardware acceleration tasks.
$ ./bambu – 0.9.7.AppImage
Page | 14
Fig-5 Bambu interface
Page | 15
8. ICARUS
Icarus Verilog is an open-source Verilog simulation and synthesis tool that is widely used for
digital design verification and simulation. It supports both Verilog-2001 and some SystemVerilog
constructs, allowing users to write and simulate hardware designs in the Verilog language [7].
Icarus Verilog is commonly used by students, hobbyists, and professionals for simulating simple
to complex digital circuits, providing an accessible and powerful solution for verifying the
functionality of Verilog designs. It is well-regarded for its ease of use, flexibility, and compatibility
with various platforms, making it a popular choice for FPGA and ASIC design workflows.
One of the key advantages of Icarus Verilog is its compatibility with other simulation and
synthesis tools, enabling users to integrate it into larger design flows. It can generate simulation
waveforms, output simulation results, and even interface with waveform viewers like GTKWave
to analyze the behavior of digital circuits [8]. Although Icarus Verilog lacks some of the advanced
features of commercial simulators, its open-source nature and ability to work with a wide range of
Verilog constructs make it an invaluable tool for educational purposes and low-cost design
projects. Additionally, it supports basic synthesis for FPGA designs and provides users with an
essential tool to verify and debug their hardware designs effectively.
Icarus Verilog is used to check for errors in Verilog programs. You can directly simulate
Verilog code with Icarus, or alternatively, you can take a C program and convert it to Verilog
using Bambu, and then use Icarus for simulation and error checking [9].
For verification with Icarus Verilog, a testbench file must also be created to provide stimulus
and observe the outputs of the design under test (DUT) during simulation.
➢ Compile the Verilog code (including the design and testbench files):
iverilog: The Icarus Verilog compiler., -o output_file.vvp: Specifies the output file
(output_file.vvp) that will be generated after compilation., design.v: Your Verilog design file.,
testbench.v: Your testbench file.
Page | 16
9. YOSYS
Yosys is an open-source synthesis tool primarily used for FPGA and ASIC design, aimed at
converting hardware description languages (HDLs) like Verilog into optimized gate-level
representations. It is widely recognized for its flexibility, supporting a variety of synthesis tasks,
including technology mapping, logic optimization, and decomposition [10]. Yosys can handle a
broad range of HDL constructs and can be integrated into larger toolchains for high-level synthesis
(HLS), providing a crucial step in the digital design flow. As an open-source tool, Yosys is particularly
popular in academic research and the open hardware community, providing an accessible, cost-
effective alternative to proprietary synthesis tools.
One of the key strengths of Yosys is its ability to work with various backend tools, offering
integration with other open-source projects like nextpnr (for FPGA place and route), ABC (for logic
optimization), and OpenROAD (for ASIC place and route). It also supports modern features such as
SystemVerilog and Verilog-2001 [11]. Yosys provides designers with advanced capabilities, such as
timing analysis, logic synthesis, and equivalence checking, making it an essential tool for verifying
and optimizing digital designs. Its open-source nature encourages innovation, and it has been embraced
by the hardware design community for building custom toolchains and automating synthesis tasks in
both academic and industrial settings.
To run Yosys, three essential files are typically required: a .v file (Verilog source code) that
contains the hardware description, a .lib file (library file) that defines the cell library and its
characteristics, including timing and area constraints, and a commands.tcl file (TCL script) that
contains the sequence of Yosys commands to perform synthesis, optimization, and mapping. The .v
file specifies the design logic, the .lib file provides necessary technology information for mapping the
design to actual hardware, and the commands.tcl file automates the synthesis process by defining the
steps to run within Yosys [12]. These files together enable the synthesis and optimization of the Verilog
design for various target technologies.
Page | 17
Fig-7 Yosys Interface
Page | 18
10. OPENSTA
OpenSTA (Open Static Timing Analysis) is an open-source tool designed for performing
static timing analysis (STA) on digital integrated circuits, especially in the context of ASIC design.
It is widely used for verifying the timing characteristics of a design by analyzing the propagation delays
of signals through the various paths in the circuit, ensuring that the design meets the required timing
constraints. OpenSTA can process netlists, timing libraries, and constraint files to identify timing
violations, such as setup and hold time violations, and generate reports that help designers optimize
their designs for performance, power, and area [13].
OpenSTA is designed to work in conjunction with other EDA tools in the ASIC design flow,
often being used after synthesis and place and route steps. It supports advanced features such as
multi-corner, multi-mode analysis, enabling it to handle various operating conditions (such as
voltage and temperature variations) and different modes of operation (like functional or test modes).
Being open-source, OpenSTA is highly flexible and customizable, making it a popular choice in
academic research, open hardware projects, and environments where cost-effective timing analysis is
crucial. It provides a valuable means of ensuring that timing constraints are met before tape-out and
manufacturing.
For OpenSTA (Open Static Timing Analysis) to perform timing analysis, several types of files
are required, each serving a specific purpose in the flow. The primary file is the .v file, which contains
the Verilog description of the design. This file represents the netlist of the design, including the logic
gates, connections, and other components that make up the circuit. OpenSTA uses this netlist to
perform static timing analysis by examining the signal propagation delays, path delays, and potential
timing violations in the circuit. Along with the Verilog file, OpenSTA also requires a .lib file, which
is a timing library that defines the timing characteristics of the standard cells used in the design. The
.lib file includes critical data such as cell delays, setup and hold times, slew rates, and other
parameters essential for accurate timing analysis [14].
In addition to the Verilog and timing library files, OpenSTA relies on the .sdc (Synopsys
Design Constraints) file, which defines the timing constraints for the design. The .sdc file includes
information about the clock period, input/output delays, and other relevant constraints that guide the
timing analysis process. It specifies how the design should behave under different operating conditions,
such as the clock's frequency and any additional timing constraints necessary for correct functionality.
Page | 19
Finally, a .tcl file (TCL script) is typically used to automate the entire flow of OpenSTA. This script
contains a sequence of commands, such as loading the netlist, reading the timing library, setting up
constraints, performing timing analysis, and generating reports. The .tcl file allows users to run the
entire timing analysis process with a single command, improving efficiency and ensuring consistency
across multiple runs.
$ cd OpenSTA
Page | 20
10.3 Output of OpenSTA:
• MAX (Maximum Path): This refers to the longest critical path in the circuit between two
registers or flip-flops. It is the path with the maximum propagation delay that needs to be
Page | 21
analyzed to ensure that data can propagate through the circuit within the required clock period.
A MAX path is important for ensuring that the design meets the setup time constraint; if the
maximum path delay is too long, data will not arrive on time for the next clock cycle, causing
timing violations.
• MIN (Minimum Path): This refers to the shortest path between two registers or flip-flops. It
is used to check whether the data holds long enough at the destination register to meet the hold
time requirement. The MIN path is important for ensuring that the data does not change too
soon after being captured by the register, which could cause hold-time violations. A MIN path
helps in identifying critical timing violations that might occur due to signal transitions
happening too early.
• Slack is the difference between the required time and the actual time taken for a signal to
propagate through a path. It indicates whether the timing requirement (setup or hold) has been
satisfied for a particular path.
• Slack MET: If the slack is positive or zero, the timing constraint is met. This means that the
data signal has enough time to propagate through the path and meet the timing requirements
(setup or hold time). A positive slack indicates that there is some margin, while zero slack
means the design is operating right at the limit.
• Slack NOT MET: If the slack is negative, the timing requirement is not met. A negative slack
indicates a timing violation, meaning that the data signal is arriving too late (setup violation)
or too early (hold violation), which can lead to incorrect behavior or logic failures in the design.
In this case, optimization or adjustments (such as changing the clock period or optimizing the
logic) are necessary to resolve the violation.
Page | 22
11. OPENROAD
The key feature of OpenROAD is its focus on automated design [16]. It employs state-of-the-
art algorithms for place and route that automatically generate optimized layouts, ensuring that designs
meet performance targets while reducing manual intervention and time-to-market. As an open-source
tool, OpenROAD is highly flexible, allowing users to contribute to its development or modify it to suit
specific design needs. It has gained significant traction in both academic research and industry,
offering a cost-effective solution for digital design teams, particularly in the context of advanced node
technologies. OpenROAD has demonstrated competitive results in timing closure, power
optimization, and design rule checking (DRC), making it an invaluable resource for those working
on high-performance and low-power integrated circuits [17].
$ openroad
Page | 23
➢ To run a OpenROAD:
Page | 24
Fig-15 Output-1 in OpenROAD
Page | 25
12. FPGA
An FPGA (Field-Programmable Gate Array) board is a type of hardware that allows users to
configure and customize the behaviour of the board’s internal circuits [18]. Unlike traditional
microcontrollers or processors, FPGAs can be reprogrammed after manufacturing, making them highly
flexible for a wide range of applications. These boards consist of an array of logic gates, memory
elements, and interconnects that can be programmed to perform specific tasks such as signal
processing, control, or data manipulation.
The key feature of FPGA boards is their parallel processing capability, where multiple tasks
can be executed simultaneously, providing a significant speed advantage over sequential processing
systems [19]. This makes them ideal for tasks that require high-performance computing, such as digital
signal processing, video encoding, cryptography, and machine learning. Users write code in hardware
description languages (HDLs) like VHDL or Verilog to define the logic and functionality of the FPGA.
FPGA boards typically include other components such as power supplies, input/output
interfaces, and memory modules, which make them versatile for various applications, from industrial
control systems to academic research. They can be connected to external devices and sensors, allowing
real-time data processing and enabling them to act as custom hardware accelerators for specific
computational tasks [20].
Page | 26
12.2 Implementation Steps:
The basic implementation steps for VLSI (Very-Large-Scale Integration) design involve several key
stages, each focusing on different aspects of circuit design and layout. These steps typically include:
➢ Hardware Setup:
• Connect external devices to the FPGA’s I/O pins based on the interface requirements. For
example:
o For communication interfaces like SPI, connect the FPGA’s SPI pins to the
corresponding pins of external devices like sensors or memory chips.
o For display interfaces like VGA, connect the VGA lines (RGB, HSYNC, VSYNC) to
the FPGA's I/O pins.
➢ Software Configuration:
• In your FPGA development environment (e.g., Xilinx Vivado, Intel Quartus), configure the
I/O pins to function as input, output, or bidirectional as required by the peripheral.
• Implement the necessary protocols (SPI, I2C, UART, etc.) in the HDL code. This might involve
writing state machines or controllers to handle the data transfer.
• After writing the HDL code, synthesize, place, and route the design on the FPGA.
• Program the FPGA with the generated bitstream file and test the connections to external
hardware.
• Use debugging tools (e.g., ChipScope, SignalTap) to monitor the signals and verify that the
connections are functioning as expected.
A half adder is a simple combinational circuit that adds two single-bit binary numbers. It has two
inputs and two outputs:
Page | 27
• Outputs: Sum (S), Carry (C)
This logic is very simple, so it serves as a good starting point to implement on an FPGA.
You will write the logic for the half adder in Verilog or VHDL. Here, I'll show you the Verilog code
for the half adder.
module half_adder(
);
// Sum is A XOR B
assign Sum = A ^ B;
// Carry is A AND B
endmodule
Page | 28
A testbench is essential to simulate and verify that the half adder works as expected before loading it
onto the FPGA.
module test_half_adder;
// Test signals
reg A, B; // Inputs
// Test cases
initial begin
A = 0; B = 0; #10;
A = 0; B = 1; #10;
A = 1; B = 0; #10;
A = 1; B = 1; #10;
$finish;
end
endmodule
Page | 29
This testbench initializes the input signals A and B and displays the corresponding Sum and Carry
values for each input combination.
• Use an FPGA development environment like Xilinx Vivado or Intel Quartus to synthesize
the Verilog code.
• The FPGA synthesis tool will generate a netlist, map it to the FPGA resources, and create a
bitstream file. This file will be used to configure the FPGA.
Once the bitstream file is ready, use the FPGA's development tool (e.g., Vivado or Quartus) to program
the FPGA.
• Connect FPGA to your computer using JTAG, USB, or other methods depending on the
FPGA board.
• Upload the bitstream generated from the synthesis tool to the FPGA.
To test the half adder on the FPGA board, you'll need to interface it with physical inputs and outputs:
• Inputs (A and B): Use switches or push buttons on the FPGA board to provide the input
values A and B. These will act as the two binary inputs for the half adder.
• Outputs (Sum and Carry): Use LEDs to display the result of the half adder. One LED will
indicate the Sum, and another will indicate the Carry.
• Assign the switches (or buttons) on the FPGA board to the input pins A and B.
In Vivado, this can be done using the I/O Planning tool to map the HDL ports (e.g., A, B, Sum, Carry)
to specific physical pins on the FPGA.
• After programming the FPGA, toggle the switches for A and B and observe the LEDs.
Page | 30
• The LEDs will light up according to the sum and carry values:
• Customizable Logic: You can configure the FPGA to implement a wide variety of digital
circuits and systems, tailoring the logic to the specific needs of the application.
• Massive Parallelism: FPGAs allow for true parallel processing, meaning they can execute
many operations simultaneously. This makes them well-suited for tasks that require high
performance, such as signal processing, image processing, and cryptography.
• High-Speed Operations: The ability to run multiple operations in parallel drastically reduces
the time required to process data, leading to improved throughput and faster execution for
certain applications compared to traditional processors (CPUs).
• High-Speed Execution: FPGAs can operate at much higher clock speeds compared to general-
purpose CPUs for specific tasks. Custom-designed hardware accelerators in an FPGA can
achieve significant performance gains.
• Low Latency: FPGA boards can be designed for ultra-low latency processing by minimizing
the time it takes for data to move through the circuit. This is crucial for real-time systems like
telecommunications, radar, and high-frequency trading.
Page | 31
4. Parallel I/O Handling
• Flexible I/O Configuration: FPGAs allow for the direct connection of high-speed I/O
interfaces like SPI, I2C, UART, PCIe, and more. This makes them ideal for interfacing with
sensors, cameras, or other peripheral devices in embedded systems.
• High Bandwidth: FPGAs can handle large amounts of data in parallel and provide high
bandwidth for communication with external devices, making them suitable for applications like
video streaming or large-scale data processing.
• Prototyping and Development: FPGAs are often more cost-effective than custom ASICs
(Application-Specific Integrated Circuits) for low-volume production. Instead of designing a
custom chip, developers can quickly prototype their design on an FPGA and iterate as needed.
• Reduced Time-to-Market: FPGAs enable rapid development and prototyping, reducing the
time it takes to bring a new product or feature to market. Since the design is programmable,
changes can be made quickly without needing new hardware fabrication.
• Power Efficiency: While FPGAs can consume more power than some low-power
microcontrollers, they can be more power-efficient than traditional processors for certain types
of tasks, especially when highly parallel processing is involved.
• Power Scaling: Modern FPGAs have advanced features like power gating, which allows users
to selectively power down unused parts of the FPGA, improving energy efficiency.
• Custom Accelerators: With FPGAs, you can design custom hardware accelerators to offload
specific computations from a CPU or GPU, increasing system performance for computationally
intensive tasks.
Page | 32
8. Development Tools and Ecosystem
• Rich Development Tools: FPGA vendors (like Xilinx, Intel, and Lattice) provide robust
development environments such as Vivado, Quartus, and Libero. These tools offer synthesis,
simulation, debugging, and deployment capabilities to ease the design process.
• High-Level Synthesis: Some tools allow developers to use high-level languages such as
C/C++ to generate hardware designs, enabling rapid development even for those who may not
be familiar with hardware description languages (HDLs) like Verilog or VHDL.
• Testing for ASICs: FPGAs are commonly used to prototype ASIC designs. Since the FPGA
can implement the same logic as an ASIC, it allows engineers to test and validate the design in
real-world conditions before committing to the cost and time involved in manufacturing an
ASIC.
• Ease of Debugging: FPGAs offer tools like internal logic analyzers (e.g., Xilinx's ChipScope
or Intel's SignalTap) that allow for real-time debugging, making it easier to identify and resolve
issues during development.
• Custom Encryption: FPGAs can implement custom encryption algorithms and secure
communication protocols, which are increasingly important for secure data transmission, IoT
devices, and blockchain applications.
• Hardware Security: FPGAs can include secure boot capabilities, secure key storage, and
tamper detection features, offering a hardware-based security layer for sensitive applications.
• Scalable Designs: FPGAs can be scaled to accommodate more complex designs. For instance,
an FPGA design that initially supports a basic function can be upgraded to add more features
or performance improvements without changing the physical hardware.
• Future Adaptation: Since FPGAs are reconfigurable, they allow systems to adapt to new
requirements or protocols in the future, offering a future-proof solution.
Page | 33
13. CONCLUSION
VLSI (Very-Large-Scale Integration) design is the cornerstone of modern electronics, enabling
the creation of highly integrated and compact circuits that power a wide range of devices, from
smartphones and computers to automotive systems and medical equipment. The VLSI design process
involves the integration of millions, or even billions, of transistors into a single chip, significantly
improving performance, reducing power consumption, and minimizing space requirements. This
miniaturization has led to the development of more powerful, energy-efficient, and cost-effective
devices, making VLSI design essential for the continued advancement of technology.
The VLSI design process is complex and requires a deep understanding of both digital and
analog circuits, as well as the use of specialized design tools and techniques. It involves several stages,
including architectural design, logic design, physical design, and verification. Engineers must tackle
challenges such as power management, heat dissipation, and timing optimization while ensuring that
the final design meets performance, reliability, and manufacturing requirements. The advent of tools
like Electronic Design Automation (EDA) software has revolutionized VLSI design, enabling
automation of many tasks and improving the accuracy and efficiency of the design process.
As technology continues to evolve, VLSI design plays a pivotal role in pushing the boundaries
of what is possible in electronics. The shift toward advanced semiconductor technologies, such as
FinFET and quantum computing, will continue to push VLSI design to new levels of complexity and
capability. Moreover, VLSI will remain at the heart of emerging fields such as artificial intelligence,
machine learning, and the Internet of Things (IoT), where the need for high-performance, low-power
chips is more critical than ever. The future of VLSI design promises exciting developments that will
shape the next generation of electronic devices and systems.
Page | 34
14.REFERENCES
[1] Hailey, John. "Ubuntu: A literature review." Document. London: Tutu Foundation (2008): 1-26.
[2] Matolino, Bernard, and Wenceslaus Kwindingwi. "The end of ubuntu." South African Journal of
Philosophy 32.2 (2013): 197-205.
[3] Matolino, Bernard, and Wenceslaus Kwindingwi. "The end of ubuntu." South African Journal of
Philosophy 32.2 (2013): 197-205.
[4] Pilato, Christian, and Fabrizio Ferrandi. "Bambu: A modular framework for the high level synthesis
of memory-intensive applications." 2013 23rd International conference on field programmable logic
and applications. IEEE, 2013.
[5] Chen, Ying, et al. "Context-aware transcript quantification from long-read RNA-seq data with
Bambu." Nature methods 20.8 (2023): 1187-1195.
[6] Suprihatno, Bambang, Rasoel Hamidy, and Bintal Amin. "Analisis biomassa dan cadangan karbon
tanaman bambu belangke (Gigantochloa pruriens)." Jurnal Ilmu Lingkungan 6.01 (2012).
[7] Amerio, S., et al. "Design, construction and tests of the ICARUS T600 detector." Nuclear
Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and
Associated Equipment 527.3 (2004): 329-410.
[8] Langley, Pat, et al. "A design for the ICARUS architecture." ACM Sigart Bulletin 2.4 (1991): 104-
109.
[9] Antonello, M., et al. "ICARUS at FNAL." arXiv preprint arXiv:1312.7252 (2013).
[10] Wolf, Clifford, Johann Glaser, and Johannes Kepler. "Yosys-a free Verilog synthesis
suite." Proceedings of the 21st Austrian Workshop on Microelectronics (Austrochip). Vol. 97. 2013.
[11] Jafarof, Navid. "Advancing VTR flow: Integrating ABC9 via Yosys for enhanced technology
mapping and optimization." (2024).
[12] Damghani, Seyed Alireza, and Kenneth B. Kent. "Odin-II Partial Technology Mapping for Yosys
Coarse-grained Netlists in VTR." 2022 IEEE 30th Annual International Symposium on Field-
Programmable Custom Computing Machines (FCCM). IEEE 2022.
Page | 35
[13] Guo, Zizheng, et al. "Heterogeneous Static Timing Analysis with Advanced Delay
Calculator." 2024 Design, Automation & Test in Europe Conference & Exhibition (DATE). IEEE,
2024.
[14] Veigas, Suresh Steven, and R. Elumalai. "Open source VLSI design automation." AIP Conference
Proceedings. Vol. 2901. No. 1. AIP Publishing, 2023.
[15] Ajayi, Tutu, and David Blaauw. "OpenROAD: Toward a self-driving, open-source digital layout
implementation tool chain." Proceedings of Government Microcircuit Applications and Critical
Technology Conference. 2019.
[16] Kahng, Andrew B., and Tom Spyrou. "The OpenROAD project: Unleashing hardware
innovation." Proc. GOMAC. 2021.
[17] Jung, Jinwook, et al. "Metrics2. 1 and flow tuning in the ieee ceda robust design flow and openroad
iccad special session paper." 2021 IEEE/ACM International Conference On Computer Aided Design
(ICCAD). IEEE, 2021.
[18] Farooq, Umer, et al. "FPGA architectures: An overview." Tree-Based Heterogeneous FPGA
Architectures: Application Specific Exploration and Optimization (2012): 7-48.
[19] Kuon, Ian, Russell Tessier, and Jonathan Rose. "FPGA architecture: Survey and
challenges." Foundations and Trends® in Electronic Design Automation 2.2 (2008): 135-253.
[20] Monmasson, Eric, and Marcian N. Cirstea. "FPGA design methodology for industrial control
systems—A review." IEEE transactions on industrial electronics 54.4 (2007): 1824-1842.
Page | 36