A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL."— Transcrição da apresentação:

1 MC542MC S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL

2 MC542MC S2 Escrevendo um código VHDL simples Multiplexador 2x1

3 MC542MC S2 Primeiro passo : Declarar os sinais de entradas e saídas através de uma Entidade (Entity) ENTITY Multiplex IS PORT (A, B, S: IN BIT; Saida : OUT BIT); END Multiplex;

4 MC542MC542 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

5 MC542MC542 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

6 MC542MC S2 Definindo o comportamento da entidade MULTIPLEX em VHDL : ARCHITECTURE Objeto_1 OF Multiplex IS BEGIN Saida <= (A AND S) OR (B AND NOT(S)); END Objeto_1; Método 1

7 2001S2 MC542MC542 O código VHDL completo do nosso exemplo é mostrado abaixo : ENTITY Multiplex IS PORT (A, B, S: IN BIT; Saida : OUT BIT); END Multiplex; ARCHITECTURE Objeto_1 OF Multiplex IS BEGIN Saida <= (A AND S) OR (B AND NOT(S)); END Objeto_1;

8 2001S2 MC542MC542 Simulação : Mudança do SEL

9 2001S2 MC542MC542 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 IS BEGIN Process Begin If S=1 Then Saida <= A; Else Saida <=B; End If; End Process; END Objeto_1;

10 2001S2 MC542MC542 Podemos ainda, mudando o sinal de entrada na entidade, fazer outra variação do mesmo problema : ENTITY Multiplex IS PORT (A, B: IN BIT; Saida : OUT BIT; S : Boolean); END Multiplex;

11 2001S2 MC542MC542 A Nova descrição da Arquitetura será : ARCHITECTURE Objeto_1 OF Multiplex IS BEGIN Saida <= A When S else B; END Objeto_1;

12 2001S2 MC542MC542 Um outro exemplo : Um multiplexador de 2 entradas de 8 bits

13 MC542MC S2 Definindo a entidade : 2 Entradas de 8 Bits 2 Entradas de 8 Bits 1 Entrada para seleção 1 Entrada para seleção 1 Saída de 8 Bits; 1 Saída de 8 Bits; ENTITY Multiplex2 IS PORT (A, B: IN BIT_VECTOR (0 to 7); Saida : OUT BIT_VECTOR (0 to 7); S : Boolean); END Multiplex2;

14 MC542MC S2 Definindo o comportamento da função de saída : Podemos utilizar a mesma abordagem apresentada anteriormente ARCHITECTURE Objeto_1 OF Multiplex IS BEGIN Saida <= A When S else B; END Objeto_1;

15 MC542MC S2 Simulando o comportamento do Multiplex2 :

16 MC542MC S2 Visualizando os sinais intermediários :

17 MC542MC S2 Entendendo o MAX+PlusII Altera Entendendo o MAX+PlusII Altera

18 MC542MC S2 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

19 MC542MC S2 Passo a passo : Criando um novo arquivo

20 MC542MC S2 Desta forma estaremos aptos a escrever o código em VHDL.

21 MC542MC S2 Definindo a entidade : ENTITY NOR_4_Bits IS PORT (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;

22 MC542MC S2 Definindo a funcionalidade da entidade : ARCHITECTURE Behav OF Nor_4_Bits IS BEGIN Process begin 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 process; END Behav;

23 MC542MC S2 O Código completo em VHDL : ENTITY NOR_4_Bits IS PORT (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 IS BEGIN Process begin 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 process; END Behav;

24 MC542MC S2 Compilando o programa fonte em VHDL : Etapas

25 MC542MC S2 Simulando :


Carregar ppt "MC542MC542 2001S2 Introdução a circuitos lógicos utilizando VHDL Introdução a circuitos lógicos utilizando VHDL."

Apresentações semelhantes


Anúncios Google