PCS 3115 Sistemas Digitais I. Memórias & FPGAs. Prof. Dr. Marcos A. Simplicio Jr.

Documentos relacionados
PCS 3115 Sistemas Digitais I Memórias & FPGAs Prof. Dr. Marcos A. Simplicio Jr. Adaptado por Glauber (2018)

PCS 3115 Sistemas Digitais I

Dispositivo Lógico Programável(PLD)

Hardware Reconfigurável

Aula 11. Dispositivos Lógicos Programáveis. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Universidade Federal do ABC

SSC0112 Organização de Computadores Digitais I

ELD - Eletrônica Digital Aula 11 Introdução à Lógica Programável. Prof. Antonio Heronaldo de Sousa

Memórias. SEL-415 Introdução à Organização dos Computadores. Parte 1. Aula 4. Profa. Luiza Maria Romeiro Codá

ELETRÔNICA DIGITAL II

Dispositivos Lógicos Programáveis (PLDs) Leandro Schwarz

Dispositivos de Lógica Programável

Profa. Luiza Maria Romeiro Codá Profa. Dra Maria Stela Veludo de Paiva

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP , Campinas, SP, Brasil.

FPGA & VHDL. Tutorial

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS. SEL Sistemas Digitais Prof. Homero Schiabel

Sistemas Digitais (SD) Lógica Programável

SISTEMAS DIGITAIS (SD)

Sistemas Digitais (SD) Lógica Programável

Parte # 2 - Circuitos Combinatórios

Memórias. Memórias: Utilização:

Eletrônica Digital. Memórias Semicondutoras PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

Capítulo13 Arquiteturas de Dispositivos Lógicos Programáveis Pearson. Todos os direitos reservados.

DEFINIÇÃO É TODO AQUELE DISPOSITIVO CAPAZ DE ARMAZENAR INFORMAÇÃO. A

FPGA & VHDL. Tutorial Aula 1. Computação Digital

Introdução à Computação

EPROM - EEPROM Dispositivos Lógicos Programáveis

MEMÓRIAS SEMICONDUTORAS

COMPUTADOR. Adão de Melo Neto

Organização e Arquitetura de Computadores I

Adriano J. Holanda FAFRAM. 4 e 11 de maio de 2012

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS

Eletrônica Digital II (Memórias) Prof. Eng. Antonio Carlos Lemos Júnior

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Universidade de São Paulo

MEMÓRIAS PAPEL FOTOGRAFIA FITA PERFURADA DISPOSITIVOS MAGNÉTICOS DISPOSITIVOS ÓPTICOS DISPOSTIVOS DE ESTADO SÓLIDO

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS DLP. 15/8/2013 Prof. Joselito ELP1DLP1 / npee / DEE 1

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

MEMÓRIAS. Sistemas Digitais II Prof. Marcelo Wendling Nov/18

Eletrônica Digital. Prof. Gilson Yukio Sato sato[at]utfpr[dot]edu[dot]br

1. Sistemas de numeração e códigos 23

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 26/08/2015 Prof. Alexandre - ELP1DLP1 1

Memória (conceitos) MEMÓRIA VOLÁTIL

PCS Sistemas Digitais I. Circuitos Combinatórios Blocos Básicos: (De)Multiplexadores e Dispositivos tri-state. Prof. Dr. Marcos A. Simplicio Jr.

Projetos de Circuitos Digitais em VHDL e FPGA

ROM

Registradores de Deslocamento e Memórias

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistemas Digitais II DISPOSITIVOS DE MEMÓRIA. Prof. Marlon Henrique Teixeira julho/2014

Estrutura Básica de um Computador

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Sistemas Eletrônicos - PSI

Arquitetura e Funcionamento do Computador

Projeto com Linguagens de Descrição de Hardware

Painel Luminoso com LEDs

Memórias. IFRN -Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 17/01/2013

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Geradores de Clock e Memórias

FACULDADE LEÃO SAMPAIO

SSC0112 Organização de Computadores Digitais I

ORGANIZAÇÃO DE COMPUTADORES

Memórias RAM e ROM. Adriano J. Holanda 9/5/2017. [Introdução à Organização de Computadores]

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 5 Memória interna

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

FPGA - Field Programmable Gate Array

Modelo de Von Neumann: conceito do programa armazenado

SISTEMAS DIGITAIS (SD)

Sistemas Operacionais I

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA E BARRAMENTOS DE SISTEMA. Prof. Dr. Daniel Caetano

