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

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

PCS 3115 Sistemas Digitais I

Dispositivo Lógico Programável(PLD)

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

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

Universidade Federal do ABC

ELETRÔNICA DIGITAL II

Hardware Reconfigurável

SSC0112 Organização de Computadores Digitais I

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

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

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

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

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

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

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

Dispositivos de Lógica Programável

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

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

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

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

MEMÓRIAS SEMICONDUTORAS

Universidade de São Paulo

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

Organização e Arquitetura de Computadores I

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

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

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

ROM

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

Parte # 2 - Circuitos Combinatórios

COMPUTADOR. Adão de Melo Neto

FPGA & VHDL. Tutorial

SISTEMAS DIGITAIS (SD)

Circuitos Lógicos Aula 26

Sistemas Digitais (SD) Lógica Programável

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

Geradores de Clock e Memórias

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

Sistemas Digitais (SD) Memórias

SISTEMAS DIGITAIS (SD)

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

EPROM - EEPROM Dispositivos Lógicos Programáveis

Sistemas Digitais (SD) Lógica Programável

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

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

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


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

Arquitetura e Funcionamento do Computador

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

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

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

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

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

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

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

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

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

Sistema de Memórias COMPUTADOR CONTROLE ENTRADA VIA DE DADOS SAÍDA PROCESSADOR MEMÓRIA S E TO R R EC RE CEI TA S T EM S E TO R C A RNE S

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

Memória Principal. Tiago Alves de Oliveira

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

Introdução à Computação

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

Arquitetura de Computadores Memória Principal

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

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

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

Estrutura Básica de um Computador

Memórias Parte 1. SEL-0415 Introdução à Organização de Computadores. Aula 4. Prof. Dr. Marcelo Andrade da Costa Vieira

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

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

SUBSISTEMA DE MEMÓRIA FELIPE G. TORRES

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

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

Sistemas de Computação

Registradores de Deslocamento e Memórias

ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano

Conceitos e Gerenciamento de Memória

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

Projetos de Circuitos Digitais em VHDL e FPGA

Usadas para manter os dados e programas a serem acessados diretamente pelo microprocessador.

ARQUITETURA DE COMPUTADORES. Nível da Lógica Digital. Prof.: Agostinho S. Riofrio

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

Memórias. Alberto Felipe Friderichs Barros

COMPUTADOR. Adão de Melo Neto

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

MICROPROCESSADORES TIPOS DE MEMÓRIAS

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

ORGANIZAÇÃO DE COMPUTADORES

Arquitetura de Computadores. Memórias

Painel Luminoso com LEDs

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

Modelo de Von Neumann: conceito do programa armazenado

Circuitos Sequenciais

Transcrição:

PCS 3115 Sistemas Digitais I Memórias & FPGAs Prof. Dr. Marcos A. Simplicio Jr. Adaptado por Glauber (218) Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 1

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.12 <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.12 <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-1) 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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 4

Memórias: Características Acesso a dados (cont.) Possibilidade de escrita (no circuito):»memórias de apenas leitura: Gravação de conteúdo muito lenta ou fora do sistema;»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.12 <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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 6

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.12 <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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 8

Memórias: Arquitetura Interconexão de memórias com CPU Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 1

Memórias: Arquitetura seleciona a posição Via de Endereços 1 2 3 4 5 1 1 1 1 1 1 dados a serem lidos/escritos Via de Dados 6 1 1 7 1 1 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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 11

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

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

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

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

Memórias: Capacidade Palavra:» N o de bits tratados simultaneamente (escrita/leitura): Típico: 1, 4, 8, 16, 32, 64, 128... 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.: 1 byte = 8 bits Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 16

...... 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 1 2 linha de endereçamento 2 n n Ex: 124 posições 1 linhas na via de endereço: A-A9 Ex: 2 16 = 65536 posições 16 linhas : A-A15 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 17

Memórias: Capacidade Ex. Capacidade:» Ex.: Memória de 124 posições palavra de 8 bits Capacidade = 8192 bits ou 124 x 8 Convenção: 124 = 1ki (ISO 8) 1 bit = b ; 1 byte = B 8 kib, 1ki x 8 bits, 1ki bytes, 1 kib Obs.: referências antigas adotam 1k = 124» Ex.: Memória de 64 kib = 64 ki posições palavra de 1 byte Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 18

Associação de Memórias : Read Enable, Chip Select Pergunta: usando o mesmo tipo de chip, expandir tamanho das palavras para 8 bits Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 19

