Arquitetura de Computadores

Documentos relacionados
Prof. Leonardo Augusto Casillo

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

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

Introdução à Linguagem VHDL

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

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

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

Revisão: Projeto de Processadores em VHDL

Aula 2 Semântica de VHDL

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

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

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

Introdução à Linguagem VHDL

FPGA & VHDL. Tutorial

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

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

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

ELETRÔNICA DIGITAL I

Módulo 4 Introdução ao VHDL

Projeto com Linguagens de Descrição de Hardware

Introdução à Computação

VHDL Circuitos Combinacionais

Conteúdo. Estrutura do código VHDL; Objetos; Tipos; Universidade Federal do Ceará Engenharia da Computação 2

PRÁTICAS PARA DESENVOLVIMENTO DE PROTÓTIPOS DE CIRCUITOS DIGITAIS COM O KIT EDUCACIONAL DE2

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

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL

Dispositivos de Lógica Programável

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

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

Projeto de Circuito Combinacional

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

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2

Calculadora Simples em VHDL

Profa. Luiza Maria Romeiro Codá 2

Exercícios de Laboratório 3

VHDL. Prof. Maurício A Dias Laboratório de Lógica Digital

Descrição e Projeto de Circuitos Utilizando VHDL

Exercícios Referentes à Prova P1

PCS3225. Sistemas Digitais II. Biestáveis em VHDL. Biestáveis em VHDL. Marcos A. Simplicio Jr.

Exercícios de Fixação

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

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

Lógica Reconfigurável

Departamento de Engenharia Elétrica e de Computação. Apostila de Introdução a VHDL. Profa. Luiza Maria Romeiro Codá

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

SIMULAÇÃO DE CIRCUITOS

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

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno

Lógica Reconfigurável

Exercícios Referentes à Prova P1

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

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

SISTEMAS DIGITAIS (SD)

Lógica Reconfigurável

Sistemas Digitais (SD) Lógica Programável

CIRCUITOS COMBINACIONAIS

Suporte de funcionamento e interacção com o teclado

Conceitos de Linguagens de Descrição de Hardware (Verilog, VHDL) Alex Vidigal Bastos

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

Parte # 2 - Circuitos Combinatórios

ISE com VHDL estrutural

Demonstração de imagens de auxílio didático. VHDL - Descrição e Síntese de Circuitos Digitais Roberto d Amore

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

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

Organização e Arquitetura de Computadores II

DE INFORMÁTICA ESCOLA DE ENGENHARIA UNIVERSIDADE DO MINHO

Sistemas Digitais (SD) Lógica Programável

Projeto Moderno de Sistemas Digitais

Projeto com Dispositivos Programáveis

ELETRÔNICA DIGITAL I

LABORG. Parte 1 Introdução à Simulação em VHDL. Ney Laert Vilar Calazans

Funções de Lógica Combinacional

Eletrônica Digital para Instrumentação

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

SIMULAÇÃO DE CIRCUITOS E DISPOSITIVOS PROGRAMÁVEIS

O QUE É UM SISTEMA? Executa uma função com base em estímulos internos e/ou externos

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

Projeto de Somador com e sem Sinal. Qualificadores

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

Uma Introdução às Linguagens de Descrição de Hardware

PSI-3451 Projeto de CI Lógicos Integrados. Aula 4

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

Laboratório sobre Implementação de Sistemas Digitais com HDLs Ferramentas de Captura e Validação

Introdução VHDL Parte 4 - Testbench

ELETRÔNICA DIGITAL. Parte 4 Funções Lógicas - Circuitos Integrados. Professor Dr. Michael Klug. 1 Prof. Michael

Comparações Tecnologias

Microprocessadores. Introdução ao Prof. Henrique

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

LABORG. Parte 5 Projeto de um circuito digital de média complexidade. Fernando Gehm Moraes Matheus Trevisan

Circuitos combinatórios. (Revisão)

Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

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

Sistemas Digitais Unidade Lógica e Aritmética - ULA

