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

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

Introdução a circuitos lógicos

Apresentações semelhantes


Apresentação em tema: "Introdução a circuitos lógicos"— Transcrição da apresentação:

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

2 MC542 Escrevendo um código VHDL simples Multiplexador 2x1 2001S2

3 MC542 ENTITY Multiplex IS PORT (A, B, S : IN BIT; Saida : OUT BIT);
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; 2001S2

4 MC542 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 MC542 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 2001S2

6 MC542 ARCHITECTURE Objeto_1 OF Multiplex IS BEGIN
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 2001S2

7 MC542 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; 2001S2

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

9 MC542 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; 2001S2

10 MC542 ENTITY Multiplex IS PORT (A, B : IN BIT; Saida : OUT BIT;
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; 2001S2

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

12 MC542 Um outro exemplo : Um multiplexador de 2 entradas de 8 bits

13 MC542 Definindo a entidade : ENTITY Multiplex2 IS PORT
2 Entradas de 8 Bits 1 Entrada para seleção 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; 2001S2

14 MC542 Saida <= A When S else B;
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; 2001S2

15 MC542 Simulando o comportamento do Multiplex2 : 2001S2

16 MC542 Visualizando os sinais intermediários : 2001S2

17 Entendendo o MAX+PlusII
MC542 Entendendo o MAX+PlusII Altera 2001S2

18 MC542 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 2001S2

19 MC542 Passo a passo : Criando um novo arquivo 2001S2

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

21 MC542 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; 2001S2

22 MC542 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; 2001S2

23 MC542 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; 2001S2

24 MC542 Compilando o programa fonte em VHDL : Etapas 2001S2

25 MC542 Simulando : 2001S2


Carregar ppt "Introdução a circuitos lógicos"

Apresentações semelhantes


Anúncios Google