Circuitos Práticos - Saber Eletrônica
Circuitos Práticos - Saber Eletrônica
Circuitos Práticos - Saber Eletrônica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Desenvolvimento<br />
Introdução<br />
ao VHDL<br />
O artigo anterior foi a apresentação da linguagem VHDL que é uma linguagem descritiva de hardware (HDL),<br />
usada para representar circuitos lógicos digitais. Agora serão abordados outros elementos desta linguagem e<br />
exemplos práticos, mostrando como é simples implementar circuitos digitais em lógica programável.<br />
Process<br />
Um process (processo) define uma<br />
estrutura da linguagem que representa<br />
um certo trecho da descrição de hardware<br />
e deve ser entendido como uma<br />
sequência de operações. Veja no quadro<br />
1 um exem plo mostrando a sintaxe de<br />
um process. Apesar de simples, o process<br />
de ve ser bem entendido, pois é o<br />
recurso da linguagem mais utilizado.<br />
Sugiro procurar leituras adicionais<br />
co mo uma forma de complementar o<br />
conhecimento.<br />
Dentro de um processo podem ser<br />
declaradas constantes e variáveis. As<br />
constantes são úteis para tornar o projeto<br />
mais claro e fácil de ser alterado. As<br />
variáveis são elementos exclusivos dos<br />
processos. Ambas devem ser declaradas<br />
entre o process e o begin. Já os sinais,<br />
que também podem ser manipulados<br />
dentro dos processos, são declarados<br />
externamente (na declaração da arquitetura).<br />
Variáveis de um processo não<br />
podem ser compartilhadas com outros<br />
processos. Uma variável chamada “conta”<br />
pode ser modificada e lida dentro<br />
de um processo específico, mas não<br />
poderá ser lida em um outro processo.<br />
As variáveis, portanto, são locais. O<br />
conceito mais importante em um processo<br />
é o da operação sequencial sobre<br />
sinais e variá veis: as atualizações das<br />
variáveis ocorrem quando as expressões<br />
são executadas (avaliadas), enquanto<br />
que os sinais são atualizados apenas<br />
no final do processo, ou seja, dentre<br />
várias operações com um determinado<br />
44 I SABER ELETRÔNICA 459 I 2012<br />
sinal apenas a última será efetivamente<br />
realizada. Naturalmente, a ideia de<br />
execução sequencial é útil apenas no<br />
sentido de ordenar ou orientar como<br />
um circuito será implementado, e não<br />
possui o mesmo sentido da conhecida<br />
execução sequencial que acontece num<br />
programa de computador. Convém<br />
lembrar que expressões aritméticas ou<br />
lógicas declaradas fora dos processos<br />
são implementadas como circuitos<br />
lógicos combinacionais em paralelo<br />
(de funcionamento simultâneo) e sem<br />
qualquer tipo de registrador (flip-flop<br />
ou latch), enquanto os circuitos resultantes<br />
dos processos implicam em uma<br />
ordem de interconexão e permitem o<br />
uso de re gistradores pa ra memorizar o<br />
estado de sinais e variáveis.<br />
Por exemplo, se um mesmo sinal<br />
for o resultado de algumas operações<br />
lógicas ou aritméticas que ocorrem ao<br />
longo da descrição do processo, apenas<br />
a última operação é que será realizada.<br />
No quadro 1 isso está exemplificado no<br />
sinal DIV(6) que recebe atribuição de<br />
dois valores independentes: “DIV(6)