COMPUTADOR. Adão de Melo Neto

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA PRINCIPAL CAPÍTULO 4. Cristina Boeres

Introdução. Num micro-processador a informação é guardada em registos. Para isso precisamos de muitos registos, isto é memória em massa


Circuitos Lógicos Aula 26

O Mundo Real é Analógico ou Digital?

Sistemas Digitais (SD) Memórias

low): Descreve o que o sistema deve fazer utilizando expressões lógicas.

Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

14/3/2016. Prof. Evandro L. L. Rodrigues

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

SUBSISTEMA DE MEMÓRIA FELIPE G. TORRES

Calculadora Simples em VHDL

Sistemas de Computação. Seção Notas. A Memória Principal. Notas. Sexta Aula. Haroldo Gambini Santos. 26 de abril de Notas

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL

Arquitetura de Computadores Memória Principal

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

Sistemas de Computação

Funções de Lógica Combinacional

Painel Luminoso com LEDs

MEMÓRIA INTRODUÇÃO A INFORMÁTICA VINÍCIUS PÁDUA

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC

Transcrição:

PCS 35 Sistemas Digitais I Memórias & FPGAs Prof. Dr. Marcos A. Simplicio Jr. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II Memórias Dispositivos com grandes capacidade de armazenamento de dados Finalidade: Armazenar dados ou programas de maneira temporária ou definitiva. Aplicações dependem das características Forma de acesso: sequencial ou aleatório? Velocidade: quanto mais rápido o acesso, maior a eficiência do sistema como um todo Funcionalidade: leitura e escrita ou apenas leitura? Volatilidade: dados retidos mesmo se alimentação de energia cortada? Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 2

Memórias: Características Tecnologia: Não Semicondutor Magnético» Ferrite, Fita, Discos (Rígido, Flexível) Ópticos» CD, DVD, Blu-ray Disc (BD) Tecnologia: Semicondutor CMOS: alta densidade, baixo consumo) Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 3 Memórias: Características Acesso a dados Sequencial: Fita magnética, CD/DVD» Posições de memória em lugares sucessivos» Ler ou escrever na posição n requer leitura sequencial de todas as posições anteriores (n-k,..., n-) Tempo de acesso depende da posição de leitura atual (k) e da posição dos dados (n)» Baixo custo, porém baixa velocidade Direto ou Aleatório : Constituem a maior parte das memórias a semicondutores.» Caracterizadas principalmente por possuírem o mesmo tempo de acesso para todas as posições Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 4 2 2

Memórias: Características Acesso a dados (cont.) Possibilidade de escrita (no circuito):»memórias de apenas leitura: Gravação de conteúdo fora do circuito;»memórias de escrita e leitura: Conteúdo pode ser lido e alterado durante seu uso no circuito. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 5 Memórias: Características Retenção dos dados (volatilidade) Voláteis Perdem o conteúdo se ficam sem alimentação (ex.: RAM, registradores); Não Voláteis Não perdem o conteúdo mesmo, sem alimentação (ex.: EEPROM, Flash, disco). Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 6 3 3

ROM: O termo ROM significa Read-Only-Memory, ou memória somente de leitura Porém, ele é comumente usado para indicar memórias não-voláteis, incluindo memórias de leitura/escrita RAM: Memórias: Observação O termo RAM significa Random-Access- Memory, ou memória de acesso aleatório Porém, ele é comumente usado para memórias voláteis de acesso aleatório Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 7 Memórias: Características (resumo) Tempo de acesso depende da posição do dado? Sim: acesso sequencial; Não: acesso aleatório. É possível ler e escrever, ou apenas ler? Leitura e Escrita vs. apenas leitura Os dados são perdidos quando energia é removida? Sim: volátil; Não: não-volátil Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 8 4 4

Memórias: Arquitetura Interconexão de memórias com CPU Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 9 Via de Memórias: Arquitetura Endereços Via de Endereços MEMÓRIA Via de Dados Sinais de Controle Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 5 5

Memórias: Arquitetura seleciona a linha Via de Endereços 2 3 4 5 6 7 dados a serem lidos/escritos Via de Dados Sinais de Controle Seleciona leitura ou escrita Memória 8 x 4bits (32 bits de capacidade) end L/E dados Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II Memórias: Arquitetura seleciona a linha Via de Endereços 2 3 4 5 6 7 dados a serem lidos/escritos Via de Dados Sinais de Controle Seleciona leitura ou escrita Ex.: via de endereços: via de dados: comando de escrita Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 2 6 6

