Anda di halaman 1dari 19

2 PROVA LAB DE EDG

FOLHA DE CONSULTA

CIRCUITO 01:

-- IMPLEMENTAO DE UM CIRCUITO LGICO COMBINACIONAL A PARTIR DO CIRCUITO 1 DO ARQUIVO ANEXO


(COMPLEMENTO.DOC) --

ENTITY PROJETO01 IS

PORT ( A, B, C, D : IN BIT ;

S : OUT BIT ) ;

END PROJETO01 ;

ARCHITECTURE PROJ01 OF PROJETO01 IS

BEGIN

S <= (((B AND (NOT D)) NOR A) NAND (((NOT B) AND D) OR (C AND D))) AND ((((NOT A) OR C) AND (B NAND
D)) NOR C) ;

END PROJ01 ;

CIRCUITO 02:

-- IMPLEMENTAO DE UM CIRCUITO LGICO COMBINACIONAL A PARTIR DO CIRCUITO 1 DO ARQUIVO ANEXO


(COMPLEMENTO.DOC)

-- UTILIZAO DE SINAL INTERMEDIRIO (VARIVEL DECLARADA NA ARQUITETURA)

ENTITY PROJETO02 IS

PORT ( A, B, C, D : IN BIT ;

S : OUT BIT ) ;

END PROJETO02 ;

ARCHITECTURE PROJ02 OF PROJETO02 IS

SIGNAL VAR01, VAR02, VAR03, VAR04, VAR05, VAR06, VAR07, VAR08, VAR09, VAR10, VAR11, VAR12 : BIT ;

BEGIN

VAR01 <= B AND (NOT D) ;

VAR02 <= (NOT B) AND D ;

VAR03 <= C AND D ;

VAR04 <= (NOT A) OR C ;

VAR05 <= B NAND D ;

VAR06 <= VAR01 NOR A ;

VAR07 <= VAR02 OR VAR03 ;

VAR08 <= VAR04 AND VAR05 ;

VAR09 <= VAR06 NAND VAR07 ;

VAR10 <= C NOR VAR08 ;

S <= VAR09 AND VAR10 ;


END PROJ02 ;

CIRCUITO 03:

-- IMPLEMENTAO DE UM CIRCUITO LGICO COMBINACIONAL A PARTIR DA TABELA DA VERDADE 1 DO ARQUIVO ANEXO


(COMPLEMENTO.DOC)

-- DECLARAO DE VARIVEL DO TIPO VETOR NA ARQUITETURA

ENTITY PROJETO03 IS

PORT ( A, B, C : IN BIT ;

S : OUT BIT ) ;

END PROJETO03 ;

ARCHITECTURE PROJ03 OF PROJETO03 IS

SIGNAL VAR01 : BIT_VECTOR ( 2 DOWNTO 0 ) ;

BEGIN

VAR01 <= A & B & C ;

WITH VAR01 SELECT

S <= '1' WHEN "000" ,

'0' WHEN "001" ,

'1' WHEN "010" ,

'1' WHEN "011" ,

'1' WHEN "100" ,

'0' WHEN "101" ,

'1' WHEN "110" ,

'0' WHEN "111" ;

END PROJ03 ;

CIRCUITO 04:

-- IMPLEMENTAO DE UM CIRCUITO LGICO COMBINACIONAL A PARTIR DA TABELA DA VERDADE 1 DO ARQUIVO ANEXO


(COMPLEMENTO.DOC)

-- DECLARAO DE VARIVEL DO TIPO VETOR NA ENTIDADE PRINCIPAL

ENTITY PROJETO04 IS

PORT ( A : IN BIT_VECTOR ( 2 DOWNTO 0 ) ;

S : OUT BIT ) ;

END PROJETO04 ;
ARCHITECTURE PROJ04 OF PROJETO04 IS

BEGIN

WITH A SELECT

S <= '1' WHEN "000" ,

'0' WHEN "001" ,

'1' WHEN "010" ,

'1' WHEN "011" ,

'1' WHEN "100" ,

'0' WHEN "101" ,

'1' WHEN "110" ,

'0' WHEN "111" ;

END PROJ04 ;

CIRCUITO 05:

-- IMPLEMENTAO DE UM CIRCUITO LGICO COMBINACIONAL A PARTIR DA TABELA DA VERDADE 1 DO ARQUIVO ANEXO


