introdução · pdf filearquitetura e organização de computadores 1...

79
1 Arquitetura e Organização de Computadores Prof. Otávio Gomes [email protected] Prof. Mário Luiz Rodrigues [email protected] Introdução VHDL Parte 4 - Testbench

Upload: phamdan

Post on 15-Feb-2018

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

1Arquitetura e Organização de Computadores

Prof. Otávio [email protected]

Prof. Mário Luiz [email protected]

Introdução VHDLParte 4 - Testbench

Page 2: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

2Arquitetura e Organização de Computadores

library IEEE;use IEEE.std_logic_1164.all;

entity portae is port( a: in STD_LOGIC; b: in STD_LOGIC; s: out STD_LOGIC);end portae;

architecture portae_arch of portae isbegin

s <= a and b;end portae_arch;

Page 3: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

3Arquitetura e Organização de Computadores

Page 4: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

4Arquitetura e Organização de Computadores

library IEEE;use IEEE.std_logic_1164.all;

entity portaou is port ( a: in STD_LOGIC; b: in STD_LOGIC; s: out STD_LOGIC );end portaou;

architecture portaou_arch of portaou isbegin

s <= a or b;end portaou_arch;

Page 5: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

5Arquitetura e Organização de Computadores

Page 6: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

6Arquitetura e Organização de Computadores

library IEEE;use IEEE.std_logic_1164.all;

entity inversor is port ( a: in STD_LOGIC; s: out STD_LOGIC );end inversor;

architecture inversor_arch of inversor isbegin

s <= not a;end inversor_arch;

Page 7: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

7Arquitetura e Organização de Computadores

Page 8: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

8Arquitetura e Organização de Computadores

library IEEE;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_arith.all;

entity somador4bits isport (

dadoA : in unsigned (3 downto 0);dadoB : in unsigned (3 downto 0);result: out unsigned (4 downto 0)

);

end somador4bits;

architecture arch_soma of somador4bits isbegin

result(4 downto 0) <= ('0' & dadoA(3 downto 0)) + ('0' & dadoB(3 downto 0));

end arch_soma ;

Page 9: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

9Arquitetura e Organização de Computadores

Page 10: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

10Arquitetura e Organização de Computadores

library IEEE;use IEEE.std_logic_1164.all;

entity mux21_conc is port ( a: in bit; b: in bit; s: in bit; z: out bit );end mux21_conc ;

architecture mux21_arch of mux21_conc issignal aok, bok, ns : bit;

beginaok <= a and s;bok <= b and ns;ns <= not(s);z <= aok or bok;

end mux21_arch;

Page 11: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

11Arquitetura e Organização de Computadores

Page 12: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

12Arquitetura e Organização de Computadores

library IEEE;use IEEE.std_logic_1164.all;

entity mux21_estrut is port ( a: in STD_LOGIC; b: in STD_LOGIC; sel: in STD_LOGIC; saida: out STD_LOGIC );end mux21_estrut;

architecture mux21_arch of mux21_estrut issignal aok,bok,ns : STD_LOGIC;component portae port(a, b : in STD_LOGIC; s : out STD_LOGIC);end component;component portaou port(a,b : in STD_LOGIC; s : out STD_LOGIC);end component;component inversor port(a : in STD_LOGIC; s : out STD_LOGIC);end component;

begin u1: portae port map (a,sel,aok); u2: inversor port map(sel,ns); u3: portae port map (ns,b,bok); u4: portaou port map (aok,bok,saida);end mux21_arch;

Page 13: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

13Arquitetura e Organização de Computadores

Descrição de Circuitos com VHDL Testbench

Page 14: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

14Arquitetura e Organização de Computadores

Teste de código VHDL

O código VHDL permite utilizar vários comandos e construções, porém nem todos estes comando ou construções são suportadas pelas ferramentas de síntese.

Por exemplo, software Quartus da ALTERA é uma ferramenta utilizada para sintetizar o código VHDL e programar dispositivos PLD’s e FPGA’s, mas não suporta algumas opções de utilização dos comandos WAIT e AFTER.

Page 15: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

15Arquitetura e Organização de Computadores