Memórias: Arquitetura seleciona a linha Via de Endereços 2 3 4 5 6 7 dados a serem lidos/escritos Via de Dados Sinais de Controle Seleciona leitura ou escrita Ex.: via de endereços: via de dados: comando de escrita Linha 3 sobrescrita Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 3 Memórias: Arquitetura seleciona a linha Via de Endereços 2 3 4 5 6 7 dados a serem lidos/escritos Via de Dados Sinais de Controle Seleciona leitura ou escrita Ex.: via de endereços: comando de leitura Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 4 7 7

Memórias: Arquitetura seleciona a linha Via de Endereços 2 3 4 5 dados a serem lidos/escritos Via de Dados 6 7 Sinais de Controle Seleciona leitura ou escrita Ex.: via de endereços: comando de leitura Via de dados: Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 5 Memórias: Capacidade Palavra:» N o de bits tratados simultaneamente (escrita/leitura): Típico:, 4, 8, 6, 32, 64, 28... N o de Posições:» N o de palavras que a memória pode armazenar» Cada posição está associada a um ENDEREÇO. Capacidade:» Quantidade de bits de uma memória, expressa em: N o total de bits (ou bytes) ou N o de posições x Tamanho de palavra em bits ou bytes Obs.: byte = 8 bits Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 6 8 8

...... Memórias: Capacidade Ex. Capacidade:» Ex.: Memória de 24 posições palavra de 8 bits Capacidade = 892 bits ou 24 x 8 Convenção: 24 = ki (ISO 8) bit = b ; byte = B 8 kib, ki x 8 bits, ki bytes, kib Obs.: referências antigas adotam k = 24» Ex.: Memória de 64 kib = 64 ki posições palavra de byte Como expressar? Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 7 Memórias: Capacidade Relação entre n o de posições e n o de linhas na Via de Endereços» Cada posição => um endereço (acesso direto) 2 posições 4 2 linha de endereçamento 2 n n Ex: ki = 2 = 24 Ex: 64ki = 2 6 = 65536 linhas na via de endereço: A-A9 6 linhas na via de endereço: A-A5 Ex: Mi = 2?? Gi = 2?? Ti = 2?? Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 8 9 9

Memórias: Tipos programável pelo usuário programável vez (não apagável) OTP PROM PROM ROM: Não-volátil EPROM programada de fábrica MROM programável várias vezes (apagável) apagável com luz UV UV EPROM apagável byte a byte EEPROM COMUM apagável eletricamente EEPROM apagável em blocos EEPROM FLASH Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 9 Lógica programável Como implementar um sistema digital? Circuitos SSI ou MSI: programação via ligação entre os chips Ex.: (de)mux, (de)codificador, somador,... μprocessador, μcontrolador: programação por linguagem de montagem ( software ) ASICs ( Application Specific Integrated Circuit ): circuito personalizado para aplicação Dispositivos programáveis : programação por fusíveis ou transistores especiais Ex.: Memórias, FPGA, CPLD Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 2

Memórias como PLDs Desafio: use uma memória para implementar a função f(x) = 2*x mod 3 Assuma que x tem 3 bits: a 7 Quantos bits de endereço? E de dados? Que valores precisam ser colocados na memória? Via de Endereços 2 3 4 5 Via de Dados 6 7 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 2 Memórias como PLDs Objetivo: use memória para construir um circuito que implemente a seguinte lógica Entradas Saídas A B C F F2 A B C Circuito Lógico F F2 F = ABC + ABC + ABC F2 = ABC + ABC + ABC + ABC Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

Memórias como PLDs Entradas Saídas A B C F F2 S i Memória PROM 3x2 A B C S i Vcc Internamente: fusíveis F F2 F = ABC + ABC + ABC F2 = ABC + ABC + ABC + ABC Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II PLDs modernos: CPLDs e FPGAs Com o avanço da microeletrônica, circuitos programáveis mais complexos foram sendo elaborados. Circuitos atuais se enquadram em duas categorias: CPLD Complex PLD FPGA Field Programmable Gate Array Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 2 2

Bloco de E/S PLDs modernos: Características Grande quantidade de lógica programável; Registradores pré-implementados para implementar circuitos sequenciais Interconexões programáveis entre lógica programável, registradores e entradas e saídas do dispositivo. É possível controlar o roteamento dos sinais dentro do circuito Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II PLDs modernos: FPGAs FPGA: estrutura segmentada de conexão Bloco de E/S Bloco de E/S Chaves programáveis (ligações do bloco com linhas de interconexão) Chaves programáveis (ligações entre linhas verticais e horizontais) Bloco lógico Bloco de E/S Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 3 3

