A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software para Computação Embarcada

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software para Computação Embarcada"— Transcrição da apresentação:

1 Engenharia de Software para Computação Embarcada
Prof. Frederico Ferlini Aula 4

2 CONTEÚDO VHDL Simulação Introdução Estrutura Operadores Sintaxe
Exemplos Simulação Testbench Formas de onda

3 VHDL VHDL Outras linguagens de descrição de hardware
“Very High Speed Integrated Circuits” (VHSIC), início 1980 Originou como linguagem para descrever o comportamento de ASICs, definido pelo U.S Department of Defense VHDL  VHSIC Hardware Description Language Padrão IEEE em 1987 (Institute of Electrical and Electronics Engineers), revisado em 1993 Linguagem utilizada mundialmente por empresas de CAD para especificação, simulação, síntese, propriedade intelectual Outras linguagens de descrição de hardware SystemC, VERILOG, Handel-C, SDL, ISP, Esterel, … Por que VHDL? VHDL é utilizado em mais de 50% do mercado!

4 VHDL Vantagens Desvantagens
Verificação do comportamento do sistema digital através de simulação Descrição independente de tecnologia Redução do tempo de projeto , reduz “time-to-market”, redução de custo Compatibilidade entre diferentes CAD tools Linguagem fortemente tipada, elimina erros de baixo nível Flexibilidade: re-utilização, escolha de ferramentas e fornecedores Desvantagens Facilidade de atualização dos projetos HW gerado é menos otimizado Exploração em alto nível de abstração permite analisar diferentes alternativas de implementação Controlabilidade/Observabilidade de projeto reduzidas Falta de pessoal treinado para lidar com a linguagem

5 VHDL – Níveis de Abstração
Permite que a descrição do HW seja: Estrutural; ou, Comportamental; ou, RTL (Register Transfer Level); ou, Nível Lógico com atraso* Metodologia “top-down” Projeto é inicialmente especificado de forma abstrata, com detalhamento posterior dos módulos – Exemplo : A <= B + C after 5.0 ns; A forma de realizar a soma pode ser decidida no momento da implementação (e.g. propagação rápida de vai-um, ou qualquer outro tipo de implementação, paralelo ou série, etc.)

6 VHDL – Níveis de Abstração
Comportamental RTL

7 VHDL – Estrutura da Linguagem (Sintaxe)
Básica Biblioteca (library) Entidade (entity) Arquitetura (architecture) Complementar Configuração (configuration) Pacote (package) Corpo do Pacote (package body)

8 VHDL – Estrutura da Linguagem (Sintaxe)
Biblioteca (library) Diversas funções e tipos básicos Biblioteca da IEEE é sempre incluída Quase todo arquivo VHDL começa: - library IEEE; - use IEEE.STD_LOGIC_1164.ALL; STD_LOGIC_1164 bit  {0, 1} std_logic / std_logic_vector  {0, 1, X, U, Z, W, L, H, -} std_ulogic / std_ulogic_vector  {0, 1, X, U, Z, W, L, H, -}* and, nand, or, nor, not, xor, xnor Outros tipos: boolean {true, false}, time {ps, ns, ms...}, integer, real... Biblioteca do usuário(default) = work Arquivos VHDL na mesma pasta do projeto

9 VHDL – Tipos Resumo

10 VHDL – Estrutura da Linguagem (Sintaxe)
Entidade (entity) Definição da interface do módulo (portas) Sintaxe | entity <nome_modulo> is | port( | <nome_porta> : <sentido_porta> <tipo_porta>; | p_entrada_ex : in std_logic; | p_saida_ex : out std_logic | ); | end; Sentidos: in, out, inout Generic (Reusabilidade!) Boa prática! nome do módulo igual ao do arquivo Identificação do sentido no nome da porta: ex.: <nome_porta>_i

11 VHDL – Estrutura da Linguagem (Sintaxe)
Arquitetura (architecture) Contém a descrição da funcionalidade do módulo Sintaxe | architecture <tipo> of <entidade> is | -- declaração de componentes e sinais | signal <nome> : <tipo>; | signal sinal_ex : std_logic_vector(7 downto 0); | ... | begin | -- lógica combinacional (equções booleanas) | -- instanciação de componentes | -- atribuições (<=) | -- processos (process) | ... | end; Boa prática! <tipo> coerente com a descrição do módulo Identificação de sinal no nome do sinal: ex.: <nome_sinal>_s

