Buscar

TT411_VHDL4 - Comandos Sequenciais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 1 
 
Comandos Seqüenciais Básicos em VHDL 
 
 
1. Introdução ............................................................................................................................. 2 
2. Sensibilidade em Processos .................................................................................................. 2 
3. Construção IF ELSE ............................................................................................................. 5 
4. Construção CASE WHEN (similar à construção WITH SELECT) ...................................... 7 
5. Comando WAIT ................................................................................................................. 10 
6. Comando NULL ................................................................................................................. 12 
7. Cuidados na descrição ........................................................................................................ 13 
COMPARAÇÕES ENTRE WHEN ELSE E IF ELSE ........................................................ 13 
COMPARAÇÕES ENTRE WITH SELECT E CASE WHEN ............................................ 13 
COMPARAÇÕES ENTRE IF ELSE E CASE WHEN........................................................ 14 
COMPARAÇÕES ENTRE WITH SELECT E CASE WHEN ............................................ 15 
8. Atraso, Variável e Atributos ............................................................................................... 15 
ATRASO ............................................................................................................................. 16 
SINAL E VARIÁVEL ......................................................................................................... 17 
ATRIBUTOS ....................................................................................................................... 19 
9. Prática de Laboratório ........................................................................................................ 19 
10. Referências ....................................................................................................................... 22 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 2 
1. Introdução 
 Comandos seqüenciais ficam contidos em regiões específicas de código, 
como processos e subprogramas. 
 Uma vez iniciada a execução de comandos em região de código seqüencial, 
os comandos são avaliados na seqüência em que são apresentados no 
código, independentemente da troca de valor nos sinais ou variáveis aos 
quais o comando é sensível. 
 
2. Sensibilidade em Processos 
 O comando PROCESS foi apresentado na aula anterior, já que um processo 
é um comando concorrente. A região delimitada por um processo contém 
comandos que são executados seqüencialmente, como na maioria das 
linguagens de programação. 
 Uma descrição pode conter vários processos, e todos esses processos, assim 
como outros comandos concorrentes, são executados simultaneamente. 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 3 
 A figura a seguir ilustra a execução do código de uma descrição contendo 
dois processos. 
 
 O código a seguir contém uma descrição que ilustra a operação de uma lista 
de sensibilidade. No processo abc, os valores das portas de entrada a e b 
são transferidos para as portas de saída sa e sb, respectivamente. 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
ENTITY sens_tes IS 
 PORT (a, b : IN BIT; 
 sa, sb : OUT BIT); 
END sens_tes; 
 
ARCHITECTURE teste OF sens_tes IS 
BEGIN 
 abc: PROCESS (a) -- executado na alteracao do valor de "a" 
 BEGIN 
 sa <= a; 
 sb <= b; 
 END PROCESS abc; 
END teste; 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 4 
 Na lista de sensibilidade do processo foi incluído apenas o sinal a. Assim, 
somente na alteração do valor desse sinal ocorre a execução do processo e, 
portanto, a atualização dos valores nas portas de saída. 
 Desse modo, o valor da porta de saída sa corresponde sempre ao valor da 
porta a, pois qualquer alteração do valor causa a execução do processo. No 
caso da porta sb, o valor é atualizado somente quando ocorre uma alteração 
no valor de a. Assim, o sinal sb se comporta como um circuito que 
memoriza o último valor da porta de entrada b, e permanece com o mesmo 
valor até que o instante em que a porta a sofre uma alteração. 
 Em resumo, a execução de um processo ocorre se um sinal da lista de 
sensibilidade tem valor alterado. Iniciada a execução, os comandos são 
avaliados na seqüência e ao término da avaliação do último comando o 
processo é suspenso, aguardando uma nova alteração de valor nos sinais da 
lista. 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 5 
 A atribuição incondicional de valor para um sinal pode ocorrer em regiões 
de código concorrente ou seqüencial. Em uma região de código 
concorrente, a atribuição é executada como um comando concorrente, isto 
é, na ocorrência de uma alteração de valor de um sinal da expressão. 
 Numa região de código seqüencial (um processo, por exemplo), uma 