PLDs modernos: FPGAs Complexidade: Podem emular algumas centenas de milhares de portas lógicas. Volatilidade FPGAs: voláteis (perdem a informação se desligadas). Várias FPGAs são associadas a *PROMs para permitir que informação seja recuperada ao ligar. Programação: linguagens de descrição de hardware VHDL, Verilog: traduzidas por sintetizador para o conjunto de bits que efetivamente programa o circuito Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: Componentes Compostas por: CLBs (Configurable Logic Blocks): blocos lógicos que executam funções lógicas IOBs (Input/Output Buffers): interface com mundo externo Interconexões programáveis: conecta CLBs e IOBs interconexões Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 4 4

Diagrama de blocos do Xilinx Spartan FPGAs: Componentes Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: CLBs CLBs por sua vez são compostos de: LUTs (lookup tables): implementam lógica combinatória Flip-flops: implementam funções sequenciais Multiplexadores: conectam LUTs e flip-flops Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 5 5

3 LUTs: LUT-F (4 x -bit) LUT-G (4 x -bit) LUT-H (3 x -bit) 2 saídas registradas XQ e YQ 2 saídas combinatórias X e Y FPGAs: CLBs Xilinx Spartan Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: LUTs LUT-N: uma tabela-verdade de N entradas e 2 N posições de bit. Programar uma LUT significa preencher os valores da tabela-verdade. LUT com 4 entradas 6 posições possíveis Pode emular 2 6 (~64 mil) funções booleanas distintas. FPGAs comerciais podem conter LUTs de até 6 entradas (mais de 6 bilhões de funções emuláveis). Implementadas usando MUXes: Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 6 6

Exemplo : FPGAs: LUTs MUX Elementos de memória (programa) Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: LUTs Exemplo : Programação de F A B C F F2 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 7 7

FPGAs: LUTs Exemplo : Programação de F2 A B C F F2 F2 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Exemplo 2: programação das funções X e Y na Xilinx Spartan: X = A'B'C + ABC' Y = AB' FPGAs: LUTs Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 8 8

9 9 Exemplo 2: programação das funções X e Y na Xilinx Spartan: X = A'B'C + ABC' Y = AB' FPGAs: LUTs F4 X X X X X X X x (A) (B) (C) (X) F3 F2 F F G4 X X X X G3 X X X X (A) (B) (Y) G2 G G Programa na LUT-G Programa na LUT-F A B A B C G4 G3 G2 G F4 F3 F2 F G F Y X Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Exemplo 2: programação das funções X e Y na Xilinx Spartan: X = A'B'C + ABC' Y = AB' FPGAs: LUTs A B A B Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

FPGAs: LUTs LUTs de 4 entradas: como calcular funções com maior número de variáveis? Resposta: associando 2 ou mais LUTs. Por exemplo, vamos calcular a função: X = A B C D E F G H Para isso precisamos inicialmente dividir a função em subfunções: X = A B C D X 2 = E F G H X = X X 2 3 LUTs Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: LUTs Vamos configurar: LUT-G para calcular X = A B C D LUT-F para calcular X 2 = E F G H LUT-H para calcular X = X X 2 MUXes de passagem devem ser configurados. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 2 2

2 2 LUT-G: A B C D LUT-F: E F G H LUT-H: A B C D E F G H FPGAs: LUTs A B C D E F G H Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: LUTs Usando associações, cada CLB Spartan pode calcular funções de até 9 variáveis. E para calcular funções de mais variáveis? Associam-se alguns CLBs, por meio das saídas combinatórias. Nota: ao se associar diversos CLBs, existe uma redução na frequência máxima Afinal, sinal deverá atravessar um número maior de LUTs... Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

FPGAs: Interconexões Programáveis Permitem conexão entre os CLBs Configuráveis de acordo com necessidade Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: Interconexões Programáveis Out, In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 22 22

23 23 FPGAs: Interconexões Programáveis Out, In Out, In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: Interconexões Programáveis Out, In Out, In Out, In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

24 24 FPGAs: Interconexões Programáveis Out, In Out, In Out, 2 In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: Interconexões Programáveis Out, 2 In Out, 2 In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

25 25 FPGAs: Interconexões Programáveis Out, 2 In Out, In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II FPGAs: Interconexões Programáveis Out, In Out, In On Off Transmissor MOS Out, In * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

