MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL

Propaganda
SISTEMAS DIGITAIS
MEMÓRIAS E
CIRCUITOS DE
LÓGICA PROGRAMÁVEL
H. Neto, N. Horta, J.P. Carvalho
Sistemas Digitais
1
MEMÓRIAS - 2
!   SUMÁRIO:
!   MEMÓRIAS INTEGRADAS
!
RAMs
!
ROMs
!   LÓGICA PROGRAMÁVEL
!
PROMs
!
PLAs
!
PALs
!
FPGAs
!   IMPLEMENTAÇÃO DE MÁQUINAS DE ESTADO UTILIZANDO LÓGICA
PROGRAMÁVEL
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
2
MEMÓRIAS - 3
!   MEMÓRIAS
•  Flip-Flops: Elementos básicos de memória; 1 bit.
•  Registos: Armazenamento de 1 palavra de N bits;
•  Memórias: Armazenamento de K palavras de N bits;
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
3
MEMÓRIAS - 4
!   TIPOS
de MEMÓRIAS
•  RAMs – Random Access Memory
•  ROMs
•  ROMs (Read Only Memory): Memória apenas de leitura, sendo o conteúdo
definido durante o fabrico.
•  PROM (Programable Read Only Memory): Memória programável pelo
utilizador uma única vez.
•  EPROMs
(Erasable Programable ROM): ROM com capacidade de
reprogramação; a memória pode ser apagada através de radiação ultravioleta
intensa.
•  EEPROMs (Electrically Erasable Programable ROM): ROM reprogramável
que pode ser apagada electricamente.
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
4
MEMÓRIAS - 5
!   RAM (Random Access Memory) - MODELO LÓGICO DA ESTRUTURA
BASE
Linha_0
C1
1D
Linha_1
C1
DMUX
A0
A1
}
0
1
G
_
0
3
0
2
ChipSelect
EN
1D
1
Linha_2
3
C1
1D
Linha_3
C1
1D
Entrada_Dados
Saída_Dados
Selecciona
Coluna
WriteEnable_H
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
5
MEMÓRIAS - 6
!   RAM - MODELO SIMPLIFICADO
RAM – “Random Access Memory”
74189
RAM 16x4
Endereço
A0
0
A1
1
A2
2
A3
3
CS_L
G1
WE_L
1 EN [READ]
A
Operação de Escrita:
(1) Colocar endereço nas linhas de endereço;
(2) Colocar dados nas linhas de entrada de dados (Ds);
(3) Activar CS_L e WE_L (L - Escrita).
0
15
1C2 [WRITE]
D0
1, 2D
A,2D
D1
Entrada de
Dados
1,A
Q0
Q1
D2
Q2
D3
Q3
H. Neto, N. Horta, J.P. Carvalho
Operação de Leitura:
(1) Colocar endereço nas linhas de endereço;
(2) Activar CS_L e Desactivar WE_L (H – Leitura);
(3) Ler dados pretendidos nas linhas de saída (Os).
Saída de
Dados
SISTEMAS DIGITAIS
6
MEMÓRIAS - 7
!   RAM - ESTRUTURA TIPO
EXEMPLO:
RAM 16x1 (16
linhas de 1 bit
cada), organizada
segundo uma
matriz de 4x4 bits.
DMUX
}
A2
0
A3
1
0
_
0
G
3
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
ChipSelect
EN
Descodificador
de Linha
Entrada_Dados
WriteEnable_H
Saída_Dados
DMUX
}
A0
0
A1
1
ChipSelect
EN
0
_ 1
0
G
3
2
3
Descodificador
de Coluna
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
7
MEMÓRIAS - 8
!   RAM - ESTRUTURA TIPO
EXEMPLO:
Uma RAM 8x2 (8 linhas
de 2 bits cada),
organizada segundo a
mesma matriz de 4x4
bits.
DMUX
}
A1
0
A2
1
0
_
0
G
3
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
ChipSelect
EN
Descodificador
de Linha
Entrada_Dados 0
Entrada_Dados 1
WriteEnable_H
Saída_Dados 0
Saída_Dados 1
DMUX
A0
ChipSelect
0
0 G_
1
0
1
EN
Descodificador
de Colunas
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
8
MEMÓRIAS - 9
!   RAM - ASSOCIAÇÃO
Aumento da Dimensão das Palavras (de 4 para 8 bits):
74189
RAM 16x4
74189
RAM 16x4
A0
0
A1
1
A2
2
A3
3
3
CS_L
G1
G1
WE_L
1 EN [READ]
1 EN [READ]
1C2 [WRITE]
1C2 [WRITE]
D0
H. Neto, N. Horta, J.P. Carvalho
0
A
0
1
15
2
A
0
15
Q0
D4
D1
Q1
D5
Q5
D2
Q2
D6
Q6
D3
Q3
D7
Q7
1, 2D
A,2D
1,A
SISTEMAS DIGITAIS
1, 2D
A,2D
1,A
Q4
9
MEMÓRIAS - 10
!   RAM - ASSOCIAÇÃO
Aumento do Número de Palavras (de 16 para 32 palavras):
74189
RAM 16x4
74189
RAM 16x4
A0
0
A1
1
A2
2
A3
3
A4
G1
WE_L
1 EN [READ]
1 EN [READ]
1C2 [WRITE]
1C2 [WRITE]
D0
0
A
0
1
15
2
A
0
15
3
A4
G1
Q0
D0
D1
Q1
D1
Q1
D2
Q2
D2
Q2
D3
Q3
D3
Q3
1, 2D
A,2D
1,A
1, 2D
A,2D
1,A
Q0
Nota: Por simplicitade omitiram-se as ligações das entradas D e das saídas Q
das duas memórias ao BUS de Dados
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
10
MEMÓRIAS - 11
!   ROM - SIMBOLOGIA
ROM 32x8
A0
0
A1
1
A2
2
A3
3
A4
4
RE_L
EN
A
1, 2D
0
31
A
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
11
MEMÓRIAS - 12
!   ROM – ESTRUTURA TIPO
EXEMPLO: ROM 4x3 que armazena os 4 primeiros números primos:
A1 A0
"0"
A1 A0 Q2 Q1 Q0
0
0
0
1
0
Plano OR
m0
2
0
1
0
1
1
3
1
0
1
0
1
5
1
1
1
1
1
7
m1
m2
m3
Plano AND
Q2
Q1
Q0
A programação da ROM é concretizada pela efectivação das ligações entre as saídas das
ANDs e as entradas das ORs.
Nota: As linhas sem ligação são, por defeito, ligadas a “0” (elemento neutro da OR).
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
12
MEMÓRIAS - 13
!   LÓGICA PROGRAMÁVEL
Nesta secção referem-se algumas estruturas, derivadas da estrutura básica de uma
ROM, cujo objectivo está centrado na sua programação para implementação de funções
combinatórias e não na sua utilização como memória.
PLDs - Programmable Logic Devices
PROM
Ligações
Programáveis
"Array" de ORs
Programável
Saídas
PLA-"Programmable Logic Array"
Ligações
"Array" de ANDs Programáveis
Entradas
Programável
"Array" de ORs
Programável
Saídas
PAL-"Programmable Array Logic"
Ligações
"Array" de ANDs Programáveis
Entradas
Programável
"Array" de ORs
Fixo
Saídas
Entradas
H. Neto, N. Horta, J.P. Carvalho
"Array" de ANDs
Fixo
(Descodificador)
SISTEMAS DIGITAIS
13
MEMÓRIAS - 14
!   FPGAs – “FIELD PROGRAMMABLE GATE-ARRAYS”
As FPGAs são circuitos programáveis que permitem realizar circuitos de complexidade
equivalente a até algumas centenas de milhar de portas lógicas.
O tipo de programação usado nas FPGAs mais populares baseia-se na utilização de
memórias RAM distribuídas para realizar as funções lógicas e controlar as interligações do
circuito.
Bloco lógico
Zona de interligações
Célula de entrada/saída
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
14
MEMÓRIAS - 15
!   BLOCO LÓGICO BÁSICO DE UMA FPGA
O bloco lógico básico de uma FPGA é constituído tipicamente por uma LUT – “Look-Up
Table” e um FF D.
A LUT é simplesmente uma pequena RAM (são habitualmente utilizadas LUTs de 4
entradas = RAM de 16 bits) que, para efeitos de utilização do circuito, funciona apenas
em modo de leitura (a escrita corresponde à programação da função lógica).
A programação da lógica consiste no armazenamento na LUT da tabela de verdade da
função lógica a realizar.
O controlo (programável) do MUX permite incluir/excluir o FF no/do circuito.
}
RAM 16X1
X0
X1
X2
X3
0
1
2
__
0
A
15
3
R
1D
MUX
G1
Q
0
1
C1
S
CLK
S/R
Controlo
S/R
Bloco Básico – Modelo simplificado
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
15
MEMÓRIAS - 16
!   MÁQUINAS DE ESTADO E MEMÓRIAS
A estrutura de uma máquina de estados permite que se utilizem memórias (para implementar
o circuito combinatório) conferindo a possibilidade de tornar os sistemas de controlo
programáveis, ou seja, mais versáteis, e permitindo o desenvolvimento de sistemas
funcionalmente mais complexos sem o aumento correspondente da complexidade do
hardware.
Qual o preço a pagar por esta solução em relação à implementação clássica?
Máquina Sequencial (Sincrona)
Modelo Geral
Entradas
Actuais (x)
C.C.
(Circuito
Combinatório)
*
*
*
*
*
*
Saídas
Actuais (z)
Estado
Seguinte
(ES)
Estado
Actual
(EA)
*
*
*
Memória
(Flip-Flops)
*
*
*
CP
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
16
MEMÓRIAS - 17
!   MÁQUINAS DE ESTADO E MEMÓRIAS (cont.)
EXEMPLO: Máquina de Distribuição de Pastilhas
(conforme analisada no capítulo dos Circuitos Sequenciais Síncronos)
Reset
Entradas: m5,m10
Saída: abre
00
S0/0
10
00
00
S5C
0
1
S10C
1
0
S15C
1
1
S5/0
10
01
Estado Actual
Q1 Q0
S0C
0
0
01
S10/0
01,10
S15/1
H. Neto, N. Horta, J.P. Carvalho
XX
Entradas
m5
m10
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
SISTEMAS DIGITAIS
Estado Seguinte
Q1 Q0
S0C
0
0
S10C
1
0
S5C
0
1
X
X
X
S5C
0
1
S15C
1
1
S10C
1
0
X
X
X
S10C
1
0
S15C
1
1
S15C
1
1
X
X
X
S0C
0
0
S0C
0
0
S0C
0
0
X
X
X
Saída
ABRE
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
17
MEMÓRIAS - 18
!   MÁQUINAS
DE ESTADO E
MEMÓRIAS (cont.)
Tabela de Memória
EXEMPLO: Máquina de Distribuição de Pastilhas
(cont.)
Tendo por base a Tabela de Transição de Estados e a
memória RAM apresentada anteriormente utiliza-se
esta memória para implementar a função do circuito
combinatório, i.e., determinar o Estado Seguinte e a
Saída.
Nas variáveis de endereço de Memória (A3 A2 A1 A0)
representam-se as variáveis de estado (Q1 Q0) e as
entradas (M5 M10). Assim, as linhas de endereço
deverão conter todas as combinações possíveis de
Estado Presente e entradas possíveis nesse estado.
A Palavra de Memória de cada endereço deverá conter
a informação do Estado Seguinte, Q1 Q0 (n+1) e Saída,
Z (n).
Nota: A cinzento indicam-se os endereços não
utilizados e as saídas não consideradas (bit mais
significativo).
H. Neto, N. Horta, J.P. Carvalho
Endereço
Conteúdo
A3
A2
A1
A0
Q3
Q2
Q1
Q0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
SISTEMAS DIGITAIS
18
MEMÓRIAS - 19
!   MÁQUINAS DE ESTADO E MEMÓRIAS (cont.)
EXEMPLO: Máquina de Distribuição de Pastilhas (cont.)
RAM 16x4
ENTRADAS
M10
0
M5
1
2
A 0
15
3
RESET_L
CP
R
'0'
G1
'1'
1 EN [READ]
C1
1D
1C2 [WRITE]
Q0(n)
1, 2D
A,2D
Q1(n)
SAÍDA
Z
1,A
Q0(n+1)
ESTADO
PRESENTE
Q1(n+1)
ESTADO
SEGUINTE
Nota: Existem outras formas alternativas para este tipo de implementação “microprogramada”,
mais complexas, mas mais eficientes.
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
19
MEMÓRIAS - 20
BIBLIOGRAFIA
[1] Arroz,G., Monteiro,J.C., Oliveira,A., “Arquitectura de Computadores, dos Sistemas Digitais aos
Microprocessadores”, Secções 6.8 e 7.5.3, 2ª Edição, 2009
[2] M. Morris Mano, Charles R. Kime, Logic and Computer Design Fundamentals , Prentice-Hall
International, Inc. (Capítulo 6, Secções 6.1 a 6.9)
H. Neto, N. Horta, J.P. Carvalho
SISTEMAS DIGITAIS
20
Download