Circuitos Programáveis

Documentos relacionados
CMP 238 Projeto e Teste de um Sistema VLSI

Dispositivos de Lógica Programável

FPGA & VHDL. Tutorial

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

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

Sistemas Digitais (SD) Lógica Programável

Hardware Reconfigurável

Sistemas Digitais (SD) Lógica Programável

VHDL Circuitos Combinacionais

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

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

Introdução à Linguagem VHDL

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

Dispositivo Lógico Programável(PLD)

Introdução a Sistemas Digitais

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

VHDL. Descrição e Projeto de Circuitos Utilizando VHDL

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

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 18/04/2016 Prof. Alexandre - ELP1DLP1 / DEE

SISTEMAS DIGITAIS. Linguagem de Descrição de Hardware VHDL. Prof. Fernanda Gusmão de Lima Kastensmidt

ELETRÔNICA DIGITAL I

CMP238 Projeto e Teste de Sistemas VLSI

Módulo 4 Introdução ao VHDL

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :

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

Introdução ao VHDL. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva. Original por Ayman Wahba

Aula 2 Semântica de VHDL

Prof. Leonardo Augusto Casillo

Revisão: Projeto de Processadores em VHDL

Técnicas Digitais para Computação

Parte # 2 - Circuitos Combinatórios

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

Projeto com Linguagens de Descrição de Hardware

Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas.

Introdução. VHDL: VHSIC Hardware Description Language. Origem: VHSIC: Very High Speed Integrated Circuits. Departamento de Defesa EUA

Tipos enumerados definem uma lista de valores, e são especialmente úteis na

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE

Projetos de Circuitos Digitais em VHDL e FPGA

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

Computadores dedicados

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada

Introdução a Sistemas Digitais

Tópicos Especiais 2 Capítulo 3 Introdução ao VHDL, sintaxe básica, tipo de dados e atribuições

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

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

Arquitetura de Computadores

Introdução a Sistemas Digitais

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Introdução aos Circuitos Integrados de Aplicação Específica

Introdução aos circuitos integrados de aplicação específica

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Introdução ao VHDL. César A. M. Marcon

Projeto de Somador com e sem Sinal. Qualificadores

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Projeto Moderno de Sistemas Digitais

Exercícios de Laboratório 3

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

Calculadora Simples em VHDL

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Eletrônica Digital para Instrumentação. Herman Lima Jr.

Circuitos Digitais Representação Numérica. Sistema Digital. Circuitos Digitais. Conversão A/D e D/A. Circuitos Digitais

Descrição e Projeto de Circuitos Utilizando VHDL

Organização e Arquitetura de Computadores II

FSM em VHDL e Verificação Funcional. CMP de junho de 2006

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200.

12/11/13. Obje%vos do laboratório. SST20707 Síntese de Sistemas de Telecomunicações. Síntese de máquinas de estado (FSM) Finite State Machine (FSM)

Sistemas Digitais I LESI :: 2º ano. Introdução

PCS 3115 Sistemas Digitais I

Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno

Descrição de um Hardware Multiplicador Parametrizável para Números Sinalizados em Complemento a Dois em Lógica Configurável

Transcrição:

Circuitos Programáveis CPLD FPGA

Tipos de componentes Circuito de aplicação específica (ASIC): circuito integrado projetado especialmente para uma determinada função. Fabricado em uma foundry com todos os conjuntos de mascaras de metal, polissilicio, dopagem no silicio, etc. Full-custom Standard cell (baseado em biblioteca de células já caracterizadas) Chip Lógica programável: circuito que pode ser customizado e re-programado para realizar diversas funções. Pode ser customizado nas foundries (gate array) ou no campo pelo usuário. Compromisso: Custo X Custo por unidade X tempo de projeto X desempenho ASIC FPGA Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2

(Programação) 10100011001 Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 3

Circuitos Programáveis As PALs estão disponiveis somente em tamanhos pequenos, equivalentes a algumas centenas de portas lógicas. Para circuitos lógicos maiores pode-se usar Complex PLD ou CPLDs. Este contém o equivalente a muitas PALs ligadas por interconexão programadas, tudo num circuito integrado. Os CPLDs podem substituir milhares ou até centenas de milhares portas lógicas. Algumas CPLDs são programadas usando o programador PAL, mas este método torna-se inconveniente para dispositivos com centenas de pinos. O segundo método de programação é soldar o componente à sua placa de circuito impresso, e depois ligar um cabo de série de dados ao PC. O CPLD contém um circuito que decodifica os dados e configura-o para realizar a função lógica específica. Cada fabricante tem um nome proprietário para este sistema de programação, mas normalmente é dado pela interface Joint Test Action Group (JTAG). Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 4

