0% found this document useful (0 votes)
6 views86 pages

Digital System Design Course Overview

The document outlines the course content for Digital System Design (EC661) in the M.Tech - VLSI Systems program, focusing on various aspects of digital system design including data path synthesis, control structures, and memory elements. It covers topics such as combinational and sequential logic design, optimization techniques, and reconfigurable computing architectures. Additionally, it details the implementation of arithmetic operations, memory subsystems, and various types of counters and comparators, along with assessment methodologies for the course.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views86 pages

Digital System Design Course Overview

The document outlines the course content for Digital System Design (EC661) in the M.Tech - VLSI Systems program, focusing on various aspects of digital system design including data path synthesis, control structures, and memory elements. It covers topics such as combinational and sequential logic design, optimization techniques, and reconfigurable computing architectures. Additionally, it details the implementation of arithmetic operations, memory subsystems, and various types of counters and comparators, along with assessment methodologies for the course.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Digital System Design – EC661

[Link] - VLSI SYSTEMS

Dr. SRINIVASULU JOGI


Assistant Professor

DEPARTMENT OF ELECTRONICS AND COMMUNICATION


ENGINEERING
NATIONAL INSTITUTE OF TECHONOLOGY TIRUCHIRAPPALLI
TIRUCHIRAPPALLI-620015
Digital System Design-EC661

Course Content
⚫ Mapping algorithms into Architectures: Data path synthesis, control structures,
critical path and worst case timing analysis. FSM and Hazards.

⚫ Combinational network delay. Power and energy optimization in combinational


logic circuit. Sequential machine design styles. Rules for clocking. Performance
analysis.

⚫ Sequencing static circuits. Circuit design of latches and flip-flops. Static


sequencing element methodology. Sequencing dynamic circuits. Synchronizers.

⚫ Data path and array subsystems: Addition / Subtraction, Comparators, counters,


coding, multiplication and division. SRAM, DRAM, ROM, serial access memory,
context addressable memory.

⚫ Reconfigurable Computing- Fine grain and Coarse grain architectures,


Configuration architectures-Single context, Multi context, partially
reconfigurable, Pipeline reconfigurable, Block Configurable, Parallel processing.
Digital System Design-EC661

Course Content
Digital System Design-EC661

Course Content
Digital System Design-EC661

Course Assessment Methodology


Module 4-Data Path and Array Subsystems

Introduction

⚫ CMOS system design consists of partitioning the system into


subsystems
⚫ Chip functions generally can be divided into the following
categories:
⚫ Datapath operators

⚫ Memory elements

⚫ Control structures

⚫ Special-purpose cells

⚫ Many options exist that make trade-offs between speed, density


programmability, ease of design, and other variables
Module 4-Data Path and Array Subsystems

Data Path Subsystems:


⚫ A data path is a set of functional units that carry out data processing
operations.
⚫ Datapaths, along with a control unit, make up the CPU (central

processing unit) of a computer system.

⚫ Common datapath operations considered are:


⚫ Addition / Subtraction

⚫ Comparators,

⚫ Counters,

⚫ Coding,

⚫ Multiplication.
Module 4-Data Path and Array Subsystems

Implementation of boolean expressions with


CMOS -2-input gate
Module 4-Data Path and Array Subsystems

Data Path Subsystems-Addition


⚫ Addition forms the basis for many processing operations, from
ALUs to address generation to multiplication to filtering.

⚫ As a result, adder circuits that add two binary numbers are of great
interest to digital system designers

⚫ An extensive, almost endless, assortment of adder architectures


serve different speed/power/area requirements.
Module 4-Data Path and Array Subsystems

Data Path Subsystems-Single bit Addition


⚫ The half adder of Fig. adds two single-bit inputs, A and B.
⚫ If multiple adders are to be cascaded, each must be able to receive
the carry-in.
⚫ Such a full adder as shown in Fig has a third input called C or Cin.
Module 4-Data Path and Array Subsystems

Data Path Subsystems-Single bit Addition


⚫ For a full adder, it is sometimes useful to define Generate (G),
Propagate (P), and Kill (K) signals.
⚫ The adder generates a carry when Cout is true independent of Cin,
so G = A · B
Module 4-Data Path and Array Subsystems

Data Path Subsystems-Single bit Addition



Module 4-Data Path and Array Subsystems

Data Path Subsystems-Single bit Addition


⚫ For full adder logic

⚫ The most straightforward approach to designing an adder is with


logic gates.
⚫ The carry gate is also called a majority gate because it produces a 1
if at least two of the three inputs are 1.
Module 4-Data Path and Array Subsystems

Full Adder-Implementation
⚫ Full Adder Implementation
Module 4-Data Path and Array Subsystems

Full Adder-Implementation
⚫ The full adder of above fig employs 32 transistors (6 for the
inverters, 10 for the majority gate, and 16 for the 3-input XOR)

⚫ A more compact design is based on the observation that S can be


factored to reuse the Cout term as follows:

⚫ Such a design is shown below in fig and uses only 28 transistors


Module 4-Data Path and Array Subsystems

Full Adder-Implementation
⚫ Optimized Implementation-gate level
Module 4-Data Path and Array Subsystems

Full Adder-Implementation
⚫ Optimized Implementation-Transistor level
Module 4-Data Path and Array Subsystems

Full Adder-Implementation
⚫ Optimized Implementation-Transistor level
⚫ A more compact design is based on the observation that S can be
factored to reuse the Cout term.
⚫ This uses 28 transistors.
⚫ Note that the pMOS network is identical to the nMOS network
⚫ So the topology is called a mirror adder
Module 4-Data Path and Array Subsystems

Carry Ripple Adder


⚫ An N-bit adder can be constructed by cascading N full adders, as
shown in fig.
⚫ This is called a carry-ripple adder (or ripple-carry adder)
Module 4-Data Path and Array Subsystems

Carry Ripple Adder


⚫ An inverting full adder receiving complementary inputs produces
true outputs.
⚫ Fig. shows a carry ripple adder built from inverting full adders
⚫ Every other stage operates on complementary data
Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ We can generalize these signals to describe whether a group
spanning bits i...j, inclusive, generate a carry or propagate a carry.
⚫ A group of bits generates a carry if its carry-out is true independent
of the carry in; it propagates a carry if its carry-out is true when
there is a carry-in.

Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ Carry Generate and Propagate (for 1-stage RCA)

Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ Carry Generate and Propagate (2-stage RCA)

Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ We can generalize these signals to describe whether a group
spanning bits i...j, inclusive, generate a carry or propagate a carry.
⚫ A group of bits generates a carry if its carry-out is true independent
of the carry in; it propagates a carry if its carry-out is true when
there is a carry-in.

Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ In other words, a group generates a carry if the upper (more
significant) or the lower portion generates and the upper portion
propagates that carry.
⚫ The group propagates a carry if both the upper and lower portions
propagate the carry
⚫ The carry-in must be treated specially. Let us define C0 = Cin and
CN = Cout. Then we can define generate and propagate signals for
bit 0 as
Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ Observe that the carry into bit i is the carry-out of bit i–1 and is Ci–1
= Gi–1:0.
⚫ This is an important relationship; group generate signals and carries
will be used synonymously in the subsequent sections. We can thus
compute the sum for bit i using
Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ Hence, addition can be reduced to a three-step process:
⚫ Computing bitwise generate and propagate signals using

⚫ Combining PG signals to determine group generates Gi–1:0 for all


N >=i >= 1 using

⚫ Calculating the sums using


Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ These steps are illustrated in Fig.
Module 4-Data Path and Array Subsystems

Carry Ripple Adder-Generate and propagate


⚫ These steps are illustrated in Fig.
Module 4-Data Path and Array Subsystems

Full Adder-Implementation

Assignment
(a)Implement a full adder with PTL logic and
Transmission gate logic and submit the report.
(b) Implement carry look ahead/carry skip
adder.
Module 4-Data Path and Array Subsystems

Subtraction
⚫ An N-bit subtracter uses the two’s complement relationship.
⚫ This involves inverting one operand to an N-bit CPA and adding 1
via the carry input, as shown.
⚫ An adder/subtracter uses XOR gates to conditionally invert B,
Module 4-Data Path and Array Subsystems

Subtraction
⚫ An N-bit subtracter uses the two’s complement relationship.
⚫ This involves inverting one operand to an N-bit CPA and adding 1
via the carry input, as shown.
⚫ An adder/subtracter uses XOR gates to conditionally invert B,
Module 4-Data Path and Array Subsystems

One/Zero detectors
⚫ Detecting all ones or zeros on wide N-bit words requires large fan-
in AND or NOR gates.
⚫ One can build a tree of AND gates, as shown. Here, alternate
NAND and NOR gates have been used. The path has log N stages.
Module 4-Data Path and Array Subsystems

One/Zero detectors
⚫ If the word being checked has a natural skew in the arrival time of
the bits the designer might consider an asymmetric design that
favors the late-arriving inputs, as shown
⚫ Another fast detector uses a pseudo-nMOS or dynamic NOR
structure to perform the “wired-OR,” as shown
Module 4-Data Path and Array Subsystems

Comparators-Magnitude comparator
⚫ A magnitude comparator determines the larger of two binary
number
⚫ To compare two unsigned numbers A and B, compute

⚫ Figure shows a 4-bit unsigned comparator


⚫ built from a carry-ripple adder and
⚫ two’s complementer.
⚫ The relative magnitude is determined from
⚫ the carry-out (C) and zero (Z) signals
⚫ according to Table
Module 4-Data Path and Array Subsystems

Comparators-Equality comparator
⚫ An equality comparator determines if (A = B). This can be done
more simply and rapidly with XNOR gates and a ones detector, as
shown

Module 4-Data Path and Array Subsystems

Counters-
⚫ An N-bit binary counter sequences through 2N outputs in binary
order.
⚫ Simple designs have a minimum cycle time that increases with N,
but faster designs operate in constant time.
⚫ Some of the common features of counters include the following

Module 4-Data Path and Array Subsystems

Counters-Binary Counters
⚫ The simplest binary counter is the asynchronous ripple-carry
counter, as shown in fig.
⚫ It is composed of N registers connected in toggle configuration,
where the falling transition of each register clocks the subsequent
register
⚫ Therefore, the delay can be quite long.
⚫ It has no reset signal, making it difficult
⚫ to test.
⚫ In general, asynchronous circuits
⚫ introduce a whole assortment of
⚫ problems
Module 4-Data Path and Array Subsystems

Counters-Binary Counters
⚫ A general synchronous up/down counter is shown in Fig. a
⚫ It uses a resettable register and full adder for each bit position.
⚫ The cycle time is limited
⚫ by the ripple-carry delay.
⚫ If only an up counter
⚫ (also called an incrementer)
⚫ is required, the full adder
⚫ degenerates into a
⚫ half adder, as shown in Fig. b
Module 4-Data Path and Array Subsystems

Counters-Binary Counters
⚫ A general synchronous up/down counter is shown in Fig. a
⚫ It uses a resettable register and full adder for each bit position.
⚫ The cycle time is limited by the ripple-carry delay.
Module 4-Data Path and Array Subsystems

Counters-Ring and Johnson Counters


⚫ A ring counter consists of an M-bit shift register with the output fed
back to the input, as shown in Fig. a
⚫ On reset, the first bit is initialized to 1 and the others are initialized
to 0. TC toggles once every M cycles.
⚫ Ring counters are a convenient way to build extremely fast
prescalars because there is no logic between flip-flops, but they
become costly for larger M.
Module 4-Data Path and Array Subsystems

Counters-Ring and Johnson Counters


⚫ A Johnson or Mobius counter is similar to a ring counter, but
inverts the output before it is fed back to the input, as shown in
Fig.b
⚫ The flip-flops are reset to all zeros and count through 2M states
before repeating.
⚫ Table shows the sequence for a 3-bit Johnson counter.
Module 4-Data Path and Array Subsystems

Multipliers-
⚫ Multiplication is less common than addition, but is still essential for
microprocessors, digital signal processors, and graphics engines
⚫ The most basic form of multiplication consists of forming the
product of two unsigned (positive) binary numbers.
⚫ M × N-bit multiplication P = Y × X can be viewed as forming N
partial products products of M bits each, and then summing the
appropriately shifted partial products to produce an M + N-bit result
P
Module 4-Data Path and Array Subsystems

Multipliers-Hardware implementation

Module 4-Data Path and Array Subsystems

Multipliers-Hardware implementation

Module 4-Data Path and Array Subsystems

Multipliers-Hardware implementation

Module 4-Data Path and Array Subsystems

Multipliers-Hardware implementation

Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory arrays often account for the majority of transistors in a
CMOS system-on-chip.
⚫ Arrays may be divided into categories as shown
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory arrays
⚫ SRAM

⚫ DRAM

⚫ ROM

⚫ Serial access memory

⚫ Content addressable memory


Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory arrays
⚫ Random access memory is accessed with an address and has a

latency independent of the address.


⚫ – In contrast, serial access memories are accessed sequentially so

no address is necessary.
⚫ Content addressable memories determine which address(es)
contain data that matches a specified key.
⚫ Random access memory is commonly classified as – read-only

memory (ROM) or – read/write memory (confusingly called


RAM).
⚫ Even the term ROM is misleading because many ROMs can be

written as well.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory arrays
⚫ A more useful classification is volatile vs. nonvolatile memory.

⚫ – Volatile memory retains its data as long as power is applied

⚫ Eg read/write memory (so called RAM)

⚫ – While nonvolatile memory will hold data indefinitely.


⚫ ROM
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Volatile Memory
⚫ Static

⚫ Dynamic

⚫ Static cells use some form of feedback to maintain their state.


⚫ Dynamic cells use charge stored on a floating capacitor through an
access transistor.
⚫ Charge will leak away through the access transistor even while

the transistor is OFF, so dynamic cells must be periodically read


and rewritten to refresh their state.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Non-Volatile Memory

⚫ The contents of a mask ROM are hardwired during fabrication and


cannot be changed
⚫ A programmable ROM (PROM) can be programmed once after
fabrication by blowing on-chip fuses with a special high
programming voltage.
⚫ An erasable programmable ROM (EPROM) is programmed by
storing charge on a floating gate.
⚫ It can be erased by exposure to ultraviolet (UV) light for several

minutes to knock the charge off the gate.


⚫ Then the EPROM can be reprogrammed.

⚫ Electrically erasable programmable ROMs (EEPROMs) are similar,


but can be erased in microseconds with on-chip circuitry.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Non-Volatile Memory

⚫ Flash memories are a variant of EEPROM that erases entire blocks


rather than individual bits.
⚫ – Flash memories are widely used.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays

⚫ Memory cells can have one or more ports for access.


⚫ On a read/write memory, each port can be read-only, write-only, or
capable of both read and write.
⚫ A memory array contains 2n words of 2m bits each.
⚫ Each bit is stored in a memory cell.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays

⚫ Memory cells can have one or more ports for access.


⚫ On a read/write memory, each port can be read-only, write-only, or
capable of both read and write.
⚫ A memory array contains 2n words of 2m bits each.
⚫ Each bit is stored in a memory cell.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays

⚫ Memory cells can have one or more ports for access.


⚫ On a read/write memory, each port can be read-only, write-only, or
capable of both read and write.
⚫ A memory array contains 2n words of 2m bits each.
⚫ Each bit is stored in a memory cell.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays
⚫ Fig. shows the organization of a
small memory array containing 16
4-bit words (n = 4, m = 2).
⚫ The simplest design with one row
per word and one column per bit.
⚫ The row decoder uses the address to
activate one of the rows by asserting
the wordline.
⚫ During a read operation, the cells on
this wordline drive the bitlines,
which may have been conditioned
to a known value in advance of the
memory access
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays

⚫ The column circuitry may contain


amplifiers or buffers to sense the
data.
⚫ A typical memory array may have
thousands or millions of words of
only 8–64 bits each, which would
lead to a tall, skinny layout that is
hard to fit in the chip floorplan and
slow because of the long vertical
wires.
⚫ Therefore, the array is often folded
into fewer rows of more columns.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays

⚫ After folding, each row of the


memory contains 2k words, so
the array is physically organized
as 2n – k rows of 2m + k columns or
bits.
⚫ Fig shows a two-way fold (k = 1)
with eight rows and eight
columns
⚫ The column decoder controls a
multiplexer in the column
circuitry to select 2m bits from
the row as the data to access.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays

⚫ Larger memories are generally


built from multiple smaller
subarrays so that the wordlines
and bitlines remain reasonably
short, fast, and low in power
dissipation.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays-SRAM

⚫ SRAM - the most widely used form of on-chip memory


⚫ Static RAMs use a memory cell with internal feedback that retains
its value as long as power is applied.
⚫ A SRAM cell needs to be able to read and write data and to hold the
data as long as the power is applied.
⚫ An ordinary flip-flop could accomplish this requirement, but the
size is quite large.
⚫ Advantages of SRAM:
⚫ – Denser than flip-flops

⚫ – Compatible with standard CMOS processes

⚫ – Faster than DRAM

⚫ – Easier to use than DRAM


Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays-SRAM

