P. 1
Método para ensino de lógica digital através de VHDL

Método para ensino de lógica digital através de VHDL

|Views: 243|Likes:
Publicado porgeomimo
Este artigo descreve uma técnica para o ensino de lógica digital através da linguagem de descrição de hardware VHDL. Voltada especialmente para os alunos do curso de ciências da computação, esta técnica defende o ensino de lógica digital a partir da programação, por acreditar que tal abordagem é mais familiar, pratica e dinâmica.
Este artigo descreve uma técnica para o ensino de lógica digital através da linguagem de descrição de hardware VHDL. Voltada especialmente para os alunos do curso de ciências da computação, esta técnica defende o ensino de lógica digital a partir da programação, por acreditar que tal abordagem é mais familiar, pratica e dinâmica.

More info:

Published by: geomimo on Sep 08, 2010
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/31/2014

pdf

text

original

Método para ensino de lógica digital através de VHDL

Geovane Mimoso1, Martha Torres1
1

Departamento de Ciências Exatas e Tecnológicas – Universidade Estadual de Santa Cruz (UESC) Rodovia Ilhéus/Itabuna, km 16 – CEP: 45.662 000 – Ilhéus – BA – Brazil
geovanemimoso@hotmail.com, mxtd2000@yahoo.com.br

Abstract. This article describes a technique for digital logic teaching by using the VHDL hardware logical language. Mainly used in classes with students attending the computer science course, this technique defends the digital logic teaching based on programming, assuming this approach is more familiar, practical and dynamic. Resumo. Este artigo descreve uma técnica para o ensino de lógica digital através da linguagem de descrição de hardware VHDL. Voltada especialmente para os alunos do curso de ciências da computação, esta técnica defende o ensino de lógica digital a partir da programação, por acreditar que tal abordagem é mais familiar, pratica e dinâmica.

1. Introdução
Os alunos de ciência da computação ao longo de anos tem tido problemas com o aprendizado das disciplinas que envolvem a lógica digital, muitos se desmotivam por que em sua essência, vê na programação de computadores o seu maior interesse. Quando se deparam com uma disciplina que na sua grande maioria é ensinada através dos métodos tradicionais com simplificações à mão e muita visão teórica do que é desenvolvido, o rendimento não é adequado. Com o ensino da lógica digital através da linguagem VHDL o aluno pode ver toda a base teórica da lógica digital, mas com objetivo de programar a teoria aprendida através de uma linguagem que é familiar e testar na pratica o produto da teoria aprendida em funcionamento. O foco deste artigo, por sua vez, é descrever uma técnica para ensinar lógica digital através da linguagem de descrição de hardware VHDL, analisar quais as suas qualidades, até que ponto pode ser mais eficiente do que a técnica aplicada atualmente. Nos demais tópicos serão mencionados, no item dois a relevância, no item três os trabalhos correlatos, no item quatro a metodologia, no item cinco os resultados, no item seis a discussão dos resultados e por fim no item sete a conclusão.

2. Relevância
A linguagem VHDL – VLSI Hardware Description Language, definida pela norma IEEE 1076-1987 e revisada na norma IEEE 1076-1993, é uma linguagem padronizada por uma força tarefa e é utilizada por vários fornecedores de tecnologias VLSI, no desenvolvimento de mascaras para gravação em pastilhas de silício, FPGAs ou até mesmo para geração de circuitos constituídos de MSI ou LSI [Flores 1991] [Lima and Silva 2005] [Wakerly 2001].

