LOGICA SECUENCIA

Ing. Edebaldo Pez Ortíz Diseño secuencial mediante VHDL Introducción ● ● ● Los circuitos digitales que hemos manejad

Views 203 Downloads 3 File size 316KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Ing. Edebaldo Pez Ortíz

Diseño secuencial mediante VHDL Introducción ●





Los circuitos digitales que hemos manejado con anterioridad han sido de tipo combinacional, es decir, son circuitos que dependen por completo de los valores que se encuentran en sus entradas, en determinado tiempo. Si bien un sistema secuencial puede tener también uno o más elementos combinacionales, la mayoría de los sistemas que se encuentran en la práctica incluyen elementos de memoria, los cuales requieren que el sistema se describa en términos de lógica secuencial. se describen algunos de los circuitos secuenciales más utilizados en la práctica, como flip-flops, contadores, registros, etc., además se desarrollan ejercicios para aprender la programación de circuitos secuenciales.

Ing. Edebaldo Pez Ortíz

Diseño lógicosecuencial Introducción ●



Un sistema secuencial está formado por un circuito combinacional y un elemento de memoria encargado de almacenar de forma temporal la historia del sistema. En esencia, la salida de un sistema secuencial no sólo depende del valor presente de las entradas, sino también de la historia del sistema, según se observa en la figura.

entradas

Circuito combinacional

Historia pasada

Salidas

Ing. Edebaldo Pez Ortíz ●









Básicamente hay dos tipos de sistemas secuenciales: Síncronos y asíncronos; el comportamiento de los primeros se encuentra sincronizado mediante el pulso de reloj del sistema, mientras que el funcionamiento de los sistemas asíncronos depende del orden y momento en el cual se aplican sus señales de entrada, por lo que no requieren un pulso de reloj para sincronizar sus acciones. Síncronos y asíncronos; el comportamiento de los primeros se encuentra sincronizado mediante el pulso de reloj del sistema, mientras que el funcionamiento de los sistemas asíncronos depende del orden y momento en el cual se aplican sus señales de entrada, por lo que no requieren un pulso de reloj para sincronizar sus acciones.

Flip-flops El elemento de memoria utilizado indistintamente en el diseño de los sistemas síncronos o asíncronos se conoce como flip-flop o celda binaria.

Ing. Edebaldo Pez Ortíz ●





El elemento de memoria utilizado indistintamente en el diseño de los sistemas síncronos o asíncronos se conoce como flip-flop o celda binaria. La característica principal de un flip-flop es mantener o almacenar un bit de manera indefinida hasta que a través de un pulso o una señal cambie de estado. Los flip-flops más conocidos son los tipos SR, JK, T y D. En las figuras siguientes se presenta cada uno de estos elementos y la tabla de verdad que describe su comportamiento.

Ing. Edebaldo Pez Ortíz

Q

J FF JK

CKL K

Qn 0 0 0 0 1 1 1 1

J 0 0 1 1 0 0 1 1

K 0 1 0 1 0 1 0 1

Qn+1 0 0 1 1 1 0 1 0

Q

Q

R FF SR

CKL S

Qn 0 0 0 0 1 1 1 1

R 0 0 1 1 0 0 1 1

S 0 1 0 1 0 1 0 1

Q Qn+1 0 1 0 ? 1 1 0 ?

Ing. Edebaldo Pez Ortíz

Q

T

FF T

CKL

Qn 0 0 1 1

T 0 1 0 1

Q

Qn+1 0 1 1 0

Q

D

FF D

CKL

Qn 0 0 1 1

D 0 1 0 1

Q Qn+1 0 1 0 1

Ing. Edebaldo Pez Ortíz ●

● ●



Es importante recordar el significado de la notación Q y Q(t+1): Q = estado presente 0 actual Q(t+1) = estado futuro o siguiente Por ejemplo, consideremos la tabla de verdad que describe el funcionamiento del flip-flop tipo D, de la figura anterior y que se muestra de nuevo en la figura siguiente:

D

Q

1

ckl

ckl

D

Q

1

Q n Qn+1 0 0 0 1 1 0 1 1

D 0 1 0 1

Ing. Edebaldo Pez Ortíz ●





Cuando el valor de la entrada D es igual a 1, figura inferior, la salida Q(t +1) adopta el valor de 1; Q(t+1)=1 siempre y cuando se genere un pulso de reloj. Es importante resaltar que el valor actual en la entrada D es transferido a la salida Q(t+1) sin importar cuál sea el valor previo que haya tenido la salida Q en el estado presente. En el diseño secuencial con VHDL las declaraciones If-then-else son las más utilizadas; por ejemplo, el programa del listado siguiente usa estas declaraciones. library ieee ; use ieee.std_logic_1164.all; entity ffd is port ( D, clk: in std_logic; Q: out std_logic) ; end ffd; architecture arq_ffd of ffd is begin process (clk) begin if (clk' event and clk='1') then Q