Vlsi Ect
Vlsi Ect
byAICTE
-New Delhi Permanently Affiliated to JNTUK,SBTET Ranked as "A" Grade by Govt.o
Internship Report On
VERY LARGE SCALE INTEGRATION
By
MUTYA PAVAN PHANI SAI VISWESWARA SANDEEP
(22K61A1435)
Bachelor of Engineering
In
APLMS-SKILLDZIRE
FROM
0
1
DEPARTMENT OF ELECTRONICS & COMMUNICATION TECHNOLOGY
CERTIFICATE
This is to certify that the internship work entitled “VERY LARGE SCALE
INTEGRATION ”, APLMS-SKILLDZIRE (03-05-2024 to 03-07-2024)” is being
submitted by MUTYA PAVAN PHANI SAI VISWESWARA
SANDEEP(22K61A1435) in partial fulfillment for the award of Degree of
2
ACKNOWLEDGEMENT
I take immense pleasure to express my deep sense of gratitude to our beloved Mr.N.Subbarayudu,
internship coordinator for his valuable suggestions and rare insights ,constant encouragement, and
inspiration throughout the internship work.
I express my deep sense of gratitude to our beloved Principal, Dr. Mohammed Ismail, for his
valuable guidance and for permitting us to carry out this internship.
I express my deep sense of gratitude to Dr. P.N. Malleswari, Head of the Department for the valuable
guidance and suggestions, keen interest shown and thorough encouragement extended throughout the period
of internship work.
I am grateful to my internship coordinator and thanks to all teaching and nonteaching staff members
who contributed for the successful completion of our internship work.
With Gratitude
MUTYA PAVAN PHANI SAI VISWESWARA SANDEEP
22K61A1435
3
DECLARATION
I MUTYA PAVAN PHANI SAI VISWESWRA SANDEEP, registration number 22K61A1435, student Of
Electronics and Communication Technology at Sasi Institute of Technology & Engineering, Tadepalligudem
hereby declare that the Summer Training Report entitled “APLMS-SKILLDZIRE”is an authentic
record of my own work as requirements of Industrial Training during the period from 01/05/24 to 30 /06/24. I
obtained the knowledge of industry recognized cybersecurity and network security concepts as well as various
cutting-edge advancements across all Palo Alto Networks technologies. through the selfless efforts of the
Employee arranged to me by the Organisation. A Training Report was made on the same and the suggestions
given by the faculty were duly incorporated.
M.P.P.S.V. SANDEEP
22K61A1435
4
Vision of the Institute:
Aspire to be a leading institute in professional education by creating technocrats to propel
societal transformations through inventions and innovations.
1. To impart technology integrated active learning environments that nurtures technical & life
skills.
2. To enhance scientific temper through active research leading to innovations & sustainable
environment.
To equip students with technical expertise needed to make a significant contribution in emerging
trends that propel societal transformation in Electronics and Communication Technologies.
1. To provide a dynamic learning environment that equips students with the technical expertise
required to make meaningful contributions in the field of Electronics and Communication
Technologies.
2. To nurture critical thinking, foster creativity and teamwork that prepare graduates to meet
the industry needs.
3. To inculcate among students a sense of integrity and highest level of professionalism fortified
with ethical values.
PEO1: Apply knowledge gained to comprehend engineering principles in the field of Electronics
and
Communication Technology.
PEO2: Able to pursue higher education and excel in research to provide solutions in
emerging technological trends.
5
PEO3: To apply life long learning to solve societal problems with the highest level of intensification.
PSO.2 Graduates will able to mathematically model, simulate and develop prototypes using
modern simulators.
PROGRAM OUTCOMES
PO1 Engineering Knowledge PO6 Engineer & Society PO11 Project Mgt. & Finance
PO2 Problem Analysis PO7 Environment & PO12 Life Long Learning
Sustainability
6
INDEX
CONTENT
PO’S
PSO’S
LIST OF FIGURES
7
21.
4.4 VHDL Design Units 62-63
22.
4.5 Key concept on Dataflow Model 63-67
23. 4.6 Key concept of Behavioral Model 67-72
CONCLUSION 76-77
8
List of Figures
9
2.10 Block diagram of Carry look A Header 23
10
3.5 SR latch 38
3.10 T-FlipFlop 42
11
Chapter-I
Introduction to VLSI Design
VLSI (Very-Large-Scale Integration) refers to the process of creating integrated circuits (ICs)
by combining thousands or even millions of transistors onto a single chip. This technology has
revolutionized electronics, making possible the creation of powerful, compact, and energy-efficient
devices that form the backbone of modern computing systems, mobile phones, digital cameras, and
more.
VLSI design encompasses a wide range of topics, from the basic principles of semiconductor devices
to the intricate details of chip design, fabrication, and testing. Here's a general overview of VLSI
design:
12
1.2 Key Components of VLSI Design
Transistor: The fundamental building block in VLSI circuits. The most common types of transistors
used in VLSI are MOSFETs (Metal-Oxide-Semiconductor Field-Effect Transistors). These
transistors act as switches and can perform logical operations in digital circuits.
Logic Gates: These are fundamental units in digital circuits, performing basic logical functions
like AND, OR, NOT, NAND, and XOR. A large number of logic gates are combined to form
complex digital circuits in VLSI designs.
Interconnects: The metal wiring that connects different transistors and components on a chip. The
design of interconnects is critical to ensuring that signals travel correctly and efficiently between
different parts of the circuit.
Memory Elements: In VLSI systems, memory blocks (such as SRAM, DRAM, and Flash memory)
are used to store data. Designing memory structures is a key aspect of VLSI.
Specification: This is the first step where the desired functionality of the system is defined. It
involves setting the performance requirements, power consumption limits, and other operational
13
constraints.
Architecture Design: Here, the high-level architecture of the system is developed. This could include
defining the datapath, control logic, and overall structure of the chip.
Logic Design: In this stage, the functional units (such as logic gates) are designed to implement the
required operations. The design is typically described using a hardware description language (HDL) like
Verilog or VHDL.
Circuit Design: This step involves designing the actual electronic circuits that implement the logic
gates and other components. The circuit design focuses on transistor-level details and is usually
optimized for speed, area, and power consumption.
Physical Design: This is the stage where the layout of the chip is created. It involves placing the
components on the chip and routing the interconnects. The goal is to ensure that the design meets the
performance and size requirements while minimizing delays and power loss.
Verification and Testing: Before manufacturing, the design is simulated and verified to ensure it
functions correctly. Various forms of testing, such as functional simulation, timing analysis, and
physical verification, are performed to check for errors or inefficiencies.
Fabrication: Once the design is verified, the chip is sent for manufacturing in a semiconductor foundry.
The fabrication process involves creating the chip by etching patterns onto silicon wafers.
Packaging and Testing: After fabrication, the chip is packaged into a physical form and tested
for performance, reliability, and yield.
14
1.4 Types of VLSI Designs
Digital VLSI Design: This involves designing circuits for digital systems, including microprocessors,
memory systems, and application-specific integrated circuits (ASICs). Digital VLSI circuits use binary
signals (0s and 1s) to perform logical operations.
Analog VLSI Design: Involves the design of circuits that process continuous signals, such as amplifiers,
voltage regulators, and oscillators. Analog VLSI is used in areas like communication systems, sensors,
and power management.
Mixed-Signal VLSI Design: Combines both digital and analog circuits on the same chip. This type of
design is used in systems that require interaction between digital processing and analog signals, such as
data converters (ADC, DAC) and RF circuits.
Manufacturing Variability: Variations in the manufacturing process can lead to defects or performance issues in the
final chip. VLSI designers must account for these variations during the design phase.
15
1.6 Applications of VLSI Design
Consumer Electronics: VLSI technology is used in almost every modern electronic device, including
smartphones, laptops, and wearable devices.
Automotive Electronics: VLSI chips are used in automotive systems for safety features (e.g., airbags,
ABS), infotainment, and autonomous driving systems.
Healthcare: VLSI is employed in medical devices like imaging systems, pacemakers, and diagnostic
equipment.
Telecommunications: VLSI is used in network routers, modems, and mobile communication devices.
Computing: VLSI technology underpins processors, GPUs, memory chips, and storage devices used in
everything from personal computers to supercomputers.
16
Chapter 2:- DIGITAL LOGIC DESIGN
Digital logic design is a system in electrical and computer engineering that uses simple
number values to produce input and output operations.
Digital circuit design is based on Boolean Algebra, attributes, postulates, theorems and these allow
minimization and manipulation of logic gates.
● If some outputs aren’t used in the rest of the circuit optimizing digital circuits
17
Fig.2.1: truth table for NAND gate
18
Combinational circuit is a circuit in which we combine the different gates in the circuit, for
example encoder, decoder, multiplexer and demultiplexer.
some of the characteristics of combinational circuits are following:
● The output of combinational circuit at any instant of time, depends only on the levels present
at input terminals.
● The combinational circuit do not use any memory. The previous state of input does not
have any effect on the present state of the circuit.
● A combinational circuit can have an n number of inputs and m number of outputs.
19
Chapter 3:- COMBINATIONAL CIRCUITS
Half Adder:
● A Half Adder is a combinational circuit with two binary inputs (augends and addend bits and
two binary outputs (sum and carry bits.) It adds the two inputs (A and B) and produces the
sum (S) and the carry (C) bits.
20
Fig.3.3: Truth Table
Sum=A′B+AB′=A B
Carry=AB
Full Adder:
The full-adder adds the bits A and B and the carry from the previous column called the carry- in Cin
and outputs the sum bit S and the carry bit called the carry out Cout.
Half Subtractor:
21
A Half subtractor is a combinational circuit with two inputs A and B and two outputs difference(d) and
barrow(b).
The full subtractor perform subtraction of three input bits: the minuend, subtrahend ,
and borrow in and generates two output bits difference and borrow out .
22
PARALLEL ADDER AND SUBTRACTOR
A binary parallel adder is a digital circuit that adds two binary numbers in parallel form and produces
the arithmetic sum of those numbers in parallel form
23
CARRY LOOK-A- HEAD ADDER
MAGNITUDE COMPARATOR
Magnitude comparator takes two numbers as input in binary form and determines whether one
number is greater than, less than or equal to the other number.
24
Fig.3.14: Truth table of Magnitude comparator
25
Fig.3.17: Truth table
BCD ADDER
perform the addition of two decimal digits in BCD, together with an input carry from a previous stage.
When the sum is 9 or less, the sum is in proper BCD form and no correction is needed. When the sum
of two digits is greater than 9, a correction of 0110 should be added to that sum, to produce the
proper BCD result. This will produce a carry to be added to the next decimal position.
26
Fig.3.19: Logic diagram
3.4 DECODER
● A binary decoder is a combinational logic circuit that converts binary information from the n
coded inputs to a maximum of 2n unique outputs.
● We have following types of decoders 2x4,3x8,4x16…
Fig:3.21:Truth table
27
DECODERS
3.5 ENCODERS
● An Encoder is a combinational circuit that performs the reverse operation of
Decoder. It has maximum of 2n input lines and ‘n’ output lines.
● It will produce a binary code equivalent to the input, which is activeHigh.
28
Fig.3.23:block diagram of 4x2 encoder
Fig3.24:Truth Table
Fig3.25:Logic Diagram
3.6 Priority encoder:
A 4 to 2 priority encoder has four inputs Y3, Y2, Y1 & Y0 and two outputs A1 & A0.
Here, the input, Y3 has the highest priority, whereas the input, Y 0 has the lowest
priority.
29
Fig 3.26: Truth table for Priority encoder
3.7 MULTIPLEXERS
● Multiplexer is a combinational circuit that has maximum of 2n data inputs, ‘n’ selection lines and
single output line. One of these data inputs will be connected to the output based on the values of
selection lines.
● We have different types of multiplexers 2x1,4x1,8x1,16x1,32x1……
30
Fig 3.28: Logic diagram of 4x1 multiplexer
● demultiplexer of 2n outputs has n select lines, which are used to select which output line to
send the input.
33
Fig.3.33:block diagram and Truth table of 1x4 demux
Boolean functions for each output as
34
K-map simplification :
35
CHAPTER:4
SEQUENTIAL CIRCUITS
● State table: output for all combinations of input and previous states(Truth Table)
●
Fig.4.2 SR flip flop
● Sequential circuit receives the binary information from external inputs and with the present
state of the storage
36
elements together determine the binary value of the outputs.
● The output in a sequential circuit are a function of not only the inputs, but also the present
state of the storage elements.
● The next state of the storage elements is also a function of external inputs and the present state.
● There are two types of sequential circuits:
● Synchronous sequential circuits
It is a system whose behaviour can be defined from the knowledge of its signals at discrete
instants of time.
It depends upon the input signals at any instant of time and the order in which the input changes.
4.1 SEQUENTIAL LOGIC CIRCUITS
● Sequential logic circuit consists of a combinational circuit with storage elements
connected as feedback to combinational circuit
● output depends on the sequence of inputs (past and present)
● output depends on stored information (state) plus input so a given input might produce
different outputs, depending on the stored information
● example: ticket counter
● advances when you push the button output depends on previous state
37
useful for building ―memoryǁ elements and ―state machines
● Storage elements in a digital circuit can maintain a binary state Indefinitely, until directed by
an input signal to switch states. The major difference among various storage elements are the
number of input they posses and the manner in which the inputs affect the binary state. There
are two types of storage elements
1. Latc hes
2. FlipFlops
● Storage elements that operate with signal level are referred as latch and those controlled by a
clock transition are referred as flipflops.
LATCHES:
● A latch has a feedback path, so information can be retained by the device. Therefore, latches
can be memory devices, and can store one bit of data for as long as the device is powered. As
the name suggests, latches are used to "latch onto" information and hold in place. Latches are
very similar to flip-flops, but are not synchronous devices, and do not operate on clock edges
as flip-flops do. Latch is a level sensitive device.
● Latch is a monostable multivibrator
FLIP FLOPS:
● A flip-flop is a circuit that has two stable states and can be used to store state information. A
flip-flop is a bistable multivibrator. The circuit can be made to change state by signals applied
38
to one or more control inputs and will have one or two outputs. It is the basic storage element
in sequential logic. Flip-flops and latches are fundamental building blocks of digital
electronics systems used in computers, communications, and many other types of systems.
Flipflop is a edge sensitive device.
SR LATCH:
● An SR latch (Set/Reset) is an asynchronous device: it works independently of control signals
and relies only on the state of the S and R inputs. In the image we can see that an SR flip-flop
can be created with two NOR gates that have a cross-feedback loop. SR latches can also be
made from NAND gates, but the inputs are swapped and negated. In this case, it is sometimes
called an SR latch.
Fig.4.4: SR latch
● R is used to ―resetǁ or ―clearǁ the element – set it to zero. S is used to ―setǁ the element –set
it to one.
● quiescentǁ state -- holds its previous value. note: if a is 1, b is 0, and vice versa
GATED D-LATCH:
● The D latch (D for "data") or transparent latch is a simple extension of the gated SR latch that
removes the possibility of invalid input states. Two inputs: D (data) and WE (write enable)
● binary data. The stored data can be changed by applying varying inputs. Flip-flops and latches
are fundamental building blocks of digital electronics systems used in computers,
communications, and many other types of systems. Flip-flops and latches are used as data
storage elements. There are 4 types of flipflops.
Flip-Flops:
● RS flip flop
● JK flip flop
● D flip flop
● T flip flop
Applications:
● These are the various types of flip-flops being used in digital electronic circuits and the
applications like Counters, Frequency Dividers, Shift Registers, Storage Registers.
● State transition occurs at the rising edge or falling edge of the clock pulse respond to the
input only during these periods Edge-triggered Flip Flops (positive) respond to the input only
at this time.
SR Flip-Flop :
40
―SETǁ the device (meaning the output = ―1ǁ), and is labelled S and one which will
―RESETǁ the device (meaning the output = ―0ǁ), labelled R.The reset input resets the flip-
flop back to its original state with an output Q that will be either at a logic level ―1ǁ or logic
―0ǁ depending uponthis set/reset condition. A basic NAND gate SR flip-flop circuit provides
feedback from both of its outputs back to its opposing inputs and is commonly used in
memory circuits to store a single data bit. Then the SR flip-flop actually has three inputs, Set,
Reset and its current output Q relating to its current state or history.
● if Set or Reset change state while the enable (EN) input is high the correct latchinaction may
not occur
● Then to overcome these two fundamental design problems with the SR flip-flop design, the
JK flip Flop was developed by the scientist name Jack Kirby. The JK flip flop is basically a
gated SR flip-flop with the addition of a clock input circuitry that prevents the illegal or
invalid output condition that can occur when both inputs S and Rare equal to logic level ―1ǁ.
Due to this additional clocked input, a JK flip-flop has four possible input combinations,
● ―logic 1ǁ, ―logic 0ǁ, ―no changeǁ and ―toggleǁ. The symbol for a JK flip flop is similar to
that of an SR Bistable Latch as seen in the previous tutorial except for the addition of a clock
input.
41
● Both the S and the R inputs of the previous SR bistable have now been replaced by two inputs
called the J and K inputs, respectively after its inventor Jack Kilby. Then this equates to: J = S
and K = R.
● The two 2-input AND gates of the gated SR bistable have now been replaced by two 3-input
NAND gates with the third input of each gate connected to the outputs at Q and
● Q. This cross coupling of the SR flip-flop allows the previously invalid condition of S = ―1ǁ
and R = ―1ǁ state to be used to produce a ―toggle actionǁ as the two inputs are now
interlocked.
● If the circuit is now ―SETǁ the J input is inhibited by the ―0ǁ status of Q through the lower
NAND gate. If the circuit is ―RESETǁ the K input is inhibited by the ―0ǁ status of Q
through the upper NAND gate. As Q and Q are always different we can use them to control
the input. When both inputs J and K are equal to logic ―1ǁ, the JK flip floptoggles as shown
in the following truth table.
○
Fig.4.8:JK flip flop function
The Truth Table for the JK Function :
● Then the JK flip-flop is basically an SR flip flop with feedback which enables only one of its
two input terminals, either SET or RESET to be active at any one time thereby eliminating
the invalid condition seen previously in the SR flip flop circuit. Also when both the J and
● The K inputs are at logic level ―1ǁ at the same time, and the clock input is pulsed ―HIGHǁ,
the circuit will ―toggleǁ
● This results in the JK flip flop acting more like a T-type toggle flip-flop when both terminals
are―HIGHǁ.
42
Fig.4.9: Truth table of JK function
T - FLIP FLOP:
○ We can construct a T flip flop by any of the following methods. Connecting the
output feedback to the input, in SR flip flop.
○ Connecting the XOR of T input and Q PREVIOUS output to the Data input, in D flip
flop. Hard – wiring the J and K inputs together and connecting it to T input, in JK flip
– flop.
43
Fig.4.10: T-flip flop function
● T flip – flop is an edge triggered device i.e. the low to high or high to low transitions on a
clock signal of narrow triggers that is provided as input will cause the change in output state
of flip – flop. T flip – flop is an edge triggered device.
44
● If the output Q = 0, then the upper NAND is in enable state and lower NAND gate is in
disable condition. This allows the trigger to pass the S inputs to make the flip – flop in SET
state i.e. Q = 1.
● If the output Q = 1, then the upper NAND is in disable state and lower NAND gate is in
enable condition. This allows the trigger to pass the R inputs to make the flip – flop in RESET
state i.e. Q =0. In simple terms, the operation of the T flip – flop is When the T input is low,
then the next state of the T flip flop is the same as the present state.
● T = 0 and present state = 0 then the next state = 0 T = 1 and present state = 1 then the next
state = 1
● When the T input is high and during the positive transition of the clock signal, the next state
of the T flip – flop is the inverse of the present state. T = 1 and present state = 0 then the next
state = 1 T= 1 and present state = 1 then the next state = 0
Applications :
● Frequency Division Circuits.
● T flip – flop is an edge triggered device i.e. the low to high or high to low transitions on a
clock signal of narrow triggers that is provided as input will cause the change in output state
of flip – flop. T flip – flop is an edge triggered device.
Truth Table of T flip – flop
45
● If the output Q = 1, then the upper NAND is in disable state and lower NAND gate is in
enable condition. This allows the trigger to pass the R inputs to make the flip – flop in RESET
state i.e. Q =0. In simple terms, the operation of the T flip – flop is When the T input is low,
then the next sate of the T flip flop is same as the present state.
● state. T = 1 and present state = 0 then the next state = 1 T= 1 and pT = 0 and present state
= 0 then the next state = 0 T = 1 and present state = 1 then the next state = 1
● When the T input is high and during the positive transition of the clock signal, the next state
of the T flip – flop is the inverse of present resent state = 1 then the next state = 0
Applications:
● Frequency Division Circuits.
● 2 – Bit Parallel Load Registers.
D FLIP FLOP:
● The D-type flip-flop is a modified Set-Reset flip-flop with the addition of an inverter to
prevent the S and R inputs from being at the same logic level One of the main disadvantages
of the basic SR NAND Gate Bistable circuit is that the indeterminate input condition of SET
= ―0ǁ and RESET = ―0ǁ is forbidden.
● his state will force both outputs to be at logic ―1ǁ, overriding the feedback latching action
and whichever input goes to logic level ―1ǁ first will lose control, while the other input still
at logic―0ǁ controls the resulting state of the latch.
● But in order to prevent this from happening an inverter can be connected between the ―SETǁ
and the ―RESETǁ inputs to produce another type of flip flop circuit known as a Data Latch,
Delay flip flop, D-type Bistable, D-type Flip Flop or just simply a D Flip Flop as it is more
generally called. The D Flip Flop is by far the most important of the clocked flip-flops as it
ensures that inputs S and Rare never equal to one at the same time. The D-type flip-flops are
constructed from a gated SR flip- flop with an inverter added between the S and the R inputs
to allow for a single D (data) input.
● Then this single data input, labelled ―Dǁ and is used in place of the ―Setǁ signal, and the
inverter is used to generate the complementary ―Resetǁ input thereby making a level-
sensitive D-type flip-flop from a level-sensitive SR-latch as now S = D and R = not D as
shown.
46
Fig.4.13: D-flip flop block diagram
● We remember that a simple SR flip-flop requires two inputs, one to ―SETǁ the output and
one to ―RESETǁ the output. By connecting an inverter (NOT gate) to the SR flip-flop we can
―SETǁ and ―RESETǁ the flip-flop using just one input as now the two input signals are
complements of each other. This complement avoids the ambiguity inherent in the SR latch
when both inputs are LOW, since that state is no longer possible. Thus this single input is
called the ―DATAǁ input. If this data input is held HIGH the flip flop would be ―SETǁ and
when it is LOW the flip flop would change and become ―RESETǁ. However, this would be
pointless since the output of the flip flop would always change on every pulse applied to this
data input.
● To avoid this an additional input called the ―CLOCKǁ or ―ENABLEǁ input is used to
isolate the data input from the flip flop’s latching circuitry after the desired data has been
stored. The effect is that D input condition is only copied to the output Q when the clock input
is active. This then forms the basis of another sequential device called a D Flip Flop.
● The ―D flip flopǁ will store and output whatever logic level is applied to its data terminal so
long as the clock input is HIGH. Once the clock input goes LOW the ―setǁ and ―resetǁ inputs
of the flip-flop are both held at logic level ―1ǁ so it will not change state and store whatever
data was present on its output before the clock transition occurred. In otherwords the output
is―latched ǁat either logic ―0ǁ or logic ―1ǁ.
47
fig.4.14:Truth Table for the D-type Flip Flop
MASTER SLAVE FLIPFLOP
● Master-slave flip flop is designed using two separate flip flops. Out of these, one acts as the
master and the other as a slave. The figure of a master-slave J-K flip flop is shown below.
○
Fig.4.16: master -slave JK flip flop
49
○
50
○
51
○
SHIFT REGISTERS
● Shift registers are a type of sequential logic circuit, mainly for storage of digital data. They
are a group of flip-flops connected in a chain so that the output from one flip-flop becomes
the input of the next flip-flop. Most of the registers possess no characteristic internal sequence
of states. All the flip-flops are driven by a common clock, and all are set or reset
simultaneously. Shift registers are divided into two types.
52
Uni directional shift registers :
1. Serial in – serial out shift register
2. Right shift
Serial in – Serial out shift register:
● A basic four-bit shift register can be constructed using four D flip-flops, as shown below. The
operation of the circuit is as follows. The register is first cleared, forcing all four outputs to
zero. The input data is then applied sequentially to the D input of the first flip-flop on the left
(FF0). During each clock pulse, one bit is transmitted from left to right. Assume a data word
to be 1001. The least significant bit of the data has to be shifted through the register from
FF0.
● In order to get the data out of the register, they must be shifted out serially. This can be
done destructively or non-destructively. For destructive readout, the original data is lost and
at the end of the read cycle, all flip-flops are reset to zero.
53
Serial in – Parallel out shift register:
● The difference is the way in which the data bits are taken out of the register. Once the data
are stored, each bit appears on its respective output line, and all bits are available
simultaneously.
● In the animation below, we can see how the four-bit binary number 1001 is shifted to the Q
outputs of the register.
Parallel in – serial out shift register:
● A four-bit parallel in - serial out shift register is shown below. The circuit uses D flip-
flops and NAND gates for entering data to the register.
54
Fig.4.21: Block diagram of parallel in – serial out shift register
● D0, D1, D2 and D3 are the parallel inputs, where D0 is the most significant bit and D3 is the
least significant bit. To write data in, the mode control line is taken to LOW and the data is
clocked in. The data can be shifted when the mode control line is HIGH as SHIFT is active
high. The register performs right shift operation on the application of a clock pulse, as shown
in the animation below.
55
Fig.4.22: Block diagram of parallel in – parallel out shift register
● The D's are the parallel inputs and the Q's are the parallel outputs. Once the register is
clocked, all the data at the D inputs appear at the corresponding Q outputs simultaneously.
Bidirectional Shift Registers:
● The registers discussed so far involved only right shift operations. Each right shift operation
has the effect of successively dividing the binary number by two. If the operation is reversed
(left shift), this has the effect of multiplying the number by two. With suitable gating
arrangement a serial shift register can perform both operations.
● A bidirectional, or reversible, shift register is one in which the data can be shift either left or
right. A four-bit bidirectional shift register using D flip-flops is shown below
56
●
● Here a set of NAND gates are configured as OR gates to select data inputs from the right or
left adjacent bi table, as selected by the LEFT/RIGHT control line.
● The animation below performs right shift four times, then left shift four times. Notice the
order of the four output bits are not the same as the order of the original four input bits.
PROGRAMMABLE LOGIC ARRAY
● A programmable logic array (PLA) is a type of logic device that can be programmed to
implement various kinds of combinational logic circuits.
○ Both the true and complement of the functions are simplified in sum of products.
58
○ We can find the same terms from the group terms of the functions of F1, F1’,F2 and F2’
which will make the minimum terms.
○ F1 = (AB +AC + BC)’ F2 = AB + AC + A’B’C’
○
Fig.4.27:BlockdiagramofPLAProgramming
59
CHAPTER 5: VHDL
60
○ Character: A single character (e.g., 'A', '1').
● Access Types: Similar to pointers in other programming languages, access types point to a
location in memory (used in VHDL for dynamic memory allocation).
● Array Types: Collections of elements of the same type.
● Record Types: Similar to structures in C/C++, used to group different types of data
together (e.g., a person record with name, age, and height).
● Access/Pointer Types: For dynamic allocation of memory, akin to pointers in C/C++.
● Enumerated Types: A set of named values (e.g., type state is (idle, busy, done)).
● Floating-Point Types: For representing real numbers with a fractional part (e.g., real).
Levels of Abstraction in VHDL
VHDL can describe hardware at different levels of abstraction, which can be categorized as follows:
● Behavioral Level: Describes the functionality of the system without specifying how it's
implemented.
● Register-Transfer Level (RTL): Describes data flow between registers and the operations
on that data (often used for synthesis).
○ Example: Describing how data is transferred between flip-flops and the logical
operations between them.
● Structural Level: Describes the system in terms of components and how they are connected
(similar to wiring a circuit).
○ Example: Instantiating gates, flip-flops, and other modules, and specifying their
interconnections.
● Gate Level: Describes the circuit in terms of logic gates (AND, OR, NOT, etc.), often used
for low-level optimizations or detailed simulation.
VHDL Design Units
VHDL uses several types of design units to describe hardware:
● Entity: Defines the interface of a module (e.g., input and output ports).
61
● Architecture: Describes the internal implementation of a module, which can include both
behavior and structural elements.
● Configuration: Specifies which architecture to use with a given entity (useful when there are
multiple architectural options).
● Package: Contains reusable declarations, such as data types, constants, and subprograms
(functions and procedures).
● Process: Describes sequential behavior within an architecture, executed when certain
conditions or signals change.
These different types of VHDL help in building a comprehensive and structured design flow,
ranging from high-level functional descriptions to detailed gate-level designs suitable for hardware
synthesis.
In VHDL, dataflow refers to a style of modeling where the behavior of a system is described in
terms of how data flows between components, rather than explicitly specifying how operations are
performed step-by-step (as in behavioral modeling). Dataflow modeling captures the relationships
between inputs, outputs, and internal signals through continuous assignments that describe how data
is transferred or transformed.
Key Concepts in Dataflow Modeling
1. Signal Assignment: The core of dataflow modeling is the use of signal assignments, which
describe how signals change in response to other signals.
○ Concurrent Signal Assignment: In VHDL, signal assignments are executed
concurrently. This is
unlike a sequential programming language where instructions are executed one after
the other. In dataflow modeling, the assignment of values to signals happens based on
the logic and the data flowing through the circuit.
○ Assignments are Continuous: Once an assignment is made, the value of a signal is
automatically updated whenever its input signals change, as long as the assignment
expression reflects that change.
Syntax of Signal Assignment in Dataflow
vhdl
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity and_gate is
Port (A : in
STD_LOGIC; B : in
STD_LOGIC;
Y : out STD_LOGIC );
end and_gate;
architecture dataflow of and_gate
is begin
Y <= A AND B; -- Signal assignment, dataflow
description end dataflow;
● The Y <= A AND B; statement describes a continuous dataflow where the signal Y is
continuously assigned the value of A AND B.
Copy code
library
IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity adder is
Port ( A : in STD_LOGIC_VECTOR(3
downto 0); B : in STD_LOGIC_VECTOR(3
downto 0);
63
Sum : out STD_LOGIC_VECTOR(3 downto
0); Cout : out STD_LOGIC );
end adder;
architecture dataflow of adder
is begin
Sum <= A + B;
Cout <= '1' when (A(3) and B(3)) = '1' else '0'; -- Dataflow for
carry-out end dataflow;
Here:
● The sum of A and B is assigned to the Sum signal directly (Sum <= A + B;).
● The carry-out signal Cout is determined based on the most significant bits of A and B (a
simple check for a carry from the most significant bit).
Advantages of Dataflow Modeling
● Conciseness: Dataflow modeling allows designers to describe complex systems in a more
concise and high-level manner, as you don't need to specify detailed sequential operations.
● Clear Representation of Logic: It is especially useful when modeling combinational logic,
as it directly represents how data flows through the system.
● Parallel Execution: Since VHDL assignments are concurrent, dataflow naturally captures the
parallel nature of hardware circuits.
● Structural Modeling: Involves describing the components of a system and how they are
interconnected, essentially wiring gates or modules together.
Dataflow vs. Behavioral
5.2 Behavioral Adder (using a process):
vhdl
architecture behavioral of adder is
begin
process(A,
B) begin
Sum <= A + B;
64
Cout <= (others => '0');
Sum <= A + B;
Cout <= '1' when (A(3) and B(3)) = '1' else
'0'; end dataflow;
In VHDL, dataflow modeling focuses on how data flows through the system and how signals
are continuously updated based on logical expressions. It is particularly useful for modeling
combinational logic in a concise and parallel manner. By using concurrent signal assignments,
dataflow modeling captures the high-level relationships between inputs and outputs without
specifying detailed sequential behavior.
Behavioral modeling in VHDL is a way of describing how a system behaves or what it does
without explicitly specifying how it is physically implemented (such as specifying gates, flip-flops,
or wires). Instead, you focus on what the system should do its logic or functionality using high-level
constructs like if-else statements, case statements, loops, and processes.
In behavioral VHDL, the emphasis is on the functionality of the circuit rather than its structure
(which is the focus of structural modeling). This approach is particularly useful when designing
complex systems because it allows you to describe high-level functionality with fewer details about
the underlying hardware.
Key Concepts of Behavioral Modeling in VHDL
1. Processes: A process defines a block of code that executes sequentially when certain
conditions are met. Within a process, you can describe logic using if, case, and loop
statements.
2. Sequential Statements: In a process, statements are executed in the order they appear.
These include conditionals (if, case), loops (for, while), assignments (:=, <=), and more.
3. Signals and Variables:
○ Signals: Used to represent values that persist across multiple simulation cycles and are
used for communication between processes (similar to wires in hardware).
65
○ Variables: Temporary storage used within a process. They update immediately upon
assignment and have local scope to the process in which they are declared.
4. Clocked vs. Unlocked Processes:
○ Clocked processes are typically used to describe sequential logic (like flip-flops or
registers).
2. Architecture: Describes the behavior, which can include processes, conditionals, and
other high-level constructs.
begin
-- Add the two 2-bit inputs
Sum <= A + B; -- Add the two vectors
66
Cout <= '1' when (A(1) and B(1)) = '1' else '0'; -- Carry out
logic end process;
end behavioral;
● The process(A, B) ensures that the logic inside the process is executed whenever either A or
B changes.
● Inside the process, we use a simple arithmetic operation (A + B) for the sum and a conditional
operation for the carry-out (Cout).
● The signal assignment Sum <= A + B; means the sum of A and B is continuously assigned to
Sum.
● The Cout is set to '1' if both the most significant bits of A and B are 1 (indicating a carry),
otherwise '0'.
4-Bit Synchronous Counter (Clocked Process)
A 4-bit synchronous counter is a good example of a clocked process in VHDL. A counter updates its
value on each clock cycle, so the process is sensitive to the clock signal.
Entity Declaration
vhdl
Copy code
library
IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity counter is
Port ( clk : in
STD_LOGIC; reset : in
STD_LOGIC;
count : out STD_LOGIC_VECTOR(3 downto
0) ); end counter;
Architecture (Behavioral)
vhdl
Copy code
architecture behavioral of counter is
signal cnt : STD_LOGIC_VECTOR(3 downto 0) := "0000"; -- Internal signal for the counter
begin
process(clk, reset) begin
67
if reset = '1' then
cnt <= "0000"; -- Reset the counter
to 0 elsif rising_edge(clk) then
cnt <= cnt + 1; -- Increment the counter on the rising edge of the
clock end if;
end process;
count <= cnt; -- Output the counter
value end behavioral;
● The counter is described using a clocked process: process (clk, reset). The process triggers on
any change to the clk or reset signals.
● Inside the process, the counter is reset to zero when reset = '1', or the counter is incremented
by 1 on each rising edge of the clock (rising_edge(clk)).
● The internal signal cnt holds the counter value, and the value is assigned to the output signal
count at the end of the architecture.
A 2-to-1 Multiplexer (Using Conditional Statements)
This example demonstrates a multiplexer using if-else conditionals in behavioral VHDL. Entity
Declaration.
vhdl
Copy code
library
IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity mux2to1 is
Port ( A : in
STD_LOGIC; B : in
STD_LOGIC;
sel : in
STD_LOGIC; Y :
out STD_LOGIC );
end mux2to1;
Architecture
(Behavioral) vhdl
Copy code
architecture behavioral of mux2to1
is begin
68
process(A, B,
sel) begin
if sel = '0' then
Y <= A; -- Select A if sel is
0 else
Y <= B; -- Select B if sel is
1 end if;
Advantages of Behavioral Modeling
● High-Level Abstraction: You focus on what the system does (its functionality) rather
than its low-level structure, making the design process quicker and more manageable.
● Flexibility: It’s easier to modify the functionality of the system without worrying
about specific implementation details.
● Compact Code: Behavioral code is usually more concise and easier to understand compared
to structural VHDL, especially for complex systems.
Disadvantages of Behavioral Modeling
● Less Control Over Hardware: Since you don't explicitly define the hardware structure, the
synthesizer decides how to implement the logic, which may not always be optimal for a
specific hardware target (e.g., FPGA or ASIC).
● No Explicit Timing or Structure: It may not provide as much control over the specific timing
of signals and hardware implementation details, which may be necessary for some
applications (like timing-critical designs).
Behavioral modeling in VHDL focuses on describing what a system does rather than how it does
it. By using constructs like if, case, and process, you can describe complex functionality without
delving into the low-level hardware implementation. It provides a high-level, concise way of
modeling systems and is typically used for combinational or sequential logic where the exact
hardware structure is not the primary concern.
5.3 Structural Modeling
The Structural Modeling is very similar to the schematic entry, in this case implemented as text
instead of graphically. As digital designs become more complex, it becomes less likely that
we can use only one of the three-implementation styles seen before. The result is the use of the
hybrid VHDL model. VHDL Syntax Coding Style: Behavioral, Data Flow, Structural, Hybrid.
The term structural modeling is the terminology that VHDL uses for the modular design:
if you are designing a complex project, you should split in two or more simple design in order to
easy handle the complexity.
69
The benefits of modular design in VHDL are similar to the benefits that modular design or object-
oriented design provides for higher-level computer languages.
VHDL Structural Modeling Coding Style
Modular designs allow you to pack low-level functionality into modules.
This approach allows a design reuse without the need to reinvent and re-test the wheel every time.
Structural Modeling: Hierarchical approach
Structural Modeling Coding Style: Hierarchical Approach
Next step is the hierarchical approach where you can extend beyond the structural coding modeling.
In this case in the TOP Level design, are instantiated a
● design1
○ sub-design 1
○ sub-design 2
● design2
○ sub-design 3
○ sub-design 4
Structural architecture declaration
In order to instance a component inside a design, you shall:
● Delete keyword “is” . If you use VHDL 1993 standard or above you can leave the keyword
“is”
● Replace the entity name after the keyword “end” with the keyword “component”.
70
Component Instantiation
● Copy component declaration in the architecture concurrent area
● Replace the keyword “component” with the instance name and add the keyword “map”
after the generic and port clause.
● Replace the comma with the two symbols equal greater than
p
o
r
t
(
a : i std_
n logi
c;
b : i std_
n logi
71
c;
d : i std_
n logi
c;
e : i std_
n logi
c;
g : o std_logic);
u
t
end and_or;
a => c,
b => f,
In the statement section, we found the component instantiation. Now pay attention to the port
mapping.
● The port a, b and c mapped in the instance u1 are respectively the entity input port a and b,
the internal wire signal c.
● The port a, b and c mapped in the instance u2 are respectively the entity input port d and e,
the internal wire signal f.
The instance u3 has the port a mapped on signal c, input port b on signal f and output port c on entity
output port g. As general rule,
the input/output port of an entity are signal inside the architecture. The input port can be only read,
the output port can be only written.
If you try to read from an output port or try to write to an input port the simulator rises an error and
stops.
73
CONCLUSION
VLSI design is critical for the electronics industry
VLSI technology is a key component in the production of microprocessors, memory chips, and
other ICs. It allows for the creation of smaller, faster, and more powerful devices at a lower cost.
VLSI design is shaping the future of wireless communication
VLSI design is enabling the development of more power-efficient, cost-effective, and highly
integrated wireless devices.
VLSI design requires coding
VLSI designers use a variety of programming languages and tools to create and verify their
designs.
VLSI design involves back-end design steps
Back-end design steps include wafer processing, lithography, etching, ion implantation,
metallization, assembly, and packaging.
74