Projetos de Circuitos Digitais em VHDL e FPGA

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

Lógica Reconfigurável

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

PCS 3115 (PCS2215) Referências

Prof. Luiz Marcelo Chiesse da Silva VHDL. 1.Histórico

Transcrição:

VHDL - VHSIC Hardware Description Language Arquitetura de Computadores Leonardo Augusto Casillo

Referências bibliográficas PELLERIN, David. TAYLOR, Douglas. VHDL Made Easy. Prentice-Hall PTR. 1997. SKANHILL, Kevin. VHDL for programmable logic. Addison-Wesley. 1996. ASHENDER, Peter. The VHDL Cookbook Disponível na internet. 1990. Apostilas disponíveis na página do curso: Profs.: Fernando Moraes, David Déharbe, Anderson Terroso.

Introdução VHDL - VHSIC Hardware Description Language O que significa VHDL? Very High Speed Integrated Circuit Hardware Description Language Linguagem de Descrição de Hardware com ênfase em Circuitos Integrados de altíssima velocidade.

O que significa Linguagem de Descrição de Hardware (HDL)? Uma linguagem de descrição de hardware descreve o que um sistema faz e como; Um sistema descrito em linguagem de hardware pode ser implementado em um dispositivo programável (ex: FPGA Field Programmable Gate Array), permitindo o uso em campo do sistema; Existem dezenas de HDLs: AHDL, VERILOG, Handel-C, SDL, ISP, ABEL