Associação de Memórias Ex.: expansão de tamanho da palavra. 256x8 bits Mesma entrada de endereços Combinação dos bits de dados Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 2

Associação de Memórias : Read Enable, Chip Select Pergunta: usando o mesmo tipo de chip, expandir número de palavras para 512 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 21

Associação de Memórias Ex.: expansão do número de palavras Bit extra de endereço (chip select) 512x4 bits Mesma via de dados: alta impedância se CS desativado Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 22

Associação de Memórias Aumento do número de posições Ex.: A partir do Módulo de 256x4 => obter 512x4 End. -7 End. 8 512 posições => 2 9 => Via de endereços 9 bits => 2 chips A... A7 S... S3 D Sai -3 256x4 posições h-ffh RE CS... D3 Leitura A S... A7 RE CS... S3 D... D3 Entra -3 256x4 posições h-ffh -Acesso não simultâneo a cada CI -Necessidade de saídas tri-state => barramento de dados (data bus) -Controle da seleção dos CIs: bits de endereço que excedem a capacidade de endereçamento interno. -Endereçamento Andrade, Midorikawa, dentro Saraiva, dos CI: Símplicio bits menos e Spina significativos. 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 23

Associação de Memórias Aumento do tamanho da palavra Ex.: Dada a RAM 1ki x 4bits, obter 1ki x 1 byte. Tamanho: 1 byte = 8 bits => 2 chips de 4 bits End. -9 1 4 A I/O... A9... I/O 3 D-3 D4-7 1ki x 8 posições 1ki bytes /SEL WE CS 4 /WR A I/O... A9... I/O 3 WE CS Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 24

Associação de Memórias Aumento do número de posições Ex.: Dada a RAM 1ki x 8bits, obter 4ki x 1 byte. END-9 Endereços: 4ki posições => 2 12 => Via de endereços 12 bits => 4 chips D-7 A I/O A I/O... A9 1ki bytes... I/O 3... A9 1ki bytes... I/O 3 END1 END11 \CS \CS1 \CS2 \CS3 A... A9 WE WE CS 1ki bytes CS I/O... I/O 3 A... A9 WE WE CS 1ki bytes CS I/O... I/O 3-3FFh 4-7FFh 8-BFFh C-FFFh /WR Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 25

Memórias ROM: Tipos programável pelo usuário programável 1 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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 26

Memórias RAM RAM: Memórias de leitura e escrita, voláteis, mais rápidas que ROM, porém mais caras Principal tecnologia: CMOS Dois principais tipos: estática (SRAM) e dinâmica (DRAM) DDR DRAM: double-data-rate, lê escreve no dobro da velocidade. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 27

Memórias: Hierarquia O que queremos?» Memórias rápidas E baratas! O que temos?» Memórias rápidas OU baratas. SRAM:.1 centavo por bit, acesso em 1 ns HD: 1-9 centavos/bit, acesso em 1 ms Solução: Hierarquia de memórias. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 28

Memórias: Hierarquia Memórias mais rápidas para o que mais usamos Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 29

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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 3

Memórias como PLDs Desafio: use uma memória para implementar a função f(x) = 3*x mod 1 Assuma que x tem 3 bits: a 7 Quantos bits de endereço? E de dados? Que valores precisam ser colocados na memória? 1 1 1 Via de Endereços 2 3 4 5 1 1 1 1 1 1 1 Via de Dados 6 1 7 1 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 31

Memórias como PLDs Objetivo: use memória para construir um circuito que implemente a seguinte lógica Entradas Saídas A B C F1 F2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A B C Circuito Lógico F1 F2 F1 = ABC + ABC + ABC F2 = ABC + ABC + ABC + ABC Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

Memórias como PLDs Entradas Saídas Memória PROM 8x2bits A B C F1 F2 S i 1 1 1 1 1 1 1 1 1 1 A B C 1 1 1 1 1 1 1 S i Vcc Internamente: fusíveis 1 1 1 1 1 1 1 1 1 F1 F2 F1 = ABC + ABC + ABC F2 = ABC + ABC + ABC + ABC Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

Bloco de E/S PLDs modernos: FPGAs FPGA: estrutura segmentada de conexão Bloco de E/S 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 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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.12 <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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

Diagrama de blocos do Xilinx Spartan FPGAs: Componentes Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

