Vous êtes sur la page 1sur 9

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.

Vous aimerez peut-être aussi