atribuição é agendada quando o comando é executado. 
 
3. Construção IF ELSE 
 A construção IF ELSE permite a execução condicional de um ou mais 
comandos seqüenciais, segundo uma lista de condições. A condição de 
teste pode ser uma expressão que retorne um valor do tipo BOOLEAN. 
 O comando IF inicia a lista de condições e pode ser seguido por cláusulas 
ELSIF contendo, também, condições a serem verificadas. Se nenhuma 
condição for verdadeira e não existir uma cláusula ELSE na construção, 
nenhum comando é executado. 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 6 
 
 
 Exemplo: Circuito de seleção com uma construção do tipo IF ELSE. 
o Comando seqüencial é necessário definir um processo; 
o Lista de sensibilidade é composta pelos sinais i0 i1 i2 i3 sel. 
o - remoção de um destes sinais: conseqüência? 
 
 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 7 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
 
ENTITY mux_4a IS 
 PORT (i0, i1, i2, i3 : IN BIT; -- entradas 
 s0, s1 : IN BIT; -- selecao 
 ot : OUT BIT); -- saida 
END mux_4a; 
 
ARCHITECTURE teste OF mux_4a IS 
 SIGNAL sel : BIT_VECTOR(1 DOWNTO 0); 
BEGIN 
 sel <= s1 & s0; 
 abc: PROCESS (i0, i1, i2, i3, sel) --sinal "sel" inserido na lista 
 BEGIN 
 IF sel = "00" THEN ot <= i0; 
 ELSIF sel = "01" THEN ot <= i1; 
 ELSIF sel = "10" THEN ot <= i2; 
 ELSE ot <= i3; 
 END IF; 
 END PROCESS abc; 
END teste; 
 
 
 
4. Construção CASE WHEN (similar à construção WITH SELECT) 
 A construção CASE WHEN permite a execução condicional de um ou mais 
comando seqüenciais, conforme o valor de uma expressão. Cada condição 
define um conjunto de comandos seqüenciais a se executar. 
VHDL4Prof. Rangel Arthur 
 
FT/UNICAMP 8 
 As condições devem ser mutuamente exclusivas, significando que não é 
permitido mais de uma condição verdadeira na relação de valores que a 
expressão pode assumir, e todas as condições possuem a mesma prioridade. 
 Caso a execução de um mesmo conjunto de comandos seja condicionada a 
mais de uma condição, é possível delimitar as condições através do 
delimitador “|”, que equivale a uma operação OR entre condições de 
escolha. 
 Da mesma forma, as palavras reservadas TO e DOWNTO podem ser 
empregadas para delimitar uma determinada faixa de condições, assim 
como a palavra reservada OTHERS pode ser empregada na última 
condição para agrupar as condições não-relacionadas na lista. 
 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 9 
 Exemplo: Circuito de seleção com uma construção do tipo CASE WHEN. 
 Nesse caso, usando comando seqüencial, é necessário definir um processo. 
Os bits s0 e s1 agrupados no sinal sel. 
 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
 
ENTITY mux_5a IS 
 PORT (i0, i1, i2, i3 : IN BIT; 
 s1, s0 : IN BIT; 
 ot : OUT BIT); 
END mux_5a; 
 
ARCHITECTURE teste OF mux_5a IS 
 SIGNAL sel : BIT_VECTOR(1 DOWNTO 0); 
BEGIN 
 sel <= s1 & s0; 
 abc: PROCESS (i0, i1, i2, i3, sel) --sinal "sel" inserido na lista 
 BEGIN 
 CASE sel IS 
 WHEN "00" => ot <= i0; 
 WHEN "01" => ot <= i1; 
 WHEN "10" => ot <= i2; 
 WHEN OTHERS => ot <= i3; 
 END CASE; 
 END PROCESS abc; 
END teste; 
 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 10 
5. Comando WAIT 
 O comando WAIT suspende a execução de um processo ou de um 