As linguagens de descrição de hardware permitem descrever um circuito num nível mais elevado de abstração, conseguindo-se assim descrever circuitos mais complexos com maior facilidade e verificar a sua funcionalidade através de simulação. Devido à representação de um circuito ser feita de uma forma tecnologicamente independente, a escolha do fabricante pode ser adiada para uma fase posterior do projeto. Assim, a reutilização de projetos anteriores torna-se possível de uma forma mais simples com o uso de bibliotecas que podem ser partilhadas pelos diversos projetistas. Com a ampla utilização de aparelhos eletrônicos, a tendência é a expansão da descrição de projetos utilizando um nível de abstração elevado, recorrendo por isso, cada vez mais ao uso de linguagens de hardware. Diante do exposto, é importante que alunos do curso de ciência da computação tenham a oportunidade de familiarizar-se com estas tecnologias, já que representam o presente e o futuro do desenvolvimento de sistemas digitais. Para alunos de ciências da computação o estudo de linguagens de descrição de hardware é um grande diferencial, dado que atualmente os projetos de circuitos digitais são feitos em alto nível e no mercado mundial os bacharéis de ciências da computação concorrem com os engenheiros eletricistas como projetistas circuitos. A disciplina lógica digital ou sistemas digitais ensinada nos cursos de ciência da computação, de maneira geral, esta orientada ao ensino através de circuitos digitais que requerem uma base de circuitos elétricos que na maioria das grades curriculares dos cursos de ciências da computação não é possível incluir, isto dificulta o entendimento dos conceitos e desmotiva o aluno. Visto que a linguagem VHDL é uma excelente ferramenta no contexto dos circuitos digitais e que a disciplina lógica digital tem apresentado problemas em sua eficiência, principalmente por que não tem uma abordagem familiar aos alunos do curso de ciência da computação, foi realizada a experiência de ensinar lógica digital através da linguagem VHDL, ou seja, projetar circuitos digitais programando.

3. Trabalhos correlatos
A partir da análise dos cursos de ciências da computação de grandes universidades do país [USP 2010] [Unicamp 2010] [UFRJ 2010] [UFPE 2010] [UFRGS 2010] é quase unânime a não inclusão do VHDL no ensino das disciplinas básicas de lógica digital e em alguns cursos não é incluso em nenhuma das disciplinas. Nas exceções em que o conhecimento é inserido em disciplinas básicas, é visto como um complemento, não como uma ferramenta para auxiliar o aprendizado e torná-lo mais interessante e pratico. Nas disciplinas mais avançadas ou optativas onde o VHDL está inserido, o conhecimento é dado como mais uma linguagem de programação, visto que os alunos já tiveram contato com as disciplinas necessárias para o aprendizado das bases da lógica digital. Logo, estão aprendendo como usar o VHDL e não o utilizando para aprender novos conceitos da lógica digital. Com base nessas informações, é coerente afirmar que o ensino de lógica digital através do VHDL, não é uma pratica inserida nos cursos de computação do país. No que tange a propostas não tradicionais no Brasil e no exterior, em [Pomares at. al. 2009] é apresentado um software que foi desenvolvido para o ensino de lógica digital e é utilizado para facilitar o contato entre o aluno e as técnicas de simplificação e análise

de circuitos digitais que é base para o ensino da disciplina. Outra técnica não tradicional que pode ser citada é o sistema de ensino de lógica digital desenvolvido para alunos com deficiência visual que é descrito em [Silva 2010]. Em ambos o objetivo é o mesmo, tornar mais amigável e interessante o ensino da disciplina lógica digital, que é tida como exaustiva e pouco prática, o que corrobora com o aferido neste trabalho.