Teste de código VHDL

Comando WAIT

O comando Wait possui várias opções de utilização como: wait until, wait on e wait for. As duas primeiras necessitam de uma lista de sensibilidade assim como um processo.

WAIT ON lista de sensibilidade;

WAIT UNTIL expressão booleana;

WAIT ON lista de sensibilidade UNTIL condição booleana;

Não suportadas por algumas ferramentas de síntese.

Page 16: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

16Arquitetura e Organização de Computadores

Teste de código VHDL

Onde é utilizada esta construção?

Softwares como Modelsim são programas que testam códigos VHDL sem se preocupar se o código é sintetizável ou não. Portanto todos os comandos utilizados na descrição do código VHDL são aceitos por este software.

Page 17: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

17Arquitetura e Organização de Computadores

Testbench

Testbench: recurso em VHDL que permite que um circuito sob teste (Unit Under Test – UUT) seja submetido a sinais de estímulo e tenha a sua funcionalidade verificada.

Page 18: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

18Arquitetura e Organização de Computadores

Testbench

• Um projeto fica incompleto se não for verificado. Uma das formas de se testar a descrição VHDL é pelo uso de testbench.

• Testbench é um ambiente onde o projeto, chamado de design ou Unit Under Test (UUT) é verificada através da aplicação de sinais ou estímulos, e da monitoração de suas respostas.

• Em outras palavras, um testbench substitui o ambiente de projeto, de forma que o comportamento do projeto possa ser observado e analisado.

Page 19: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

19Arquitetura e Organização de Computadores

Testbench

Uma forma de testar o projeto:

– Na sua forma mais simples, 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”

Page 20: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

20Arquitetura e Organização de Computadores

Consiste de:

Uma chamada do componente sob teste (UUT – Unit Under Test) ;

Geradores de estímulos;Os estímulos são um conjunto de sinais declarados internamente na

arquitetura do testbench e passada aos ports da UUT por sua chamada. Os estímulos são definidos como formas de onda em um ou mais processos comportamentais.

Ferramentas para monitoramento das respostas do circuito aos estímulos aplicados.

A

B

Y

Z

Unidade sob Teste Y

Z

A

B

Gerador de Estimulos

TESTBENCH

Page 21: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

21Arquitetura e Organização de Computadores

TestbenchOs comandos que descrevem os estímulos não são sintetizáveis.

Ex:

Page 22: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

22Arquitetura e Organização de Computadores

Formato de um Testbench

• O test bench é como outra especificação VHDL. Consiste de uma entity e de uma architecture.

• Uma importante diferença é que a entity de uma descrição de testbench não tem ports. Isto se deve ao fato que a descrição testbench não representa circuito real que precisa se comunicar com o ambiente e, portanto não tem entradas ou saídas.

• Todos os valores para os ports de entrada da UUT são especificados no testbench como estímulo.

Page 23: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

23Arquitetura e Organização de Computadores

Formato de um Testbench

• As saídas são observadas pelo simulador e podem ser armazenadas em um arquivo. O arquivo a ser testado não precisa de modificações ou comandos adicionais. Assim, qualquer especificação VHDL pode ser testada.

• A UUT deve ser chamada na arquitetura da test bench. Isto pode ser feito da mesma forma que qualquer especificação estrutural, através de componente. Aos ports da UUT devem ser atribuídos os estímulos.

Page 24: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

24Arquitetura e Organização de Computadores

Formato de um Testbench

• Como os processos e a chamada de componentes são concorrentes, não faz diferença se a UUT ou o estímulo for definido primeiro.

• A parte principal de um testbench é o conjunto de estímulos. Como o testbench não se comunica com o ambiente por sinais, todos os estímulos devem ser declarados como sinais no cabeçalho da architecture do testbench.

• Os estímulos podem ser especificados tanto como declarações concorrentes (mudanças nos sinais especificados como formas de onda), ou como processo que contenha declarações de sinais separados por comandos wait e for, introduzindo atrasos entre declarações subseqüentes.

Page 25: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

25Arquitetura e Organização de Computadores

Formato de um Testbench

Page 26: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

26Arquitetura e Organização de Computadores