procedimento. A suspensão pode ser condicionada a três cláusulas, ou a 
uma combinação delas. 
o A construção WAIT ON fornece um mecanismo equivalente à lista de 
sensibilidade de um processo. Após a execução do comando WAIT, o 
processo fica suspenso até a alteração de valor em um dos sinais 
relacionados na lista. 
o Com o comando WAIT UNTIL, o processo é suspenso enquanto a 
expressão booleana contida no comando não for satisfeita. 
o No caso WAIT FOR, o processo é suspenso por um período de tempo, 
reiniciando no comando seguinte, após o período de tempo definido. 
 
 
WAIT ON lista_de_sensibilidade; 
WAIT UNTIL expressao_booleana; 
WAIT FOR expressao_boolena; 
WAIT ON lista_sensibilidade UNTIL condicao_boolena FOR expressao_de_tempo; 
WAIT; 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 11 
 O código abaixo contém dois processos semelhantes empregando o 
comando WAIT com o objetivo de ilustrar a execução da instrução. 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
 
ENTITY wait_a IS 
 PORT (xa, xb : BUFFER INTEGER RANGE 0 TO 15; 
 ya, yb : BUFFER BIT); 
END wait_a; 
 
ARCHITECTURE teste OF wait_a IS 
BEGIN 
 abc: PROCESS 
 BEGIN 
 xa <= xa +1; 
 ya <= '1'; 
 WAIT FOR 30 ns; 
 ya <= '0'; 
 WAIT FOR 20 ns; 
 END PROCESS abc; 
 cde: PROCESS 
 BEGIN 
 WAIT FOR 30 ns; 
 xb <= xb +1; 
 yb <= '1'; 
 WAIT FOR 20 ns; 
 yb <= '0'; 
 END PROCESS cde; 
END teste; 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 12 
6. Comando NULL 
 O comando NULL não realiza nenhuma operação; a execução é apenas 
passada para o próximo comando. Conforme sugestão do manual de 
referência da linguagem, este comando é especialmente útil na construção 
CASE WHEN. Os códigos abaixo exemplificam sua utilização. 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
 
ENTITY null_3a IS 
 PORT (z : IN BIT_VECTOR(2 DOWNTO 0); 
 sel : IN BIT_VECTOR(1 DOWNTO 0); 
 s : OUT BIT); 
END null_3a; 
 
ARCHITECTURE teste OF null_3a IS 
BEGIN 
 abc: PROCESS(z, sel) 
 BEGIN 
 s <= z(2) NOR z(0); 
 CASE sel IS 
 WHEN "00" => s <= z(0) AND z(1); 
 WHEN "10" => s <= z(2) XOR z(0); 
 WHEN OTHERS => NULL; 
 END CASE; 
 END PROCESS abc; 
END teste; 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
 
 
ENTITY null_3b IS 
 PORT (w : IN BIT_VECTOR(2 DOWNTO 0); 
 sel : IN BIT_VECTOR(1 DOWNTO 0); 
 s : OUT BIT); 
END null_3b; 
 
ARCHITECTURE teste OF null_3b IS 
BEGIN 
 abc: PROCESS(w, sel) 
 BEGIN 
 s <= w(2) NOR w(0); 
 IF sel ="00" THEN s <= w(0) AND w(1); 
 ELSIF sel ="10" THEN s <= w(2) XOR w(0); 
 ELSE NULL; 
 END IF; 
 END PROCESS abc; 
END teste; 
 
 
 
 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 13 
7. Cuidados na descrição 
COMPARAÇÕES ENTRE WHEN ELSE E IF ELSE 
 
 A construção WHEN ELSE pode ser empregada unicamente em regiões de 
código concorrente e a construção IF ELSE em regiões de código 
seqüencial. 
 No caso da construção WHEN ELSE, a operação executada é a simples 
transferência de um valor para um sinal, enquanto a construção IF ELSE é 
mais flexível, pois permite a execução de vários comandos seqüenciais. 
COMPARAÇÕES ENTRE WITH SELECT E CASE WHEN 
 
 As construções WITH SELECT e CASE WHEN têm como similaridade o 