4. Metodologia
Este trabalho foi desenvolvido com base na execução de um projeto de iniciação cientifica onde o aluno foi orientado usando a metodologia proposta para o aprendizado de projeto de circuitos digitais através de VHDL. Foram utilizados como recursos para o desenvolvimento do projeto o ambiente de desenvolvimento ISE 9.2 da Xilinx [Manual do ISE 9.2 2010] e a placa de desenvolvimento Basys da DigilentR [Manual da placa Basys 2010], (baseada no FPGA Spartan-3E da Xilinx). Através de reuniões semanais com a orientadora o aluno foi estimulado para estudo da lógica digital da seguinte maneira: Foi realizado um estudo detalhado da linguagem VHDL, e das ferramentas de projeto da Xilinx [ISE 9.2 da Xilinx] até chegar ao nível de gravação na placa Basys da DigilentR. A partir desse ponto foi possível seguir o modelo descrito abaixo.   Primeiro foi feito um estudo teórico do funcionamento de certa unidade lógica como, por exemplo, um decodificador. Depois com o contato com a orientadora foram sanadas duvidas referentes ao funcionamento teórico e a apresentação de modelos específicos com o intuito de programá-los em VHDL. Com o funcionamento geral da unidade lógica esclarecida e com modelos específicos era possível programá-los e testá-los na placa Basys da DigilentR. A partir do circuito pronto o aluno pode ver o seu código e sua descrição para aquele comportamento teórico que aprendeu em perfeito funcionamento.

 

É importante ressaltar que o aluno em questão começou a engajar-se no projeto quando ainda cursava o primeiro semestre do curso de ciências da computação, logo, não havia tido contato com a disciplina de lógica digital nos moldes tradicionais, só depois de algum tempo e de já ter se familiarizado com a matéria é que houve tal contato. A seguir, descrevem-se de maneira detalhada as atividades realizadas durante a experiência aqui relatada: Durante toda a experiência foi feito o estudo da linguagem VHDL [Ercegovac et al. 2000], [Wakerly 2001]. Foram estudadas as bibliotecas da linguagem, pesquisa sobre reaproveitamento de código, estudos dos três diferentes métodos de desenvolvimento que são o behavioral, o dataflow e o structural além do estudo de recursos específicos da linguagem como packages, component e signal. Também foi realizado o estudo da placa Basys da DigilentR que consiste em um sistema de desenvolvimento baseado em FPGAs. Foi realizado um treino para a utilização da placa, foram estudados os métodos de utilização do display sete segmentos, além da gravação e teste de todos os códigos gerados. Em paralelo ao estudo

da placa foi feito um estudo do ambiente de desenvolvimento ISE 9.2, começando com o projeto e implementação de circuitos no modo esquemático, logo depois foi utilizado o VHDL. Outra atividade feita foi o estudo implementação de circuitos básicos com diferentes estilos de codificação. Segue abaixo uma relação dos circuitos feitos.      Estudo de circuitos básicos através de tabelas verdade, simplificações e mapas de karnaugh. Estudo dos decodificadores e respectiva implementação. Estudo dos três diferentes métodos de desenvolvimento em VHDL. Projeto e implementação de um somador completo de um bit nos três diferentes métodos. Projeto e implementação de um somador completo de quatro bits utilizando os três métodos conhecidos e a chamada de arquivos através de bibliotecas e packages gerados pelo programador. Projeto e implementação de um Multiplexador de oito e dezesseis entradas. Projeto e implementação de um detector de números primos. Projeto e implementação de decodificadores binários e decimais. Projeto e implementação de um algoritmo que detecte a posição do valor "1" ("0") no vetor de oito bits de entrada. Projeto e implementação de um algoritmo que mostre o numero de 1s em um vetor de oito bits.

    

Outro estagio da experiência foi a comparação de desempenho em termos de área e velocidade. Dentro deste contexto foram realizadas atividades como a análise da eficiência de cada método de acordo com as estatísticas apresentadas pelo programa Xilinx ISE 9.2 e gerado um relatório de resultados além da criação de um detector de números primos em nove versões e a geração de um relatório de resultados analisando a eficiência de cada método. Depois do estudo de circuitos combinacionais foram realizadas as seguintes atividades: Estudo dos conceitos: latch, flip-flop, contadores e registradores [Ercegovac et al. 2000] [Capuano and Idoeta 2003] [Kime Mano 2004] [Wakerly 2001].      Projeto e implementação de um diagrama de tempo de um contador assíncrono de dois bits. Projeto e implementação em VHDL de um contador de zero ate sete para visualização no display de sete segmentos da placa Basys. Projeto e implementação em VHDL de um contador de 0 a 15 e mostrar no display de sete segmentos Projeto e implementação em VHDL de um programa para descrever um registrador de deslocamento universal de quatro bits (74x194). Projeto e implementação em VHDL de um programa para descrever um contador binário de quatro bits (74x163).

 

