lab4 mux

13
“EEL7020 – Sistemas Digitais” Universidade Federal de Santa Catarina Centro Tecnológico – CTC Departamento de Engenharia Elétrica http://gse.ufsc.br Prof. Eduardo Augusto Bezerra [email protected] Florianópolis, agosto de 2012.

Upload: eduardo-bezerra

Post on 16-Jul-2015

447 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lab4 mux

“EEL7020 – Sistemas Digitais”

Universidade Federal de Santa Catarina

Centro Tecnológico – CTC

Departamento de Engenharia Elétrica

http://gse.ufsc.br

Prof. Eduardo Augusto Bezerra

[email protected]

Florianópolis, agosto de 2012.

Page 2: Lab4 mux

Sistemas Digitais

Circuito multiplexador - Mux

EEL7020 – Sistemas Digitais 2/13

Page 3: Lab4 mux

Objetivos do laboratório

1. Entender o conceito de “multiplexador”.

2. Implementação de multiplexador em VHDL

utilizando apenas funções booleanas (VHDL

estrutural).

EEL7020 – Sistemas Digitais 3/13

3. Implementação de multiplexador em VHDL

utilizando when / else (VHDL comportamental).

4. Estudo de caso: uso de mux no projeto hierárquico

do lab anterior.

Page 4: Lab4 mux

Projeto de multiplexador - MUX 2 x 1

• No circuito, se s = 0, a saída m será igual a entrada x.

Se s = 1, a saída m será igual a entrada y.

01

xy

m

EEL7020 – Sistemas Digitais 4/13

m <= (NOT (s) AND x) OR (s AND y);

m <= x when s = ‘0’ elsey;

VHDL estrutural:

VHDL comportamental:

1ym

s

Page 5: Lab4 mux

Projeto de multiplexador - MUX 4 x 1

w

x

y

z

m

00011011

wxyz

m

2 bits

s

EEL7020 – Sistemas Digitais 5/13

m <= w when s = “00” elsex when s = “01” elsey when s = “10” elsez;

VHDL comportamental:z

s1s0

Definição do seletor na entity - s: in std_logic_vector(1 downto 0);

Page 6: Lab4 mux

Tarefa a ser realizada na aula prática

EEL7020 – Sistemas Digitais 6/13

PARTE I – Mux 4x1 em VHDL estruturalPARTE II – Mux 4x1 em VHDL comportamental

Page 7: Lab4 mux

Reutilizar os arquivos do lab anterior, e realizar as alterações indicadas a seguir (Mux 4x1 no lugar de C4):

F1

F2

CBA

LEDR(7)LEDR(6)LEDR(5)LEDR(4)LEDR(3)LEDR(2)LEDR(1)

SW(2)

SW(1)

SW(0)

topo

0001

C1

C2

Mux 4x1

EEL7020 – Sistemas Digitais 7/13

F2

F3

F

LEDR(1)LEDR(0)

011011

2 bits

SW(17..16)

Seleção

0

C3

Page 8: Lab4 mux

• Utilizar os componentes C1, C2, C3 e topo do laboratório

anterior.

• Remover o componente C4 do projeto:

• Remover C4 da lista de arquivos

• Remover o Component C4 do topo.vhd

• Remover o port map do C4 do topo.vhd

Descrição da tarefa: PARTE I – VHDL estrutural

EEL7020 – Sistemas Digitais 8/13

• Remover o port map do C4 do topo.vhd

• Criar um novo arquivo VHDL, e implementar um mux 4x1

utilizando VHDL estrutural, conforme exemplo do slide 4.

• Editar o arquivo topo.vhd, e realizar a inclusão do novo

componente mux 4x1 no circuito, utilizando as construções do

VHDL component e port map.

Page 9: Lab4 mux

Interface com o usuário

Entrada ASW(0)

Saída F - LEDR(0)

Entrada BSW(1)

Entrada CSW(2)

SeleçãoSW(17) SW(16)

EEL7020 – Sistemas Digitais 9/13

Seleção SW(17..16) Saída LEDR(0)

00 F1

01 F2

10 F3

11 0 (LED apagado)

SW(0)SW(1)SW(2)

Page 10: Lab4 mux

• Criar um novo arquivo VHDL, e implementar um NOVO mux 4x1

utilizando VHDL comportamental, conforme exemplos dos slides

4 e 5 (uso de when / else).

• Não é necessário alterar o arquivo topo.vhd, pois o novo mux

4x1 deverá possuir exatamente a mesma interface do mux 4x1

implementado em VHDL estrutural da PARTE I (mesma entity).

Descrição da tarefa: PARTE II – VHDL comportamental

EEL7020 – Sistemas Digitais 10/13

implementado em VHDL estrutural da PARTE I (mesma entity).

• Se na entity da PARTE I (VHDL estrutural) não foi definido um

seletor de dois bits, ou seja s: in std_logic_vector(1 downto 0),

nesse caso será necessário realizar essa alteração na PARTE II.

• Realizar a síntese, simulação, e prototipação na placa DE2, e

verificar se o novo circuito funciona de acordo com o esperado.

Page 11: Lab4 mux

•• PARTE IPARTE I – Projetar e implementar o MUX em VHDL

estrutural:

m <= (w and ((NOT (s1) AND (NOT(s0))) OR …

w

x

y

z

m

s1

s0

Resumo da tarefa – Atenção!! SÃO DOIS PROJETOS DIFERENTES!

EEL7020 – Sistemas Digitais 11/13

•• PARTE IIPARTE II – Projetar e implementar o MUX em VHDL

comportamental:

s0

00011011

wxyz

m

2 bits

s

m <= w when s = “00” elsex when s = “01” elsey when s = “10” elsez;

Page 12: Lab4 mux

F1

F2

CBA

LEDR(7)LEDR(6)LEDR(5)LEDR(4)LEDR(3)LEDR(2)LEDR(1)

SW(2)

SW(1)

SW(0)

topo C1

C2

Mux 4x1

PARTE I – VHDL estrutural

00

01

w, x, y, z: in std_logic;

m: out std_logic;

EEL7020 – Sistemas Digitais 12/13

F2

F3

F

LEDR(1)LEDR(0)

2 bits

SW(17..16)

Seleção

0

C3

10

01

11

s: in std_logic_vector(1 downto 0);

Page 13: Lab4 mux

F1

F2

CBA

LEDR(7)LEDR(6)LEDR(5)LEDR(4)LEDR(3)LEDR(2)LEDR(1)

SW(2)

SW(1)

SW(0)

topo

0001

C1

C2

Mux 4x1

PARTE II – VHDL comportamental

when

w, x, y, z: in std_logic;

m: out std_logic;

EEL7020 – Sistemas Digitais 13/13

F2

F3

F

LEDR(1)LEDR(0)

011011

SW(17..16)

Seleção

0

C3

s: in std_logic_vector(1 downto 0);

whenelse

2 bits