fato de que todas as opções de seleção devem estar presentes na lista de 
escolha. 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 14 
 A construção WITH SELECT somente pode ser empregada em regiões de 
código concorrente, e pode executar apenas a atribuição de um sinal a casa 
escolha. A construção CASE WHEN possibilita que cada condição de 
escolha inicie a execução de vários comandos seqüenciais. 
COMPARAÇÕES ENTRE IF ELSE E CASE WHEN 
 
 Nas construções IF ELSE e CASE WHEN, uma condição define um 
conjunto de comandos seqüenciais a ser executado. Desse modo, essas 
construções podem ser aninhadas para executar uma decisão. 
 Esse estilo de descrição pode ser muitas vezes evitado, concatenando-se os 
sinais envolvidos na decisão em um único sinal. 
 As restrições impostas pela construção CASE WHEN são convenientes 
para evitar que circuitos seqüenciais sejam criados sem necessidade. Nessa 
construção, todas as condições possíveis de uma expressão de escolha 
devem ser testadas, enquanto a ausência de uma condição gera uma 
mensagem de erro na etapa de compilação. 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 15 
 A construção IF ELSEIF, por sua vez, não é limitada a uma única 
expressão de controle, resultando que a cada estágio uma nova expressão 
pode ser avaliada. Essa liberdade excessiva pode conduzir a erros na 
descrição quando nem todas as condições são cobertas, por descuido do 
projetista. 
COMPARAÇÕES ENTRE WITHSELECT E CASE WHEN 
 
 Algumas restrições devem ser observadas quanto à expressão de escolha. 
Dada a característica dessas construções, o compilador deve ser capaz de 
determinar todos os valores que a expressão de escolha pode assumir. Isso 
deve ser possível num contexto restrito à expressão. 
 
8. Atraso, Variável e Atributos 
 O atraso em VHDL é aplicado na geração de formas de onda para teste de 
descrições ou na modelagem do comportamento dinâmico de um circuito. 
Os comandos que modelam o atraso são ignorados pelas ferramentas de 
síntese. 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 16 
 Sinal e variável, como visto anteriormente, são objetos que contêm um 
valor armazenado e este pode ser alterado na execução do código. 
 O conceito de atributo disponível na linguagem permite extrair informações 
adicionais de um objeto, tipo e até unidades de projeto. Considerando um 
sinal, por exemplo, através de atributos, é possível determinar se ocorreu 
uma troca de valor no objeto, o tempo decorrido após essa mudança e o 
valor anterior do objeto. 
ATRASO 
 
 A modelagem de atraso em VHDL pode ser com inércia ou com transporte. 
O modelo com inércia é indicado para representar uma informação que se 
propaga através de um circuito lógico. Normalmente, nesses elementos, 
pulsos com duração menor do que o atraso de propagação do circuito são 
transferidos para a saída. 
 A cláusula AFTER seguida de um valor de tempo modela um atraso na 
transferência de uma informação. Caso não seja inserida a opção 
TRANSPORT, será suposto um atraso do modelo com inércia. 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 17 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
 
 
ENTITY c04_atr2 IS 
 PORT (a : BUFFER BIT; 
 b, c : OUT BIT); 
END c04_atr2; 
 
ARCHITECTURE teste OF c04_atr2 IS 
 BEGIN 
 a <= '0', '1' AFTER 100 ns, '0' AFTER 300 ns, '1' AFTER 500 ns, '0' AFTER 550 ns; 
 b <= a AFTER 100 ns; 
 c <= TRANSPORT a AFTER 100 ns; 
END teste; 
 
SINAL E VARIÁVEL 
 
 Objeto é um elemento que armazena um valor. Um sinal é um objeto e 
pode ser empregado tanto em regiões de código seqüencial como em 
regiões de código concorrente. A atribuição de valor a um sinal ocorre após 
um intervalo de 1 Δ na iteração dos comandos concorrentes. 
 Variável é um objeto empregado em regiões de código seqüencial e sua 