(COMPLEMENTO.DOC)

-- DECLARAO DE VARIVEL INTEIRA NA ENTIDADE PRINCIPAL

ENTITY PROJETO05 IS

PORT ( A : IN INTEGER RANGE 0 TO 7 ;

S : OUT BIT ) ;

END PROJETO05 ;

ARCHITECTURE PROJ05 OF PROJETO05 IS

BEGIN

WITH A SELECT

S <= '1' WHEN 0 ,

'0' WHEN 1 ,

'1' WHEN 2 ,

'1' WHEN 3 ,

'1' WHEN 4 ,

'0' WHEN 5 ,

'1' WHEN 6 ,

'0' WHEN 7 ;

END PROJ05 ;
CIRCUITO 06:

-- IMPLEMENTAO DE UM MULTIPLEXADOR 4x1 CONFORME CIRCUITO 02 DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

-- DECLARAO DE VARIVEL INTEIRA NA ENTIDADE PRINCIPAL

ENTITY PROJETO06 IS

PORT ( D0, D1, D2, D3 : IN BIT ;

A : IN INTEGER RANGE 0 TO 3 ;

S : OUT BIT ) ;

END PROJETO06 ;

ARCHITECTURE PROJ06 OF PROJETO06 IS

BEGIN

WITH A SELECT

S <= D0 WHEN 0 ,

D1 WHEN 1 ,

D2 WHEN 2 ,

D3 WHEN 3 ;

END PROJ06 ;

CIRCUITO 07:

-- IMPLEMENTAO DE UM MULTIPLEXADOR 4x1 CONFORME CIRCUITO 02 DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

-- DECLARAO DE VARIVEL DO TIPO VETOR NA ENTIDADE PRINCIPAL

ENTITY PROJETO07 IS

PORT ( D0, D1, D2, D3 : IN BIT ;

A : IN BIT_VECTOR ( 1 DOWNTO 0 ) ;

S : OUT BIT ) ;

END PROJETO07 ;

ARCHITECTURE PROJ07 OF PROJETO07 IS

BEGIN

WITH A SELECT

S <= D0 WHEN "00" ,

D1 WHEN "01" ,

D2 WHEN "10" ,

D3 WHEN "11" ;
END PROJ07 ;

CIRCUITO 08:

-- IMPLEMENTAO DE UM DEMULTIPLEXADOR 1x4 CONFORME CIRCUITO 03 DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

-- DECLARAO DE VARIVEL INTEIRA NA ENTIDADE PRINCIPAL

ENTITY PROJETO08 IS

PORT ( E : IN BIT ;

A : IN INTEGER RANGE 0 TO 3 ;

S0, S1, S2, S3 : OUT BIT ) ;

END PROJETO08 ;

ARCHITECTURE PROJ08 OF PROJETO08 IS

BEGIN

S0 <= E WHEN A = 0 ELSE '1' ;

S1 <= E WHEN A = 1 ELSE '1' ;

S2 <= E WHEN A = 2 ELSE '1' ;

S3 <= E WHEN A = 3 ELSE '1' ;

END PROJ08 ;

CIRCUITO 09:

-- IMPLEMENTAO DE UM DEMULTIPLEXADOR 1x4 CONFORME CIRCUITO 03 DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

-- DECLARAO DE VARIVEL INTEIRA E DO TIPO VETOR NA ENTIDADE PRINCIPAL

ENTITY PROJETO09 IS

PORT ( E : IN BIT ;

A : IN INTEGER RANGE 0 TO 3 ;

S : OUT BIT_VECTOR ( 3 DOWNTO 0 )) ;

END PROJETO09 ;

ARCHITECTURE PROJ09 OF PROJETO09 IS

BEGIN

S(0) <= E WHEN A = 0 ELSE '1' ;

S(1) <= E WHEN A = 1 ELSE '1' ;


S(2) <= E WHEN A = 2 ELSE '1' ;

S(3) <= E WHEN A = 3 ELSE '1' ;

END PROJ09 ;

CIRCUITO 10:

-- IMPLEMENTAO EM VHDL DO CIRCUITO 04 DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

ENTITY PROJETO10 IS

PORT ( D0, D1, D2, D3 : IN BIT ;

A, B : IN BIT_VECTOR (1 DOWNTO 0) ;

S : OUT BIT );

