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

Documentos relacionados
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

VHDL Circuitos Combinacionais

Módulo 4 Introdução ao VHDL

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

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

Exercícios Referentes à Prova P1

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

Introdução à Linguagem VHDL

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

Aula 2 Semântica de VHDL

Exercícios de Fixação

Funções de Lógica Combinacional

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

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

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

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.

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

Latches e Flip-Flops. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Exercícios Referentes à Prova P1

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

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

Disciplina de SSC Elementos de Lógica Digital II (Prática)

PCS 3115 (PCS2215) Referências

Lógica Reconfigurável

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

Introdução à Linguagem VHDL

Os sistemas combinacionais a saída depende exclusivamente das condições das entradas, portanto o sistema não possui memória interna.

Descrição e Projeto de Circuitos Utilizando VHDL

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

IMPLEMENTAÇÕES POR EQUAÇÃO DE ESTADOS E DE SAÍDA DOS MODELOS DE MEALY E DE MOORE 1 BIT POR ESTADO.

Prof. Leonardo Augusto Casillo

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

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

Exercícios de Laboratório 3

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

SISTEMAS DIGITAIS (SD)

Introdução a Sistemas Digitais

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)

DE INFORMÁTICA ESCOLA DE ENGENHARIA UNIVERSIDADE DO MINHO

Lógica Reconfigurável

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

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

Projeto com Linguagens de Descrição de Hardware

CMP238 Projeto e Teste de Sistemas VLSI

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

PDA de Sistemas Digitais em Circuitos Programáveis

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

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

Revisão: Projeto de Processadores em VHDL

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

Projeto com Dispositivos Programáveis

Sistemas Digitais (SD) Lógica Programável

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

Projeto de Circuito Combinacional

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

LABORG. VHDL Máquina de estados finitos

2. FLIP FLOP tipo D síncrono borda de descida e com entradas assíncronas preset e clear. PRE Q n F/F CLR

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

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

CIRCUITOS SEQUENCIAIS parte 2 Máquina de Estados Finita (FSM)

Sistemas Digitais (SD) Lógica Programável

Projeto de Somador com e sem Sinal. Qualificadores

CIRCUITOS SEQUENCIAIS parte 1

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2

SISTEMAS DIGITAIS (SD)

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

Exercícios Referentes à Prova P2

Introdução VHDL Parte 4 - Testbench

Treinamento em Projeto de Sistemas Digitais

Organização e Arquitetura de Computadores I

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

Profa. Luiza Maria Romeiro Codá 2

Calculadora Simples em VHDL

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

ELETRÔNICA DIGITAL I

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

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona

LABORG. Parte 3 - VHDL: Processos, Paralelismo e o Comando process. Fernando Gehm Moraes Ney Laert Vilar Calazans

Arquitetura de Computadores

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

Eletrônica Digital. Circuitos Lógicos Sequenciais PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

Parte # 2 - Circuitos Combinatórios

2006, António Esteves, Sistemas Digitais 1, UM-DI. Módulo 6. Sistemas sequenciais

CIRCUITOS SEQUENCIAIS (Unidade 5)

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

FPGA & VHDL. Tutorial

ISE com VHDL estrutural

Flip-Flop. Uma das coisa importantes que se pode fazer com portas booleanas é criar memória.

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

UNIVERSIDADE FEDERAL DE ITAJUBÁ. Grupo de Microeletrônica TUTORIAL VHDL

Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Paradigmas de Programação

AULA 2 Implementação de Flip-Flops dos tipos JK e RS Livro Texto pág. 113 a 117 e 124 e 146 a 148 e 150 a 152.

Introdução a Sistemas Digitais

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

Projetos de Circuitos Digitais em VHDL e FPGA

Transcrição:

PCS3225 Sistemas Digitais II Biestáveis em VHDL Marcos A. Simplicio Jr. Slides baseados em material de Edson Midorikawa e Bruno Albertini PCS3225-2015 1 Tópicos VHDL: recapitulação Circuitos sequenciais em VHDL comando process exemplos Biestáveis em VHDL Referência: Wakerly, pág. 625-645 e pág. 697-701. PCS3225-2015 2 1

Recapitulando: conceito de HDL Programação de software: compilação Compilador: transforma código em linguagem de alto nível ( for(...) ) em código de máquina Resultado: 0s e 1s prontos para serem interpretados por processador (execução sequencial) Descrição de hardware (HDL): síntese, ou sintetização Sintetizador: interpreta comandos em linguagem de alto nível ( Z <= 1 ), mapeando-o em elementos de hardware Resultado: um conjunto de portas lógicas ligadas às entradas e saídas, implementando lógica desejada (tudo executa concorrentemente) Recapitulando: estrutura básica Entity: define interface Entradase saídas: númeroe tipo Architecture : define o comportamento Como as entradas são processadas para gerar saída Umamesmaentity podetermaisde umaarchitecture X Z Y 2