FPGAs: Interconexões Programáveis Out, 3 In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Projeto Lógico com FPGAs O projeto lógico com FPGA em geral envolve o seguinte fluxo de atividades: Uso de ferramenta CAD para projeto e implementação de sistema digital, com entrada através de desenho esquemático e/ou HDL. Usuário simula o projeto. Ferramenta de síntese converte código para hardware e mapeia na FPGA. Ferramenta faz download da configuração na FPGA. Isso programa CLBs e conexões entre CLBs e IOBs. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 26 26

Projeto Lógico com FPGAs A síntese de código HDL é feita seguindo os passos: Síntese Tradução Otimização Mapeamento Posicionamento Roteamento Circuito Sintetizado Tradução: comandos VHDL são traduzidos para blocos de circuito lógico seguindo padrões prédefinidos pelo programa de síntese. Otimização: blocos padronizados são analisados com o intuito de otimizar o circuito sintetizado segundo critérios estabelecidos pelo projetista. Mapeamento: circuito lógico é mapeado nos componentes básicos disponíveis na tecnologia escolhida. Os blocos lógicos são mapeados nos blocos típicos da FPGA do componente alvo. Posicionamento: blocos lógicos da FPGA identificados na etapa anterior são posicionados dentro daqueles disponíveis na FPGA alvo. Roteamento : interligações entre os blocos lógicos previamente posicionados criam o circuito final. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Projeto Lógico com FPGAs: VHDL A tradução de comandos VHDL para implementação em FPGA segue as seguintes regras: Atribuições: pode implicar na utilização de um registrador mesmo quando não desejado. Case: usam multiplexadores para compor os casos especificados. Se nem todas as alternativas forem especificadas, a síntese usa também um registrador. If: usam multiplexadores. Comparações: usam componentes aritméticos e comparadores. Operações funcionais: usam componentes lógicos e aritméticos, registradores e comparadores, dependendo da operação. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 27 27

Projeto Lógico com FPGAs: VHDL Alguns comandos VHDL e suas traduções em FPGA Lembrando: portas lógicas são implementadas com LUTs Em casos mais complexos o circuito sintetizado pode variar dependendo de parâmetros e requisitos de otimização (desempenho ou área). A <= B and C; B A C A <= B and (not C); B A C Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Projeto Lógico com FPGAs: VHDL Síntese de with-select ou case Em princípio, usam MUXes signal sel : std_logic with sel select saida <= ent when, ent when, when others; ent ent saida sel Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 28 28

Projeto Lógico com FPGAs: VHDL Síntese de with-select ou case Em princípio, usam MUXes. Podem usar registradores para manter valor anterior se nem todos os casos forem especificados Esses circuitos com memória (denominados sequenciais ) são temas da disciplina de Sistemas Digitais II Reg signal sel : std_logic with sel select saida <= ent when ; ent saida sel Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Projeto Lógico com FPGAs: VHDL Síntese de with-select ou case : Sem otimização: process (a) begin case a is when => b <= ; when => b <= 3 ; when 2 => b <= ; when 3 => b <= ; end case; end process; a[:] 2 3 b[] a[] a[] a[] a[] Com otimização: 2 3 b[] b[:] a[] b[] b[:] a[:] a[] b[] Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 29 29

Projeto Lógico com FPGAs: VHDL Comparações devem ser usadas com cuidado. Comparações de inteiros usam blocos grandes de circuito, pois não existe forma trivial de fazê-las: if (A <= B) then A EQ LE B Comparador de 4 bits LT GT Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Exercício Implementação de um display de 7 segmentos usando: () memória e (2) FPGA Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 3 3

3 3 Exercício 2a Implemente a arquitetura do verificador de faixas de magnitude de 4 bits abaixo, usando with-select entrada 4 3 checkmag saida entrada saida a a a valor desconhecido architecture arch of checkmag is begin with entrada select saida <= when, when, when, when others; -- catch all end arch; Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 6 Exercício 2b Reimplemente a arquitetura do verificador de faixas de magnitude usando comandos de comparação O circuito criado é mais ou menos eficiente do que o do item 2a? entrada 4 3 checkmag saida entrada saida a a a valor desconhecido architecture arch of checkmag is -- sinal extra para enxergar entrada como unsigned signal u_entrada : unsigned(3 downto ); begin u_entrada <= unsigned(entrada); saida <= when u_entrada <= else end arch; Eficiência: MUX 6: 4 comparadores when u_entrada >= and u_entrada <= else when u_entrada >= else ; -- catch all : omissão pode levar sintetizador a -- inserir registrador para guardar valor da saída Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 62