END PROJETO10;

ARCHITECTURE PROJ10 OF PROJETO10 IS

SIGNAL E, S0, S1, S2, S3, AUX1, AUX2, AUX3, AUX4 : BIT ;

BEGIN

-- MUX

WITH A SELECT

E <= D0 WHEN "00",

D1 WHEN "01",

D2 WHEN "10",

D3 WHEN "11";

-- DEMUX

S0 <= E WHEN B = "00" ELSE '1';

S1 <= E WHEN B = "01" ELSE '1';

S2 <= E WHEN B = "10" ELSE '1';

S3 <= E WHEN B = "11" ELSE '1';

AUX1 <= S0 XOR S1 ;

AUX2 <= S2 XNOR S3 ;

AUX3 <= A(1) XNOR B(0) ;

AUX4 <= AUX1 AND AUX2 ;

S <= AUX4 NOR AUX3 ;


END PROJ10;

CIRCUITO 11:

-- IMPLEMENTAO EM VHDL DE UM LATCH NAND (CIRCUITO 05) DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

ENTITY PROJETO11 IS

PORT (SETA, RESETA : IN BIT;

Q : BUFFER BIT ) ;

END PROJETO11 ;

ARCHITECTURE PROJ11 OF PROJETO11 IS

BEGIN

PROCESS ( SETA, RESETA )

BEGIN

IF SETA = '1' THEN Q <= '1' ;

ELSIF RESETA = '1' THEN Q <= '0' ;

ELSE Q <= Q ;

END IF ;

END PROCESS ;

END PROJ11 ;

CIRCUITO 12:

-- IMPLEMENTAO EM VHDL DE UM FLIP FLOP JK MESTRE ESCRAVO COM PRESET E CLEAR (CIRCUITO 06) DO ARQUIVO
ANEXO (COMPLEMENTO.DOC)

ENTITY PROJETO12 IS

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END PROJETO12 ;

ARCHITECTURE PROJ12 OF PROJETO12 IS

BEGIN

PROCESS ( PRN, CLRN, CLKN )

BEGIN

IF PRN = '0' THEN Q <= '1' ;


ELSIF CLRN = '0' THEN Q <= '0' ;

ELSIF CLKN = '0' AND CLKN 'EVENT THEN

IF J = '1' AND K = '1' THEN Q <= NOT Q ;

ELSIF J = '1' AND K = '0' THEN Q <= '1' ;

ELSIF J = '0' AND K = '1' THEN Q <= '0' ;

END IF ;

END IF;

END PROCESS ;

Q <= Q ;

END PROJ12 ;

CIRCUITO 13:

-- CONTADOR ASSNCRONO CRESCENTE DE 0 A 7 (CIRCUITO 07) DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

ENTITY PROJETO13 IS

PORT ( CLOCK, INICIA : IN BIT ;

QOUT : BUFFER BIT_VECTOR (2 DOWNTO 0) );

END PROJETO13 ;

ARCHITECTURE PROJ13 OF PROJETO13 IS

COMPONENT PROJETO12

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END COMPONENT;

BEGIN

FF0 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => CLOCK, CLRN => INICIA, PRN => '1', Q => QOUT(0));

FF1 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => QOUT(0), CLRN => INICIA, PRN => '1', Q => QOUT(1));

FF2 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => QOUT(1), CLRN => INICIA, PRN => '1', Q => QOUT(2));

END PROJ13;

-- COMPONENTE: FLIP FLOP JK MESTRE ESCRAVO COM PRESET E CLEAR

ENTITY PROJETO12 IS

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;
END PROJETO12 ;

ARCHITECTURE PROJ12 OF PROJETO12 IS

BEGIN

PROCESS ( PRN, CLRN, CLKN )

BEGIN

IF PRN = '0' THEN Q <= '1' ;

ELSIF CLRN = '0' THEN Q <= '0' ;

ELSIF CLKN = '0' AND CLKN 'EVENT THEN

IF J = '1' AND K = '1' THEN Q <= NOT Q ;

ELSIF J = '1' AND K = '0' THEN Q <= '1' ;

ELSIF J = '0' AND K = '1' THEN Q <= '0' ;

END IF ;

END IF;

END PROCESS ;

Q <= Q ;

END PROJ12 ;

