E ai meu povo... fim de semestre chegando, cheio de trabalhos e provas pra estudar mas... estou aqui pra compartilhar algumas coisas estressantes (estressante é pouco).
Bom, primeiro vou explicar pq não tava postando nada:
- Sem tempo;
- Não tinha nada de tão interessante pra dizer;
- As coisas interessantes eu não tinha certeza se estava fazendo certo;
Então... bora começar a reza, e vamos falar de coisa boa, vamos falar de Verilog!
É isso ai gente boa, Verilog!! Pois é né?? E então?? (Desembucha logo pow!!)
Calma geeeeeeeente!! Hehehe....
Vamos começar pelo começo, calma, espera, não precisa procurar no Google o que é Verilog o tio aki diz (vou procurar no wikipédia):
Segundo descrição do Wikipédia:
“Verilog é uma linguagem de descrição de hardware usada para modelar sistemas eletrônicos. Esta ferramenta suporta o design, verificação e implementação de projetos analógicos, digitais e circuito híbridos em vários níveis de abstração. Com placas especiais é possível descarregar o código gerado nessa linguagem em matrizes de portas denominadas FPGA's (field programmable gate array ou matriz de portas programáveis). Essas placas são constituídas por milhares de transistores e fazem basicamente o que vários circuito integrados fazem, com a diferença de que a matriz é reprogramável.”
Podem acreditar... é isso ai mesmo! Ai vc como um crítico nato q deve ser, vai se perguntar: O que é q eu tenho a v com isso? Ai eu digo: Nada!
Mas a melhor parte é: Fiz três trabalhos em Verilog e vou postar, Rá!
Eu uso o Model Sim pra fazer essas paradinhas, mas podem usar o Quartus que fica legal Tb, porém o teste Bench (oi?) tem que ser feito no model sim. Ta bom, ta bom.... vou explicar o que é teste bench.
O teste bench é um programa que vc faz pra testar outro programa, ou seja, o nosso teste bench vai gerar umas entradas no programa que esta sendo testado a fim de verificar se as saídas correspondem a essas entradas.
if(entendeu==sim)
printf(“Continue lendo”);
else
printf(“Wikipédia”);
1º - FIFO Síncrona:
A descrição é bem simples e corresponde ao que o próprio nome diz. Em poucas palavras, o primeiro que entra é o primeiro que sai. Essa FIFO tem capacidade para 128 palavras, sendo cada uma de 8 bits. Sabendo disso e de olho na Figura 1 podemos começar.
O programa é bem simples, teremos as seguintes entradas:
clock: sinal de clock;
rst: sinal de reset;
r_en: requisição de leitura;
w_en: requisição de escrita;
din: dados de entrada;
e as seguintes saídas:
dout: dados de saída;
empty: sinal de vazio;
full: sinal de cheio.
E essa outra variável auxiliar:
cont: contador para identificar se a memória está cheia ou vazia;
Pronto, ai tipo o programa ta todo comentado a baixo, e é auto explicativo:
Figura 2. Código FIFO (clique na figura pra ampliar).
Sim ai vc pode não ta entendendo o que é essa parte:
Figura 3.Bloco chama SRAM.
Enfim... essa parte é o seguinte, a FIFO ela só gerencia os dados que serão escritos e lidos, porém devemos ter uma memória para guardar os dados. A memória é chamada na FIFO por essa função ai que ta na Figura 3.
O código da memória é ilustrado na Figura 4.
Figura 4. Código memória.
Por fim... temos que testar pra v se ta tudo blz... ai entra o teste bench, q tb está comentado pra vcs se deliciarem. Esse monitor ai vai imprimir o estado de todas as variáveis que estão servindo como parâmetro pra ele, a cada mudança de qualquer uma. Ai é so vc testar se ta saindo tudo certo.
Figura 5. Teste Bench.
Bom, por hj é só!!
Vc: mas, mas, mas... mas vc disse que ia mostrar os três programas que vc fez!
Eu: calma véi.... quer tudo de uma vez! Os outros ficam pra outros posts, mas posso adiantar que um é um BlackJack e o outro uma FIFO Assíncrona.
Valeu!