Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Ney Laert Vilar Calazans
LABORG Parte 1 – Introdução à Simulação em VHDL Ney Laert Vilar Calazans 24/agosto/2009
2
Introdução VHDL: Uma linguagem para descrever sistemas digitais
Outras linguagens de descrição de hardware SystemC, VERILOG, Handel-C, SDL, ISP, Esterel, … (existem dezenas) Originalmente especificar hardware; hoje simulação e síntese! Origem Linguagem para descrever hardware, no contexto do programa americano “Very High Speed Integrated Circuits” (VHSIC), iniciado em 1980. VHDL VHSIC Hardware Description Language Padrão IEEE em 1987 (Institute of Electrical and Electronics Engineers), revisado em 1993, 2000, 2002 e 2004 Linguagem utilizada mundialmente por empresas de CAD (simulação, síntese, propriedade intelectual). Verilog muito usada nos EUA.
3
Benefícios / Desvantagens
Benefícios (em relação a diagramas de esquemáticos) Especificação do sistema digital: Projetos independentes da tecnologia (implementação física é postergada) Ferramentas de CAD compatíveis entre si Flexibilidade: re-utilização, escolha de ferramentas e fornecedores Facilidade de atualização dos projetos Permite explorar, em um nível mais alto de abstração, diferentes alternativas de implementação Permite, através de simulação, verificar o comportamento do sistema digital Nível físico: Reduz tempo de projeto (favorece níveis abstratos de projeto) Reduz custo do projeto Elimina erros de baixo nível (se usado como base de ferramentas automatizadas) Conseqüência: reduz “time-to-market” (tempo de chegada de um produto ao mercado) Desvantagens (em relação a diagramas de esquemáticos) Hardware gerado pode ser menos otimizado Controlabilidade / Observabilidade de projeto reduzidas
4
VHDL é uma linguagem de programação?
Resposta curta: Não, é uma linguagem de descrição de hardware! Código é executado em um simulador Não se enxerga o “compilador” de VHDL, não há um “código executável” visível Projeto do usuário Especificado tipicamente no nível de abstração de transferência em ter registradores (em inglês, Register – Transfer Level ou RTL), mas não apenas neste nível! Testbench: uma descrição em VHDL ou outra linguagem do procedimento de teste de um circuito Especificação comportamental do ambiente externo ao projeto (estímulos externos) Interage com o projeto Não precisa ser descrito em VHDL (o projeto VHDL pode ser validado em ambiente C/C++!!) Estrutura Geral de um Testbench Geração de estímulos e Captura de saídas Circuito (RTL) Comparação Resultados esperados Resultados
5
Sumário de Descrição de Hardware (1/2)
INTERFACE EXTERNA: entity Especifica somente a interface entre o hardware e o ambiente Não contém definição do comportamento ou da estrutura internos A B Sum Carry Esquemático: Tabela Verdade A B Sum Carry 1 Código VHDL da entidade: entity halfadd is port (A, B: in std_logic; Sum, Carry: out std_logic); end halfadd;
6
Sumário de Descrição de Hardware (2/2)
COMPORTAMENTO : architecture Especifica o comportamento e/ou a estrutura internos da entity Deve ser associada a uma entity específica Uma entity pode ter associada a si várias architecture (representando diferentes formas de implementar um mesmo módulo) Código VHDL da entidade: architecture comp of halfadd is begin Sum <= A xor B; Carry <= A and B; end comp;
7
Descrição Completa do Somador
library IEEE; use IEEE.Std_Logic_1164.all; entity halfadd is port (A, B: in std_logic; Sum, Carry: out std_logic); end halfadd; architecture comp of halfadd is begin Sum <= A xor B; Carry <= A and B; end comp; Esta biblioteca e pacote definem o tipo std_logic (que não é parte da linguagem VHDL!)
8
Validação por Simulação
Uma forma simples de testar o projeto: testbenches Na sua forma mais simples, um testbench contém um processo gerador de teste e uma instância do projeto O testbench não contém portas de entrada/saída, é um sistema fechado ou autônomo.
9
Exemplo de Testbench para o Somador
library ieee; use ieee.std_logic_1164.all; entity halfadd_tb is end halfadd_tb; architecture TB_ARCHITECTURE of halfadd_tb is signal aa,bb,soma,vaium : std_logic; begin UUT : entity work.halfadd port map ( A => aa, B => bb, Sum => soma, Carry => vaium ); aa <= '0', '1' after 10 ns, '0' after 20 ns, '1' after 30 ns; bb <= '0', '1' after 20 ns; end TB_ARCHITECTURE; Testador não tem pinos externos (ports in ou out) Nome do projeto (entidade) Instanciação do projeto, conectando pinos do projeto a fios do testador Geração dos estímulos, dizendo como fios do testador se comportam
10
Usando o Simulador Active-HDL
Abrir o Active-HDL Executar o comando Create New Workspace Definir o nome do Workspace
11
Usando o Simulador Active-HDL
Criar projeto vazio (Empty) Dar Next na próxima janela (seleção de VHDL) Definir o nome do Projeto dentro do Workspace
12
Usando o Simulador Active-HDL
O próximo passo é colocar o VHDL no projeto: Escolher a opção de menu File New VHDL source Apenas selecionar um nome para o VHDL, usando no restante das janelas o botão Next. Uma janela é aberta com um template. Desta vez, selecionar todo o texto do template e o apagá-lo. Agora, inserir o código das lâminas anteriores (Descrição do Somador e Descrição VHDL do Testbench)
13
Usando o Simulador Active-HDL
Compilar até não haver mais erros de sintaxe
14
Usando o Simulador Active-HDL
Uma vez concluído o processo de compilação sem erros, inicializar a simulação:
15
0. Certifique-se de escolher a aba Structure do Projeto
1. Abrir a hierarquia para visualizar o módulo que está sendo testado 2. Abrir uma janela de formas de onda 3. Definir o tempo de simulação: 40 ns 4. Selecionar e arrastar os sinais que se deseja verificar o comportamento desta janela para a janela de formas de onda
16
Usando o Simulador Active-HDL
Botão para disparar a execução Estes valores correspondem ao valor dos sinais no instante onde está o cursor vermelho!! Botões de Zoom da janela de simulação O comportamento é o esperado? Explicar.
17
Sinais de 1 Bit e Barramentos
std_logic fio e std_logic_vector vários fios (barramento) Escrever um novo código utilizando sinais não de 1 bit mas de 4 bits std_logic_vector(3 downto 0). O efeito é transformar o meio somador de 1 bit em um somador de 4 bits A entidade deve ser: entity soma is port (A, B: in std_logic_vector(3 downto 0); Soma: out std_logic_vector(3 downto 0) ); end soma; O corpo da arquitetura deverá conter apenas “soma <= a + b;” Incluir o uso da: use IEEE.std_logic_unsigned.all; (Porquê?) Escrever o test bench correspondente e mostrar ao professor a simulação
18
Dicas para uso do Simulador
Na versão atual do simulador, não se pode ter mais de um projeto (design) no mesmo workspace. Assim, o procedimento de criação do novo projeto pressupõe repetir a ação das transparências Se a licença do simulador permitir, pode-se ter: File New Design Empty, com nome soma. No browser do simulador ter-se-á: Workspace criado no início da aula Projeto inicial Novo projeto
19
Geração de Estímulos e Resultado Esperado
4 bits podem ser representados como um único dígito em hexadecimal. No testbench pode-se escrever: aa <= x"4", x"5" after 10 ns, x"A" after 20 ns, x"B" after 30 ns; bb <= x"8", x"3" after 20 ns; Ao simular este circuito, na simulação aparece algo como: (testar outros valores no seu testbench) O comportamento é o esperado? Explicar.
20
TRABALHO A FAZER Implemente o circuito de seis portas lógicas abaixo em VHDL; Crie um projeto com o simulador Active-HDL que contenha o par entidade-arquitetura correspondente a este circuito; Crie um arquivo que instancie este circuito, que gere estímulos para todas suas 4 entradas e os aplique à instância, isto é, crie um testbench para o circuito. Simule o testbench e descreva como o circuito funciona.
21
A ENTREGAR Os três projetos Active-HDL (somador de 1 bit, somador de 4 bits, diagrama de esquemáticos de portas lógicas) completos, contendo, para cada circuito: VHDL do circuito proposto; O testbench implementado; Instâncias de formas de onda geradas, explicando a operação do circuito; Um texto descrevendo como o circuito funciona. Data Final de Entrega: 14/09/2009, até o fim do dia, por (Acréscimos do trabalho estão disponíveis na aula seguinte)
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.