CIRCUITO 14:

-- CONTADOR ASSNCRONO CRESCENTE DE 0 A 5 (CIRCUITO 08) DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

ENTITY PROJETO14 IS

PORT ( CLOCK, INICIA : IN BIT ;

QOUT : BUFFER BIT_VECTOR (2 DOWNTO 0) );

END PROJETO14 ;

ARCHITECTURE PROJ14 OF PROJETO14 IS

SIGNAL AUX : BIT ;

COMPONENT PROJETO12

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END COMPONENT;

BEGIN

AUX <= INICIA AND (NOT(QOUT(2) AND QOUT(1) AND (NOT QOUT(0))));
FF0 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => CLOCK, CLRN => AUX, PRN => '1', Q => QOUT(0));

FF1 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => QOUT(0), CLRN => AUX, PRN => '1', Q => QOUT(1));

FF2 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => QOUT(1), CLRN => AUX, PRN => '1', Q => QOUT(2));

END PROJ14;

-- COMPONENTE: FLIP FLOP JK MESTRE ESCRAVO COM PRESET E CLEAR

ENTITY PROJETO12 IS

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END PROJETO12 ;

ARCHITECTURE PROJ12 OF PROJETO12 IS

BEGIN

PROCESS ( PRN, CLRN, CLKN )

BEGIN

IF PRN = '0' THEN Q <= '1' ;

ELSIF CLRN = '0' THEN Q <= '0' ;

ELSIF CLKN = '0' AND CLKN 'EVENT THEN

IF J = '1' AND K = '1' THEN Q <= NOT Q ;

ELSIF J = '1' AND K = '0' THEN Q <= '1' ;

ELSIF J = '0' AND K = '1' THEN Q <= '0' ;

END IF ;

END IF;

END PROCESS ;

Q <= Q ;

END PROJ12 ;

CIRCUITO 15:

-- CONTADOR ASSNCRONO DECRESCENTE DE 5 A 1 (CIRCUITO 09) DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

ENTITY PROJETO15 IS

PORT ( CLOCK, INICIA : IN BIT ;

QOUT : BUFFER BIT_VECTOR (2 DOWNTO 0));

END PROJETO15 ;
ARCHITECTURE PROJ15 OF PROJETO15 IS

SIGNAL AUX : BIT ;

COMPONENT PROJETO12

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END COMPONENT;

BEGIN

AUX <= INICIA AND (NOT ((NOT QOUT(0)) AND (NOT QOUT(1)) AND (NOT QOUT(2)))) ;

FF0: PROJETO12 PORT MAP( J => '1', K => '1', PRN => AUX, CLRN => '1', CLKN => CLOCK, Q => QOUT(0)
);

FF1: PROJETO12 PORT MAP( J => '1', K => '1', PRN => '1', CLRN => AUX, CLKN => NOT QOUT(0), Q => QOUT(1)
);

FF2: PROJETO12 PORT MAP( J => '1', K => '1', PRN => AUX, CLRN => '1', CLKN => NOT QOUT(1), Q => QOUT(2)
);

END PROJ15;

-- COMPONENTE: FLIP FLOP JK MESTRE ESCRAVO COM PRESET E CLEAR

ENTITY PROJETO12 IS

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END PROJETO12 ;

ARCHITECTURE PROJ12 OF PROJETO12 IS

BEGIN

PROCESS ( PRN, CLRN, CLKN )

BEGIN

IF PRN = '0' THEN Q <= '1' ;

ELSIF CLRN = '0' THEN Q <= '0' ;

ELSIF CLKN = '0' AND CLKN 'EVENT THEN

IF J = '1' AND K = '1' THEN Q <= NOT Q ;

ELSIF J = '1' AND K = '0' THEN Q <= '1' ;


ELSIF J = '0' AND K = '1' THEN Q <= '0' ;

END IF ;

END IF;

END PROCESS ;

Q <= Q ;

END PROJ12 ;

CIRCUITO 16:

-- CONTADOR SNCRONO DE DCADA (CIRCUITO 10) DO ARQUIVO ANEXO (COMPLEMENTO.DOC)

ENTITY PROJETO16 IS

PORT ( CLOCK, CLEAR : IN BIT ;

QOUT : BUFFER BIT_VECTOR (3 DOWNTO 0));

END PROJETO16 ;