Estruturas do Circuito Programável Tecnologia de programação (anti-fusível, EPROM/EEPROM/FLASH, memória SRAM) Blocos lógicos básicos customizáveis ( multiplexadores também conhecido como Lookup Table-LUT, arranjos OR e AND, etc) Connexões programáveis Ferramenta para projeto e sintese no componente programável. Principais fabricantes: Actel Altera Xilinx Conforme o bloco lógico básico e a estrutura das conexões programáveis denominamos de: CPLD (Complex Programmable Logic Devices) FPGA (Field Programmable Gate Array) Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 5

Diferenças entre CPLD x FPGA 1) CPLDs tem um conjunto grande de interconexões continuas e predefinidas, enquanto o FPGA tem conexões segmentadas em tamanhos pequenos. 2) Os CPLDs normalmente tem um conjunto de arrays AND e OR lembrando muito os antigos PLAs, enquanto os FPGAs são arrays regulares de multiplexadores separados em colunas e linhas, o que aumenta a densidade lógica. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 6

Tecnologia Anti-fusivel É composto por um elemento que faz ou não a conexão entre duas camadas de metal conforme uma tensão de programação. Não é volátil, ou seja, retem a programação mesmo sem alimentação. O chip pode ser programado apenas 1 vez. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 7

FPGA da Actel Usa tecnologia antifusível Baseado em um array de portas lógicas com canal de roteamento Cada elementro lógico programável é baseado em multiplexadores. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 8

Logic Elements (LE) da Actel Programa para implementar tabelas verdades de funções Booleanas Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 9

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 10 ACTEL: RTAX ACTEL: RTAX-S device S device RAM CT RAM RAM RAM RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD HD HD HD HD HD HD HD HD HD HD HD HD HD [Actel, RTAX-S RadTolerant FPGAs 2007] C R RX TX RX TX RX TX RX TX B C C C R Super Cluster

ACTEL: RTAX-S S device C C R C-CELL C-CELL R-CELL D0 D2 DB A0 A1 Y D1 D3 B0 B1 CFN FCI 0 1 0 1 0 1 0 1 0 1 D0 D2 DB A0 A1 FCO Y D1 D3 B0 B1 CFN 0 1 0 1 0 1 0 1 0 1 0 1 Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 11

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 12

Tecnologia EPROM e EEPROM EPROM e EEPROM é uma tecnologia não volátil, ou seja, mantem a programação mesmo na falta de alimentação e é re-programável. O chip pode ser programado inúmeras vezes. O transistor fabricado em tecnologia EPROM pode ser programado quando uma tensão alta (~12V) é aplicada no seu gate. E a programação pode ser apagada com raios ulta-violetas. O transistor fabricado em tecnologia EEPROM também é programado por uma tensão alta (~12V) aplicada no seu gate e pode ser apagado eletricamente. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 13

FPGA e CPLDs da Altera Família Número de Gates Programação MAX5000 600 a 3,7K EEPROM MAX7000 600 a 5K EEPROM MAX9000 6K a 12K EEPROM FLEX6000 5K a 24K SRAM FLEX8000 2,5K a 16K SRAM FLEX10K 10K a 250K SRAM FLEX20K 53K a 1000K SRAM Mercury 120k a 350k SRAM Apex 700k a 2M SRAM ApexII 1.9M a 5.2M SRAM Ciclone SRAM Stratix 10k a 40k LE SRAM MAX SRAM Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14

Bloco Lógico do PLD MAX7000 Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 15

Field Programmable Gate Array FPGAs comerciais Altera FLEX 10K Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 16

Field Programmable Gate Array FPGAs comerciais Altera MUX 16:1 FLEX 10K Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 17

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 19

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 20

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 21

Stradix II MUX 16:1 MUX8:1 Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 22

Exemplos de Design Kits MAX (CPLD) FLEX (FPGA) Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 23

Outros kits Com processador embarcado NIOS (processador soft core), ou seja, descrito em linguagem de hardware (VHDL/VERILOG) que pode ser implementado na matriz pelo usuário. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 24

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 25

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 26

