DSD_UNIT1
DSD_UNIT1
DSD_UNIT1
Digital design in the context of DSD (Digital System Design) refers to creating systems or
circuits that operate using digital signals (typically 0s and 1s). These systems can be as
simple as a logic gate or as complex as a computer.
Digital signals are discrete, meaning they have only two states: 0 (low voltage) and 1
(high voltage).
Digital systems process these signals using components like logic gates (AND, OR,
NOT) to perform operations.
Logic Gates: These are basic building blocks that perform logical operations (AND,
OR, NOT).
Combinational Circuits: Circuits where the output is based only on the current
inputs. Examples include adders and multiplexers.
Sequential Circuits: Circuits where the output depends on both current inputs and
past states (history). Examples are flip-flops and counters.
3. Design Process:
Basic Logic Gates: Digital design begins with understanding basic logic gates like AND, OR, NOT,
NAND, NOR, XOR, and XNOR. These gates are the building blocks of all digital circuits.
Combinational Circuits: These circuits combine multiple logic gates to perform specific operations
like addition, subtraction, and data comparison. Examples include multiplexers, decoders, and
adders.
Sequential Circuits: These circuits, like flip-flops and registers, store information and are used in
memory elements and finite state machines.
Binary System: Digital electronics represent data using binary digits (0 and 1). Understanding binary
arithmetic, including addition, subtraction, multiplication, and division, is essential.
Boolean Algebra: Boolean algebra is the mathematical framework used to analyze and simplify
digital logic circuits.
Number Systems: Knowledge of various number systems (binary, octal, hexadecimal) is crucial,
especially for tasks like coding, addressing, and data representation.
3. Timing Analysis
Clock Signals: Digital systems often operate on clock signals that synchronize the operation of
different components. The design must account for clock frequency, duty cycle, and phase.
Propagation Delay: The time taken for a signal to propagate through a circuit element can affect the
overall speed of the system. Timing analysis ensures that the circuit meets the required speed and
timing constraints.
Setup and Hold Times: These are critical parameters for the correct operation of flip-flops and other
sequential elements, ensuring data is correctly latched.
4. Power Consumption
Power Dissipation: Digital circuits consume power, and managing this power consumption is vital,
especially in portable and battery-powered devices. Techniques like clock gating and power gating
are used to reduce power usage.
Dynamic and Static Power: Dynamic power is consumed during switching (due to charging and
discharging of capacitors), while static power is consumed due to leakage currents even when the
circuit is idle.
Noise Margins: Digital circuits must tolerate some level of noise. The noise margin is the amount of
noise that can be superimposed on a signal without causing an error in the logic level interpretation.
Signal Integrity: Signal integrity involves ensuring that the signal maintains its integrity over long
distances or at high speeds, preventing issues like crosstalk, reflection, and attenuation.
RTL (Register Transfer Level) Design: RTL design is a high-level abstraction used to describe the
operation of digital circuits in terms of data flow between registers.
VLSI (Very Large Scale Integration): VLSI involves integrating thousands or millions of transistors onto
a single chip, enabling complex digital systems like microprocessors and memory chips.
Data Path: The data path involves the components (like ALUs, registers, and multiplexers) that
process data. It is designed to ensure efficient data processing and transfer.
Control Path: The control path manages the operation of the data path by generating control signals
based on the input conditions and the state of the system.
8. Memory Design
RAM/ROM: Understanding the design and operation of different types of memory, including volatile
(RAM) and non-volatile (ROM) memory, is crucial in digital design.
Memory Hierarchy: Efficient memory design considers the hierarchy (cache, main memory, storage)
to optimize speed, cost, and power consumption.
Design for Testability (DFT): Ensuring that the digital design can be easily tested for manufacturing
defects is essential. Techniques like boundary scan, Built-In Self-Test (BIST), and scan chains are
used.
Simulation and Verification: Before physical implementation, digital designs are simulated to verify
their correctness and performance using tools like Verilog, VHDL, or SystemC.
Verilog/VHDL: These are languages used to model and simulate digital circuits at a high level. They
are essential for designing, verifying, and synthesizing digital systems.
Behavioral and Structural Descriptions: Understanding the different levels of abstraction in HDLs
allows designers to model complex systems efficiently.
Layout Design: The physical layout of the circuit on silicon, considering factors like area, routing, and
placement, is crucial for performance and manufacturability.
Fabrication: Understanding the fabrication process and its impact on the design, including
considerations like lithography, doping, and etching, is important.
These electronics aspects form the foundation of digital design and are crucial for creating efficient,
reliable, and high-performance digital systems, whether in the form of simple logic circuits or
complex integrated circuits like microprocessors.
Verilog and VHDL: These are the most commonly used HDLs for digital design.
They allow designers to describe the behavior and structure of digital circuits at
various levels of abstraction (from high-level behavioral descriptions to detailed gate-
level implementations).
SystemVerilog: An extension of Verilog, SystemVerilog includes additional features
for design and verification, making it widely used in complex digital design projects.
Schematic Capture: Tools like Cadence Virtuoso and OrCAD allow designers to
create circuit schematics that can be translated into digital designs.
Simulation and Verification Tools: These tools, such as ModelSim, Questa, and
VCS, are used to simulate digital designs to verify their functionality before hardware
implementation. They help in identifying and fixing bugs early in the design process.
Synthesis Tools: Tools like Synopsys Design Compiler and Xilinx Vivado convert
HDL code into gate-level netlists that can be mapped to physical hardware. Synthesis
includes optimization for area, speed, and power consumption.
Place-and-Route (P&R): After synthesis, tools like Cadence Innovus or Synopsys IC
Compiler are used to place the synthesized gates onto a physical chip layout and route
the interconnections, considering timing constraints and physical limitations.
C/C++/SystemC-Based Design: HLS tools like Xilinx Vivado HLS or Intel HLS
Compiler allow designers to describe functionality at a higher level (using languages
like C, C++, or SystemC) and then automatically generate RTL code (HDL) for
synthesis. This speeds up the design process and allows for easier exploration of
different design architectures.
Algorithmic Design: HLS is particularly useful in designing complex algorithms for
digital signal processing (DSP), video processing, and machine learning, enabling a
faster path from concept to implementation.
6. FPGA Programming
FPGA Toolchains: FPGA design involves using specific tools like Xilinx Vivado,
Intel Quartus, or Lattice Diamond to map HDL designs to FPGA hardware. These
tools handle synthesis, simulation, and configuration of the FPGA.
Soft Processors and IP Cores: Software libraries and pre-designed IP cores (e.g.,
soft processors like MicroBlaze or Nios II) are used to implement complex
functionalities on FPGAs, allowing for customizable digital designs.
8. Algorithm Development
Behavioral Simulation: Tools like MATLAB, Simulink, and SystemC are used for
high-level modeling and simulation of digital systems, allowing designers to explore
different architectures and verify system behavior before detailed implementation.
Co-Simulation: Co-simulation combines hardware and software simulation, enabling
designers to test the interaction between hardware components and embedded
software early in the design process.
Automated Testing: In modern digital design workflows, automated testing tools are
used to continuously verify that changes in the design or software do not introduce
errors. Tools like Jenkins and GitLab CI can be integrated with EDA tools to
automate simulation and verification processes.
Continuous Integration/Continuous Deployment (CI/CD): CI/CD pipelines are
increasingly used in digital design, especially when hardware and software are
developed concurrently. This approach ensures that designs are always in a
deployable state and that any integration issues are quickly identified.
GUI Tools: For digital systems that include user interaction, GUI design tools like
Qt, Tkinter, or custom web-based interfaces are used to create user interfaces that
allow for easy interaction with the digital system.
Human-Machine Interface (HMI): In industrial and automotive systems, HMI
design involves creating intuitive and responsive interfaces that allow users to
monitor and control complex digital systems.
Software for Power Optimization: Software tools are used to optimize power
consumption by dynamically adjusting the operation of different parts of the digital
system based on workload, using techniques like dynamic voltage and frequency
scaling (DVFS).
Thermal Management Software: Software is also used to monitor and manage the
thermal profile of digital systems, ensuring that components do not overheat, which is
critical in high-performance computing and mobile devices.
DFT Tools: Software tools assist in embedding test features into the digital design,
such as built-in self-test (BIST), scan chains, and boundary scan, ensuring that the
hardware can be efficiently tested for manufacturing defects.
CPS Simulation: For systems that interact with the physical world (like robotics,
automotive systems, or smart grids), software is used to simulate and verify the
interaction between the digital system and the physical environment.
IoT Firmware and Software Development: Developing the software stack for IoT
devices, including communication protocols (e.g., MQTT, CoAP), data processing
algorithms, and cloud integration, is a crucial aspect of digital design.
These software aspects of digital design are critical for the creation of robust, efficient, and
secure digital systems. They provide the tools and methodologies necessary to translate high-
level concepts into working hardware and ensure that these systems operate as intended in
real-world applications.
After the invention of the semiconductors and transistors, things were quite simplified
to a particular extent, but the development of integrated circuits changed electronics
technology’s face. Jack Kilby from Texas Instruments and Bob Noyce from Intel are
the official creators of integrated circuits, and they did it independently.
Electric Circuits
Resistors
Transistors
Diodes
Capacitors
Analog Design
Digital Design
Mixed Design
Digital Design
The digital design approach is used to create integrated circuits (ICs), which are
utilised as computer memories (such as RAM and ROM) and microprocessors. With
this approach to design, the circuit density and overall efficiency are both maximised.
The ICs created with this technique operate with binary input data like 0 and 1. The
process for designing digital integrated circuits is depicted in the diagram below.
Analog Design
IC chip is created by using the analogue design process when:
Mixed Design
The analog and digital design ideas are used in mixed designs. The mixed ICs
perform either Analog to Digital or Digital to Analog conversions.
Integrated Circuit Features
Construction & Packaging
ICs are built with semiconducting components such as silicon. Because of the small
size and delicate nature of IC, a series of tiny gold and aluminium wires are joined
together and moulded into a flat block of plastic or ceramic. Metal pins on the block’s
exterior link to cables inside. The solid block stops the chip from overheating and
keeps it cool.
Size of an IC
The size of the integrated chip varies between 1 square mm to more than 200 mm.
Integration of an IC
Because they combine various devices on one chip, integrated chips get their name.
A microcontroller is an integrated circuit (IC) that combines a microprocessor,
memory, and interface into a single unit.
Timer ICs
A Timer IC is produced with accurate timing cycles with a 100 % or 50 % duty cycle.
Operational Amplifiers
An OpAmp or an Operational Amplifier is a high gain voltage amplifier with a
differential input and a single-ended output.
Voltage Regulators
A voltage regulator IC provides a constant DC output irrespective of the changes in
DC input.
How does the ASIC design cycle work?/ VLSI DESIGN
FLOW
In order to fulfill futuristic demands of chip design, changes are required in
design tools, methodologies, and software/hardware capabilities. For those
changes, ASIC design flow adopted by engineers for efficient structured
ASIC chip architecture and focus on its design functionalities
1) Design Entry :
Design entry is the first step in the design of any VLSI circuit using EDA tools. In this
step the intended design is entered on the personal computer. Figure below shows
the various
ways of design entry. The various ways in design entry are as follows,
Schematic entry
Design entry using Hardware Description Languages(HDL)
Using Finite State Machines (FSM)
EDIF entry
Ways of design entry
Schematic entry :
Schematic is the design developed by the digital designer using different logical
gates
and digital ICs. The schematics can be drawn on the monitor screen by using the
CAD tools. In
this entry the designer first designs the equivalent digital systems using K-Map and
instead of
implementing the design on the breadboard the design can be tested using the
simulators.
Hardware description languages :
Hardware description languages originally developed for circuit modelling. Now a
days
these are used for complex hardware design. In this the design is represented in the
form of
coding template by using the syntaxes of the HDL. The different HDLs used in
practice are :
1.
VHDL
2.
ABEL
3.
VERILOG
Finite state machines :
The design can be entered using the state diagrams of the sequential circuits. The
CAD
tool can be used to draw the complete state diagram on the personal computer and
simulated
for the required results. Now a days the EDA tools are available which will convert
the
complete state diagram into the HDL code and this HDL code is further processed.
EDIF entry :
EDIF is the Electronic Data Interchange Format, an industry standard file format for
specifying a design net list. It is generated by a EDIF design-entry tool.
Input files : VHDL file (.vhd, .vhdl), Verilog file (.v), ABEL file (.abl, .abv), EDIF file
(.edf), Schematic file (.sch), State diagram file (.dia), User constraints file (.ucf). Or
as
user generated in particular entry editor
Output files : VHDL file (.vhd, .vhdl), Verilog file (.v), ABEL file (.abl, .abv), EDIF
file (.edf), Schematic file (.sch), State diagram file (.dia, .asf), User constraints file
(.ucf).
Once the RTL code and testbench are generated, the RTL team works on
RTL description – they translate the RTL code into a gate-level netlist using
a logical synthesis tool that meets required timing constraints. Thereafter, a
synthesized database of the ASIC design is created in the system. When
timing constraints are met with the logic synthesis, the design proceeds to
the design for testability (DFT) techniques.
This is the stage wherein the engineer follows the ASIC design layout
requirement and specification to create its structure using EDA tools and
proven methodologies. This design structure is going to be verified with the
help of HLL programming languages like C++ or System C.
Floorplan determines the size of the chip, places the gates and connects
them with wires. While connecting, engineers take care of wire length, and
functionality which will ensure signals will not interfere with nearby
elements. In the end, simulate the final floor plan with post-layout
verification process.
A good floorplanning exercise should come across and take care of the
below points; otherwise, the life of IC and its cost will blow out:
Step 7. Placement
Clock tree synthesis is a process of building the clock tree and meeting the
defined timing, area and power requirements. It helps in providing the clock
connection to the clock pin of a sequential element in the required time and
area, with low power consumption.
With the help of these structures, each flop in the clock tree gets the clock
connection. During the optimization, tools insert the buffer to build the CTS
structure. Different clock structures will build the clock tree with a minimum
buffer insertion and lower power consumption of chips.
In the last stage of the tapeout, the engineer performs wafer processing,
packaging, testing, verification and delivery to the physical IC. GDSII is the
file produced and used by the semiconductor foundries to fabricate the
silicon and handled to client.
What is HDL?
HDL stands for Hardware Description Language. It is a programming
language that is used to describe, simulate, and create hardware like digital circuits
(ICS). HDL is mainly used to discover the faults in the design before implementing it
in the hardware.
The main advantage of HDLs is that it provides flexible modeling capabilities and can
express the large complex designs (>107 gates).
Today, there are many HDLs available in the market, but VHDL and Verilog are the
most popular HDLs.
What is VHDL?
VHDL stands for Very High-Speed Integration Circuit HDL (Hardware Description
Language). It is an IEEE (Institute of Electrical and Electronics Engineers) standard
hardware description language that is used to describe and simulate the behavior of
complex digital circuits.
The most popular examples of VHDL are Odd Parity Generator, Pulse Generator,
Priority Encoder, Behavioral Model for 16 words, 8bit RAM, etc.
What is Verilog?
Verilog is also a HDL (Hardware Description Languages) for describing electronic
circuits and systems. It is used in both hardware simulation and synthesis.
VHDL Verilog
It allows the user to define data types. It does not allow the user to define data types.
It supports the Multi-Dimensional array. It does not support the Multi-Dimensional array.
Why VHDL?
VHDL is used for the following purposes:
Advantages of VHDL
A list of advantages of VHDL is given below:
Disadvantages of VHDL
A list of disadvantages of VHDL is given below:
o It requires specific knowledge of the structure and syntax of the language.
o It is more difficult to visualize and troubleshoot a design.
o Some VHDL programs cannot be synthesized.
o VHDL is more difficult to learn.
1. Entity
The Entity is used to specify the input and output ports of the circuit. An Entity
usually has one or more ports that can be inputs (in), outputs (out), input-outputs
(inout), or buffer.
An Entity may also include a set of generic values that are used to declare properties
of the circuit.
Entity Declaration
o Simplified syntax
1. entity entity_name is
2. port (
3. port_1_name : mode data_type;
4. port_2_name : mode data_type;
5. .......
6. Port_n_name : mode data_type
7. );
8. end entity_name;
Example:
1. entiy orgate is
2. port (
3. a : in std_logic;
4. b : in std_logic;
5. c : out std_logic
6. );
7. end orgate;
o Using generic
If an entity is generic, then it must be declared before the ports. Generic does not
have a mode, so it can only pass information into the entity.
Syntax:
1. entity entity_name is
2. generic (
3. generic_1_name : data_type;
4. generic_2_name : data_type;
5. ........
6. generic_n_name : data_type
7. );
8. port (
9. port_1_name : mode data_type;
10. port_2_name : mode data_type;
11. ........
12. Port_n_name : mode data_type
13. );
14. end entity_name;
Example:
1. entity Logic_Gates is
2. generic (Delay : Time := 10ns);
3. port (
4. Input1 : in std_logic;
5. Input2 : in std_logic;
6. Output : out std_logic
7. );
8. end Logic_Gates;
Modes of Port
In Input port
out Outputport
inout Bidirectional port
buffer Buffered output port
2. Architecture
Architecture is the actual description of the design, which is used to describe how the
circuit operates. It can contain both concurrent and sequential statements.
Architecture Declaration
Example:
3. Configuration
A configuration defines how the design hierarchy is linked together. It is also used to
associate architecture with an entity.
Configuration Declaration
Example:
Data flow modeling can be described based on the Boolean expression. It shows how
the data flows from input to output. It works on Concurrent execution.
Structural modeling is used to specify the functionality and structure of the circuit.
Structural modeling contain signal declarations, component instances, and port maps
in component instance.
VHDL objects
VHDL uses the following three types of objects:
1. Constants
Constant is an object which can only hold a single value that cannot be changed
during the whole code.
2. Variables
A variable also holds a single value of a given type. The value of the variable may be
changed during the simulation by using variable assignment operator.
Example:
3. Signals
Signals can be declared in architecture and used anywhere within the architecture.
Signals are assigned by the assignment operator "<=".
Example:
Signal
sig1:std_logic;
Sig1 <= '1'
1. Scalar Types
o Integer
Integer data types are the set of positive and negative whole numbers.
o Floating_point
Floating point data types are the set of positive and negative numbers that
contain a decimal point.
o Enumeration
Enumeration data type is used to increase the readability of the code.
o Physical
Physical data type describes objects in terms of a base unit, multiples of base
unit, and a specified range.
2. Composite Types
o Arrays
Arrays are used to hold multiple values of the same types under a single
identifier
o Record
Records are used to specify one or more elements, and each element has a
different name and different type.
VHDL Operators
VHDL Operators are used for constructing the expressions.
1. Logical Operators
Logical Operators are used to control the program flow. When the logical operators
combined with signals or variables, then it is used to create combinational logic.
o and
o or
o nand
o nor
o xor
o xnor
o not
2. Relational Operators
In VHDL, relational operators are used to compare two operands of the same data
type, and the received result is always of the Boolean type.
o = Equal to
o /= Not Equal to
o < Less than
o > Greater than
o <= Less than or equal to
o >= Greater than or equal to
3. Arithmetic Operators
o + Addition
o - Subtraction
o * Multiplication
o / Division
o & Concatenation
o mod Modulus
o rem Remainder
o abs Absolute Value
o ** Exponentiation
4. Shift Operators
In VHDL, shift operator is used to perform the bit manipulation on the data by
shifting and rotating the bits of its first operand right or left.
VHDL supports the following Miscellaneous Operators:
Note: Operators are evaluated in order to their precedence. (i.e., highest to lowest)
Structural Modelling?
Purpose of Structural Modeling:
Useful for modeling complex systems where each component can be a separate
module.
Reflects the actual hardware layout, making it easier to visualize and implement.
component component_name
end component;
Begin
Key Components:
Important Notes: