Torrid Fish

Back

Read Only Memory (ROM)#

Store permanent binary informantion.

ROM#

Info:

2k×N\enspaceROM=Decoder+ORgates2^k\times N\enspaceROM = Decoder + OR gates
  • kk address input lines
  • enables input(s)
  • nn outputs

Example : 25×82^5\times8 ROM#

  • We need to a 55-to-3232 decoder.
  • 88 OR gates (each has 3232 inputs).
  • 32×832\times8 programmable interconnections.

Programmable interconnections#

There are two state:

  • Close (two lines are connected)
  • Open

A fuse that can be blown by applying a high voltage pluse.

Combinational Circuit Implementation with ROM#

We know basically ROM is decoder and or gates, so …

  • It is sum of minterms!
  • A boolean function is a sum of minterms!

Hence, we can implement combinational circuit!

For nn input, mm output combinational circuit, we need 2n×m2^n\times m ROM.

Design procedure#

Info:

  • Step 1 : Determine the size of ROM
  • Step 2 : Obtain the programming truth table of the ROM
  • Step 3 : The truth table = the fuse pattern

Example#

Success:

Implement this truth table with ROM:

First, we know there is three inputs and 6 outputs, so we need a 23×62^3\times 6 ROM.

But we can see that B0B_0 and B1B_1 can be simply done without ROM, so we can reduce the ROM to 23×42^3\times 4 ROM. Then now the pattern of truth table will be the fuse pattern :

Types of ROM#

mask programming ROM#

  • IC manufacturers
  • Is economical only if large quantities

PROM : Programmable ROM#

  • Fuses
  • Universal programmer

EPROM : Erasable PROM#

  • Floating gate
  • Ultraviolet light erasable

EEPROM : Electrically Erasable PROM#

  • Longer time is needed to write
  • Flash ROM
  • Limited times of write operations

Programmable two-level logic#

An AND array and an OR array.

There are three types :

Programmable Read-Only Memory (PROM)#

Programmable Array Logic (PAL)#

Programmable Logic Array (PLA)#

We can see that PLA has more flexible than ROM and use less circuits than ROM, so will discuss more about PLA.

PLA#

  • An array of programmable AND gates which can generate any product terms of the inputs.
  • An array of programmable OR gates which can generate the sums of the products.

Size#

  • The number of inputs
  • The number of product terms (AND gates)
  • The number of outputs (OR gates)

Example#

Say we want to implement the two outputs with three inputs, we can implement with PLA like this

And here is the table :

Notice that and the end of the circuit, it use XOR gate to replace invertion gate.

Combinational Circuit Implementation with PLA#

Info:

  • Reduce the number of distinct product terms.
  • The number of terms in a product is not important.

Example#

Success:

Implement the two functions with PLA :

F1(A,B,C)=Σ(0,1,2,4),F2=Σ(0,5,6,7)F_1(A,B,C)=\Sigma(0,1,2,4), F_2=\Sigma(0,5,6,7)

First, we should draw K-map :

We can see that there are two ways to implement each function :

F1=AB+AC+BC=(AB+AC+BC)F2=AB+AC+ABC=(AB+AC+ABC)\begin{align} F_1 &= \color{blue}{A'B'+A'C'+B'C'} = \color{red}{(AB+AC+BC)'} \\ F_2 &= \color{blue}{AB+AC+A'B'C'} = \color{red}{(A'B+A'C+AB'C')'} \\ \end{align}

We can see that there are four possible ways to implement, and different ways may have different number of distinct product terms :

F1F_1\F2F_2AB+AC+ABC\color{blue}{AB+AC+A'B'C'}(AB+AC+ABC)\color{red}{(A'B+A'C+AB'C')'}
AB+AC+BC\color{blue}{A'B'+A'C'+B'C'}AB,AB,AC,AC,BC,ABC\color{gray}{AB, A'B', AC, A'C', B'C', A'B'C'}AB,AB,AC,AC,BC,ABC\color{gray}{A'B, A'B', A'C, A'C', B'C', AB'C'}
(AB+AC+BC)\color{red}{(AB+AC+BC)'}AB,AC,BC,ABCAB, AC, BC, A'B'C'AB,AB,AC,AC,BC,ABC\color{gray}{AB, A'B, AC, A'C, BC, AB'C'}

We can see that the combination of F1=(AB+AC+BC),F2=AB+AC+ABCF_1=\color{red}{(AB+AC+BC)'}, F_2 = \color{blue}{AB+AC+A'B'C'} has least number of distinct product terms (44 terms).

So we will implement in that way, thus we can have the table and the circuit :

And here is the circuit :

Exercise#

Success:

Tabulate the PLA programming table and the truth table for an 8×28\times2 ROM for the two Boolean functions listed below.

After tabulating, construct the each circuit diagram.

A(x,y,z)=Σ(1,3,5,6)B(x,y,z)=Σ(1,3,6,7)A(x,y,z) = \Sigma(1, 3, 5, 6) \\ B(x,y,z) = \Sigma(1, 3, 6, 7)

PLA#

Tabulate:

First, we need to draw K map :

Thus, we can use same strategy above to find the combiantion that has minimum distinct product terms :

FAF_A\FBF_BAB+AC\color{blue}{AB+A'C}(AB+AC)\color{red}{(AB'+A'C')'}
AC+BC+ABC\color{blue}{A'C+B'C+ABC'}AB,AC,BC,ABC\color{black}{AB, A'C, B'C, ABC'}AB,AC,AC,BC,ABC\color{gray}{AB', A'C, A'C', B'C, ABC'}
(AC+BC+ABC)\color{red}{(A'C'+B'C'+ABC)'}AB,AC,AC,BC,ABC\color{gray}{AB, A'C', A'C, B'C', ABC}AB,AC,BC,ABC\color{black}{AB', A'C', B'C', ABC}

There are two possible ways, but for simplicity, we choose FA=AC+BC+ABC,FB=AB+ACF_A = \color{blue}{A'C+B'C+ABC'}, F_B = \color{blue}{AB+A'C}.

Then we can tabulate the programming table :

Circuit:

Just use programming table to draw :

ROM#

Tabulate:

It is easy to construct a truth table :

xxyyzzAABB
0000000000
0000111111
0011000000
0011111111
1100000000
1100111100
1111001111
1111110011

Circuit:

Then use the truth table above, we can simply sketch the circuit : 

tags: Logic Design EECS1010#