mc542mc542 2001s2 introdução a circuitos lógicos utilizando vhdl introdução a circuitos...
TRANSCRIPT
MC542MC542MC542MC542
2001S2
VCC9Entrada02INPUTVCC8Entrada01INPUT4AND210SaidaOUTPUTIntroduçã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
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;
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
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
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
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;
2001S2
MC542MC542MC542MC542
Simulação :Simulação :
Mudança do SEL
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;
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;
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;
2001S2
MC542MC542MC542MC542
Um outro Um outro exemplo :exemplo :
Um multiplexador de 2 Um multiplexador de 2
entradas de 8 bitsentradas de 8 bits
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;
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;
MC542MC542MC542MC542
2001S2
Simulando o comportamento do Simulando o comportamento do Multiplex2 :Multiplex2 :
MC542MC542MC542MC542
2001S2
Visualizando os sinais intermediários :Visualizando os sinais intermediários :
MC542MC542MC542MC542
2001S2
Entendendo o
MAX+PlusIIAltera
Entendendo o
MAX+PlusIIAltera
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
MC542MC542MC542MC542
2001S2
Passo a passo :Passo a passo :
Criando um novo arquivoCriando um novo arquivo
MC542MC542MC542MC542
2001S2
Desta forma estaremos aptos a escrever
o código em 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;
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;
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;
MC542MC542MC542MC542
2001S2
Compilando o programa fonte em VHDL :Compilando o programa fonte em VHDL :
EtapasEtapas
MC542MC542MC542MC542
2001S2
Simulando :Simulando :