3 LUTs: LUT-F (16 x 1-bit) LUT-G (16 x 1-bit) LUT-H (8 x 1-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.12 <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 1 bit. Programar uma LUT significa preencher os valores da tabela-verdade. LUT com 4 entradas 16 posições possíveis Pode emular 2 16 (~64 mil) funções booleanas distintas. FPGAs comerciais podem conter LUTs de até 6 entradas (mais de 16 bilhões de funções emuláveis). Implementadas usando MUXes: Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

FPGAs: LUTs Exemplo 1: MUX Elementos de memória (programa) Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

FPGAs: LUTs Exemplo 1: Programação de F1 A B C F1 F2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

FPGAs: LUTs Exemplo 1: Programação de F2 A B C F1 F2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F2 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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.12 <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 F4 X X X X X X X x (A) (B) (C) (X) F3 1 1 1 1 F2 F1 F 1 1 1 1 1 1 1 1 1 1 G4 X X X X G3 X X X X (A) (B) (Y) G2 G1 G 1 1 1 1 1 Programa na LUT-G Programa na LUT-F A B A B C G4 G3 G2 G1 F4 F3 F2 F1 G F Y X Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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.12 <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 1 = A B C D X 2 = E F G H X = X 1 X 2 3 LUTs Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

FPGAs: LUTs Vamos configurar: LUT-G para calcular X 1 = A B C D LUT-F para calcular X 2 = E F G H LUT-H para calcular X = X 1 X 2 MUXes de passagem devem ser configurados. Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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.12 <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.12 <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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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

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

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

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

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

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

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

FPGAs: Interconexões Programáveis 1 Out, 3 In On Off Transmissor MOS * Ligar duas saídas pode gerar curtos! Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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.12 <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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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 (not C); B A C Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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, ent1 when 1, when others; ent ent1 1 saida sel Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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. 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 <= ent1 when 1 ; ent1 1 saida sel Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <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 <= 1 ; when 1 => b <= 3 ; when 2 => b <= ; when 3 => b <= 1 ; end case; end process; a[1:] 1 1 2 3 b[1] 1 1 1 a[1] a[] a[1] a[] Com otimização: 1 2 3 b[] b[1:] a[1] b[1] b[1:] a[1:] a[] b[] Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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 Comparador de 4 bits LT B GT Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

Exercício 1 Implementação de um display de 7 segmentos usando: (1) memória e (2) FPGA Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II

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 11 1 1 a 11 1 11 a 1111 1 valor desconhecido architecture arch of checkmag is begin with entrada select saida <= 1 when 1 1 11, 1 when 1 11 11 111 1 11, 1 when 11 111 11 111 111 1111, when others; -- catch all end arch; Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 71

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 11 1 1 a 11 1 11 a 1111 1 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 <= 1 when u_entrada <= 11 else end arch; Eficiência: 1 MUX 16:1 4 comparadores 1 when u_entrada >= 1 and u_entrada <= 11 else 1 when u_entrada >= 11 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.12 <Circ.Seq.: Bloc. Bás.I> PCS 234 Sistemas Digitais II 72

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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 73

Memórias por dentro : exemplos APÊNDICE 74 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 74

4. Tipos de Memórias a Semicondutor: ROM Ex.: ROM de 4 palavras de 4 bits E 1 E D 3 D 2 D 1 D S 3 S 2 S 1 S D 3 D 2 D 1 D 1 1 1 1 1 1 1 1 1 1 => 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 End. Dados Seleção Interna Dados Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 75

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

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

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 1 R S 1 E E 1 S 1 S 2 1 S 3 1 1 D D 1 D 2 D 3 1 1 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 78

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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 79

4. Tipos de Memórias a Semicondutor: MROM Exemplo: MROM 2x2 Transistor: conectado = 1, desconectado = 1 E 1 Seleção de endereço 1 Dados : 1 Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 8

4. Tipos de Memórias a Semicondutor: MROM Fonte: Digital Systems: Principles and Applications, 11ed. Ronald J. Tocci, Neal S. Widmer, Gregory L. Moss Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 81

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 1 Inicialmente: Valor lógico 1 armazenado em todos os bits. fusível Dados Andrade, Midorikawa, Saraiva, Símplicio e Spina 2.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 82

4. Tipos de Memórias a Semicondutor: PROM PROMs -Programmable ROM Programação: queimar fusíveis onde deve haver zero» Aplicação de 1 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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 83

4. Tipos de Memórias a Semicondutor: PROM Alta corrente 1 1 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.12 <Circ.Seq.: Bloc. Bás.II>PCS 234 Sistemas Digitais II 84