Formas equivalentes Recapitulando: tipos de dados Algunspadrãodalinguagem: bit, boolean, character, integer, real, string, time MasosmaisusadossãodoispadronizadosIEEE : std_logic, std_logic_vector Exemplos de uso: signal x : std_logic; signal v1,v2, v3 : std_logic_vector (3 downto 0); x <= 1 ; v1 <= 0001 ; v2(3 downto 1) <= 000 ; v2(0) <= x; v3 <= (0 => 1, (others => 0 ); PCS3225-2015 5 Recapitulando: abstrações Estrutural: componentes e ligação entre eles entity Inhibit is port (X, Y: in STD_LOGIC; Z: out STD_LOGIC); end Inhibit architecture Inhibit_structure of Inhibit is component AND2 port (A,B: in STD_LOGIC; O: out STD_LOGIC); component NOT port (I: in STD_LOGIC; O: out STD_LOGIC); signal ny: STD_LOGIC; U1: INV port map (Y, ny); X Z U1: AND2 port map (X, ny, Z); end Inhibit_structure Y PCS3225-2015 6 3

Recapitulando: abstrações Fluxode dados: expressões lógicas descrevem como entrada é processada até saída entity Inhibit is port (X, Y: in STD_LOGIC; Z: out STD_LOGIC); end Inhibit architecture Inhibit_flow of Inhibit is Z <= X and (not Y); end Inhibit_flow X Y Z PCS3225-2015 7 Recapitulando: abstrações Fluxo de dados: também possível com select-when Similar ao switch-case emlinguagenscomoc e Java Masé hardware: sintetizadocom um MUX! Podeser uma função Um ou vários valores entity prime is port(n: in STD_LOGIC_VECTOR(3 downto 0); F: out STD_LOGIC); end prime architecture prime_flow of prime is with N select F <= 1 when 0001, 1 when 0010 0011 0101, 1 when 0111 1011 1101, 0 when others; end prime_flow Similar ao default emc 8 4

Recapitulando: abstrações Comportamental: descreve comportamento do circuito Pode ser concorrente: usando o when-else Também pode ser sintetizado com MUX, computando lógica na entrada de seleção entity Inhibit is port (X, Y: in STD_LOGIC; Z: out STD_LOGIC); end Inhibit architecture Inhibit_flow of Inhibit is Z <= X when Y = 0 else 0 ; end Inhibit_flow X Y Z PCS3225-2015 9 Recapitulando: exemplo Como construir o circuito de comparação entre dois númerosde 4 bits emvhdl? A 3 B 3 A 2 B 2 A 1 B 1 A 0 B 0 igual PCS3225-2015 10 5

Recapitulando: exemplo Como construir o circuito de comparação entre dois números de 4 bits em VHDL? entity compare is port(a,b: in STD_LOGIC_VECTOR(0 to 3); igual: out STD_LOGIC); end compare architecture arch_behavior of compare is igual <= 1 when A = B else 0 ; end arch_behavior architecture arch_flow of compare is signal v : STD_LOGIC_VECTOR (0 to 3); v <= A xnor B; igual <= v(0) and v(1) and v(2) and v(3); end arch_flow PCS3225-2015 11 Recapitulando: modelo temporal As declarações em VHDL são executadas concorrentemente Estamos descrevendo um hardware, não uma sequência de instruções de software Exemplo: operação de swap(a,b): troca a por b e vice-versa Em C, isso nãofunciona: 1: a = b; 2: b = a; Em C, isso funciona: 1: x = a; 2: a = b; 3: b = x Em C, também funciona: (mas desperdiça memória...) 1: sa = b; 2: PCS3225 sb = - 2015 a; tempo memória a b 0 5 7 1 7 7 2 7 7 tempo memória a b x 0 5 7 * 1 5 7 5 2 7 7 5 3 5 5 5 memória a b t 1 t 2 memória a b t 2 x t 1 t 3 6

Recapitulando: modelo temporal As declarações em VHDL são executadas concorrentemente Estamos descrevendo um hardware, não uma sequência de instruções de software Exemplo: operação de swap(a,b): troca a por b e vice-versa Em C, isso nãofunciona: 1: a = b; 2: b = a; Em C, isso funciona: 1: x = a; 2: a = b; 3: b = x Em VHDL, isso não funciona: 1: x <= a; 2: a <= b; 3: b <= x; Em VHDL, isso funciona: 1: sa <= b; 2: sb <= a; memória tempo a b x 0 5 7 * 1,2,3?????? a b x entity swap is port (a, b: in STD_LOGIC; sa,sb: out STD_LOGIC); PCS3225-2015 end swap 13 a b sa sb VHDL comportamental: pode ser descrito na forma de construção sequencial, usando o comando process Nota: sequencial aqui significa usando flip-flops/latches Importante: não confundir com execução sequencial de instruções... Múltiplos processos executam concorrentemente entre si Instruções dentro de processo executam concorrentemente entre si A diferença principal nesse caso é que processos são ativados em resposta a estímulos definidos por projetista Isso permite a construção de circuitos síncronos 14 7

VHDL comportamental: pode ser descrito na forma de construção sequencial, usando o comando process Múltiplos processos executam concorrentemente entre si Lista de sensibilidade: processo executa sempre que algum sinal da lista mudar de valor process-statement process-statement Similar a signal, porém mais abstrato: não corresponde necessariamente a algo físico no circuito sintetizado. processos não podem declarar sinais locais PCS3225-2015 15 Controle de processos: lista de sensibilidade ou comando de espera ; ; ; PCS3225-2015 16 Slide elaborado por Bruno Albertini. 8

Sintaxe do comando WAIT: wait [sensibilidade][condição][timeout] Tipos: Sensibilidade: on nome_sinal Exemplo: wait on CLOCK; Condição: until expressão_booleana Exemplo: wait until CLOCK = 1 ; Timeout: for expressão_temporal Exemplo: wait for 150 ns; PCS3225-2015 17 Slide elaborado por Bruno Albertini. Lista de sensibilidade ou WAIT Exemplo: processo para cálculo de soma PCS3225-2015 18 Slide elaborado por Bruno Albertini. 9

Detector de primos de 4 bits (assumindo 1 primo ) n 3,n 2,n 1,n 0 n 3 n 0 + n 3 n 2 n 1 + n 2 n 1 n 0 + n 2 n 1 n 0 Recalcula saída F sempre quen muda de valor Diferente do <= do signal Construção condicional em processos: if-then-else Exemplo: z = XOR (a,b) process(a,b) -- descrição comportamental do XOR if (a /= b) then z <= 1 ; else z <= 0 ; endif; end process; 10

Construção condicional em processos: if-then-else Aqui assume-se o uso de uma função CONV_INTEGER, que converte um array ( STD_LOGIC_VECTOR ) em um inteiro 21 function: como funções em linguagens procedurais Tomam argumentos como entrada, retornam um resultado variáveis locais comandos process-statement process-statement 22 11

X Z Y Implementação sem função Declaraçãoda função Implementação com função 23 Outra construção condicional: case-when Similar ao switch-case emlinguagenscomoc e Java Aqui assume-se o uso de uma função CONV_INTEGER, que converte um array ( STD_LOGIC_VECTOR ) em um inteiro 24 12

Equivalência cada statement concorrente equivale a um processo q1 <= a xor b; process q2 <= a xor b; wait on a, b; end process Sinais q1, q2 e q3 são calculados ao mesmo tempo: Processos e demais declarações executam concorrentemente; process(a, b) if (a /= b) then q3 <= 1 ; else q3 <= 0 ; endif; end process PCS3225-2015 25 Atrasos: comando after q1 <= a xor b; process q2 <= a xor b; wait on a, b; end process process(a, b) if (a /= b) then q3 <= 1 ; else q3 <= 0 ; endif; end process E se eu quiser criar um atraso(e.g., criar um tempo de propagação )? Comando after Também é possível configurar simulador para utilizar os atrasos das portas utilizadas na síntese Nota: no hardware físico, o atraso sempre existe... if (a /= b) then q3 <= 1 after 15 ns; -- tplh else q3 <= 0 after 10 ns; -- tphl endif; PCS3225-2015 26 13

Processos também permitem comandos de repetição Mas não faz com que execução seja sequencial: O que é feito é a expansão do loop... Isso pode causar muitos erros de projeto melhor evitar se possível... process(enable) for i in 0 to 3 loop temp <= temp + 1; end loop; end process; Resultado: soma 1 a temp (não 4...) process(enable) temp <= temp + 1; temp <= temp + 1; temp <= temp + 1; temp <= temp + 1; end process; 27 Biestáveis em VHDL Também funcionariase omitido VHDL comportamental: representação de Latch tipod com lógicapositiva D Q Q C QN PCS3225-2015 28 14

Biestáveis em VHDL Esse sinal mudou, causando a execução do process VHDL comportamental: duas possíveis representações de Flip-Flop tipo D ativado por borda positiva D CLK Q PCS3225-2015 29 Biestáveis em VHDL D Q CLK CLR VHDL comportamental: Flip-Flop tipo D ativado por borda positiva, com clear assíncrono PCS3225-2015 30 15

Biestáveis em VHDL D PR Q CLK QN CLR VHDL comportamental: Flip-Flop tipo D ativado por borda positiva, com clear e preset assíncronos PCS3225-2015 31 Biestáveis em VHDL process(clk) if (CLK event and CLK= 1 ) then if En = 1 then Q <= D; end if; end if; end process; D CLK En Q VHDL comportamental: Flip-Flop tipo D ativado por borda positiva, com enable PCS3225-2015 32 16

Referências Referências desta aula: Wakerly, pág. 625-628 Wakerly, pág. 697-700. Referência para a próxima aula Máquina de estados: Síntese de FSM Referência: Wakerly, pág. 553-570. PCS3225-2015 33 17