Exercício 6.12.3 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
ENTITY ttl_298 IS![]() PORT (da, db : IN BIT_VECTOR(3 DOWNTO 0); -- dados sel, ck : IN BIT; -- selecao, relogio q : OUT BIT_VECTOR(3 DOWNTO 0)); -- saidas END ttl_298; ARCHITECTURE teste OF ttl_298 IS BEGIN abc: PROCESS (ck) BEGIN IF ck'EVENT AND ck ='0' THEN IF sel = '1' THEN q <= da; -- armazena via entrada da ELSE q <= db; -- armazena via entrada db END IF; END IF; END PROCESS abc; END teste; |
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
ENTITY ttl_166 IS![]() PORT (ck : IN BIT; -- clock borda subida ld_l : IN BIT; -- carrega dados sincrono rst_l : IN BIT; -- reset assincrono ce_l : IN BIT; -- habilita ck d : IN BIT_VECTOR (7 DOWNTO 0); -- entrada dados paralela ds : IN BIT; -- entrada dados serial q7 : OUT BIT); -- saida END ttl_166; ARCHITECTURE teste OF ttl_166 IS BEGIN abc: PROCESS (ck, rst_l) VARIABLE q_v : BIT_VECTOR (7 DOWNTO 0); BEGIN IF (rst_l = '0') THEN -- reset assincrono q_v := "00000000"; ELSIF (ck'EVENT AND ck ='1') THEN -- borda subida ck IF ce_l = '0' THEN -- ck habilitado IF ld_l = '0' THEN -- carrega dados q_v := d; ELSE -- desloca dados q_v(7 DOWNTO 0) := q_v(6 DOWNTO 0) & ds; END IF; END IF; q7 <= q_v(7); END IF; END PROCESS abc; END teste; |