25
MC542 MC542 2001S2

MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

Embed Size (px)

Citation preview

Page 1: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

VCC9Entrada02INPUTVCC8Entrada01INPUT4AND210SaidaOUTPUTIntrodução a circuitos lógicos

utilizando VHDL

Introdução a circuitos lógicos

utilizando VHDL

Page 2: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Escrevendo um código VHDL simples

Multiplexador 2x1

Page 3: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Primeiro passo :

• Declarar os sinais de entradas e saídas através de uma Entidade (Entity)

ENTITY Multiplex ISPORT(A, B, S : IN BIT; Saida : OUT BIT);

END Multiplex;

Page 4: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

• Sinais de entradas e saídas para a entidade

são chamadas portas.

• Podem ser de entrada (IN) ou saída (OUT)

• No nosso exemplo temos 4 portas :

• 3 de entrada (IN)• 1 de saída (OUT);

2001S2

Page 5: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Segundo passo :

• Definir a funcionalidade do circuito através de uma arquitetura (ARCHITECTURE);

• A linguagem VHDL suporta os seguintes operadores lógicos :

• AND• OR• NOT• NAND• NOR• XOR• XNOR

Page 6: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Definindo o comportamento da entidade MULTIPLEX em VHDL :

ARCHITECTURE Objeto_1 OF Multiplex ISBEGIN

Saida <= (A AND S) OR (B AND NOT(S));END Objeto_1;

Método 1

Page 7: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

2001S2

MC542MC542MC542MC542

O código VHDL completo do nosso exemplo é mostrado abaixo :

ENTITY Multiplex ISPORT(A, B, S : IN BIT; Saida : OUT BIT);

END Multiplex;

ARCHITECTURE Objeto_1 OF Multiplex ISBEGIN

Saida <= (A AND S) OR (B AND NOT(S));END Objeto_1;

Page 8: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

2001S2

MC542MC542MC542MC542

Simulação :Simulação :

Mudança do SEL

Page 9: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

2001S2

MC542MC542MC542MC542

Outras maneiras de se implementar o mesmo problema :Outras maneiras de se implementar o mesmo problema :

• A entidade continua com o mesmo número de portas• É necessário mudar apenas o escopo ARCHITECTURE

ARCHITECTURE Objeto_1 OF Multiplex ISBEGIN

ProcessBegin

If S=‘1’ Then Saida <= A; Else Saida <=B;End If;

End Process;END Objeto_1;

Page 10: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

2001S2

MC542MC542MC542MC542

Podemos ainda, mudando o sinal de entrada na entidade, fazer Podemos ainda, mudando o sinal de entrada na entidade, fazer outra variação do mesmo problema :outra variação do mesmo problema :

ENTITY Multiplex ISPORT(A, B : IN BIT; Saida : OUT BIT; S : Boolean);

END Multiplex;

Page 11: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

2001S2

MC542MC542MC542MC542

A Nova descrição da Arquitetura será :A Nova descrição da Arquitetura será :

ARCHITECTURE Objeto_1 OF Multiplex ISBEGIN

Saida <= A When S else B;END Objeto_1;

Page 12: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

2001S2

MC542MC542MC542MC542

Um outro Um outro exemplo :exemplo :

Um multiplexador de 2 Um multiplexador de 2

entradas de 8 bitsentradas de 8 bits

Page 13: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Definindo a entidade :Definindo a entidade :

• 2 Entradas de 8 Bits2 Entradas de 8 Bits• 1 Entrada para seleção1 Entrada para seleção• 1 Saída de 8 Bits;1 Saída de 8 Bits;

ENTITY Multiplex2 ISPORT(A, B : IN BIT_VECTOR (0 to 7); Saida : OUT BIT_VECTOR (0 to 7); S : Boolean);

END Multiplex2;

Page 14: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Definindo o comportamento da função de saída :Definindo o comportamento da função de saída :

• Podemos utilizar a mesma abordagem apresentada anteriormente

ARCHITECTURE Objeto_1 OF Multiplex ISBEGIN

Saida <= A When S else B;END Objeto_1;

Page 15: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Simulando o comportamento do Simulando o comportamento do Multiplex2 :Multiplex2 :

Page 16: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Visualizando os sinais intermediários :Visualizando os sinais intermediários :

Page 17: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Entendendo o

MAX+PlusIIAltera

Entendendo o

MAX+PlusIIAltera

Page 18: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Criando um circuito lógico em VHDL, utilizando o Max+PlusII

• Implementando a pastilha 7425 (2 Portas NOR de 4 BITS)

• Devemos ter em mente (Para a criação da entidade):

• 2 Entradas de 4 BITS (Ou uma de 1 Byte)

• 2 Sinais de seleção 4 LSB ou 4 MSB

• 2 Saídas de um BIT

Page 19: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Passo a passo :Passo a passo :

Criando um novo arquivoCriando um novo arquivo

Page 20: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Desta forma estaremos aptos a escrever

o código em VHDL.

Page 21: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Definindo a entidade :Definindo a entidade :

ENTITY NOR_4_Bits ISPORT(A, B : IN BIT_VECTOR (0 to 3); Saida : OUT BIT_VECTOR (0 to 1); S : IN BIT_VECTOR (1 to 0));

END NOR_4_Bits;

Page 22: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Definindo a funcionalidade da entidade :Definindo a funcionalidade da entidade :

ARCHITECTURE Behav OF Nor_4_Bits ISBEGINProcessbegin

If S(0)='1' Then Saida(0) <= not(A(0) or A(1) or A(2) or A(3));Else If S(1) = '1' Then Saida(1) <= not(B(0) or B(1) or B(2)

or B(3));End If;

End If;end process;END Behav;

Page 23: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

O Código completo em VHDL :O Código completo em VHDL :

ENTITY NOR_4_Bits ISPORT(A, B : IN BIT_VECTOR (0 to 3); Saida : OUT BIT_VECTOR (0 to 1); S : IN BIT_VECTOR (1 to 0));

END NOR_4_Bits;

ARCHITECTURE Behav OF Nor_4_Bits ISBEGINProcessbegin

If S(0)='1' Then Saida(0) <= not(A(0) or A(1) or A(2) or A(3));Else If S(1) = '1' Then Saida(1) <= not(B(0) or B(1) or B(2) or B(3));End If;

End If;end process;END Behav;

Page 24: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Compilando o programa fonte em VHDL :Compilando o programa fonte em VHDL :

EtapasEtapas

Page 25: MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

MC542MC542MC542MC542

2001S2

Simulando :Simulando :