Projeto e implementação em VHDL de um contador de números pares e ímpares que mostre a saída no display de sete segmentos. Projeto e implementação em VHDL de um relógio digital que conte segundos e minutos, para isso deverá ser utilizado o quatro displays de sete segmentos da placa Basys. Estudo sobre maquinas de estados finitos [Ercegovac et al. 2000] [Capuano and Idoeta 2003] [Kime Mano 2004] [Wakerly 2001]. Estudo sobre formas de implementação de máquinas de estados finitos em VHDL [Wakerly 2001]. Implementação da maneira convencional (à mão) de máquinas de estado finito: um contador e um analisador de código de entrada. Programação de um contador utilizando a técnica aprendida sobre máquinas de estados finitos em VHDL. Programação de um sistema para arbitramento de barramento para três maquinas, utilizando diagrama de máquina de estados finitos e o método aprendido em VHDL.

    

5. Resultados
Na experiência realizada, percebeu-se que o aluno conseguiu aprender os conceitos fundamentais de lógica digital combinacional e seqüencial. Também conseguiu ter domínio do ambiente desenvolvimento ISE 9.2 da Xilinx para projeto de circuitos digitais através da linguagem VHDL incluindo conhecimento da placa para gravação de circuitos. Teve um satisfatório aprendizado da linguagem VHDL, obteve domínio do conceito de máquina de estado e respectiva implementação em VHDL. Também ocorreu o desenvolvimento de circuitos digitais usando diferentes técnicas da linguagem VHDL tais como:         Somador completo quatro bits. Multiplexador de oito e dezesseis entradas. Contador de números pares e ímpares para a visualização no display de sete segmentos. Detector de números primos. Analisador de posição de bits em um vetor, posição visualizada no display. Relógio Digital incluindo visualização no display sete segmentos. Sistema para arbitramento de barramento para três maquinas, utilizando máquina de estados finitos. Analisador de código de entrada utilizando máquina de estados finitos.

A seguir serão expostas imagens de alguns estágios da implementação de circuitos digitais em VHDL, na figura 1 teremos um código em VHDL, na figura 2 um circuito simulado e na figura 3 um circuito já implementado na placa basys da DigilentR.

Figura 1. Esta imagem é o código de um árbitro de barramento para três maquinas.

Figura 2. Esta imagem mostra a fase de simulação de um analisador de códigos de entrada.

Figura 3. Esta imagem mostra um relógio digital em funcionamento na placa Basys da DigilentR.

6. Discussão dos resultados
A metodologia adotada permitiu o projeto de vários circuitos digitais dos mais simples até os de uma complexidade media. Também permitiu fornecer ao aluno uma visão básica da linguagem VHDL, os diferentes estilos de programação e suas conseqüências no hardware projetado. Além de permitir uma visão clara de ciclo de desenvolvimento para o projeto de circuitos digitais adotado atualmente. Através da técnica descrita, ao longo deste artigo, a lógica digital fica mais adequada e interessante para o aluno de computação além do benefício do aprendizado de uma linguagem de alto desempenho, largamente utilizada no desenvolvimento de sistemas digitais.