Formato de um Testbench

Page 27: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

27Arquitetura e Organização de Computadores

Formato de um Testbench

Page 28: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

28Arquitetura e Organização de Computadores

Formato de um Testbench – Uso de Constantes

Page 29: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

29Arquitetura e Organização de Computadores

Formato de um Testbench – Uso de Constantes

Page 30: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

30Arquitetura e Organização de Computadores

Formato de um Testbench – Uso de Constantes

Page 31: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

31Arquitetura e Organização de Computadores

Exemplo de teste para um flip-flop D utilizando constantesObjetivo: Descrição de sinais que podem ser adaptados para simulações

em várias freqüências, alterando apenas o valor de uma constante – Periodo de clock alterado para 500 ns - 4.

Formato de um Testbench – Uso de Constantes

Page 32: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

32Arquitetura e Organização de Computadores

Testbench

• Ao final de uma verificação tem-se o resultado da simulação e/ou uma listagem de resultados na forma de relatório.

• Isto é obtido de várias formas; usando aplicativos dos simuladores, como nos exemplos anteriores(listagem das variações dos sinais ao longo do tempo ou telas gráficas),

• Ou usando o comando report que apresenta na tela do software de simulação ou em um arquivo os resultados de toda a simulação.

• Esta ultima forma é fácil de usar, e é empregada para mostrar uma mensagem quando há erros.

•Se esta opção é usada e não há mensagem durante a simulação, então se presume que o UUT tenha funcionado como esperado.

Page 33: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

33Arquitetura e Organização de Computadores

Testbench

• Em conjunto com o comando report utiliza-se a declaração assert que verifica uma condição Booleana, que define uma mensagem a ser apresentada quando a condição é falsa

• O comando assert é por natureza seqüencial e portando usado em um processo.

• Deve-se usar o par assert-report para cada novo valor esperado do UUT e deve haver uma respectiva condição no conjunto.

Page 34: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

34Arquitetura e Organização de Computadores

Testbench

• É esperado na mensagem que seja especificado no que ocorreu, quando ocorreu e os valores das entradas.

• Lembre-se que os novos valores só são atribuídos quando o processo é suspenso. Não se deve esperar valores nas saídas imediatamente após a sua atribuição.

• O comando report consiste da declaração assert que verifica uma condição Booleana, da declaração report que define uma mensagem a ser apresentada quando a condição é falsa, e da declaração severity que informa ao simulador quão severa foi a condição de erro encontrada, variando desde um alerta até uma falha geral no sistema.

Page 35: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

35Arquitetura e Organização de Computadores

Testbench

Esta ultima forma é fácil de usar, e é empregada para mostrar uma mensagem quando há erros. Se esta opção é usada e não há mensagem durante a simulação, então se presume que a UUT tenha funcionado como esperado.

Page 36: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

36Arquitetura e Organização de Computadores

Modelsim - Altera

Page 37: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

37Arquitetura e Organização de Computadores

Quartus - ModelsimInstruções para rodar inserindo Formas de

Onda a partir do software Quartus

Page 38: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

38Arquitetura e Organização de Computadores

Após feito a descrição no Quartus e salvado corretamente, abra o programa

Modelsim – Altera.

Page 39: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

39Arquitetura e Organização de Computadores

Na barra de ferramentas clique em COMPILE e Na barra de ferramentas clique em COMPILE e em seguida em COMPILE OPTIONSem seguida em COMPILE OPTIONS

Nesta janela você vai configurar como

deseja que o Modelsim compile

sua descrição.

Page 40: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

40Arquitetura e Organização de Computadores

Depois de configurado a simulação clique novamente Depois de configurado a simulação clique novamente em COMPILE e em seguida em COMPILE... em COMPILE e em seguida em COMPILE...

Nesta janela você vai selecionar a

descrição que deseja simular. No campo

EXAMINAR selecione a pasta e escolha o

arquivo (.vhdl) e clique em COMPILE.

Page 41: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

41Arquitetura e Organização de Computadores

Observe que na janela Observe que na janela TRANSCRIPTRANSCRIP vai vai aparecer mensagens mostrando que a entidade aparecer mensagens mostrando que a entidade e a arquitetura foi carregada e compilada.e a arquitetura foi carregada e compilada.

