André Castelan
"Em teoria não há diferença entre a pratica e a teoria, já na pratica..."

domingo, 28 de julho de 2013

VHDL: Lista de sensibilidade de um process

O process é um dos elementos básicos de qualquer descrição de hardware em VHDL, pode ser utilizado tanto para a representação de circuitos combinacionais como de circuitos sequenciais (com memória).

Sintaxe do process:
 process(lista_sensibilidade)  
 -- Declaração de variables  
 begin  
 -- Declaracao 1  
 -- Declaracao 2  
 end process;  

sábado, 20 de julho de 2013

Implementação de um shift register em VHDL

Boa noite,

Shift registers são elementos comuns em sistemas digitais utilizados para os mais diversos fins, como por exemplo: conversão de dados serial-paralelo e vice-versa; geração de atrasos; contadores e etc.

Um shift register nada mais é do que um array de flip-flops conectados em um mesmo clock de forma que a cada pulso de clock a entrada de um flip-flop recebe o valor da saída de seu anterior. Desta forma a cada pulso de clock o flip-flop n+1 recebe o valor de n. A Figura 1 retirada da wikipedia retrata o circuito.

Figura 1. Shift register de 4 bits.

sábado, 13 de julho de 2013

Tutorial de Modelsim: Verificando o VHDL antes de programar o FPGA.

Olá pessoal,

Ferramentas de debug e simulação são grandes aliados 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.

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 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.

Vamos por partes, começando do mais simples. Neste tutorial, como exemplo, irei apresentar o que é necessário para realizar a simulação da aplicação mostrada no tutorial anterior (clique aqui) a nível de comportamento.

sábado, 6 de julho de 2013

Funcionamento de signal e variable em VHDL ou porque evitar variables.

Muita gente se confunde na hora de utilizar signal e variable em VHDL. Acabam fazendo besteira por não entender bem os conceitos, já adianto que para quem não sabe exatamente o que está fazendo e o que vai ser gerado o ideal é não utilizar variable.