Vous êtes sur la page 1sur 11

Lab 4

Cdigo Concorrente

A. Mariano 2013/Sibilla Frana - 2015

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

A. Mariano 2013/Sibilla Frana - 2015

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

A. Mariano 2013/Sibilla Frana - 2015

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

Instruo GENERATE (Unconditional)


Label: FOR identifier IN range GENERATE
[declarative_part
BEGIN]
concurrent_statements_part
END GENERATE [label];

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

Instruo GENERATE (Conditional)


Label: IF condition GENERATE
[declarative_part
BEGIN]
concurrent_statements_part
END GENERATE [label];

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

Apresentao dos Resultados


- Elaborar relatrio (a ser entregue IMPRESSO
no dia 16/09 para turma F e dia 18/09 para
turma E), contendo:
- Cdigo do design e imagens com os resultados de
simulao (todos os resultados apresentados
devem ser comentados e justificados).

A. Mariano 2013/Sibilla Frana - 2015

11

Vous aimerez peut-être aussi