declaração é feita nessas regiões. A transferência de uma variável para uma 
região de código concorrente emprega um sinal. Diferentemente dos sinais, 
os valores das variáveis são assumidos imediatamente após a avaliação do 
comando. 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 18 
 A seguir apresenta-se um código de uma entidade contendo dois processos 
que executam operações similares empregando sinais e variáveis. 
 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
 
 
ENTITY sg_var8 IS 
 PORT (sx : OUT INTEGER; -- saida teste sinal 
 vx : OUT INTEGER); -- saida teste variavel 
END sg_var8; 
 
ARCHITECTURE teste OF sg_var8 IS 
 SIGNAL sa : INTEGER := 1; 
BEGIN 
 sig: PROCESS 
 BEGIN 
 sa <= sa +sa; 
 sx <= sa; 
 WAIT FOR 10 ns; 
 END PROCESS sig; 
 
 var: PROCESS 
 VARIABLE va : INTEGER :=1; 
 BEGIN 
 va := va +va; 
 vx <= va; 
 WAIT FOR 10 ns; 
 END PROCESS var; 
END teste; 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 19 
ATRIBUTOS 
 
 Atributos são informações adicionais associadas a tipos, objetos, 
subprogramas e unidades de projeto. Um objeto, por exemplo, pode conter 
somente um valor num determinado instante de tempo, mas pode, contudo, 
possuir vários atributos não necessariamente relacionados com o valor que 
ele contém. 
 Por ser um assunto bastante extenso, em momento oportuno esse assunto 
voltará a ser tratado com mais detalhes. 
 
9. Prática de Laboratório 
 
1. Com base na figura a seguir, desenvolva o código descrevendo o sistema 
contendo um decodificador BCD para 7 segmentos e um circuito de seleção 
empregando comandos seqüenciais. Não utilize blocos para a divisão da 
descrição; divida a descrição em dois processos: um contendo o decodificador e 
outro contendo o circuito de seleção. Os mostradores são acionados em nível 
baixo e os segmentos acionados em nível alto. 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 20 
 
 
2. A descrição do código a seguir contém erros. Apresente possíveis soluções 
para os erros e comente as razões. 
 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
 
 
ENTITY erro1 IS 
 PORT (a, b : IN BIT; 
 c : IN BOOLEAN; 
 x, y, z, k : OUT BIT); 
END erro1; 
 
ARCHITECTURE teste OF erro1 IS 
BEGIN 
 abc: PROCESS (a, b, c) 
 BEGIN 
 IF a THEN x <= '1'; 
 END IF; 
 IF c THEN z <= '1'; 
 END IF; 
 IF a AND b = '1' THEN y <= '0'; 
 END IF; 
 IF c AND b = '1' THEN k <= '1'; 
 END IF; 
 END PROCESS abc; 
END teste; 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 21 
3. Analise a descrição do código a seguir e apresente a carta de tempo das 
interfaces de saída x0, x1 e x2. Comente uma possível aplicação para essa 
descrição. 
 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
 
 
ENTITY c04_e01 IS 
 PORT (x0, x1, x2 : BUFFER BOOLEAN); 
END c04_e01; 
 
ARCHITECTURE teste OF c04_e01 IS 
 BEGIN 
 x0 <= NOT x0 AFTER 100 ns; 
 x1 <= NOT x1 AFTER 100 ns WHEN x0 ELSE 
 x1 AFTER 100 ns; 
 x2 <= NOT x2 AFTER 200 ns WHEN x1 ELSE 
 x2 AFTER 200 ns; 
END teste; 
 
 
VHDL4 Prof. Rangel Arthur 
 
FT/UNICAMP 22 
10. Referências 
[1] Perry, Douglas L., VHDL - Computer Hardware Description Language, 3rd 
Ed., McGraw-Hill, 1998. 
[2] d’Amore, Roberto, VHDL: Descrição e Síntese de Circuitos Digitais, LTC, 
São Paulo, 2005.

Continue navegando