⚫ The SRAM consists of an array of memory cells along with the row
and column circuitry.
⚫ It requires six transistors per bit.
⚫ The two additional pass transistors M5 and M6 are called access
transistors.
⚫ They serve to control the access to a storage cell during the read

and write operations.


Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays-SRAM

⚫ The 6T-SRAM is shown .


⚫ It requires six transistors per bit.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- SRAM- Read Operation

⚫ To read 1: i.e. Stored values are Q = 1 and Q_bar = 0


⚫ Initially both the bit lines are precharged to VDD.
⚫ During read operation, the value stored in Q and Q_bar are
transferred to the bit lines.
⚫ – BL remains high while BL_bar discharges towards gnd.

⚫ – The difference between BL and BL_bar is sensed by sense

amplifier and the correct logic is inferred.


⚫ A careful sizing of transistor is necessary as otherwise Q_bar is
pulled up towards the precharge value of BL_bar. This may flip the
cell in worst case. This malfunction is called read upset.
⚫ To avoid this problem, width of M1 > M5.

⚫ Similar procedure can be followed to read 0.


Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- SRAM- Read Operation


Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- SRAM- write
Operation
⚫ Initially let Q = 1, Q_bar = 0
⚫ To write 0: i.e. we want to make Q
= 0, Q_bar = 1
⚫ New value cannot be written
through M5 due to sizing
constraint imposed by read
stability. (i.e width of M1 > M5)
⚫ So new value must be written
through M6.
⚫ A "0" is written in the cell by
setting BL = 0 and BL_bar = 1.
For this write operation to happen,
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays-DRAM-1T DRAM
⚫ Dynamic RAMs (DRAMs) store their contents as charge on a
capacitor rather than in a feedback loop.
⚫ Needs refresh (every 1 to 4 ms) otherwise charge gets leaked.
⚫ Refresh operation consists of reading the cell contents followed by
a write operation.
⚫ Though DRAM has simple structure, the reduction in cell
complexity is compensated more by the added system complexity
imposed by refresh requirement.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- DRAM- Read
Operation-1T DRAM
⚫ A 1-transistor (1T) dynamic RAM
cell consists of a transistor and a
capacitor
⚫ Like SRAM, the cell is accessed
by asserting the wordline to
connect the capacitor to the bitline
⚫ On a read, the bitline is first
precharged to VDD / 2.
⚫ When the wordline rises, the
capacitor shares its charge with the
bitline, causing a voltage change
that can be sensed.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- DRAM- write
Operation-1T DRAM
⚫ The read disturbs the cell contents
at x, so the cell must be rewritten
after each read.
⚫ On a write, the bitline is driven
high or low and the voltage is
forced onto the capacitor. Some
DRAMs drive the wordline to
VDDP = VDD + Vt to avoid a
degraded level when writing a ‘1.’
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- DRAM- write
Operation-3T DRAM
⚫ Write operation:
⚫ (WWL – Write-word line; RWL –
read-word line)
⚫ Set WWL = 1;
⚫ BL1 = Data to be written.
⚫ BL1 = 0 => Cs is discharged to
ground. (i.e. 0 is written)
⚫ BL1 = 1 => Cs is charged to logic
1.
⚫ Data is retained once the WWL is
lowered because node X becomes
high impedance.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- DRAM- Read
Operation-3T DRAM
⚫ Read operation:
⚫ (WWL – Write-word line; RWL –
read-word line)
⚫ Let BL2 is precharged to VDD
and let X = 1.
⚫ If RWL = 1, BL2 is pulled low
through series connection of M3
and M2.
⚫ If X = 0, BL2 remains at VDD.
⚫ So the inverse value of the stored
signal is sensed on the bit line i.e.
cell is inverting.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- DRAM- Read
Operation-3T DRAM
⚫ Read operation:
⚫ (WWL – Write-word line; RWL –
read-word line)
⚫ Hence for refresh operation, read
stored data and put its inverse on
BL1 and assert WWL.

Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- DRAM-
Properties of 3T DRAM
⚫ DRAM is independent of device
sizes/ratios. (SRAM is rationed)
⚫ In contrast to other DRAM cells,
reading is non-destructive i.e.
stored value is not affected by
read.
⚫ No special process steps are
needed. The stored capacitance is
just the gate capacitance of the
readout device.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- DRAM-
Properties of 3T DRAM
⚫ Writing 1 on X equals VWWL -
VTN. This reduces current drive of
M2 during read operation, which
then increases read access time.
⚫ Solution : Raise VWWL to a value
higher than VDD
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Serial Access Memories