Tecnologia SRAM A maioria dos FPGAs são programados por SRAM. A programação fica armazenada em uma célula de memoria SRAM que controla transistores de passagem e multiplexadores para configurar a lógica e roteamento. É volátil, ou seja, perde a programação na falta de alimentação. Pode ser programada inúmeras vezes pelo usuário atraves da leitura do bistream (array de bits de programação) para dentro do FPGA. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 27

Field Programmable Gate Arrays FPGAs comerciais Xilinx A empresa Xilinx foi fundada em 1984 em San José (Califórnia, USA) e foi ela que introduziu o FPGA. Hoje em dia, esta empresa domina cerca de 50 % do mercado em FPGAs. Família Número de Portas Característica XC2000 1,2K a 1,8K - XC3000 2K a 9K Low-power XC4000E 2K a 20K Low-power XC4000XL/XLA 10K a 200K High-density XC4000XV 75K a 500K High-density XC5200 3 K a 23K Low-power SPARTAN/XL 2K a 40K Low-power VIRTEX 50K a 1M High-density SPARTAN-2 SPARTAN-3 VIRTEXII VIRTEXII-PRO 1k a 15k 2k a 33k 40k a 8 M Power-PC inside LOW COST LOW COST High density VIRTEX4 13K a 200K Low-power VIRTEX4-FX VIRTEX5 Power-PC inside Tecnologia CMOS 220nm 130nm 90nm 65 nm Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 28

Technology Scaling in Xilinx FPGAs Tecnologia Nano-métrica Processador Embarcado Memoria Embarcada (BRAM) Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 29

A informação é customizada por um vetor de bits chamado de BITSTREAM (set of SRAM bits) Essas são as celulas SRAM que guardam a programação Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 30

Mapeamento lógico SRAM-based FPGAs VHDL / Verilog Descriptions ASIC E1 E2 E3 E1 E2 clk E1 E3 E2 E3 clk FPGA slice BlockRAM F1 F2 F3 F4 LUT M ff M M M M M M M Configuration Memory Cell Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 31

Field Programmable Gate Arrays FPGAs comerciais Xilinx CLB Virtex Family from Xilinx, Inc. PLL Segmented routing CLB single lines Pass-transistor 66 MHz PCI SSTL3 M hex lines SelectI/O Pins hex lines Vector Based Interconnect delay=f(vector) Block SelectRAM Memory single lines Distributed SelectRAM Memory single lines single lines Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 32

General Routing Matrix (GRM) - VirtexII Direct lines Long lines CLB CLB CLB CLB CLB CLB CLB Hex connections CLB Hex lines CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB Direct connections Fast connect Double lines CLB CLB CLB Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 33

Xilinx VirtexII - CLB MUX 16:1 Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 34

Virtex Carry Select Lógica especifica pre-fabricada na matriz para propagação de Carry para acelerar o desempenho de somadores e multiplicadores implementados em FPGA Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 35

CLB Evolution 6-LUT 4-LUT ffp 6-LUT ffp Slice0 Slice1 4-LUT ffp 6-LUT 6-LUT ffp Switch Matrix Virtex Mais complexidade no mesmo bloco programável (CLB) (redução do número de niveis logicos de CLB) Switch Matrix Slice0 Slice1 Hex Long Single Roteamento mais complexo para diminuir o numero de segmentos de roteamento e aumentar o Virtex-4 desempenho Virtex-II Long Direct Double Hex Virtex-5 Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 36

Virtex 5: CLB MUX 64:1 Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 37

BRAM Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 38

Placa de Prototipação (Exemplo) FPGA Spartan3 Manual no site: http://www.digilentinc.com/products/detail.cfm?prod=s3board&nav1=products&nav2=programmable Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 39

Processadores embarcados em FPGA Hard Core: Processador tipo ASIC dentro do FPGA. Soft Core: Processador em VHDL/VERILOG a ser sintetizado no FPGA. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 40

VirtexII-Pro Platform A familia que contem o processador PowerPC embarcado no FPGA Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 41

Embedded Processor Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 42

Microblaze (soft core) Processador descrito em VHDL/Verilog que pode ser implementado no FPGA através da ferramenta de programação. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 43

