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

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

Parte 1 – Introdução à Simulação em VHDL LABORG Ney Laert Vilar Calazans 24/agosto/2009.

Apresentações semelhantes


Apresentação em tema: "Parte 1 – Introdução à Simulação em VHDL LABORG Ney Laert Vilar Calazans 24/agosto/2009."— Transcrição da apresentação:

1 Parte 1 – Introdução à Simulação em VHDL LABORG Ney Laert Vilar Calazans 24/agosto/2009

2 2Ney Calazans 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 –VHDL V HSIC H ardware D escription L anguage –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 3Ney Calazans 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 4Ney Calazans 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++!!) Geração de estímulos e Captura de saídas Circuito (RTL) Resultados Resultados esperados Comparação Estrutura Geral de um Testbench VHDL é uma linguagem de programação?

5 5Ney Calazans 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 ABSumCarry entity halfadd is port (A, B: in std_logic; Sum, Carry: out std_logic); end halfadd; Código VHDL da entidade: Tabela Verdade A B Sum Carry Esquemático:

6 6Ney Calazans 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) architecture comp of halfadd is begin Sum <= A xor B; Carry <= A and B; end comp; Sumário de Descrição de Hardware (2/2) Código VHDL da entidade:

7 7Ney Calazans 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 8Ney Calazans 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 9Ney Calazans 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) Instanciação do projeto, conectando pinos do projeto a fios do testador Geração dos estímulos, dizendo como fios do testador se comportam Nome do projeto (entidade)

10 10Ney Calazans Usando o Simulador Active-HDL Abrir o Active-HDL –Executar o comando Create New Workspace –Definir o nome do Workspace

11 11Ney Calazans Criar projeto vazio (Empty) Dar Next na próxima janela (seleção de VHDL) Definir o nome do Projeto dentro do Workspace Usando o Simulador Active-HDL

12 12Ney Calazans 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) Usando o Simulador Active-HDL

13 13Ney Calazans Usando o Simulador Active-HDL Compilar até não haver mais erros de sintaxe

14 14Ney Calazans Uma vez concluído o processo de compilação sem erros, inicializar a simulação: Usando o Simulador Active-HDL

15 15Ney Calazans 2. Abrir uma janela de formas de onda 3. Definir o tempo de simulação: 40 ns 1. Abrir a hierarquia para visualizar o módulo que está sendo testado 4. Selecionar e arrastar os sinais que se deseja verificar o comportamento desta janela para a janela de formas de onda 0. Certifique-se de escolher a aba Structure do Projeto

16 16Ney Calazans O comportamento é o esperado? Explicar. Botão para disparar a execução Botões de Zoom da janela de simulação Usando o Simulador Active-HDL Estes valores correspondem ao valor dos sinais no instante onde está o cursor vermelho!!

17 17Ney Calazans 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 18Ney Calazans Dicas para uso do Simulador File New Design Empty, com nome soma. No browser do simulador ter-se-á: Workspace criado no início da aula Projeto inicial Novo projeto 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:

19 19Ney Calazans 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: O comportamento é o esperado? Explicar. (testar outros valores no seu testbench)

20 20Ney Calazans 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 21Ney Calazans 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)


Carregar ppt "Parte 1 – Introdução à Simulação em VHDL LABORG Ney Laert Vilar Calazans 24/agosto/2009."

Apresentações semelhantes


Anúncios Google