Académique Documents
Professionnel Documents
Culture Documents
Cdigo Concorrente
Cdigo Concorrente
Um cdigo VHDL pode ser concorrente ou sequencial.
O primeiro adequado a construo de circuitos
combinacionais, ao passo que o segundo pode
implementar tanto circuitos sequenciais quanto
combinacionais.
Um circuito combinacional um circuito onde suas
sadas dependem apenas do estado atual das entradas,
portanto no utiliza memria.
Um circuito sequencial um circuito onde suas sadas
dependem de estados anteriores do sistema, portanto
elementos de memria so necessrios.
A. Mariano 2013/Sibilla Frana - 2015
Cdigo Concorrente
Existem trs instrues que so puramente
concorrentes (que podem ser usadas fora de
cdigos sequencias, isto , processos ou
subprogramas) que so:
WHEN
SELECT
GENERATE
Instruo WHEN
assignment_expression WHEN conditions ELSE
assignment_value WHEN conditions ELSE
Exemplo:
x <= '0' WHEN rst = '0' ELSE
'1' WHEN a = '0' OR b = '1' ELSE
'-'; --dont care
Instruo SELECT
WITH identifier SELECT
assignment_expression WHEN conditions values,
assignment_value WHEN values,
;
Exemplo:
WITH control SELECT
y <= "000" WHEN 0 | 1,
"100" WHEN 2 TO 5,
"Z--" WHEN OTHERS;
A. Mariano 2013/Sibilla Frana - 2015
Exemplo:
signal a, b, x: bit_vector (7 downto 0);
gen: FOR i IN 0 TO 7 GENERATE
x(i) <= a(i) XOR b(i);
END GENERATE;
A. Mariano 2013/Sibilla Frana - 2015
Desafio 1
Conversor de Binrio para Gray *
- Faa o projeto de um circuito capaz de converter um cdigo binrio para um
cdigo gray, utilizando cdigo concorrente.
Requisitos:
a) No cdigo VHDL, o nmero de bits do conversor deve ser genrico (N), para isso
use o parmetro GENERIC.
b) Para implementar esse conversor genrico, encontre uma expresso que possa ser
usada para converter um cdigo binrio de N bits em um cdigo gray de N bits.
c) Para apresentao no kit Nexys2, definir N=4. Utilizar os switches (SW0 SW3) para
inserir o cdigo binrio e os leds (LED0 LED3) para visualizar o resultado da converso
(cdigo gray).
Apresentar a implementao no kit Nexys2 durante a aula de laboratrio.
*Exerccio 5.6 Circuit Design and Simulation with VHDL Volnei Pedroni
A. Mariano 2013/Sibilla Frana - 2015
Desafio 2
Circuito Aritmtico com STD_LOGIC *
Tipo
Unsigned
Figura 1(a)
Signed
Operao
Opcode
y=a+b
000
y=a-b
001
y=-a+b
010
y = a + b + cin
011
y=a+b
100
y=a-b
101
y=-a+b
110
y = a + b + cin
111
Figura 1(b)
*Exerccio 5.11 Circuit Design and Simulation with VHDL Volnei Pedroni
A. Mariano 2013/Sibilla Frana - 2015
Desafio 2
Circuito Aritmtico com STD_LOGIC
- A figura 1(a) mostra um circuito aritmtico que deve ser projetado para realizar
as operaes especificadas na tabela da figura 1(b) (que uma mini ULA, com apenas
a unidade aritmtica).
Requisitos:
a) O projeto deve ser implementado utilizando cdigo concorrente.
b) No cdigo VHDL, o nmero de bits das entradas a e b e da sada y devem ser
genricas (N), para isso use o parmetro GENERIC.
c) Todas as portas de entrada e sada devem ser especificadas como STD_LOGIC(_VECTOR)
(padro industrial).
d) Os resultados de simulao devem ser apresentados durante a aula de laboratrio,
no necessria a implementao no kit Nexys2.
*Dica: Verificar exemplo 5.3
A. Mariano 2013/Sibilla Frana - 2015
10
11