quadro Exemplo/Exercício 3 Programar o módulo do jogo River Raid (Atari) que constrói o mapa base do jogo (terra e mar) Entrada (8 bits): pos, a posição do mapa Saídas (6 bits): para terra, para água Se o módulo que define a entrada for um contador simples: () qual o tamanho da memória? (2) Qual o #máximo de quadros antes do cenário se repetir? 9 8 7 6 5 4 3 2 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Exemplo/Exercício 3 Programar o módulo do jogo River Raid (Atari) que constrói o mapa base do jogo (terra e mar) Entrada (8 bits): pos, a posição do mapa Saídas (6 bits): para terra, para água Se o módulo que define a entrada for um contador simples: () qual o tamanho da memória? (2) Qual o #máximo de quadros antes do cenário se repetir? 9 8 7 6 5 4 3 2 ) 256 x 6 bits = 4Kib 2) 256 quadros: depois o contador reinicia Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 32 32

Exemplo/Exercício 3 Programar o módulo do jogo River Raid (Atari) que constrói o mapa base do jogo (terra e mar) Entrada (8 bits): pos, a posição do mapa Saídas (6 bits): para terra, para água Se o módulo que define a entrada puder ler posições aleatórias da memóra: usando uma memória 256x6 bits, qual o #máximo de quadros distintos? 9 8 7 6 5 4 3 2 Resp.: 256 quadros:, pois é por posição da memória Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II Lição de Casa Leitura Obrigatória: Capítulo 9 do Livro Texto. Exercícios Obrigatórios: Capítulo 9 do Livro Texto. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 66 33 33

34 34 Memórias por dentro : exemplos APÊNDICE 67 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 67 4. Tipos de Memórias a Semicondutor: ROM Ex.: ROM de 4 palavras de 4 bits E E D 3 D 2 D D S 3 S 2 S S D 3 D 2 D D => End. Dados Seleção Interna Dados Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 68

35 35 4. Tipos de Memórias a Semicondutor: ROM Ex.: ROM de 4 palavras de 4 bits S D 3 D 2 D D bit lines E S E S 2 S 3 word lines R 3 V R 2 V R R Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 69 4. Tipos de Memórias a Semicondutor: ROM Ex.: ROM de 4 palavras de 4 bits +5V \S R 3 R 2 R R E E \S \S 2 \S 3 D D D 2 D 3 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 7

36 36 4. Tipos de Memórias a Semicondutor: ROM Inconveniente: S i deve ter alto fan-out. Solução: Transistor I c drenada da fonte, reduzindo corrente I b = (I c /β) drenada de S i +5V R 3 R 2 R R S E E S S 2 S 3 D D D 2 D 3 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 7 4. Tipos de Memórias a Semicondutor: MROM MROM Mask-programmed ROM Características:» Programada na fabricação do circuito integrado» As informações são armazenadas conectando ou desconectando o Gate fonte de um transistor MOSFET à coluna de saída (MROM MOS).» Programação na etapa de metalização do circuito: uma máscara para depositar metais sobre o silício.» Alto custo total / baixo custo unitário Utilização:» Armazenamento de tabelas de funções matemáticas, códigos: uso geral.» Programas de dispositivos produzidos em larga escala Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 72

37 37 4. Tipos de Memórias a Semicondutor: MROM Exemplo: MROM 2x2 Transistor: conectado =, desconectado = Seleção de endereço E Dados : Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 73 4. Tipos de Memórias a Semicondutor: MROM Fonte: Digital Systems: Principles and Applications, ed. Ronald J. Tocci, Neal S. Widmer, Gregory L. Moss Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 74

4. Tipos de Memórias a Semicondutor: PROM PROMs -Programmable ROM Programação feita pelo usuário e fixa (uma só vez). Programador (queimador) específico para cada tipo de PROM. Tempo de programação: ~ 2min. endereço Inicialmente: Valor lógico armazenado em todos os bits. fusível Dados Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 75 4. Tipos de Memórias a Semicondutor: PROM PROMs -Programmable ROM Programação: queimar fusíveis onde deve haver zero» Aplicação de a 3V em um pino especial na pastilha» Correntes/Tensões elevadas no nó (valor e tempo de aplicação depende da PROM) Utilização: produtos de escala menor do que ROM. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 76 38 38

39 39 4. Tipos de Memórias a Semicondutor: PROM Alta corrente As PROMs utilizam fusíveis que podem ser abertos seletivamente pelo usuário para programar o nível lógico na célula. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.2 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 77