SISTEMAS DIGITAIS MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL Setembro de 10 H. Neto, N. Horta MEMÓRIAS - 2 SUMÁRIO: MEMÓRIAS INTEGRADAS RAM ROM PROM EPROM LÓGICA PROGRAMÁVEL PLAs PALs FPGAs Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 3 MEMÓRIAS Na sequência do estudo de FFs, como elementos básicos de memória de 1 bit, e de registos como elementos capazes de armazenar 1 palavra de N bits, surge, naturalmente, a necessidade de elementos que permitam o armazenamento conjuntos de K palavras de N bits. Esses elementos designam-se por memórias. Na presente abordagem, referem-se em especial os aspectos funcionais e as estruturas lógicas destes circuitos, deixando-se os detalhes da electrónica para cadeiras subsequentes. Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 4 RAM - MODELO SIMPLIFICADO RAM – “Random Access Memory” 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). RAM 16x4 Endereço A0 0 A1 1 A2 2 A3 3 CS_L G1 WE_L 1 EN [READ] A 0 15 1C2 [WRITE] D0 D1 Entrada de Dados 1, 2D A,2D 1,A Q0 Q1 D2 Q2 D3 Q3 Setembro de 10 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 Dados de SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 5 RAM - MODELO LÓGICO DA ESTRUTURA BASE Linha_0 C1 1D Linha_1 C1 DMUX A0 A1 } 0 1 G 0 _ 0 3 2 ChipSelect EN 1D 1 Linha_2 3 C1 1D Linha_3 C1 1D Entrada_Dados Saída_Dados WriteEnable_H Selecciona Coluna Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 6 RAM - ESTRUTURA TIPO EXEMPLO: RAM 16x1, 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 Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 7 RAM - ESTRUTURA TIPO EXEMPLO: Uma RAM 8x2 é organizada segundo a mesma matriz de 4x4 bits, que é agora, de facto, uma matriz de 4x2 palavras de 2 bits cada. 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 Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 8 RAM - ASSOCIAÇÃO Aumento da Dimensão das Palavras (de 4 para 8 bits): RAM 16x4 A0 0 A1 1 0 A2 2 A3 3 3 CS_L G1 G1 WE_L 1 EN [READ] 1 EN [READ] 1C2 [WRITE] 1C2 [WRITE] A D0 Setembro de 10 RAM 16x4 1 0 A 15 2 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 H. Neto, N. Horta MEMÓRIAS - 9 RAM - ASSOCIAÇÃO Aumento do Número de Palavras (de 16 para 32 palavras): RAM 16x4 A0 0 A1 1 A2 2 A3 3 A4 G1 0 A WE_L D0 RAM 16x4 1 0 A 15 2 0 15 3 A4 G1 1 EN [READ] 1 EN [READ] 1C2 [WRITE] 1C2 [WRITE] 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 Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 10 ROM - DEFINIÇÕES ROM – “Read Only Memory” – Memória apenas de leitura, sendo o conteúdo definido durante a fabricação. ROMs PROGRAMÁVEIS - Memória apenas de leitura, sendo o conteúdo definido pelo utilizador. PROM - ROM Programável (uma única vez). EPROM - ROM Programável com capacidade de reprogramação. Neste caso, a memória pode ser apagada através da aplicação prolongada a radiação ultravioleta intensa. Nota: existem outras classes de memórias não abordadas neste estudo. Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta 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 Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 12 ROM – ESTRUTURA TIPO EXEMPLO: ROM 4x3 que armazena os 4 primeiros números primos: A1 A0 A1 A0 Q2 Q1 Q0 0 0 0 1 0 0 1 1 0 1 Plano OR "0" m0 2 m1 m2 3 m3 1 0 1 0 1 5 1 1 1 1 1 7 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). Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 13 LÓGICA PROGRAMÁVEL As FPGAs - “FIELD PROGRAMMABLE GATE-ARRAYS” - são dispositivos lógicos programáveis que permitem realizar circuitos de complexidade equivalente 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 Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 14 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 MUX 0 } 1 2 0 A __ 15 3 R 1D G1 Q 0 1 C1 S CLK S/R Controlo S/R Bloco Básico – Modelo simplificado Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 15 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 tanto de tornar os sistemas de controlo programáveis, portanto mais versáteis, como, ainda, 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 Setembro de 10 SISTEMAS DIGITAIS H. Neto, N. Horta MEMÓRIAS - 16 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 Setembro de 10 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 H. Neto, N. Horta MEMÓRIAS - 17 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. O Endereço de Memória (A3 A2 A1 A0) será especificado, respectivamente, pelas variáveis de estado Q1 Q0 e pelas entradas M5 M10. A Palavra de Memória deverá conter a informação do Estado Seguinte Q1 Q0 em (n+1) e a Saída Z nos 3 bits menos significativos. Nota: A cinzento indicam-se as entradas (endereços) não utilizadas e as saídas não consideradas (bit mais significativo). Setembro de 10 Endereço A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 SISTEMAS DIGITAIS A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Conteúdo A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Q3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q2 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 Q1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 H. Neto, N. Horta Q0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 MEMÓRIAS - 18 MÁQUINAS DE ESTADO E MEMÓRIAS (cont.) EXEMPLO: Máquina de Distribuição de Pastilhas (Implementação) RAM 16x4 ENTRADAS M10 0 M5 1 2 A 0 15 3 RESET_L CP R '0' G1 '1' 1 EN [READ] C1 1C2 [WRITE] Q0(n) 1, 2D A,2D 1D Q1(n) Z 1,A Q0(n+1) ESTADO PRESENTE Setembro de 10 SAÍDA SISTEMAS DIGITAIS Q1(n+1) ESTADO SEGUINTE H. Neto, N. Horta