⚫ Using the basic SRAM cell and/or registers, we can construct a


variety of serial access memories including shift registers and
queues.
⚫ These memories avoid the need for external logic to track addresses
for reading or writing.
⚫ Shift register
⚫ Queues
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Serial Access Memories

⚫ Shift register
⚫ Examples

– Serial In Parallel Out (SIPO) memory.


– Parallel In Serial Out (PISO) memory.
⚫ These are also often useful in signal processing and
communications systems.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Serial Access Memories
⚫ Shift register
⚫ A shift register is commonly used in signal processing applications
to store and delay data. A shift register is commonly used in signal
processing applications to store and delay data.
⚫ Example: a simple 4-stage 8-bit shift register constructed from 32
flip-flops
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Serial Access
Memories
⚫ Shift register
⚫ As there is no logic between the registers,
particular care must be taken that hold
times are satisfied.
⚫ Flip-flops are rather big, so large, dense
shift registers use dual-port RAMs instead
⚫ The RAM is configured as a circular
buffer with a pair of counters specifying
where the data is read and written
⚫ The read counter is initialized to the first
entry and the write counter to the last
entry on reset, as shown
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Serial Access Memories

⚫ Queues
⚫ FIFO and LIFO
⚫ Queues allow data to be read and written at different rates.
⚫ The read and write operations each are controlled by their own
clocks that may be asynchronous.
⚫ The queue internally maintains read and write pointers indicating
which data should be accessed next.
⚫ FIFO
⚫ First in First out queue. Used to buffer data between two
asynchronous streams.
⚫ The FIFO is organized as a circular buffer.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Serial Access Memories
⚫ FIFO
⚫ On reset, the read and write pointers are both initialized to the first
element and the FIFO is EMPTY
⚫ On a write, the write pointer advances to the next element.
⚫ – If it is about to catch the read pointer, the FIFO is FULL.

⚫ On a read, the read pointer advances to the next element. If it


catches the write pointer, the FIFO is EMPTY again.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Serial Access Memories
⚫ LIFO
⚫ Last In First Out queues (also called stack)
⚫ used in applications such as subroutine or interrupt stacks in

microcontrollers.
⚫ The LIFO uses a single pointer for both read and write.
⚫ On reset, the pointer is initialized to the first element and the LIFO
is EMPTY.
⚫ On a write, the pointer is incremented.
⚫ – If it reaches the last element, the LIFO is FULL.

⚫ On a read, the pointer is decremented.


⚫ If it reaches the first element, the LIFO is EMPTY again.
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Content Addressable Memory-CAM

⚫ The CAM acts as an ordinary SRAM that can be read or written


given adr and data, but also performs matching operations.
⚫ Matching asserts a match-line output for each word of the CAM
that contains a specified key.
⚫ A common application of CAMs is translation look aside buffers
(TLBs) in microprocessors supporting virtual memory.
⚫ The virtual address is given as the key to the TLB CAM.
⚫ If this address is in the CAM, the corresponding match line is
asserted. This match line can serve as the wordline to access a
RAM containing the associated physical address
Module 4-Data Path and Array Subsystems

Array Subsystems-
⚫ Memory Arrays- Content Addressable Memory-CAM

⚫ The CAM acts as an ordinary SRAM that can be read or written


given adr and data, but also performs matching operations.

Module 4-Data Path and Array Subsystems

Array Subsystems-
Memory Arrays- Content Addressable
Memory-CAM
⚫ 10T CAM

⚫ 10T CAM cell consisting of a normal

SRAM cell with additional transistors to


perform the match.
⚫ Multiple CAM cells in the same word are

tied to the same matchline.


⚫ The matchline is either precharged or

pulled high as a distributed pseudo-nMOS


gate.
⚫ Key to be matched is made available in

the bit lines in true (bit) and complement


form (bit_b).
Module 4-Data Path and Array Subsystems

Array Subsystems-
Memory Arrays- Content Addressable
Memory-CAM
⚫ 10T CAM

⚫ Only if all of the key bits match all of the

bits stored in the word of memory will the


match-line for that word remain high.
⚫ The key can contain a “don’t care” by

setting both bit and bit_b low.

You might also like