ARCHITECTURE PROJ16 OF PROJETO16 IS

COMPONENT PROJETO12

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END COMPONENT;

BEGIN

FF0: PROJETO12 PORT MAP( J => '1', K => '1', PRN =>
'1', CLRN => CLEAR, CLKN => CLOCK, Q => QOUT(0) );

FF1: PROJETO12 PORT MAP( J => QOUT(0) AND (NOT QOUT(3)), K => QOUT(0), PRN =>
'1', CLRN => CLEAR, CLKN => CLOCK, Q => QOUT(1) );

FF2: PROJETO12 PORT MAP( J => QOUT(1) AND QOUT(0), K => QOUT(1) AND QOUT(0), PRN =>
'1', CLRN => CLEAR, CLKN => CLOCK, Q => QOUT(2) );

FF3: PROJETO12 PORT MAP( J => QOUT(2) AND QOUT(1) AND QOUT(0), K => QOUT(0), PRN =>
'1', CLRN => CLEAR, CLKN => CLOCK, Q => QOUT(3) );

END PROJ16;

-- COMPONENTE: FLIP FLOP JK MESTRE ESCRAVO COM PRESET E CLEAR

ENTITY PROJETO12 IS

PORT (PRN, CLRN, CLKN, J, K : IN BIT;


Q : BUFFER BIT ) ;

END PROJETO12 ;

ARCHITECTURE PROJ12 OF PROJETO12 IS

BEGIN

PROCESS ( PRN, CLRN, CLKN )

BEGIN

IF PRN = '0' THEN Q <= '1' ;

ELSIF CLRN = '0' THEN Q <= '0' ;

ELSIF CLKN = '0' AND CLKN 'EVENT THEN

IF J = '1' AND K = '1' THEN Q <= NOT Q ;

ELSIF J = '1' AND K = '0' THEN Q <= '1' ;

ELSIF J = '0' AND K = '1' THEN Q <= '0' ;

END IF ;

END IF;

END PROCESS ;

Q <= Q ;

END PROJ12 ;

CIRCUITO 17:

-- PROJETO FINAL 1 DO CURSO SOBRE VHDL (CIRCUITO 11)

ENTITY CIRCUITO IS

PORT ( PWM, ENT1, ENT2: IN BIT ;

VET : IN BIT_VECTOR ( 1 DOWNTO 0 ) ;

E: BUFFER BIT ;

S : OUT BIT ) ;

END CIRCUITO ;

ARCHITECTURE PROJETO OF CIRCUITO IS

SIGNAL VAR : BIT_VECTOR (1 DOWNTO 0) ;

SIGNAL D0, D1, D2, D3, D4, D5, D6, D7 : BIT ;

SIGNAL VAR1 : BIT_VECTOR (2 DOWNTO 0) ;

BEGIN

-- TABELA DA VERDADE
VAR <= PWM & ENT1 ;

WITH VAR SELECT

E <= '0' WHEN "00" ,

'1' WHEN "01" ,

'0' WHEN "10" ,

'0' WHEN "11" ;

-- DEMULTIPLEXADOR 1x4

D0 <= E WHEN VET = "00" ELSE '0' ;

D1 <= E WHEN VET = "01" ELSE '0' ;

D2 <= E WHEN VET = "10" ELSE '0' ;

D3 <= E WHEN VET = "11" ELSE '0' ;

-- CIRCUITO COMBINACIONAL

D4 <= PWM ;

D5 <= VET(1) ;

D6 <= PWM AND VET(1) ;

D7 <= D6 XNOR ENT2 ;

-- MULTIPLEXADOR 8x1

VAR1 <= VET(1) & ENT1 & ENT2 ;

WITH VAR1 SELECT

S <= D0 WHEN "000" ,

D1 WHEN "001" ,

D2 WHEN "010" ,

D3 WHEN "011" ,

D4 WHEN "100" ,

D5 WHEN "101" ,

D6 WHEN "110" ,

D7 WHEN "111" ;

END PROJETO ;

CIRCUITO 18:

-- PROJETO FINAL 2 DO CURSO SOBRE VHDL (CIRCUITO 12)

ENTITY CIRCUITO IS

PORT ( D : IN BIT_VECTOR (7 DOWNTO 0) ;

CLOCK, INICIA : IN BIT ;


S0, S1 : OUT BIT ) ;