Breve Histórico - final de 1960: primeiras Linguagem de Hardware; - 1973: projeto CONLAN (CONsensus LANguage); - 1983: relatório final do CONLAN e a Linguagem ADA; - 1983: DoD inicia programa VHSIC (participação da IBM, Intermetrics e Texas Instruments; - 1986: a Intermetrics desenvolve compilador e simulador, criado um grupo de padronização da IEEE para VHDL; - 1988: primeiros softwares são comercializados; - 1991: recomeçou-se um novo processo de padronização; - 1992: modificações propostas foram avaliadas e votadas; - 1993: um novo padrão é publicado, chamado VHDL-93; - 1997: publicado o manual de referência da linguagem.

Vantagens e Desvantagens de se utilizar VHDL Vantagens Projeto independente da tecnologia; Ferramentas de CAD compatíveis entre si; Facilidade na atualização dos projetos; Reduz tempo de projeto e custo; Elimina erros de baixo nível; Reduz time-to-market. Desvantagens Hardware gerado é menos otimizado; Controlabilidade/Observabi- lidade de projeto reduzidas; Falta de pessoal treinado para lidar com a linguagem; Simulações geralmente mais lentas que outras implementações.

Características do VHDL Permite, através de simulação, verificar o comportamento do sistema digital; Permite descrever hardware em diversos níveis de abstração, por exemplo: Algorítmico ou comportamental. Transferência entre registradores (RTL). Favorece projeto top-down. Hoje utilizada para SIMULAÇÃO e SÍNTESE

Ciclo de Projeto: Especificação: determinar requisitos e funcionalidade do projeto. Codificação: descrever em VHDL todo o projeto, segundo padrões de sintaxe. Simulação do Código-Fonte: simular o código em ferramenta confiável a fim de verificar preliminarmente cumprimento da especificação;

Ciclo de Projeto: Síntese, otimização e Fitting: Síntese: compilação de um código VHDL para uma descrição abstrata. Otimização: seleção da melhor solução de implementação para uma dada tecnologia. Fitting: lógica sintetizada e otimizada mapeada nos recursos oferecidos pela tecnologia.

Ciclo de Projeto: Simulação do modelo: resultados mais apurados de comportamento e timing. Geração: configuração das lógicas programáveis ou de fabricação de ASICs.

Componentes de um projeto VHDL PACKAGE ENTITY ARCHITECTURE CONFIGURATION Package (Pacote): constantes, bibliotecas; Entity (Entidade): pinos de entrada e saída; Architecture (Arquitetura): implementações do projeto; Configuration (Configuração): define as arquiteturas que serão utilizadas.

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.all; USE IEEE.STD_LOGIC_UNSIGNED.all; PACKAGE (BIBLIOTECAS) ENTITY exemplo IS PORT ( < descrição dos pinos de entrada e saída > ); END exemplo; ENTITY (PINOS DE I/O) ARCHITECTURE teste OF exemplo IS BEGIN PROCESS( <pinos de entrada e signal > ) BEGIN < descrição do circuito integrado > ARCHITECTURE (ARQUITETURA) END teste; END PROCESS;

Entity (Entidade) Abstração que descreve um sistema, uma placa, um chip, uma função ou uma porta lógica. Entity <nome_da_entidade> is port ( entrada_a entrada_b saída ); end <nome_da_entidade>; : in <tipo>; : in <tipo>; : out <tipo>;

Entity (Entidade) Ports: correspondem ao pinos de entrada e saída. Modos de operação: IN: porta de entrada; OUT: porta de saída (não podem ser usados como entradas, nem seus valores utilizados na lógica interna); INOUT: porta de entrada e saída; BUFFER: saída com possibilidade de realimentação.

Entity (Entidade) Tipos mais utilizados: bit Assume valores 0 ou 1. x: in bit; bit_vector Vetor de bits. x: in bit_vector(7 downto 0); x: in bit_vector(0 to 7); std_logic x: in std_logic; std_logic_vector x: in std_logic_vector(7 downto 0); x: in std_logic_vector(0 to 7); boolean Assume valores TRUE ou FALSE

Entity (Entidade) STD_LOGIC: Definida pela biblioteca IEEE; Pode assumir nove valores: U : não inicializada Z : alta impedância X : desconhecida W : desconhecida fraca 0 : valor 0 L : 0 fraca (Low) 1 : valor 1 H : 1 fraca (High) - : Don t care.

Architecture (Arquitetura) A função de uma entity é determinada pela sua architecture. A organização de uma architecture é dada por: Declarações: sinais, constantes, componentes, subprogramas. Comandos: begin end blocos, atribuições a sinais, chamadas a subprogramas, instanciação de componentes, processos.

Architecture (Arquitetura) A arquitetura de uma entidade pode ser descrita por três formas distintas: descrição comportamental, descrição por fluxo de dados (data-flow) e descrição estrutural. Exemplo simples: Comparador de 4 bits a(3 donwto 0) b(3 donwto 0) Architecture equals

Descrição Comportamental -- comparador de 4 bits entity comp4 is port ( end comp4; a, b: in bit_vector (3 downto ); equals: out bit); architecture comport of comp4 is begin Mesmo nome da entidade Processos conconrrentes comp: process (a,b) -- lista de sensibilidade begin if a = b then else equals < = 1 ; equals < = O ; end if; end process comp; end comport;

Descrição por Data-Flow -- comparador de 4 bits entity comp4 is port ( a, b: in bit_vector (3 downto ); equals: out bit); end comp4; architecture fluxo of comp4 is begin equals < = 1 when (a=b) else O ; end fluxo; Expressões lógicas

Descrição Estrutural -- comparador de 4 bits entity comp4 is port ( end comp4; a, b: in bit_vector (3 downto ); equals: out bit); architecture estrut of comp4 is signal x bit_vector (0 to 3); begin Ligações entre componentes U0: xnor port map (a(0), b(0), x(0)); U1: xnor port map (a(1), b(1), x(1)); U2: xnor port map (a(2), b(2), x(2)); U3: xnor port map (a(3), b(3), x(3)); U4: and4 port map (x(0), x(1), x(2), x(3), equals); end estrut;

Sinais Comunicação de módulos em uma estrutura Temporizados. Podem ser declarados em entity, architecture ou package Não podem ser declarados em processos, mas podem ser utilizadas no interior destes. Sintaxe: signal identificador(es) : tipo [restrição] [:=expressão]; Exemplo signal cont : integer range 50 downto 1; signal ground : bit := 0 ;

Especificando a Estrutura de um Sistema O component é exatamente a descrição de um componente O port map é um mapeamento deste componente em um sistema maior.

Programa 1 Programa 2 --------------------------------------------------------- -- Arquivo componente_inv.vhd -- Modelo do inversor --------------------------------------------------------- --------------------------------------------------------- -- Arquivo componente_and.vhd -- Modelo da porta AND --------------------------------------------------------- library IEEE; use IEEE.std_logic_1164.all; entity componente_inv is port( x : in bit; y : out bit ); end componente_inv; architecture arquitetura_inv of componente_inv is begin y <= not x; end arquitetura_inv; library IEEE; use IEEE.std_logic_1164.all; entity componente_and is port( a : in bit; b : in bit; c : out bit ); end componente_and; architecture arquitetura_and of componete_and is begin c <= a and b; end arquitetura_and;

P ro g ra m a 3 ------------------------------------------------------ -- A rq u ivo c o m p o n e n te _ sis te m a.vh d -- M o d e lo d a p o rta A N D ------------------------------------------------------ lib ra ry IE E E ; u s e IE E E.s td _ lo g ic_ 1 1 6 4.a ll; e n tity c o m p o n e n te _ s is te m a is p o rt( in 1 : in b it; in 2 : in b it; in 3 : in b it; in 4 : in b it; o u t1 : o u t b it ); e n d co m p o n e n te _ s is te m a ; a rc h ite c tu re a rq u ite tu ra _ s is te m a o f c o m p o n e n te _ s iste m a is Declaração Dos Componentes c o m p o n e n t c o m p o n e n te _ a n d p o rt( a : in b it; b : in b it; c : o u t b it); e n d co m p o n e n t; c o m p o n e n t c o m p o n e n te _ in v p o rt( x: in b it; y : o u t b it); e n d co m p o n e n t; Conexão entre Componentes s ig n a l s 1, s2, s 3, s4 : b it; b e g in a n d 1 : c o m p o n e n te _ a n d p o rt m a p (a = > in 1, b = > in 2, c = > s 1 ); a n d 2 : c o m p o n e n te _ a n d p o rt m a p (a = > in 3, b = > in 4, c = > s 2 ); a n d 3 : c o m p o n e n te _ a n d p o rt m a p (a = > s 3, b = > s4, c = > u t1 ); in v1 : c o m p o n e n te _ in v p o rt m a p (x = > s 1, y = > s 3 ); in v2 : c o m p o n e n te _ in v p o rt m a p (x = > s 2, y = > s 4 ); e n d a rq u ite tu ra _ s is te m a ;

ARCHITECTURE (ARQUITETURA) PROCESSOS N ENTITY (ENTIDADE) PINOS DE I/O

Package (Pacotes) Os pacotes (bibliotecas) contém uma coleção de elementos incluindo descrição do tipos de dados Analogia com C/C++: #include <library.h>. Para incluir uma biblioteca no código VHDL (início do código): LIBRARY <nome_da_biblioteca> e/ou USE <nome_da_biblioteca>.all

Package (Pacotes) Para utilizar STD_LOGIC, deve-se inserir no início do código: library IEEE; use ieee.std_logic_1164.all; use ieee.std_ulogic_arith.all; use ieee.std_ulogic_unsigned.all; Biblioteca do usuário (default): work.

Package (Pacotes) Permite a reutilização de um código já escrito. Armazena: Declaração de tipos Declaração de constantes Declaração de subprogramas Declaração de mnemônicos Pode ser dividido em parte de declaração e parte de corpo (opcional).

Package (Pacotes) Exemplo de Packages: package <biblioteca> is function soma(a,b: bit) return bit; subtype dado is bit_vector(32 downto 0); constant mascara : bit_vector(3 donwto 0) := 1100 ; alias terceiro_bit: bit is dado(3); end <biblioteca>.

Package (Pacotes)

Considerações importantes 1. VHDL NÃO É uma linguagem de programação 2. O VHDL deve ser descrito após a arquitetura, e não a arquitetura após o VHDL.