Ex.:Ex.:

# -- Loading package standard# -- Loading package standard

# -- Compiling entity wait_a# -- Compiling entity wait_a

# -- Compiling architecture teste of wait_a# -- Compiling architecture teste of wait_a

Após isso clique em DONE.Após isso clique em DONE.

Page 42: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

42Arquitetura e Organização de Computadores

Na janela Na janela WORKSPACEWORKSPACE clique em WORK. clique em WORK.

Veja que o arquivo está foi compilado para a pasta WORK do Veja que o arquivo está foi compilado para a pasta WORK do modelsim.modelsim.

Clicando no sinal + ao lado da entidade a que irá ser submetida a simulação verá que dentro da

entidade wait_a existe uma arquitetura chamada teste onde está estruturado nosso código.

Dê duplo clique sobre a entidade wait_a.

Page 43: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

43Arquitetura e Organização de Computadores

Veja que na janela WORKSPACE foi listado

os processos que existem na entidade e

na janela OBJECTS foi listada as entradas e saídas da entidade

wait_a.

Page 44: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

44Arquitetura e Organização de Computadores

Na barra de ferramentas no menu View habilite a janela Wave para fazermos a simulação por forma de onda.

Page 45: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

45Arquitetura e Organização de Computadores

Selecione e arraste as entradas e saídas da janela OBJECTS para a janela WAVE.

Page 46: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

46Arquitetura e Organização de Computadores

Na barra de ferramentas no menu Simulate escolha a opção Runtime Options...

Aqui você pode definir como quer que os sinais sejam exibidos, tempo padrão de simulação, número de iterações...

Page 47: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

47Arquitetura e Organização de Computadores

Na barra de ferramentas no menu Simulate e submenu Run existem seis opções de simulação.

Simula até 1us (tempo definido em Runtime Opitions)

Simula até completar as 5000 iterações (definido em

Runtime Opitions)

Page 48: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

48Arquitetura e Organização de Computadores

Page 49: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

49Arquitetura e Organização de Computadores

Page 50: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

50Arquitetura e Organização de Computadores

Page 51: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

51Arquitetura e Organização de Computadores

Para alterar a forma de visualizar o sinal, clique com o botão direito do mouse sobre o sinal, selecione propriedades.

Em Radix selecione como deseja ver o sinal.

Altere as saídas xa e xb para unsigned.

Page 52: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

52Arquitetura e Organização de Computadores

Este software simula o código VHDL sem se Este software simula o código VHDL sem se importar se ele é sintetizavel ou não. Então é feito importar se ele é sintetizavel ou não. Então é feito no Quartus uma descrição para testar outra no Quartus uma descrição para testar outra descrição. descrição.

Como assim?Como assim?

As vezes é muito demorado ficar gerando formas de As vezes é muito demorado ficar gerando formas de onda para testar uma descrição, ou então um onda para testar uma descrição, ou então um mesmo conjunto de forma de onda é utilizado para mesmo conjunto de forma de onda é utilizado para testar algumas variações da descrição que possui testar algumas variações da descrição que possui as mesmas entradas e saídas. Então para isso é as mesmas entradas e saídas. Então para isso é utilizado uma descrição para fazer o teste de outra utilizado uma descrição para fazer o teste de outra descrição.descrição.

Page 53: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

53Arquitetura e Organização de Computadores

Quartus - ModelsimInstruções para rodar um TestBench

a partir do software Quartus

Page 54: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

54Arquitetura e Organização de Computadores

library IEEE;use IEEE.std_logic_1164.all;

entity ffdr is port ( d: in STD_LOGIC; clk: in STD_LOGIC; rst: in STD_LOGIC; saida: out STD_LOGIC );end ffdr;

architecture ffdr_arch of ffdr issignal q : STD_LOGIC;

begin ffdr: process (d,clk,rst) begin if rst='1' then

q <= '0'; elsif rising_edge(clk) then

q <= d; end if; end process ffdr; saida <= q; end ffdr_arch;

Page 55: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

55Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo

Page 56: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

56Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo

Page 57: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

57Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo

1

2

3

4

Page 58: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

58Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo – Carregando um arquivo existente

Page 59: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

59Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo – Carregando um arquivo existente

Page 60: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

60Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo – Carregando um arquivo existente

Page 61: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

61Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo – Carregando um arquivo existente

Page 62: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

62Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo - Escolha da família (Cyclone II)

e do modelo (EP2C20F484C7) da FPGA

1

2

3

Page 63: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

63Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo

Page 64: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

64Arquitetura e Organização de Computadores

Ferramenta Altera QuartusCriando um projeto novo

Page 65: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

65Arquitetura e Organização de Computadores

Ferramenta Altera QuartusProjeto novo criado com sucesso

Page 66: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

66Arquitetura e Organização de Computadores

Page 67: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

67Arquitetura e Organização de Computadores

Page 68: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

68Arquitetura e Organização de Computadores

Test bench

Verificar o arquivo fornecido Test bench.OBS: Não adicionar o arquivo ao projeto. O software QUARTUS não sintetiza as descrições deste arquivo. Será utilizado o software MODELSIM (Mentor Graphics) para simulação e analise.

Page 69: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

69Arquitetura e Organização de Computadores

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;

ENTITY vetor_teste ISEND vetor_teste;

ARCHITECTURE sinais OF vetor_teste IS

SIGNAL dado : STD_LOGIC;SIGNAL clk : STD_LOGIC;SIGNAL rst : STD_LOGIC;SIGNAL sinal_saida : STD_LOGIC;

COMPONENT ffdrport (

d: in STD_LOGIC;clk: in STD_LOGIC;rst: in STD_LOGIC;saida: out STD_LOGIC);

END COMPONENT;(...)

Page 70: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

70Arquitetura e Organização de Computadores

BEGINUUT: ffdr PORT MAP( d => dado,

clk => clk, rst => rst, saida => sinal_saida);

signal_clk: PROCESSBEGIN

clk<= '0'; WAIT FOR 50 ns;clk<= '1'; WAIT FOR 50 ns;

END PROCESS;

signal_rst: PROCESSBEGIN

rst<= '1'; WAIT FOR 100 ns;rst<= '0'; WAIT FOR 10000 ns;

END PROCESS;

signal_dado: PROCESSBEGIN

dado<= '0'; WAIT FOR 200 ns;dado<= '1'; WAIT FOR 200 ns;

END PROCESS;END sinais;

Page 71: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

71Arquitetura e Organização de Computadores

Ir no menu Assignments / Settings e editar o campo Simulation, clicando sobre o botão TestBenches e em seguida clicar em New.

Page 72: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

72Arquitetura e Organização de Computadores

Ir no menu Assignments / Settings e editar o campo Simulation, clicando sobre o botão TestBenches e em seguida clicar em New.

Page 73: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

73Arquitetura e Organização de Computadores

Ir no menu Assignments / Settings e editar o campo Simulation, clicando sobre o botão TestBenches e em seguida clicar em New.

Page 74: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

74Arquitetura e Organização de Computadores

Preencher os campos Test bench Name, Top level module in test bench, e o nome da instância criada no arquivo de test bench, a seguir, selecionar o arquivo de testbench e clicar em add.

Page 75: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

75Arquitetura e Organização de Computadores

Page 76: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

76Arquitetura e Organização de Computadores

Page 77: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

77Arquitetura e Organização de Computadores

No Menu Tools / Run Simulation Tool / RTL Simulation, e a seguir o ModelSim irá abrir e executar a simulação.

Inicio da simulação

Simulação Funcional

Simulação considerando atrasos das células e roteamento

Page 78: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

78Arquitetura e Organização de Computadores

Abaixo são mostrados os resultados obtidos por este test bench apresentados no ModelSim.

Simulação Funcional

Page 79: Introdução · PDF fileArquitetura e Organização de Computadores 1 Prof. Otávio Gomes otavio.gomes@ifmg.edu.br Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Introdução VHDL

79Arquitetura e Organização de Computadores

Abaixo são mostrados os resultados obtidos por este test bench apresentados no ModelSim.

Simulação Funcional