END CIRCUITO ;

ARCHITECTURE CIR OF CIRCUITO IS

SIGNAL K, X, Y : BIT_VECTOR (2 DOWNTO 0) ;

SIGNAL E, Z0, Z1, Z2, Z3, Z4, Z5, Z6, Z7, AUX1 : BIT ;

COMPONENT PROJETO12

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END COMPONENT;

BEGIN

-- CIRCUITO DO CONTADOR SNCRONO 1

FF0 : PROJETO12 PORT MAP (J => X(1) AND X(0), K => '1', CLKN => CLOCK, CLRN => INICIA, PRN => '1', Q =>
X(2));

FF1 : PROJETO12 PORT MAP (J => X(0), K => '1', CLKN => CLOCK, CLRN => INICIA, PRN => '1', Q =>
X(1));

FF2 : PROJETO12 PORT MAP (J => '1', K => X(2), CLKN => CLOCK, CLRN => INICIA, PRN => '1', Q =>
X(0));

-- CIRCUITO DO CONTADOR ASSNCRONO DECRESCENTE

AUX1 <= INICIA AND (NOT((NOT K(0)) AND K(1) AND (NOT K(2))));

FF3 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => X(0), CLRN => '1', PRN => AUX1, Q => K(0));

FF4 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => NOT K(0), CLRN => '1', PRN => AUX1, Q => K(1));

FF5 : PROJETO12 PORT MAP (J => '1', K => '1', CLKN => NOT K(1), CLRN => '1', PRN => AUX1, Q => K(2));

-- CIRCUITO DO CONTADOR SNCRONO 2

FF6 : PROJETO12 PORT MAP (J => Y(1) AND (NOT Y(0)), K => '1', CLKN => K(0), CLRN => INICIA, PRN =>
'1', Q => Y(2));

FF7 : PROJETO12 PORT MAP (J => '1', K => NOT Y(0), CLKN => K(0), CLRN => INICIA, PRN =>
'1', Q => Y(1));

FF8 : PROJETO12 PORT MAP (J => Y(1), K => Y(1), CLKN => K(0), CLRN => INICIA, PRN =>
'1', Q => Y(0));

-- IMPLEMENTAO DO MUX 8x1

WITH K SELECT

E <= D(0) WHEN "000" ,

D(1) WHEN "001" ,


D(2) WHEN "010" ,

D(3) WHEN "011" ,

D(4) WHEN "100" ,

D(5) WHEN "101" ,

D(6) WHEN "110" ,

D(7) WHEN "111" ;

-- IMPLEMENTAO DO DEMUX 1x8

Z0 <= E WHEN Y = "000" ELSE '1';

Z1 <= E WHEN Y = "001" ELSE '1';

Z2 <= E WHEN Y = "010" ELSE '1';

Z3 <= E WHEN Y = "011" ELSE '1';

Z4 <= E WHEN Y = "100" ELSE '1';

Z5 <= E WHEN Y = "101" ELSE '1';

Z6 <= E WHEN Y = "110" ELSE '1';

Z7 <= E WHEN Y = "111" ELSE '1';

-- CIRCUITO COMBINACIONAL

S0 <= NOT(Z0 AND Z1 AND Z2 AND Z3);

S1 <= (Z4 XNOR Z5) XNOR (Z6 XOR Z7);

END CIR;

-- COMPONENTE: FLIP FLOP JK MESTRE ESCRAVO COM PRESET E CLEAR

ENTITY PROJETO12 IS

PORT (PRN, CLRN, CLKN, J, K : IN BIT;

Q : BUFFER BIT ) ;

END PROJETO12 ;

ARCHITECTURE PROJ12 OF PROJETO12 IS

BEGIN

PROCESS ( PRN, CLRN, CLKN )

BEGIN

IF PRN = '0' THEN Q <= '1' ;

ELSIF CLRN = '0' THEN Q <= '0' ;


ELSIF CLKN = '0' AND CLKN 'EVENT THEN

IF J = '1' AND K = '1' THEN Q <= NOT Q ;

ELSIF J = '1' AND K = '0' THEN Q <= '1' ;

ELSIF J = '0' AND K = '1' THEN Q <= '0' ;

END IF ;

END IF;

END PROCESS ;

Q <= Q ;

