Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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.