DIG222802 AULA13: mudanças entre as edições
Linha 108: | Linha 108: | ||
</center> | </center> | ||
Se você já tem os arquivos .vhd do Testbench e do módulo disponível pisca_led , clique em ‘Add Existing File’ e adicione os arquivos ao projeto. Se não os tiver, o Modelsim possui um editor que pode ser utilizado para esse fim. Então clique em Create New File e copie o conteúdo para o novo arquivo. A tela do seu projeto deve | Se você já tem os arquivos .vhd do Testbench e do módulo disponível pisca_led , clique em ‘Add Existing File’ e adicione os arquivos ao projeto. Se não os tiver, o Modelsim possui um editor que pode ser utilizado para esse fim. Então clique em Create New File e copie o conteúdo para o novo arquivo. A tela do seu projeto deve ficar como mostra a Figura 3. | ||
[[Imagem:fig70_DIG222802.png|center]] | |||
<center> | |||
Figura 3 - Visão da tela do projeto. | |||
</center> | |||
=Referências= | =Referências= |
Edição das 12h50min de 11 de julho de 2016
1 Tutorial Modelsim
Ferramentas de simulação são grandes aliadas no desenvolvimento de aplicações embarcadas, pois facilitam a vida do desenvolvedor, em FPGA é extremamente recomendado que todo o código seja testado em um simulador antes de ser sintetizado em um FPGA. Nesta aula será apresentado um rápido tutorial de modelsim.
O processo de gravar o FPGA e testar é muito mais demorado do que simplesmente rodar o simulador. Além disso não existem muitas interfaces da FPGA com o mundo externo, é praticamente impossível saber sobre tudo que está acontecendo no seu sistema em tempo real. Alguns bugs são difíceis de serem encontrados em tempo de execução pois podem ocorrer só em situações especificas que demoram muito a acontecer ou por necessitar de vários equipamentos externos para simular a situação em que ocorreriam.
O Modelsim é um simulador de HDL (Hardware Description Language) desenvolvido pela Mentor Graphics. Ele suporta a simulação das linguagens VHDL e Verilog e pode simular o código a nível de RTL (Register Transfer Level) e Gate Level. Em nível de RTL é analisado o circuito a nível de comportamento dos registradores e em Gate Level é analisado a nível de netlist com inclusão de atrasos das portas lógicas e etc.
Neste tutorial vamos apresentar o que é necessário para realizar a simulação da aplicação e seu de comportamento.
1.1 Download do Modelsim
A primeira coisa que deve ser feita, é instalar o Modelsim no seu computador. Uma edição de graça do Modelsim para estudantes pode ser obtido no site da Altera. Recomendo o download junto com o Quartus 14.
É importante notar que a versão gratuita possui algumas limitações, tais como: limitação de performance, limite para o número de linhas de código executáveis e não trabalhar com duas linguagens em um mesmo projeto (misturar VHDL e Verilog).
1.2 Criar um TestBench
Uma das utilidades de VHDL é a simulação que é usada para estudar a operação de um circuito ou para verificar se um design está correto. Fazer uma simulação em VHDL é simular um experimento com um circuito físico, em que as entradas do circuito são conectadas a algum sinal de estímulo (por exemplo, um gerador de sinais) , e com isso, as saídas deste circuito podem ser observadas.
Simular uma lógica programada em VHDL é similar a fazer um experimento virtual, em que o circuito físico é substituído pela sua descrição em VHDL, bem como os estímulos de entrada e as saídas. Este conjunto de ferramentas e práticas são implantadas em um Testbench (arquivo de teste).
O código VHDL abaixo apresenta o Testbench para o exemplo abaixo.
library ieee;
use ieee.std_logic_1164.all;
entity testbench_pisca_led is
end entity testbench_pisca_led;
architecture rtl of testbench_pisca_led is
signal clk: std_logic := '0';
signal rs: std_logic;
signal led_status: std_logic;
component pisca_led
port
(
sys_clk_50mhz : in std_logic;
sys_rst : in std_logic;
led : out std_logic
);
end component;
begin
clk <= NOT clk after 10 ns; -- clock de 50 MHz
pisca_led1: pisca_led PORT MAP(clk, rs, led_status);
end architecture rtl;
Pode-se observar as entradas de estímulo criadas do clock de 50MHz e o sinal de reset. A saída é o led_status. (10ns para alto, 10ns para baixo = período de 20ns = frequência de 50 MHz).
Para melhor visualizar a simulação o código pisca_led.vhd teve a frequência de pisca alterada para um período de 10ms. Isso foi feito alterando o valor da comparação do sinal led_delay para 500000;
library ieee;
use ieee.std_logic_1164.all;
entity pisca_led is
port
(
sys_clk_50mhz : in std_logic;
sys_rst : in std_logic;
led : out std_logic
);
end entity pisca_led;
architecture rtl of pisca_led is
signal led_delay : NATURAL range 0 to 50000000;
signal led_reg : std_logic;
begin
led <= led_reg; -- Atribui a porta de saída chamada led o valor do registrador
process(sys_clk_50mhz, sys_rst) -- Executado a cada pulso de clock ou reset
begin
if sys_rst = '0' then -- Reset assíncrono, independe do clock
led_delay <= 0;
led_reg <= '0';
elsif rising_edge(sys_clk_50mhz) then
led_delay <= led_delay + 1;
if led_delay = 500000 then
led_delay <= 0;
led_reg <= not led_reg; -- Inverte o valor do registrador do led
end if;
end if;
end process;
end architecture rtl;
A seguir será mostrado como criar um projeto no Modelsim para que os códigos apresentados sejam testados.
1.3 Criar um Projeto, Adicionar os Arquivos, e Compilar
Podemos então abrir o Modelsim. Isto deve ser o que você vai encontrar ao executar o Modelsim e clicar em Jumpstart pela primeira vez.

Figura 1 - Informações sobre o projeto inicial.
Preencha as informações adequadamente e clique em Ok. Uma nova janela irá se abrir.

Figura 2 - Adicionando arquivos ao projeto.
Se você já tem os arquivos .vhd do Testbench e do módulo disponível pisca_led , clique em ‘Add Existing File’ e adicione os arquivos ao projeto. Se não os tiver, o Modelsim possui um editor que pode ser utilizado para esse fim. Então clique em Create New File e copie o conteúdo para o novo arquivo. A tela do seu projeto deve ficar como mostra a Figura 3.

Figura 3 - Visão da tela do projeto.
2 Referências
[1] https://www.altera.com/products/design-software/model---simulation/modelsim-altera-software.html
[2] http://www.embarcados.com.br/tutorial-de-modelsim-vhdl-fpga/
<< | <> | >> |
---|