END PROJ12 ;

TREINAMENTO

-- PROJETO DO CIRCUITO
PROPOSTO

ENTITY CIRCUITO IS

PORT ( E, CLOCK, INICIA : IN BIT ;

S : OUT BIT ) ;

END CIRCUITO ;

ARCHITECTURE CIRC OF CIRCUITO IS

SIGNAL AUX : BIT ;

SIGNAL QOUT, Y, VET : BIT_VECTOR ( 2 DOWNTO 0 ) ;

SIGNAL Z : BIT_VECTOR ( 7 DOWNTO 0 ) ;

SIGNAL D : BIT_VECTOR ( 3 DOWNTO 0 ) ;

SIGNAL VET1 : BIT_VECTOR ( 1 DOWNTO 0 ) ;


COMPONENT JKME

PORT ( PR, CLR, CLK, J, K : IN BIT ;

Q : BUFFER BIT ) ;

END COMPONENT ;

BEGIN

AUX <= INICIA AND (NOT ((NOT QOUT(0)) AND QOUT(1) AND (NOT QOUT(2))));

FF0 : JKME PORT MAP ( PR=>AUX, CLR=>'1', CLK=>CLOCK, J=>'1', K=>'1', Q=>QOUT(0) ) ;

FF1 : JKME PORT MAP ( PR=>AUX, CLR=>'1', CLK=>NOT QOUT(0), J=>'1', K=>'1', Q=>QOUT(1) ) ;

FF2 : JKME PORT MAP ( PR=>AUX, CLR=>'1', CLK=>NOT QOUT(1), J=>'1', K=>'1', Q=>QOUT(2) ) ;

FF3 : JKME PORT MAP ( PR=>'1', CLR=>INICIA, CLK=>QOUT(2), J=>Y(1), K=>Y(1), Q=>Y(0) )
;

FF4 : JKME PORT MAP ( PR=>'1', CLR=>INICIA, CLK=>QOUT(2), J=>'1', K=>NOT Y(0), Q=>Y(1) )
;

FF5 : JKME PORT MAP ( PR=>'1', CLR=>INICIA, CLK=>QOUT(2), J=>Y(1) AND (NOT Y(0)), K=>'1', Q=>Y(2) )
;

VET <= QOUT(0) & QOUT(1) & QOUT(2) ;

Z(0) <= E WHEN VET = "000" ELSE '1' ;

Z(1) <= E WHEN VET = "001" ELSE '1' ;

Z(2) <= E WHEN VET = "010" ELSE '1' ;

Z(3) <= E WHEN VET = "011" ELSE '1' ;

Z(4) <= E WHEN VET = "100" ELSE '1' ;

Z(5) <= E WHEN VET = "101" ELSE '1' ;

Z(6) <= E WHEN VET = "110" ELSE '1' ;

Z(7) <= E WHEN VET = "111" ELSE '1' ;

D(0) <= NOT (Z(0) AND Z(1) AND Z(2));

D(1) <= Z(3) XNOR Z(4) ;

D(2) <= Z(5) OR (NOT Z(6)) ;

D(3) <= NOT Z(7) ;

VET1 <= Y(1) & Y(0) ;

WITH VET1 SELECT

S <= D(0) WHEN "00" ,

D(1) WHEN "01" ,

D(2) WHEN "10" ,

D(3) WHEN "11" ;


END CIRC;

-- PROJETO DE UM FLIP FLOP JK MESTRE ESCRAVO COM PRESET E CLEAR

ENTITY JKME IS

PORT ( PR, CLR, CLK, J, K : IN BIT ;

Q : BUFFER BIT ) ;

END JKME ;

ARCHITECTURE FLIPFLOP OF JKME IS

BEGIN

PROCESS (PR, CLR, CLK)

BEGIN

IF PR = '0' THEN Q <= '1' ;

ELSIF CLR = '0' THEN Q <= '0' ;

ELSIF CLK = '0' AND CLK' EVENT THEN

IF J = '1' AND K = '1' THEN Q <= NOT Q ;

ELSIF J = '1' AND K = '0' THEN Q <= '1' ;

ELSIF J = '0' AND K = '1' THEN Q <= '0' ;

END IF ;

END IF ;

END PROCESS ;

Q <= Q ;

END FLIPFLOP ;

Anda mungkin juga menyukai