VirtexII-Pro Board (Exemplo( Exemplo) Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 44

Reconfigurable Computing É possivel reconfigurar parcialmente o FPGA para realizar diferentes tarefas ao longo to tempo. Isso pode acelerar o processamento de um processador por exemplo. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 45

Presented by Trimberger (FPL, 2007) Exemplo de FPGA (Virtex5) acoplado a uma placa de video para acelerar o processamento de imagem. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 46

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 47

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 48

Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 49

Noções de VHDL VHDL foi desenvolvido primeiramente pelo Departamento de Defesa Americano: the American Department of Defense (DoD). Em 1987, VHDL foi padronizado pelo Instituto Americano de Engenharia Eletro e Eletrônica: American Institute of Electrical and Electronics Engineers (IEEE) em 1993. International Standards IEEE Std 1076-1987 IEEE Std 1076-1993 Hardware Description Language (HDL) = "Programming"-language para modelar hardware digital VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit Hardware description, simulation, and synthesis Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 50

Estrutura do VHDL 1 library library_name; use library_name.tipo; entity name is 2 port(pino1 : in tipo; pino2 : in tipo; pino3 : out tipo); name end; process(sinais) begin end process; process(clk) begin 5 6 architecture name_tipo of name is <declaração de componentes> <declaração de sinais> 3 begin 4 end process; <outros comandos> 7 <instanciação de componentes; end; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 51

1 Bibliotecas LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.all; - São necessárias para usar operadores de soma e subtração e usar o tipo std_logic e std_logic_vector para definir pinos e sinais internos. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 52

Estrutura do VHDL 1 library library_name; use library_name.tipo; entity name is 2 port(pino1 : in tipo; pino2 : in tipo; pino3 : out tipo); name end; process(sinais) begin end process; process(clk) begin 5 6 architecture name_tipo of name is <declaração de componentes> <declaração de sinais> 3 begin 4 end process; <outros comandos> 7 <instanciação de componentes; end; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 53

Tipo Binário com multiplos valores: STD_LOGIC e STD_LOGIC_VECTOR IEEE-standard 9 valores padronizados pela IEEE standard IEEE 1164 (STD_LOGIC_1164) IEEE Standard Logic Type type STD_ULOGIC is ( ` U `, -- uninitialized ` X `, -- strong 0 or 1 (= unknown) ` 0 `, -- strong 0 ` 1 `, -- strong 1 ` Z `, -- high impedance ` W `, -- weak 0 or 1 (= unknown) ` L `, -- weak 0 ` H `, -- weak 1 ` - `, -- don`t care); Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 54

Exemplo até agora library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity memoria_teste is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; pronto : out STD_LOGIC; dado : out STD_LOGIC_VECTOR (7 downto 0)); end memoria_teste; Declara as bibliotecas Declara a entidade que é a interface do teu circuito com os pinos de entrada (in) e saída (out) e tipo std_logic (1 bit) ou std_logic_vector (vetor de n bits) Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 55

Estrutura do VHDL 1 library library_name; use library_name.tipo; entity name is 2 port(pino1 : in tipo; pino2 : in tipo; pino3 : out tipo); name end; process(sinais) begin end process; process(clk) begin 5 6 architecture name_tipo of name is <declaração de componentes> <declaração de sinais> 3 begin 4 end process; <outros comandos> 7 <instanciação de componentes; end; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 56

3 Declaração de sinais architecture Behavioral of memoria_teste is signal cont, dadomem_in: STD_LOGIC_VECTOR (7 downto 0); signal leitura, escrita, WR: std_logic; begin Entre a declaração da arquitetura e o begin (inicio do circuito), podes declarar os sinais internos do circuito e o tipo deles. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 57

Estrutura do VHDL 1 library library_name; use library_name.tipo; entity name is 2 port(pino1 : in tipo; pino2 : in tipo; pino3 : out tipo); name end; process(sinais) begin end process; process(clk) begin 5 6 architecture name_tipo of name is <declaração de componentes> <declaração de sinais> 3 begin 4 end process; <outros comandos> 7 <instanciação de componentes; end; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 58

Usando componentes prontos Temos que declarar o componente e depois instancia-lo. O componente é uma outra entidade e arquitetura definido em outro arquivo que ja foi compilado e está no mesmo diretório de trabalho. Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 59

Declaração de componente entity FULLADDER is port (A,B, CARRY_IN: in std_logic; SUM, CARRY: out std_logic); end FULLADDER; architecture STRUCT of FULLADDER is signal W_SUM, W_CARRY1, W_CARRY2 : std_logic; component HALFADDER port (A, B : in std_logic; SUM, CARRY : out std_logic); end component; component ORGATE port (A, B : in std_logic; RES : out std_logic); end component; begin... Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 60

Modelo Hierarquico Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 61

Instanciação de Componente architecture STRUCT of FULLADDER is component HALFADDER port (A, B : in std_logic; SUM, CARRY : out std_logic); end component; component ORGATE port (A, B : in std_logic; RES : out std_logic); end component; signal W_SUM, W_CARRY1, W_CARRY2: std_logic; begin Assinalamento dos sinais (ports) pela ordem dos pinos na interface do componente MODULE1: HALFADDER port map( A, B, W_SUM, W_CARRY1 ); MODULE2: HALFADDER port map ( W_SUM, CARRY_IN, SUM, W_CARRY2 ); MODULE3: ORGATE port map ( W_CARRY2, W_CARRY1, CARRY ); end STRUCT; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 62

Instanciação de Componente: associação de nomes dos ports entity FULLADDER is port (A,B, CARRY_IN: in std_logic; SUM, CARRY: out std_logic); end FULLADDER; architecture STRUCT of FULLADDER is component HALFADDER port (A, B : in std_logic; SUM, CARRY : out std_logic); end component;... signal W_SUM, W_CARRY1, W_CARRY2 : std_logic; begin Assinalamento explicito MODULE1: HALFADDER port map ( A => A, SUM => W_SUM, B => B, CARRY => W_CARRY1 );... end STRUCT; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 63

Estrutura do VHDL 1 library library_name; use library_name.tipo; entity name is 2 port(pino1 : in tipo; pino2 : in tipo; pino3 : out tipo); name end; process(sinais) begin end process; process(clk) begin 5 6 architecture name_tipo of name is <declaração de componentes> <declaração de sinais> 3 begin 4 end process; <outros comandos> 7 <instanciação de componentes; end; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 64

5 Comandos Process Todos os comandos após o BEGIN são vistos como comandos concorrentes entre si. Mas dentro de um process, os comandos são executados de maneira sequencial. Quando todas as entradas do bloco definido no process estão na lista de sensibilidade deste process, então estamos projetando um circuito combinacional. process (reg1,reg2,reg3,reg4,flagj1,flagj2,flagj3,flagj4) begin if (flagj1 = '1' and flagj2 = '1' and flagj3 = '1' and flagj4 = '1') then if (reg1>reg2 and reg1>reg3 and reg1>reg4) then comp<="100"; elsif (reg2>reg1 and reg2>reg3 and reg2>reg4) then comp<="101"; elsif (reg3>reg1 and reg3>reg2 and reg3>reg4) then comp<="110"; elsif (reg4>reg1 and reg4>reg3 and reg4>reg2) then comp<="111"; end if; else comp <= "000"; end if; end process; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 65

Estrutura do VHDL 1 library library_name; use library_name.tipo; entity name is 2 port(pino1 : in tipo; pino2 : in tipo; pino3 : out tipo); name end; process(sinais) begin end process; process(clk) begin 5 6 architecture name_tipo of name is <declaração de componentes> <declaração de sinais> 3 begin 4 end process; <outros comandos> 7 <instanciação de componentes; end; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 66

6 Comandos Process Todos os comandos após o BEGIN são vistos como comandos concorrentes entre si. Mas dentro de um process, os comandos são executados de maneira sequencial. Para sintetizar circuitos sequencias (flip-flops) é preciso fazer com que o process seja sensivel a um relógio (clk). process (clk,reset) begin if (reset = '1') then reg1 <= "0000000000000000"; flagj1<='0'; elsif (clk'event and clk='1') then if j1='1' and flagj1='0' then reg1 <= LFSR; flagj1 <= '1'; end if; end if; end process; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 67

Estrutura do VHDL 1 library library_name; use library_name.tipo; entity name is 2 port(pino1 : in tipo; pino2 : in tipo; pino3 : out tipo); name end; process(sinais) begin end process; process(clk) begin 5 6 architecture name_tipo of name is <declaração de componentes> <declaração de sinais> 3 begin 4 end process; <outros comandos> 7 <instanciação de componentes; end; Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 68

7 Outros comandos concorrentes Podemos usar operadores diretos, fora de process. Esses comandos serão executados de maneira concorrente entre eles e com os demais process. sum <= enta + ent B; F <= A xor B xor Cin; Cout <= (A and B ) or ( A and Cin) or (B and Cin); Disciplina: Técnicas Digitais Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 69