12 VHDL – Características
Pode haver mais de uma entidade (módulo) em um mesmo arquivo VHDL Todos os módulos de um projeto em um mesmo arquivo Uma entidade pode ter mais de uma arquitetura A escolha é feita com o uso de configuration Boa prática! Uma entidade (módulo) por arquivo VHDL Uma arquitetura por entidade Essas regras devem ser seguidas!!

13 VHDL – Sinais e Variáveis
Quase tudo em VHDL se resume a sinais Só podem ser utilizadas dentro de processos Comportamento equivalente ao hardware Comportamento semelhante ao software Temporizado Sem temporização, atribuição imediata | variable va, vb : std_logic; | signal sa, sb : std_logic; ... | va := vb; --atribuição | sa <= sb; --atribuição Evita-se utilizar! (Não será utilizado na disciplina!) Constantes | constant c : std_logic := ‘1’ ... | sa <= c; --atribuição | c <= sa; --errado

14 VHDL – Declarações e Atribuições
Declaração de array de bits Definição da posição do MSB (Most Significant Bit) Declaração | signal bus_msb, : std_logic_vector(3 downto 0); | signal bus_lsb, : std_logic_vector(0 to 3); ... Atribuição | bus_msb <= bus_lsb; --atribuição direta ... equivale ... | bus_msb(3) <= bus_lsb(0); --atribuição índice por índice | bus_msb(2) <= bus_lsb(1); | bus_msb(1) <= bus_lsb(2); | bus_msb(0) <= bus_lsb(3); Observação Atribuição direta somente entre arrays de mesmo tamanho Elementos são atribuídos de acordo o seu índice no array

15 VHDL – Operadores Tabela: Observações
<= (menor_igual, mesma sintaxe que atribuição) & (concatenação) Ex.: “0010” & “1100”  “ ” /= (diferente)

16 VHDL – Ex.: Ex.: buzzer Estrutural Componentes Interconexões
Declaração Instanciação Interconexões

17 VHDL – Exemplo (Comportamental)
Operações Lógicas Pode ser escrita de diversas formas

18 VHDL – (Cont.) Comportamental Condicionais when select if/else ?

19 VHDL – (Cont.) Comportamental Process IF/ELSE “switch_case” “for”
Etc...

20 VHDL – Process Sintaxe Muito utilizado para circuito sequênciais
| process <(lista de sensibilidade)> | -- parte de declaração (variáveis...) [opcional] | begin | -- corpo do process | -- interpretação sequencial | -- testes condicionais com if...then...elsif...then...else...end if | end process; Muito utilizado para circuito sequênciais Registradores, Latches, memórias Lista de sensibilidade Deve conter todas as entradas do circuito Utilizado em testbench

21 VHDL – Process Sintaxe Muito utilizado para circuito sequenciais
| process <(lista de sensitividade)> | -- parte de declaração (variáveis...) [opcional] | begin | -- corpo do process | -- interpretação sequencial | -- testes condicionais com if...then...elsif...then...else...end if | end process; Muito utilizado para circuito sequenciais Registradores, Latches, memórias Lista de sensibilidade Deve conter todas as entradas do circuito Utilizado em testbench

22 VHDL – Projeto Equipe de desenvolvimento Equipe de testes
<circuito1.vhd> ... <circuito2.vhd> ... <circuitoN.vhd> Equipe de testes <circuito_tb.vhd> estímulos  entradas.txt resultados  saidas.txt verificação se os resultados são os esperados.

23 VHDL – Equipe de Desenvolvimento
Diversos módulos VHDL Integração (“TOP”) - TOPO DO PROJETO 4x Projeto RTL

24 VHDL – Equipe de Desenvolvimento
Diversos módulos VHDL Integração (“TOP”) - TOPO DO PROJETO 4x Projeto RTL

25 VHDL – Testbench Equipe de teste (top_tb) Sem portas Process
sem lista de sensibilidade

26 VHDL – Simulação Geração dos estímulos utilizando o top_tb.vhd
Ferramenta ISIM Análise dos resultados através da forma de onda “escovação de bit”

27 VHDL – Estrutura padrão de um projeto
Hierarquia de arquivos top_tb.vhd (testbench do top do projeto – não sintetizável) top.vhd (integração dos circuitos desenvolvidos - sintetizável) top.ucf Circuito1.vhd Circuito2.vhd .... Os arquivos VHDL do exemplo “buzzer” estão disponibilizado na página da disciplina O arquivo top.vhd e top.ucf com as portas dos componentes básicos da XC3S400 também estão disponibilizados na página


Carregar ppt "Engenharia de Software para Computação Embarcada"

Apresentações semelhantes


Anúncios Google