7. Conclusão
Pelos resultados aqui descritos pode-se concluir que uma metodologia para o ensino de lógica digital orientada aos alunos de ciência da computação, na qual possa se combinar os conceitos fundamentais de circuitos digitais, dando visão do hardware e as funcionalidades dos mesmos através de descrição de linguagem de alto nível seja mais proveitosa no ensino desta disciplina. Como atividade futura, será continuado a execução do projeto de iniciação cientifica projetando circuitos mais complexos além de aprofundar o conhecimento da linguagem VHDL. Alem disso espera-se no futuro próximo adotar esta metodologia nos alunos da nossa universidade e fazer uma análise principalmente no quesito motivação e aproveitamento da disciplina.

Agradecimentos
Nossos agradecimentos ao laboratório NBCGIB e a Universidade Estadual de Santa Cruz (UESC). Este trabalho foi financiado pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq).

Referências
Ercegovac, M., Lang, T. and Moreno, J. (2000) Introdução aos sistemas digitais. Tradução: José Carlos Barbosa dos santos. Porto alegre: Bookman, 2000. 453 p. Flores, P. Aplicação da linguagem VHDL na especificação funcional de sistemas em ambiente de síntese. Technical report, Project JNICT PMCT/856/90, Outubro 1991. Idoeta, I. and Capuano, F. (2003), Elementos da Eletrônica Digital. 35. ed. São Paulo: Érica,. 524 p. Lima, T. and Silva, A. Implementação de um Algoritmo de Compressão em Hardware. 2005.51f. Trabalho de Conclusão de Curso (Conclusão do Curso de Engenharia da Computação). Escola Politécnica de Pernambuco. Mano, M. and Kime, C. ( 2004) Logic and computer: Design fundamentals. Prentice Hall. 656 p. Manual da placa Basys da DigilentR (xilinx) . Disponível em: http://digilentinc.com/Products/Detail.cfm?NavPath=2,400,797&Prod=NEXY>. Acesso em: 5 abril. 2010, 17:30:00. <

Manual do ISE 9.2 da Xilinx. Disponível em: < http://www.xilinx.com/itp/3_1i/>. Acesso em: 4 abril. 2010, 17:40:00. Pomares H., García C., Rojas I., Damas M., González J., Florido J. P. and Urquiza J. Teaching Digital Systems Design with a New Didactic Environment through the Internet. Proceedings of the 5th International Conference on Multimedia and Information & Communication Technologies in Education, m-ICTE'2009, vol. 2, pp: 1021-1026, Lisboa, Portugal, Abril de 2009. Silva, E. Um modelo de ensino de lógica digital para deficientes visuais. Disponível em: <www.formatex.org/micte2009/book/1021-1026.pdf>. Acesso em: 4 abril. 2010, 16:30:30. Souza, A.R; “Desenvolvimento e Implementação em FPGA de um Sistema Portátil para Aquisição e Compressão sem Perdas de Eletrocardiogramas” 2008. 160. Dissertação (Mestrado em Informática) - Universidade Federal de Paraíba, Orientadores: José Antônio Gomes de Lima e Leonardo Vidal Batista. UFRJ - Universidade Federal do Rio de Janeiro, Departamento de ciências da computação. Disponível em: < http://www.dcc.ufrj.br/ >. Acesso em: 5 abril. 2010, 16:45:00. UFPE - Universidade Federal de Pernambuco, Centro de informática. Disponível em: < http://www2.cin.ufpe.br/site/index.php>. Acesso em: 5 abril. 2010, 16:50:00. UFRGS - Universidade Federal do Rio Grande do Sul, Instituto de informática. Disponível em: < http://www.inf.ufrgs.br/ >. Acesso em: 5 abril. 2010, 16:55:00. USP - Universidade de São Paulo, Instituto de ciências matemáticas e computação. Disponível em: < http://www.icmc.usp.br/ >. Acesso em: 5 abril. 2010, 17:00:00.

Unicamp - Universidade Estadual de Campinas, Instituto de computação. Disponível em: < http://www.ic.unicamp.br/>. Acesso em: 5 abril. 2010, 17:10:00. Wakerly, J. F.( 2001) Digital Design: Principles & Practices. Prentice Hall. 946 p.

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->