next up previous
Next: Exercícios de classe Up: Projetos usando MSI e Previous: ROM ou ``Read-Only-Memory'' e

PLA ou ``Programmable Logic Array''

Um problema de usar ROM para implementar uma função lógica é que muitas vezes a maior parte das possíveis combinações de variáveis de entrada nunca ocorre. Muitas funções lógicas precisam apenas de uma pequena fração de todas as $2^n$ palavras, resultando assim em um desperdício de espaço.

A PLA (``Programmable Logic Array'') é uma estrutura que possui a generalidade de uma memória para implementar funções lógicas, porém bem mais compacta que a ROM. A Figura 1.17 mostra um exemplo de uma PLA. Uma PLA consta de dois planos, chamados plano AND e plano OR. Numa linha vertical do plano AND, os pontos ou ``bolinhas'', especificados pelo cliente, indicam quais as variáveis (complementadas ou não) que devem participar de um termo de produto. O exemplo mostra uma PLA com 6 entradas e 13 termos de produto. As 13 linhas verticais formam os 13 termos de produto: $A
B'C, B'D'$ etc.

Numa linha horizontal do plano OR, os pontos ou bolinhas indicam quais os produtos que devem participar numa soma (ou num circuito OR). Cada linha horizonta dá origem a uma saída. O exemplo produz assim 4 saídas.

\begin{figure}
\begin{verbatim}1 2 3 4 5 6 7 8 9 10 11 12 13
\vert \vert \ve...
... \vert \vert \vert \vert \vert \vert \vert \vert \vert\end{verbatim}\end{figure}

As saídas $f_1, f_2, f_3$ e $f_4$ implementam as funções lógicas seguintes:

\begin{eqnarray*}
f_1 &=& A B'C + B'D' + B C D'E F' + E F \\
f_2 &=& A B'C F ...
... C'D E'F + B'C F' \\
f_4 &=& A C F + B'E F + B'D' + A C F' \\
\end{eqnarray*}



Notem que o mesmo produto $B'D'$ aparece nas funções $f_1, f_2$ e $f_4$. $B'D'$ aparece tanto na coluna 2 como na coluna 6, sendo que na coluna 6 ele é usado tanto para gerar $f_2$ como $f_4$. A PLA pode ser otimizada definindo $B'D'$ apenas uma vez.


next up previous
Next: Exercícios de classe Up: Projetos usando MSI e Previous: ROM ou ``Read-Only-Memory'' e
Siang Wun Song
2001-09-19