TEMA VI: DISEÑO SECUENCIAL MSI

36
TEMA VI: DISEÑO SECUENCIAL MSI Al igual que sucedía con los circuitos combinacionales, existen macrofunciones secuen- ciales que son implementadas en un solo integrado. Por lo tanto, estos circuitos, junto con los MSI combinacionales, permiten la realización del diseño de circuitos digitales con elementos MSI. 1. Dispositivos MSI Secuenciales. Básicamente existen dos tipos de dispositivos MSI secuenciales, registros y contadores. A continuación serán tratados en más profundidad. 1.1. Registros. El elemento fundamental de los sistemas secuenciales (que no está presente en los siste- mas puramente combinacionales) es el elemento de memoria, ya sea transparente, latch o flip- flop. El registro es la versión MSI de estos elementos, y se puede definir como: Un registro es el elemento capaz de almacenar varios bits, en general una palabra Por lo tanto, un elemento de memoria se puede tratar como un registro de un bit. De aquí pode- mos concluir que un registro de n bits estará formado por n elementos de memoria en paralelo, como se muestra en la figura 6.1. De aquí en adelante utilizaremos flip-flops por ser los más empleados, no obstante podemos encontrar versiones similares utilizando latches. Si analizamos este circuito, podemos obtener que cuando hay un cambio de estado (la señal clk sufre una transición de subida) las salidas obtienen el valor de las entradas, es decir, Para todo i, cuando clk sube => Q i = D i En estos elementos solamente se puede almacenar una palabra. Sería interesante el alma- cenamiento de varias palabras, por lo que surgieron los registros de desplazamientos (shift register). Este tipo de registro es capaz de almacenar más de una palabra, la cual suele tener un tamaño de un bit. Un ejemplo de este tipo de registro se muestra en la figura 6.2. A medida que se producen transiciones de subida en la señal clk, el dato se va desplazando por los diferentes biestables, comportamiento que le ha dado su nombre. Este bloque, con la restricción de tener únicamente como salida la señal Q3, se dice que muestra una arquitectura FIFO (First In First Out, es decir, el primer dato que entra es el primero que sale).

Transcript of TEMA VI: DISEÑO SECUENCIAL MSI

Page 1: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI

Al igual quesucedíaconlos circuitoscombinacionales,existenmacrofuncionessecuen-cialesquesonimplementadasenun solo integrado.Por lo tanto,estoscircuitos,junto conlosMSI combinacionales,permitenla realizacióndel diseñodecircuitosdigitalesconelementosMSI.

1. Dispositiv os MSI Secuenciales.

BásicamenteexistendostiposdedispositivosMSI secuenciales,registrosy contadores.A continuación serán tratados en más profundidad.

1.1. Registr os.

El elementofundamentaldelos sistemassecuenciales(queno estápresenteenlos siste-maspuramentecombinacionales)esel elementodememoria,ya seatransparente,latcho flip-flop. El registro es la versión MSI de estos elementos, y se puede definir como:

Un registr o es el elemento capaz de almacenar varios bits, en general unapalabra

Porlo tanto,unelementodememoriasepuedetratarcomounregistrodeunbit. Deaquípode-mosconcluirqueun registroden bitsestaráformadoporn elementosdememoriaenparalelo,comosemuestraen la figura 6.1. De aquíen adelanteutilizaremosflip-flops por serlos másempleados, no obstante podemos encontrar versiones similares utilizando latches.

Si analizamosestecircuito, podemosobtenerquecuandohay un cambiode estado(laseñal clk sufre una transición de subida) las salidas obtienen el valor de las entradas, es decir,

Para todo i, cuando clk sube => Qi = Di

Enestoselementossolamentesepuedealmacenarunapalabra.Seríainteresanteel alma-cenamientode variaspalabras,por lo quesurgieron los registros de desplazamientos (shiftregister). Estetipo deregistroescapazdealmacenarmásdeunapalabra,la cualsueleteneruntamañodeunbit. Un ejemplodeestetipo deregistrosemuestraenla figura6.2.A medidaqueseproducentransicionesdesubidaenla señalclk, el datoseva desplazandopor los diferentesbiestables,comportamientoquele hadadosunombre.Estebloque,conla restriccióndetenerúnicamentecomosalidala señalQ3,sedicequemuestraunaarquitecturaFIFO (First In FirstOut, es decir, el primer dato que entra es el primero que sale).

Page 2: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática78

Conestasolución,si deseamosinicializarel registrodedesplazamientoden bits,necesi-taremosn pulsosdela señaldealmacenamiento,clk. Estetiempopuedeserdemasiadorestric-tivo, por lo queexistenregistrosdedesplazamientosconcarga paralela.Estosúltimospuedenserinicializadosenun solociclo dereloj, independientementedel númerodebits quetenga elregistro.Un posibleesquemalógicodeunregistrodedesplazamientoconcargaparalelapuedeser el mostrado en la figura 6.3. El funcionamiento de este registro es el siguiente:

• Cuandola señalde control SH/LD seencuentraa nivel bajo,hemosseleccionadolacarga paralela.Por lo tanto,enel siguientepulsodela señaldereloj secumpliráquetodo Qi = Di.

D

D0 Q0

D

D1 Q1

D

D2 Q2

D

D3 Q3

clk

D0 Q0

D1 Q1

D2 Q2

D3 Q3

clkC

Figura 6.1.- Registro de cuatro bits, junto a su símbolo.

D

D0

Q0

D

Q1

D

Q2

D

Q3

clk

D0 Q0

Q1

Q2

Q3

clkC

Figura 6.2.- Registro de desplazamiento de cuatro bits, junto a su comportamiento y sím-bolo.

SR

1º dato 2º dato 3º dato

1º dato 2º dato

1º dato 2º dato 3º dato 4º dato

1º dato

Q0

Q1

Q2

Q3

clk

Page 3: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 79

• En cambio,cuandola señalde control SH/LD se encuentrea nivel alto, estaremosseleccionando el desplazamiento hacia la derecha a partir de la señal SER.

Hastaahorasólohemosconsideradoel desplazamientoenun solosentido.No obstantetambiénesinteresanteobtenerun desplazamientoen los dosposiblessentidos.Debidoa estareflexión surgió el denominadoregistro de desplazamiento universal. Esteregistro muestralas siguientes operaciones:

• Carga paralela,

• desplazamiento hacia la izquierda,

• desplazamiento hacia la derecha y

• no operación.

En la figura 6.4 mostramosun posibleesquemalógico de esteúltimo registro queenglobaatodoslos demás.En ésteseencuentrandosseñalesdecontrol,S1 y S0, necesariasparapodercontrolarlascuatrooperacionesde lasquedispone.En la tabla6.1 semuestrala codificacióndelasseñalesdecontrolquecorrespondeacadaunadelasoperacionesquerealizaestetipo deregistro.

Este registro es utilizado para generaruna arquitecturaLIFO (Last In First Out, elúltimo datoqueentraesel primeroquesale).Estaarquitectura,tambiéndenominadapila, escomoun pozoo pila enel quesólopodemosaccederal elementosuperior, ya seaparacolocarotro encimao parasacarlo,comomostramosen la figura 6.5. Por lo tanto,cuandoqueremosescribiren la memoriaLIFO, debemosrealizarun desplazamientohaciala derecha;mientrasquesi queremosrealizaruna lectura,debemosrealizarun desplazamientohaciala izquierda

DD

D1

Q0 D Q1 Q2 Q3

clk

Figura6.3.-Registrodedesplazamientoconcargaparaleladecuatrobits, juntoasusímbolo.

D

D2 D3D0

SH/LD

SER

D0 Q0

D1 Q1

D2 Q2

D3 Q3

clkC

SER

M1M2

SH/LD

Page 4: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática80

paraqueel biestableaccesible(el primero)tengaundatoválido.Un posibleesquemalógicodeestaarquitecturaesmostradoenla figura6.5.En estaarquitecturaesnecesarioañadirunauni-dadde control paradetectarposiblessituacionesno deseadas,como puedeser el desborda-miento(intentarescribirmásinformacióndela quesepuedealmacenar)o intentarleercuandono existe ningún dato almacenado.

1.2. Contadores.

Un contador se puede definir de la siguiente forma:

un contador es un circuito secuencial que realiza una o varias de las siguien-tes funciones:

- cuenta el número de pulsos recibidos y almacena unnúmero que representa dicha cuenta,

- proporcionan un tren de pulsos obtenidos a partir dela entrada, pero a una frecuencia menor, y

- proporciona una secuencia de patrones binarios paraaplicaciones tales como direccionamiento de memoria.

S1 S0 Operación

00 No operación,la salidadelbiestablepermanececonstanteal tenerlaconec-tada a la entrada.

01 Desplazamiento hacia la derecha, la salida del biestable anterior estáconectado a la entrada del actual.

10 Desplazamiento hacia la izquierda, la salida del biestable posterior estáconectado a la entrada del actual.

11 Cargaparalela,la entradadelbiestableestáconectadoa la entradaparalela.Tabla 6.1. Codificación de las operaciones del registro de desplazamiento universal.

D

D1

Q0

clk

Figura 6.4.- Registro de desplazamiento universal.

D2 D3D0

SR SER

3

2

1

0D

Q1

3

2

1

0D

Q2

3

2

1

0D

Q3

3

2

1

0

S1

S0

SL SER

Page 5: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 81

Consideremosel diseño de un contadorde un bit, según la primera definición. Eldiagramadeestadosconla tabladetransicióndedichocontadorseráel mostradoenla figura6.6.Comopodemosver, el próximo estadocoincideconel complementodel estadopresentepor lo que utilizaremos biestables tipo T, obteniendo el circuito adjunto.

Si queremosampliarel contadora un númeromayordebits podemosconectarel conta-doranteriorencascada.Paraello, debemostenerencuentaquela siguientecuentasólosedebeproducir cuandola primera haya finalizado,es decir, haya vuelto a cero. Por lo tanto, elsiguientebiestabledebeserdisparadoporel flancodebajada.Porhomogeneidaddeldiseño,sedisparan todos los biestables por el flanco de bajada, contado realmente los flancos negativos.

Un contadordecuatrobitssemuestraenla figura6.7,formadoporunaconexión enseriedevariosbiestablesT disparadosporflancos.Lasecuacioneslógicascorrespondientesal com-portamiento de dicho circuito serán las siguientes:

Q

clk

D

D

0

1

R/W

D

0

1 D

0

1 D

0

1Unidad

deControl

Figura 6.5.- Esquema de operación y lógico de una arquitectura LIFO.

Desplazamientohacia la derecha

Desplazamientohacia la izquierda

0 1Estado Entrada

0 1

1 0

Figura 6.6.- Diseño del contador de un bit.

T

cuenta

Q‘1’

Q0 D q0⊕=

Page 6: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática82

de donde se obtienen las formas de onda mostradas en la figura 6.7.

Lasseñalesdesalida,Q2 Q1 Q0, coincidenconla codificaciónbinariadelnúmerodepul-sosdela señaldeentrada(ensuflancodebajada),por lo queseproducela cuentadel númerodepulsos,ademásdesualmacenamiento.Si nosfijamosenlasseñalesdesalidadeformaindi-

vidual,podemoscomprobarqueTi = 2i TD, o lo queeslo mismo,Fi = 2-i FD, por lo queobte-nemosseñalesque dividen la frecuenciade la señalde entrada.Por lo tanto, estecircuitocumplela definición de contador, de hechoestamosanteun contadorasíncrono(ya que noexisteunaseñalglobaldereloj) o derizadoascendente.El hechodedenominarsecontadorderizadoesdebidoa quelastransicionesdelos diferentesbiestablesno sonsimultáneas(ya quesusseñalesdecontrolsondiferentes);por lo tanto,parallegaral datoestableesnecesariopasarpor un pequeño rizado correspondiente a las diferentes transiciones de los biestables.

Consideremosahoraunaversióndel anteriorcontadorde rizado,mostradoen la figura6.8. Las ecuacioneslógicascorrespondientesal comportamientode dicho circuito seránlassiguientes:

de donde se obtienen las formas de onda mostradas en la figura 6.8

Si nos fijamos, podemos comprobar que la cuenta se realiza en orden inverso, es decir,

7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> 0 -> 7

Q1 q0 q1⊕=

Q2 q1 q2⊕=

TDQ0 Q1 Q2

T T

D

Q0

Q1

Q2

Figura 6.7.- Contador asíncrono o de rizado ascendente, junto a sus formas de onda.

Q0 D q0⊕=

Q1 q0 q1⊕=

Q2 q1 q2⊕=

Page 7: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 83

por lo quenosencontramosanteun contadordescendente.En estaversión,sesiguemante-niendo la función de dividir la frecuencia de la señal de entrada.

Tambiénpodemosencontrarcontadoresbidireccionales,esdecir, contadoresascenden-tesy descendentes,integradosenun solodispositivo. Un ejemplodeestoscontadoresesmos-tradoenla figura6.9.Cuandola señalU/D seencuentreanivel alto,estaremosconfigurandolacuentacomoascendente.Encambio,Cuandola señalU/D seencuentreanivel bajo,estaremosconfigurando la cuenta como descendente.

Hastaahorasolamentehemostratadocontadoresasíncronos,ya queno existe ningunaseñal de control global que gobierne todos los biestables.

A continuaciónvamosaconsiderarel diseñodeuncontadorsíncronodetresbits.El pro-cesodediseñosemuestraenla figura6.10.De nuevo, y comoel estadopresenteesmuy pare-cido al próximo estado,hemosutilizado biestablestipo T. Estaversiónes síncronaporquetodoslos biestablessoncontroladospor la mismaseñal.No obstante,la operaciónlógicaeslamismaquela del contadorasíncrono.Lasprincipalesdiferencias,entreambasversiones,estri-ban en:

• el contadorsíncronoesmáscostosodebidoa la presenciade lógica combinacionalque no se encuentra en el asíncrono, y

TDQ0 Q1 Q2

T T

D

Q0

Q1

Q2

Figura 6.8.- Contador asíncrono o de rizado descendente, junto a sus formas de onda.

TD

Q0 Q1 Q2

T

Figura 6.9.- Contador asíncrono bidireccional.

T1

0

1

0

U/D

Page 8: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática84

• muestraunmayorconsumodepotenciayaquetodoslosbiestablestienenquerealizarunaoperaciónencadaflancodesubidade la señaldecuenta(el reloj), mientrasqueenel asíncrono,cadabiestablesólo realizasu operaciónencadaflancodesubida(obajada) de la salida anterior. De forma matemática, el número de operaciones será:

• nN, en el caso síncrono con n pulsos de cuenta y N biestables, y

• Σ n2-i, desde 0 hasta N-1 en el caso asíncrono.

Cuandosedice queestamosanteun contador de módulo N, dicho contadorrealizalacuentadesde0 hastaN-1. Hastaahorasolamentehemosconsideradocontadorescuyomóduloespotenciadedos.Cuandoel módulodel contadorno espotenciadedos,hayquegenerarelmintérminoN con lógicacombinacional,paraquecuandolleguemosa él podamosinicializartodoslos biestablesa travésdesusterminalesderesete iniciar denuevo la cuanta.Porejem-plo, si queremosdiseñarun contadorasíncronodemódulo3, necesitaremoscomomínimodosbiestables,ya que1 < lg23 < 2. Cuandollegueal mintérmino3, debemosinicializar todoslosbiestables.Podemoscomprobarquecuandollegamosa 3, Q1Q0 = “11“, los dosbiestablessoninicializadospasandoinmediatamente(casiinstantáneamente,el retrasodela puertaAND, quegenerael mintérminocorrespondiente,y la inicializaciónde los biestables)a Q1Q0 = “00“.Este caso particular se muestra en la figura 6.10.

En loscontadorestambiénpodemosencontrarversionesconcapacidaddecargaparalela,situaciónnecesariaen los contadoresdescendentescuyo módulono espotenciade dos.Unasolucióna esteproblemaconsisteenmodificarlos biestablesparadarleestanueva función.Elesquemalógico de estasoluciónsemuestraen la figura 6.12.En función de la señalC/L, seproducirála cuenta,si dichaseñalestáa nivel alto al configurarel biestablecomotipo T, o la

T1

Q0

clk

Q0

Q1

Q2

Figura 6.10.- Contador síncrono ascendente, junto a sus formas de onda.

T TQ1 Q2

clk

0 1 2 3

7 6 5 4Estado presente Cuenta (= clk)

000 001

001 010

010 011

011 100

100 101

101 110

110 111

111 000

Page 9: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 85

carga paralela,si dicha señalestáa nivel bajo al configurarel biestablecomo tipo D. Otraforma seráutilizandolos terminalesde set (puestaa 1) o reset(puestaa cero)del biestable.Conestaúltima formahayquetenercuidadodequeambosterminalesseansíncronosparaqueel cambio de estado siga a la señal de reloj, que coincide con la de cuenta.

Consideremosahorael circuito de la figura6.13.En él podemosver tresbiestablestipoD realimentadosa travésdeun multiplexor quepermiteintroducirun datoexternoal sistema.Estecircuito generaunaseriedepatronesbinarios,por lo queentradentrode la categoríadecontadores,y al estarbasadoenlos registrosdedesplazamientosrecibenel nombredeconta-dores de desplazamientos. Tambiénsonconocidoscomocontadores anulares o en anillodebido a la realimentación anteriormente mencionada.

TD

Q0

D

Q0

Q1

Figura 6.11.- Contador asíncrono ascendente de módulo 3, junto a sus formas de onda.

TQ1

R R

1

0

D

clk

T

D

Q

C/L

Figura 6.12.- Modificación del biestable tipo T para producir la carga paralela.

1

0

D

clk

1 Q0

C/L

D Q1D Q2

Figura 6.13.- Contador de desplazamiento sin autocorrección.

Q1 Q2 Q3

1 0 0

0 1 0

0 0 1

Page 10: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática86

Entrelas principalescaracterísticasde estoscontadorespodemosencontrarlas siguien-tes:

• Necesitanmásbiestablesquelosestrictamentenecesarios,enestoscontadoresnecesi-tamosN biestablesparaun contadordemóduloN. Estacaracterísticaprovocaquelasalida no sea la codificación binaria del número de la cuenta.

• Sonmuysensiblesantela posibilidaddefallos,por lo quesesueleintroducircircuite-ría deautocorrección,comopodemosver en la figura6.14.Podemoscomprobarquesecorrigenlos fallosenunmáximodeN-1 pulsosdela señaldecuenta,dondeN eselmódulo.

Existeun contadordedesplazamiento,denominadocontador de Johnson, quemuestraun mejor aprovechamientodel númerode biestables.Estecontadorse muestraen la figura6.15.Debidoa la realimentacióndela señalcomplementadaQ5, podemosgenerarel dobledeestados.

Debidoa queno muestracapacidaddeautocorreción,el másconocidoy utilizadoeselmostradoen la figura 6.16 que sí tiene autocorreción.Lacapacidadde contarel doble delnúmerode biestables,tienecomopenalidadde queparadeterminarsu estadohay quegene-rarlo con un pequeñodecodificadorformadopor 2N puertasAND de dosentradas,comosepuede ver en la tabla 6.2.

En el casodenecesitarcontadoresdemódulosmuy grandes,la técnicamásempleadaesla conexión devarioscontadoresmáspequeños.La maneramásintuitiva deconectardoscon-tadoresconsisteenutilizar comoseñaldecuentaunaseñalquenosindiqueel final dela cuentadelprimercontador. Porejemplo,enla figura6.17mostramosuncontadordemódulo64reali-zado con dos contadores de módulo 8.

1

0

D

clk

1 Q0

C/L

D Q1D Q2

Q1 Q2 Q3

1 0 0

0 1 1

0 0 1

Q1 Q2 Q3

1 0 0

0 0 0

1 0 0

0 1 0

0 0 1

Figura 6.14.- Contador de desplazamiento con capacidad de autocorrección.

D

clk

Q0D Q1

D Q2D Q3

D Q4

Figura 6.15.- Contador Johnson de módulo 10 sin autocorrección.

Page 11: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 87

Otraformasimilara la anteriorconsisteenutilizar dosseñalesquesuelentenertodosloscontadores:

• fin decuenta,quenosindicacuandohafinalizadola cuentay va a empezardenuevo,y

• habilitacióndecuenta,queinhibeo desinhibela cuentamanteniendoel valor anterioralmacenado cuando se inhibe la cuenta.

En este caso, la conexión sería como se muestra en la figura 6.18.

D

clk

Q0D Q1

D Q2D Q3

D Q4

Figura 6.16.- Contador Johnson de módulo 10 con autocorrección.

Q0 Q1 Q2 Q3 Q4 Decodificación

0 0 0 0 0 q4q0

1 0 0 0 0 q0q1

1 1 0 0 0 q1q2

1 1 1 0 0 q2q3

1 1 1 1 0 q3q4

1 1 1 1 1 q4q0

0 1 1 1 1 q0q1

0 0 1 1 1 q1q2

0 0 0 1 1 q2q3

0 0 0 0 1 q3q4

Tabla 6.2. Salidas del contador Johnson de módulo 10.

Q1

Q2

Q3

Q1

Q2

Q3

clk

Q1

Q2

Q3

Q4

Q5

Q6

Figura 6.17.- Conexión asíncrona de dos contadores de módulo 8 para formar uno de 64.

Page 12: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática88

2. Diseño secuencial MSI.

En el diseñodesistemassecuencialescondispositivosMSI, los elementosalmacenado-resdeinformaciónpodránserregistroso contadores.La utilizacióndeunou otrodependerádela adecuabilidaddelos cambiosdeestadosa serrealizadosconcuenta,esdecir, los próximosestados serán los siguientes en codificación a los estados presentes, como sucede:

1 -> 2 -> 3 -> 4 -> 5

las transiciones de estados serán simplemente la función de un contador.

2.1. Diseño con registr os.

El diseñoMSI conregistroscoincideconel diseñoutilizandobiestablestipo D, los cua-les son la base de los registros.

En el casodeutilizar registrosdedesplazamientouniversales,la generacióndel próximoestado supondrá la obtención de las siguientes señales:

• Señalesdecontrol,lascualesseleccionaránla operaciónquerealizaráel registro:des-plazamientohaciala izquierda,desplazamientohaciala derecha,carga paralelay nooperación.

• Entradasde carga paralela,queseráel valor al quedebellegar el registro cuandoseproduzca una carga paralela.

• Entradade datosde desplazamiento(izquierday/o derecha),que seráel valor quetenga que tomar el primer biestable cuando se produzca un desplazamiento.

2.2. Diseño con contadores.

En estecaso,los cambiosdeestadossonproducidosmedianteun contador. Por lo tanto,las señales para generar el próximo estado que hay que generar serán tres:

• Señaldecuenta,cuandoel próximoestadocoincideconel númerosiguienteal actual,

Q1

Q2

Q3

clk

Q1

Q2

Q3

Q4

Q5

Q6

Figura 6.18.- Conexión síncrona de dos contadores de módulo 8 para formar uno de 64.

G fin

Q1

Q2

Q3

G fin

clk

1

Page 13: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 89

• Señalde carga paralela,cuandoel próximo estadono es el siguientenúmeroni elmismo.Ademáshayquegenerarlos datosdecarga paralelaparaactualizarla infor-mación, y

• Señaldehabilitación,cuandoel próximoestadocoincideconel actual,ya queno sedebe realizar la cuenta ni la carga paralela.

3. Diseño R TL

Yahemosvistoqueunadelasformasdedescribirunsistemasecuencial,y apartirdeahírealizarel diseñodigital quemuestradicho comportamiento,esel diagramade estados.Noobstantesuutilidadestálimitadaaunnúmerorelativamentepequeñodeestados,o lo queeslomismo, de requerimientos de memoria.

Si tomamosel ejemplosencillo de la máquinade refresco,su diagrama(figura 6.19)muestraun considerablenúmerodeestadosconla limitación impuestadeun únicorefrescoysin la posibilidaddedevolver cambio.Al añadirla funcionalidaddediversificarel númeroderefrescosy devolvercambio,el diagramadeestadoaumentaríadetal formaqueyanoseríatra-table.

Figura 6.19.- Diagrama de estado correspondiente a la máquina de refresco.

0 c.

10 c.

20 c.

30 c.

40 c.

Refresco

60 c.

50 c.

10 c.

20 c.50 c.

B

10 c.

20 c.

50 c.

B

10 c.

20 c.

50 c.B

10 c.

20 c.

50 c.

B

10 c.20 c.

50 c.

B

10 c.

20 c.

50 c.

B

10 c.20 c.50 c.

B

B

10 c.

20 c.

50 c.

Page 14: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática90

No obstante, podemos encontrar una descripción verbal muy simple:

Se insertan monedas para acumular el importe del refrescoMientras no se haya insertado dicho importe, no se hace nadaCuando haya la cantidad suficiente, devuelve el refresco y la diferencia entrela cantidad acumulada y el precio del refresco.

Por lo tanto,debeexistir otro mediodedescripciónparaestosproblemasconunadescripciónsencilla,cuyadiagramade estadoseademasiadocomplejoparamanejarlo.Si recapacitamossobrela descripciónverbalanterior, podemosobservar queexistenoperaciones,comola sumade las diferentesmonedasinsertadasy la diferenciaentrela cantidadalmacenaday el preciodel refrescoseleccionado,queno intervienenenla secuenciacióndelasoperacionesoperacio-nes.

Una forma útil de describir estossistemasmás complejosserá la descripciónde lasecuenciacióny la manipulaciónde los datosde manerabien diferenciada,de tal forma quepermitaun tratamientoseparado,asípodremosrealizarel autómatadecontrol independiente-mentede los bloquesde procesadoutilizados.Estadescripciónesun algoritmo,cuyadefini-ción podría ser la siguiente:

Un algoritmo es el conjunto ordenado y finito de operaciones que permitehallar la solución de un problema.

Estanueva formadedescripciónseencuentraenunnivel deabstraccióndiferenteyaqueutiliza comocomponenteslos dispositivosMSI (tantocombinacionalescomosecuenciales)ynoselimita apuertaslógicasy biestables.Estenuevo nivel sedenominatransferenciaderegis-troso máscomúnmenteRT (RegisterTransference).En estecaso,la funcionalidadesdescritamedianteunasecuenciade transferenciasde registros,la cualsepuededefinir de la siguienteforma:

Una transferencia de registros es una transformación realizada sobre undato mientras es transferido de un registro a otro.

Estatransferencianecesitala existenciade un secuenciamientoparagarantizarla operacióncorrecta.Por lo tanto,un sistemadescritoenel nivel RTL sedividirá endosgrandesbloques,como se muestra en la figura 6.20:

• Procesador. Es el bloqueencargadode realizarlas transformaciones(procesados)delos datos.

• Controlador. Esel bloqueencargadodegobernarla secuenciadelasoperaciones,parala operación correcta.

A pesarde posibilitar el diseñode ambosbloquespor separado,no podemosolvidar quelosdos formanun mismocircuito por lo queestaránconectadospor las señalesde estado,quedeterminaránla situaciónen la que se encuentrala operación,y las señalesde control, quehabilitarán la operación necesaria en cada instante.

3.1. Procesador

Comoya sehacomentado,el procesador(quealgunosautorestambiéndenominanrutade datos) esel bloqueencargadoderealizarlasdiferentesoperacionesconlos datos.Paraellonecesitaremos cuatro tipos de señales:

Page 15: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 91

• entradas de datos

• salidas de datos

• señalesdeestado,lascualesindicaránla situacióno estadode la operaciónentrelosdatos que se está realizando en cada momento

• señalesde control, las cualesactivarán la operaciónque se deberealizar en cadamomento.

En estebloquepodemosencontrarunidadesdealmacenamiento(paradatosy condicio-nes),unidadesdeprocesado(paralasoperacionesdelos datos)y unidadesdecaminodedatos(parala direccióncorrectade los datosa lo largo del algoritmo).Segúnestasunidades,pode-mos clasificar los sistemas RTL en:

• Sistemasconrecursosnocompartidos.Cadaunidadfuncionalrealizaúnicay exclusi-vamente una operación.

• Sistemasconrecursoscompartidos.Cadaunidadfuncionalpuederealizarvariasope-raciones,conla únicalimitación dequedebenejecutarseendiferentesciclosdeope-ración. Estasituaciónse lleva al extremo en los sistemasunimódulos, en los queexiste un único módulo que lleva a cabo todas las operaciones.

3.2. Controlador

El controladoresel bloqueencargadodegobernarla secuenciacorrectadeoperacionesdel sistema. Por lo tanto, podremos tener cuatro tipos de señales:

• entradas de control

• salidas de control

• señalesdeestado,lascualesindicaránla situacióno estadode la operaciónentrelosdatos que se está realizando en cada momento

• señalesde control, las cualesactivarán la operaciónque se deberealizar en cadamomento.

Lasentradasy salidasdecontrolporexcelenciasonlasseñalesdeinicio y fin deoperación,lascualespuedenserseñalesespecíficas,o dependerde lasentradasdedatos(comosucedeenlamáquinade refrescosen la que la inicialización comienzacon la inserciónde la primera

CONTROLADOR PROCESADOR

señales de control

señales de estado

entradasde control

salidasde control

salidasde datos

entradasde datos

Figura 6.20.- Estructura interna de un sistema visto desde el nivel RTL.

Page 16: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática92

moneda).Por último, la señalesde comunicacióncon el procesadordebenestarpresentesenambos bloques, es decir, las señales de estado y de control.

Conrespectoal gobiernode la secuenciadeoperaciones,sellevaráa caboconun autó-mata finito, como situación más habitual. Este gobierno o control puede ser realizado como:

• Controlcentralizado.Estetipo sedacuandoexisteun únicocontroladorquegobiernatodas las operaciones del sistema.

• Controldescentralizado.Estetipo sedacuandocadaunidadfuncionaltienesupropiocontrolador. La coordinación entre todos ellos se realiza a través del cableado.

• Control semicentralizado.Estetipo essimilar al control descentralizado.La diferen-cia entreambosradicaenquela coordinaciónesrealizadapor un controladorcentralque gobierna al resto de controladores.

3.3. Diagramas ASM (Algorithmic State Machine)

Un diagramaASM esunmedioderepresentacióngráfico/textualdeunalgoritmo,tal quepermitedescribirciclo a ciclo el funcionamientocontemporizaciónsíncronay controlcentra-lizado.En el casodeoptarpor un controldescentralizadoo semicentralizado,sedeberíareali-zar el particionadodel sistemasegún la descentralizaciónrequeridacon los subsiguientesdiagramas ASM. Un ejemplo de diagrama algorítmico se muestra en la figura 6.21.

El algoritmo descrito por el diagrama anterior realiza las siguientes operaciones:

• Mientras que no se seleccione ningún refresco, se deben ir acumulando las monedas.

• Cuandoseseleccioneun refresco,seobtienela diferenciaentrela cantidaddedineroalmacenada y el precio del refresco seleccionado.

• Si dicha diferencia es negativa, se deben seguir acumulando monedas.

• Si la diferenciano esnegativa, seexpulsaráel refresco,devolverádichadiferenciaeinicializará la cantidad almacenada a cero.

En el diagramaanteriorpodemosver doscomponentesfundamentalesde los diagramasASM: cajasdeestadoy deselección;a los quehabríaqueañadirun tercercomponente:cajasde condicióno condicionales.Los trescomponentes,cuyaaparienciasemuestraen la figura6.22, tienen las siguientes funciones:

• Cajasde estado.Estecomponenteespecificalas transferenciasquesedebenrealizaren un nuevo ciclo de operación.Estatransferenciapuedeser un simple almacena-miento o un procesado con almacenamiento.

• Cajadeselección.Estecomponenteespecificaunadeterminadacondiciónquedeter-minarála siguienteaccióna realizar. Por lo general,estacondiciónseráel resultadode una comparación, aunque puede ser una selección entre más de dos valores.

• Cajasde condición.Estecomponenteespecificala transferenciaqueserealizaráenfuncióndeunadeterminadacondición,por lo quesiempreestarándespuésdeunacajadeselección.La diferenciaconlascajasdeestadoradicaenquelascajasdecondiciónseránevaluadasenel mismociclo deoperación,mientrasqueenlascajasdeestadolaasignación se realizará en el siguiente ciclo.

Page 17: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 93

• BloquesASM. Todoslos elementosanterioresseagruparánsegúnel ciclo deopera-ción donde sean realizados. Estas agrupaciones son los denominados bloques ASM.

Todos estoscomponentesse agruparánen diferentesbloquesASM, los cualesespecifican

cantidad = cantidad + moneda

Selecciónde refresco

A = cantidad - precio

A >= 0

expulsar refrescodevolver A

Figura 6.21.- Ejemplo de diagrama algorítmico.

no

si

no

si

cantidad = 0

Operación osalida del registro

Caja de estados

Operación osalida del registro

Caja de condición

Condición

Caja de selección

Figura 6.22.- Componentes de los diagramas ASM.

Page 18: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática94

todaslas accionesrealizadasen un mismociclo de operación,por lo queirán de unacajadeestadoa otra.Estosbloquesseidentificanconlos estadosdelos autómatasfinitos.Laspropie-dades que muestran dichos bloques son las siguientes:

• Ensuinterior tienequehaberunaúnicacajadeestado,y puedequemúltiplescajasdeseleccióny/o condicionales.Estanecesidadesdebidaa quecadacajadeestadoreali-zarásuoperaciónenunnuevo ciclo, esdecir, enciclosdiferentes.Estacajadeestadospuede estar vacía, como veremos posteriormente.

• Hay un solo punto de entrada (la caja de estado) y múltiples puntos de salida.

• Cadaseñalsólopuedeserasignadaunavezporbloque,conel fin deevitar conflictos.Estono quieredecirqueno puedanaparecermásdeunavez,ya quepodemosencon-trar dosasignacionestrasunacajade selecciónpuestoquese realizaráúnicamenteuno de los dos.

Unavezqueconocemoslos diferentescomponentesdeun diagramaASM y laspropie-dadesquecumplen,ya estamosendisposicióndegenerarunodeellos.No obstante,deformaprevia, debemos tener en cuenta una serie de pautas, entre las que podemos destacar:

• Los estados y transiciones del controlador se especifican gráficamente.

• Las transferencias se especifican mediante objetos y operadores.

• Las transferenciasrealizadasenun mismociclo no puedentenerconflictosenel usode recursos,esdecir, unamismaunidadno puedeestarrealizandodosoperacionesdiferentes en el mismo ciclo de operación.

• El periodo de reloj viene determinadopor el camino combinacionalcon mayorretraso.

• El diagramaestáformadopor uno o másbloquesASM y unatarjetadeclarativa, lacual especifica:

• Nombre, anchura y codificación de señales y puertos

• Estado inicial del sistema y valor inicial de las señales y puertos

• Dirección de los puertos

• No tiene puntos de entrada ni de salida

• Toda salida de un bloque ASM debe estar conectado a la entrada de otro.

Veamoscomo ejemplo de diagramaASM, el algoritmo de multiplicación utilizandosumassucesivasconel númeromínimodeciclos.La operacióncomenzaráconun pulsodelaseñalinicio y seindicarála finalizacióncuandoseactive la señalacabado. Los operandosseintroduciránpor los puertosA y B y el resultadoseleerápor el puertototal. El diagramasemuestra en la figura 6.23.

En primer lugar vamosa identificarel tipo deseñalessegúnel esquemagenéricodeunsistema RTL mostrado en la figura 6.20. Podemos identificar las siguientes señales:

• Entradasdecontrol,sonseñalesdeentradasobrelasqueno serealizaningúnproce-sadosinoqueintervienenparauncambiodeestado.Enestecasotenemosla señalini-cio.

• Salidasde control,sonseñalesde salidaqueidentificaránun determinadoestado,el

Page 19: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 95

máscomúnmenteutilizadoesel estadodefinalizaciónde la operación.En estecasotenemos la señalacabado.

• Entradasdedatos,sonseñalesdeentradasobrelasqueserealizaráel procesadoopor-tuno. En este caso tenemos las señalesA y B.

• Salidasde datos,sonseñalesde salidaen las queestaránalmacenadasel resultadofinal de la operacióncuandolo indiquenlassalidasdecontrol.En estecasotenemosla señaltotal.

• Señalesdeestado,sonseñalesinternasdel procesadorquedeterminaránlos posibles

total <= ‘0’acabado <= ‘0’y <= B

inicio = ‘1’NO

SI

min = ‘0’ total <= total+maxmin <= min-1

NO

acabado <= ‘1’

SI

Señales --> max = 0

Puertos -->A, B, inicioacabado = 0

Estado inicial--> E0

E0

E2

E3

A > B

max <= Bmin <= A

max <= Amin <= B

SI NO

E1

min = 0

total = 0

Figura 6.23.- Diagrama ASM correspondiente al algoritmo de multiplicación de sumas sucesivas, con elnúmero mínimo de ciclos.

Page 20: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática96

cambiosdeestadosparael siguienteciclo deoperación.Estasseñalesseránsalidasdealgunaoperaciónqueseencuentrenen las cajasde selección.En estecasotenemoslas salidade la comparaciónentrelos dosoperandos,y la salidade la comparaciónentre el operando menor (almacenado enmin) y el ‘0’.

• Señalesdecontrol,sonseñalesinternasdel controladorparagobernarla operacionesde los diferentesbloquesdel procesador. Por lo tanto,hastaqueno sedecidanquécomponentes tendrá el procesador, no podremos definir este tipo de señales.

Seguidamentevamosa estudiarel significadodecadaestadoy la razóndesu inclusiónen el diagrama:

• El estadoE0 es el estadode inicio dondese chequearála señal inicio para darcomienzo a la operación

• El estadoE1 determinarácuál de los operandosesel mayorparaalmacenarloen elregistro correspondiente.Estaacciónesnecesariaparaqueel númerode ciclos (queseráfuncióndelnúmerodesumassucesivasarealizar)seamínimo;yaquedichacon-dición sólo se cumplirá cuando se sume el operando mayor.

• El estadoE2 esel encargadoderealizarla multiplicación,esdecir, lassumassucesi-vas. El número de estas sumas será igual al operando menor.

• Porúltimo, el estadoE3activarála señalacabado, indicandola finalizacióndela ope-ración y que el resultado se encuentra entotal.

Por último vamosa comentaralgunascaracterísticasde los diagramasASM tomandocomobaseel diagramaanterior. En dichodiagramapodemosidentificarlos trescomponentesquepodemosencontraren cualquierdiagrama:cajasde estado,de seleccióny de condición.Así mismopodemosver la tarjetadeclarativa (recuadroconla esquinatruncada)y los diferen-tesbloquesASM (o estadosdel controlador, identificadospor los recuadrospunteados).Otrodatoa destacaresla existenciade cajasde estadovacías(comosemencionóanteriormente);lascualespuedenvenir determinadasporqueno sedebarealizarningunatransferenciao algu-nasseñalesdebanserasignadasa valoresdiferentesen funcióndeunacondición.En nuestroejemplovemosdoscajasvacías,en los estadosE1 y E2. En el casodel estadoE1, la cajadeestadodebeestarvacíaya quelasseñalesinternasdel procesadorde los operandosmáximoymínimopuedenestarconectadasapuertosdiferentes;mientrasqueenel casodelestadoE2, lacajadebeestarvacíaya quesedeberáasignara total un nuevo valor (si esnecesariorealizarmássumas)o no tendráningunaasignación(si yasehanhechotodaslassumas).La existenciadecajasdecondiciónimplica quela señaltotal dependerádirectamentedel valor deunaseñalde estado,y no de un bloqueASM; por lo tanto, estasituaciónimplicará que el autómatacorrespondiente pertenecerá a la categoría de Mealy.

3.4. Flujo de diseño R TL

Hastaahora,sehavistocómopodemosdescribirundeterminadoalgoritmoutilizandoundiagramaASM, perono podemosperderdevistaqueel fin último esllegar al sistemalógicoque implementa dicho comportamiento.

El flujo dediseñoRTL (secuenciadeactuacionesparaobtenerel sistemalógico) difieredelflujo basadoenlosdiagramasdeestadosenqueseimplementanporseparadodossubsiste-mas: procesador y controlador. Este nuevo flujo se muestra en la figura 6.24.

Page 21: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 97

Comoen la mayoríade los flujos dediseño,el puntodepartidaesla especificacióndeldiseñoa realizar. En estasespecificacionessedebenindicar la funcionalidaddel diseño,unesquemadepuertos,unadescripcióndelalgoritmo(lo másdetalladaposible)y unaespecifica-ción del protocolo de comunicaciones.

Todas la información suministradaen las especificacioneses descritaen forma dediagramaASM paraun tratamientomásadecuado.De estaforma, la determinaciónde losmódulosdel procesadory el comportamientodel controlador(sudiagramadeestados)sefaci-lita en gran medida.

Por lo general,las operacionesdel diagramaASM son componenteslógicos (ya seanpuertasbásicaso dispositivosMSI) queestándirectamenteaccesibles,comopuedensercom-paradores,sumadores/restadores,contadoreso registrosde desplazamiento.Así, la composi-cióndelprocesadoresdirecta.Enel casodequeexistaunaoperaciónquenotengaasociadauncomponente,por ejemplo una multiplicación, habráque implementarun componenteparadichaoperación,perode forma aisladadel diseñoglobal facilitandoasí la tareaa travésdelparticionadodel problema.Como el diagramatambiénnos indica la secuenciaque debenseguir lasoperaciones,tambiénnosdaideadelconexionadodedichosmódulos,aunquenoseacompletamente directo.

Conrespectoal controlador, losbloquesASM identificadosenel diagramadeterminarán

ESPECIFICACIÓNINFORMAL

DIAGRAMA ASM

ESPECIFICACIÓN Y

DE LOS MÓDULOS

OBTENCIÓN DELDIAGRAMA DE ESTADOS

DEL CONTROLADOR

CONEXIONADO

DEL PROCESADOR

UNIÓN DE PROCESADORY CONTROLADOR

Figura 6.24.- Flujo de diseño RTL.

Y DISEÑO LÓGICO

Page 22: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática98

el diagramade estadosdel autómataque hará la función de controlador. Así mismo, eldiagramaASM tambiénidentificarálas señalesde estadoprovenientesdel procesadory lasseñalesdecontrolexternas(quedeterminaránlos cambiosdeestado).A pesardequeel con-troladorapenastengadependenciadelprocesador, esnecesarioidentificarlosmódulosdelpro-cesadorpreviamenteal controladorparaconocerlassalidasdecontrolqueel controladordebegenerar. Unavezquetenemosencuentatodosestosdetalles,el diseñológico del controladorse limita al diseño de un autómata finito como se vio en el tema 4.

Porúltimo, selleva a cabola conexión entrelos diferentescomponentesdel controladory procesador. Trasestatareatendremosun circuito digital queimplementatodala funcionali-dad del diagrama ASM.

3.4.1. Optimización del procesador

No podemosperderdevistaqueunadelasmetasfundamentalesdeldiseñoesla optimi-zacióndelosprincipalesparámetros,entrelosqueseencuentranel costey el área.Porlo tanto,el númerodemódulosdel procesadordeberátenderal mínimocon la consecuenteutilizaciónde sistemascon móduloscompartidos.No obstante,la mejoraen el númerode componentesfuncionalespuedellevar asociadaun empeoramientoen otrosparámetroscomopuedeser lavelocidad(al aumentarel retrasodela lógicacombinacional).Paraello, debemosabordardossituaciones:

• Reusodeunidadesfuncionales,detal formaquesereduzcael númeroy costede lasunidadesrequeridaspara ejecutartodas las operacionesdel diagramaASM. Estasituaciónesposiblesiemprey cuandoexistandosoperacionesdela mismanaturalezaenciclosdeoperacióndiferentes;asísólodeberemosseleccionarlasentradasoportu-nas en cada ciclo.

• Reusodeunidadesdealmacenamiento,detal formaquesereduzcael númerodeuni-dadesparaalmacenartodoslos resultados,parcialesy finales,deun diagramaASM.Estasituaciónesposiblesiemprey cuandoexistandosresultadosqueno convivanenlos mismosciclos; así sólo deberemosseleccionarlas entradasoportunasen cadaciclo.

Veamosun ejemplo de esta reutilización. En la figura 6.25 mostramosuna parte de undiagramaASM. En estaporción,cadacaja de estadosforma un bloqueASM, es decir, unestadodel controlador. Por lo quepodríamossolapartodaslas operacionescomunes.En estecasotendríamoscomooperaciones:sumas(enlosestadosE5y E6),resta(enel estadoE7)y elvalor máximo (en el estadoE8). Por lo tanto, con un solo módulo, un sumador/restador,podríamosrealizartresoperacionesdiferentesya queserealizanenciclosdiferentes,mientrasque el valor máximo se debería implementar con un módulo diferente.

Paradeterminarlasentradascorrectasencadainstante,seseleccionanconmultiplexores(u otroselementoscon unafuncionalidadequivalente,comopuedenserbuseso dispositivostriestado),cuyasseñalesde selecciónvendrándeterminadaspor el estadoen el queestén,esdecir, porel controlador. Porestemotivo esprecisodefinirel procesadorantesqueel controla-dor. Parael casode las salidasno esprecisoun demultiplexor, sino habríaquemanipularlashabilitaciones de los registros; pero se ha elegido ese esquema por claridad en el dibujo.

Con respectoa la reutilizaciónde las unidadesde almacenamiento,estehechosólo es

Page 23: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 99

posiblesi no existe solapamientotemporalde los datos.Por lo tanto,si suponemosque losdatosno sevana utilizadosenel restodel diagrama(exceptolasentradasA, B y C), podemosobservarquela vidadelossiguientesdatoscoincideconla mostradaenla tabla6.2.La señalRdebetenerun tiempodevidacorrespondientea losestadosE5,E6y E7(aunquenosenecesiteenE6, sedebemanteneralmacenadaya queesnecesariaenE7), la señalD lo tendrácorres-pondientea E6,E7 y E8, la señalJ lo tendrácorrespondientea E7 y E8,y la señalH lo tendrácorrespondientea E8. Luego esnecesarioun total detresregistrosparaalmacenarD, J y otromásqueseráutilizadopor R y H, ya quesonlas únicasseñalesqueno estánsolapadaseneltiempo.Paraintroducir el datocorrectoen el registro seactúaigual quecon los módulosdelprocesador, esdecir, utilizandomultiplexorescuyaselecciónserácontroladapor el controla-dor.

3.5. Ejemplo de diseño R TL

Paraterminardeafianzarlos contenidosexpuestosvamosa realizarel procesocompletocon un mismo problema.

E5 E6 E7 E8

R X X X

D X X X

J X X

H X

Tabla 6.2. Ciclos de operación donde son válidos cada señales del diagrama de la figura 6.25.

R <= A + B

D <= C+D

J <= R - D

H <= max(D, J)

Figura 6.25.- Porción de un diagrama ASM, junto a una posible implementación.

E5

E6

E7

E8

+ / -

E7E6E5 E7E6E5

suma en E5 y E6

resta en E7

E7E6E5

R

D J

A C B

max

E8E5

Page 24: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática100

3.5.1. Especificaciones del diseño

El sistemasobreel queserealizaráel diseñosemuestraen la figura 6.26,de tal formaquesecontrolaráel nivel deun tanquede líquido. En ella podemosdistinguirel esquemadeltanquey susoperaciones.Porlo tanto,tenemosdosseñalesdecontrol,C1 y C0, quedetermina-rán la operaciónquehayquerealizary el detectordenivel del tanque,N, quenosindicarálacapacidaddellenadoencualquierinstantedetiempo.Así mismo,tendremosunaentradamás,denominadaR, paraun llenadopreciso,y dosseñalesdecontroladicionales,inicio y parada,para el comienzo de la operación y una parada de emergencia.

La operacióndeberáempezarpor un pulsodela señalde inicio. Traslo cual,comenzarála operacióndeterminadapor las señalesde control de operación.Estaoperaciónse deberámantenerhastaquecambienlas señalesde control de operación,o bien si sepulsala señalparada. En el casodequesepulsela señalparada, el sistemadeberáir a un estadoinicial deespera,del cual saldráconun pulsode la señalinicio. En el casodequehayancambiadolasseñalesdecontroldeoperación,el sistema,despuésderealizarla operaciónprevia, deberárea-lizar la nueva operación.

Consideraciones:

• Tantoel detectordenivel comoel nivel de llenadoprecisodeberánestarcodificadosen binario natural.

• Lasseñalesdeentrada y salida sontalesquetomaránel valor ‘1’ cuandodejenpasarel líquido (llave abierta) y ‘0’ cuando no dejen pasar el líquido (llave cerrada).

3.5.2. Diagrama ASM

El sistemadecontroldescritocon lasespecificacionesanteriorespuedeserdescritoconel diagramaASM de la figura 6.27.En estediagramapodemosdistinguir seisbloquesASM,que vamos a analizar a continuación.

Det

ecto

r de

nive

l

salida

entrada

0 0 --> No operación0 1 --> Vaciado1 0 --> Llenado1 1 --> Nivel = R

C1C0 --> Operación

Figura 6.26.- Esquema de un controlador de nivel de un tanque de líquido.

Page 25: TEMA VI: DISEÑO SECUENCIAL MSI

TE

MA

VI: D

ISE

ÑO

SE

CU

EN

CIA

L MS

I101

entrada <= ‘0’salida <= ‘0’

inicio = 1

C1C0

parada = 1

parada = 1

nivel > 0entrada <= ‘0’salida <= ‘1’

parada = 1

nivel < max entrada <= ‘1’salida <= ‘0’

parada = 1

nivel > Rentrada <= ‘0’salida <= ‘1’

nivel < Rentrada <= ‘1’salida <= ‘0’

entrada <= ‘0’salida <= ‘0’

NO

SI

SI

NO

1110

00

01

SINO

SI

SI

NO

NO NO

SI

SI

NO

NO

NO

SI

SI

E0

E1

E2

E3

E4

E5

Figura 6.27.- Diagrama ASM del diseño ejemplo a resolver.

Puertos -> C1, C0, inicio,parada, nivel, Rentrada = ‘0’salida = ‘0’

Estado inicial --> E0max, min

Page 26: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática102

El estadoE0 seráel estadode inicio, de tal formaquemientrasno existaun pulsoen laseñalinicio, el sistemapermaneceráendichoestadoabriendoambasllavesdepasoparaman-tener el mismo nivel de líquido.

El estadoE1 decidiráquéoperaciónsedeberárealizaren función de los valoresde lasseñalesdecontroldeoperación,C1 y C0. El sistemapermaneceráenestemismoestadomien-tras la codificación de control de operación es “00”.

El estadoE2 esel estadodeoperacióndevaciado.Sólosepodrásacaral sistemadeesteestadoen dossituaciones:activar la señalparada,en cuyo casodeberáir al estadoinicial; ocambiarel código de las señalesde control de operación,en cuyo casodeberáir al estadocorrespondiente a la nueva operación.

El estadoE3 esel estadodeoperacióndellenado.Sólosepodrásacaral sistemadeesteestadoen dossituaciones:activar la señalparada,en cuyo casodeberáir al estadoinicial; ocambiarel código de las señalesde control de operación,en cuyo casodeberáir al estadocorrespondiente a la nueva operación.

El estadoE4 esel estadodeoperacióndellenadopreciso,por lo queel nivel del tanquedebetendera un nivel fijado por el puertoR. Sólosepodrásacaral sistemadeesteestadoendossituaciones:activar la señalparada,encuyocasodeberáir al estadoinicial; o cambiarelcódigodelasseñalesdecontroldeoperación,encuyocasodeberáir al estadocorrespondientea la nueva operación.

Finalmente,el estadoE5 esel estadoal quesellega desdecualquierestadodeoperación(E2,E3 o E4) si ya sehacumplidola operacióncorrespondiente.De estamanera,no sepodráalterar el nivel del tanque.

3.5.3. Módulos y conexionado del procesador

El sistemaquequeremosdiseñarsetratade un controlador, por lo quesu mayorparteestaráformadoporel controlador. Luegoel procesadorestaráformadopor losbloquesnecesa-rios para las diferentes tomas de decisión, y no para el procesado de las señales.

En nuestrocasoparticular, el procesadorestaráformadopor comparadores,necesariospara tomar las decisiones oportunas. En el diagrama observamos tres comparaciones:

• Nivel del tanque con el nivel ‘0’, en el caso de la operación de vaciado.

• Nivel del tanque con el nivel máximo, en el caso de la operación de llenado.

• Nivel del tanqueconel nivel dellenadopreciso,enel casodela operacióndellenadopreciso.

Luego, unaposibleopciónseríautilizar trescomparadoresconsuscorrespondientesentradas.No obstante,estaelecciónno seríaóptimaen cuestiónde recursosya queningunacompara-ción coincideenel tiempoconlasotras.Así queconsideraremosun únicocomparadorconlasentradasmultiplexadassegún la operaciónencurso.El esquemadel procesadorseríael mos-trado en la figura 6.28.

La opción elegida seráútil a nuestrosistemaen el casode que los requerimientosde

Page 27: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 103

velocidadnospermitamantenerel retrasocorrespondientea la conexión anterior, esdecir, unmultiplexor conun comparador. En casocontrariodeberemosvolver a estepuntoy continuarcon otra opción más recomendada para las especificaciones.

3.5.4. Controlador

Pararealizarel diseñodel controlador, debemosobtenerenprimer lugar el diagramadeestadocorrespondiente.Paraello, basándonosenel diagramaASM, utilizamoslos diferentesbloquesASM comoestadosdel controlador. Lasentradasdel controladorseránlasentradasdecontrol(inicio, parada, C1 y C0), y lasseñalesdeestadodelprocesador(lassalidasdelcompa-rador);encambiolas salidasdel controladorseránlas salidasdecontrol (entrada y salida) ylassalidasdecontroldel procesador(lasseñalesdeselecciónparael multiplexor quedetermi-nará las entradas del comparador). El diagrama de estados es mostrado en la figura 6.29.

a>ba=ba<b

A>BA=BA<B

A

B

n

n

n

n

n

E2

E3

E4‘0’‘1’‘0’

‘0’

max

R

nivel

Figura 6.28.- Esquema del procesador del ejemplo de diseño.

E0entrada = 0salida = 0

E5entrada = 0salida = 0E1

E2

E3

E4

inicio

inicio

parada

parada

parada

C1 C0

C1C0

C1C0

C1C0

>, 01, ‘0’

<,10, max

<,10, R>,01, R

not >

not <

=

Figura 6.29.- Diagrama de estados del controlador del diseño ejemplo.

Page 28: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática104

Vamos a indicar algunos comentarios breves sobre el diagrama.

• Las etiquetas de las transiciones corresponderán al formato:entradas, llave_de_entrada llave_de_salida, señales de control

• Parasimplificarel diagramasóloseconsideraránen las transicionesaquellasseñalesque son relevantes.

• Enel casodequeunasalidaseafuncióndeundeterminadoestado,y nodeunacondi-cióndeentradas,seindicarádentrodel recuadrodelestado.Porejemplo,siemprequeestemos en el estado E0, ambas llaves estarán abiertas para no alterar el nivel.

• En el casodela transicióndel estadoE4 al E5,setendríaquecumplir quelascompa-racionesno fuesenni mayorni menor, por lo queal disponerdel terminaligual,sehaoptadopor la utilizaciónde esteterminal.De estaforma eliminamosla puertaANDnecesaria para garantizar la condición.

• Cuandosealcanzael estadoE1, lassalidasdecontrolnodebencambiaryaquepuedeprovenir decualquiercódigodeoperación.Estasituaciónsepuedeconseguir dedosformasdiferentes,basadasen el almacenamientode estasseñalesen un biestable:activaro desactivarel terminaldehabilitacióncorrespondiente;o realimentarsuvaloractual.Comolas salidasde control sonun solo bit y sólo esnecesarioun biestable,vamosaelegir la segundaopciónporsi el biestableutilizadono tieneentradadehabi-litación.

Unavezquedisponemosdeldiagramadeestados,pasamosa la implementacióndelcon-trolador. Paraello, seguimoslospasosdelflujo dediseñomostradoenel tema4: minimizacióndeldiagramadeestados,asignacióndeestados,tabladetransición,tabladeexcitacióne imple-mentación lógica.

• Minimización del diagrama de estados.Estepasono sellevaráa caboparaquela coincidenciaconel diagramaASM depar-tida, y por tanto del procesador, sea total.

• Asignación de estados.En estetipo de diseños,en los quehay un elevadonúmerode estados,unacodifica-ción muy utilizadaesla conocidacomoone-hot. Estacodificaciónsebasaenutilizarunaseñalpor cadaestado.De estaforma, podemosobtenerunaexpresiónrelativa-mentesencillaa partir del diagrama.Estasoluciónno esproblemáticaya queal tra-tarsede un circuito síncrono(y generalmente)con flip-flops, los problemasde lascarrerasno tendránefecto.Siguiendoestacodificación,la señaldeestadodel estadoinicial sería:

E0 =inicio·e0 + parada(e2+e3+e4)

• Tabla o ecuaciones de transición.Al partir directamentedesdeel diagramade estado,daremosdirectamentelas ecua-cionesde transición.Estasecuacionesno seránnecesariamentemínimasya quenoseránaprovechadaslascondicionesdeinespecificación.No obstante,al considerarlarelacióntiempodediseño/ optimización,observamosqueestasoluciónesaceptable.Luego, las ecuaciones de transición obtenidas se muestran a continuación:

E0 =inicio·e0 + parada(e2+e3+e4)

E1 = inicio·e0 +C1·C0·e1 +parada(mayor·e2 + menor·e3 +igual·e4) + e5

Page 29: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 105

E2 =C1·C0·e1

E3 = C1·C0·e1

E4 = C1·C0·e1

E5 =mayor·e2 +menor·e3 + igual·e4

entrada = e3·menor + e4·menor + e1·entrada

salida = e2·mayor + e4·mayor + e1·salida

sel_0 = e2

sel_max = e3

sel_R = e4

• Tabla o ecuaciones de excitación.En estecaso,la mayoríade controladoresson implementadosutilizando biestablestipo D, en los que las tablas de excitación coinciden con las de transición.

• Implementación lógica.Una vez queseha separadoel comportamientosecuencialdel combinacional,pasa-mosa obtenerel circuito lógico segúnlos métodosdela lógicacombinacionalvistosenla asignaturadel cuatrimestreanterior. Comoya tenemosexpresadaslasfuncionescomofórmulaslógicas,pasamosa obtenerdirectamenteel circuito lógico. No obs-tante,previo a estepasodebemosobtenerla codificacióncorrectade las seleccionesdel multiplexor. Todo ello se muestra en la figura 6.30.

3.5.5. Conexionado global

Por último, sedebeunir el procesadory controladorenun únicocircuito utilizandolasseñalesde estadoy de control del circuito correspondiente.Por lo tanto,el circuito global semuestraen la figura6.31,dondelasseñalesexternassehanmarcadoennegrita paradiferen-ciarlas de las conexiones internas (las cuales no se han puesto para clarificar el esquema).

Comosecomentóal comienzo,la partedemayorenvergaduraseencuentraenel contro-ladoryaqueestaesla funcionalidadprincipaldel circuito.No obstante,esteejemplonossirveparailustrar la diferenciaentreel procesador(quepor lo generalcontendrádispositivosMSI,talescomosumadores)y el controlador(que,al serun autómatafinito, por lo generalconten-drá puertas y biestables).

3.5.6. Consideraciones finales

Porúltimo, el siguientepasoconsisteenverificarqueel circuitoobtenidocumpleconlasespecificaciones de partida.

Lasespecificacionesdepartidasepuedendiferenciarendosgrandesgrupos:decompor-tamientoy decaracterización.En el casode lasespecificacionesdecomportamiento,sedebegarantizarla funcionalidaddeldiseñorequerido.Encambio,enlasespecificacionesdecaracte-rización se debegarantizarlas característicasrequeridas,como puedenser el consumodepotencia o la velocidad de operación.

Page 30: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática106

Ennuestrocasoparticular, vamosacomprobarlasespecificacionesdecomportamientoatravésdeunasformasdeondatal querecorrantodoel controlador. Enla figura6.32mostramoslas formas de onda mencionadas anteriormente. Podemos apreciar las siguientes señales:

• Señal de inicio

• Señal de parada

• Señal C1

• Señal C0

• Señal de nivel del tanque

S1 S00 00 11 01 1

Selección

‘0’maxR--

S1 = sel_R = e4S0 = sel_max = e3

D Qentrada

D Qe0

D Qsalida

inicio

e0

paradae2

e3e4

inicio

e0

C1C0e1e2

mayor

e3

menor

e4

igual

parada

e5

D Qe1

D Qe2

C1C0e1

D Qe3

C0C1e1

D Qe4

C0C1e1

D Qe5

e2

mayor

e3

menore4

igual

e2

mayor

e4

mayore1

salida

e3

menor

e4

menore1

entrada

Figura 6.30.- Esquema lógico del controlador del diseño de ejemplo

Page 31: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 107

D Qentrada

D Qe0

D Qsalida

inicio

e0

paradae2

e3e4

inicio

e0

C1C0e1e2

mayor

e3

menor

e4

igual

parada

e5

D Qe1

D Qe2

C1C0e1

D Qe3

C0C1e1

D Qe4

C0C1e1

D Qe5

e2

mayor

e3

menore4

igual

e2

mayor

e4

mayore1

salida

e3

menor

e4

menore1

entrada

Figura 6.31.- Esquema lógico del controlador del tanque de líquido.

a>ba=ba<b

A>BA=BA<B

A

B

n

n

n

n

n

01

10

11‘0’‘1’‘0’

‘0’max

R

nivel

e2 e3

0 1mayorigualmenor

PROCESADOR

CONTROLADOR

Page 32: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática108

• Estado en el que se encuentra el controlador

• Entrada del comparador (ent_comp)

• Resultado de la comparación (comparación)

• Señal de la llave de entrada

• Señal de la llave de salida

• Señal de reloj del sistema

En el casode lascomparacionessóloseha identificadolos valoresenaquellosestadosen losqueseutiliza suvalor;enel restodelosestados,al no tenerningunarelevancia,nosehanindi-cado ni el valor de la entrada ni el del resultado de la comparación.

Podemosapreciarquesehanincluido la mayoríade lassituacionesen lasquesepuedeencontrarel sistema:inicio, paraday cualquieradelasoperaciones,finalizadaso sin finalizar.Segúnel diagramapodemosver quela operacióndeparadasóloserealizarácuandoestéche-queandolasseñalesdecontroldeoperación,y no cuandoestérealizandoun pasodela opera-ción, luego puedequesedebieradejaractiva estaseñalhastaquesellegueal estadoE0.En elcasode que quisiéramosactivar la paradadesdecualquierestadodeberíamosmodificar eldiagrama ASM, tal que en cada bloque ASM se incluya la caja de selección de parada.

Con respectoa las especificacionesde caracterización,no se ha indicadoninguna.Amododeejemplovamosa analizarunaespecificaciónderetraso.Paragarantizarla operacióncorrectasedebeverificar queel tiemponecesarioparael cambiode valor en el detectordenivel seasuperioral retrasodel sistemaparaquenoexistaefectorebote.Enel casodenoveri-ficarseestaespecificación,deberíamosir a implementacionesconretrasomenor, peroa costade incrementarlos recursos;o la utilización de unallave con un caudalmenor(por lo queelcambio de los sentidos de las comparaciones requerirán un tiempo mayor).

4. Temporizadores.

Dentrodela mayoríadeloscircuitossecuenciales,hacemosusodeseñalesdereloj, o ensudefecto,deseñalesperiódicas.Estasseñaleshansidotratadashastael momentocomoseña-lesexternasa nuestrosistema,y por tanto,no hemosconsideradosugeneración.No obstante,su generaciónes función de sistemassecuenciales(que no entraríandentrode la definicióndadaenestaasignatura)denominadosgenéricamentetemporizadores.Unadefiniciónmásfor-mal de éstos puede ser la siguiente:

Un temporizador es aquel sistema capaz de volver a un estado inicial des-pués de un determinado espacio temporal, según se cumpla una determi-nada situación particular.

Consideremosel comportamientodel circuito mostradoen la figura 6.33. CuandolaseñalA seencuentraa nivel bajo, la salidaestáa nivel alto. En cambio,cuandola señalA seencuentraanivel alto, la salidacambiadeestadocadavezquetranscurreel retrasodel inversory dela puertaAND. Porlo tanto,encontramosunasituaciónenla quesevuelveal estadoante-rior despuésdequetranscurraun determinadotiempo(valor analógico,por lo queel circuitocaefueradela definicióndecircuito secuencial)aunqueno seproduzcaningúncambioenlasseñalesdeentrada.Cuandoestoscircuitoscarecendeseñalesdeentrada,recibenel nombrede

Page 33: TEMA VI: DISEÑO SECUENCIAL MSI

TE

MA

VI: D

ISE

ÑO

SE

CU

EN

CIA

L MS

I109

inicio

parada

C1

C0

nivel

estado

ent_comp

comparación

entrada

salida

reloj

E3E1E3E1E3E5E1E3E5E1 E0E1E0 E1E4E1E4E1E4E5E1E2E1E2E5 E1E3

00RRRmaxmaxmaxmaxmax

=>=<>===<<

Figura 6.32.- Comportamiento funcional del circuito obtenido a través del diagrama ASM.

Page 34: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática110

generadores de impulsos ya que no realizan ninguna otra función lógica.

Los temporizadorespuedenclasificaren dosgrandesgrupos:temporizadoresno reali-mentadosy temporizadoresrealimentados.En los temporizadoresno realimentados,la depen-denciatemporalvienedeterminadapor un elementode retraso,comosepuedeapreciaren lafigura6.34.Cuandola señaldeentradaA tomael valor lógicoalto,existeunespaciotemporal,determinadopor∆, enel quelasdosentradasdela puertaAND tienenel valor lógicoalto,apa-reciendoenla salidaunpulsodenivel bajocuyaduraciónesaproximadamenteel tiempointro-ducido por el elementode retraso.Básicamentepodemosdecir que estetipo de circuitosaprovechanlassituacionestípicasde los azaresde la lógicacombinacional.Los elementosderetrasopuedenserformadosdemuydiversaforma,comopuedenserredesanalógicasRCo unnúmero par de inversores conectados en cascada.

Enel casodetemporizadoresrealimentados,estamosantecircuitossecuencialesasíncro-nosqueoperanen el modofundamental,por lo queel almacenamientode la informaciónserealizapor realimentacióndirecta.En estecaso,el tiempode los pulsosestarácondicionadopor elementosde retrasoexplícitos y/o los retrasosde la lógica del circuito en cuestión.Unejemplodeestetipo de temporizadoresesel mostradoen la figura6.33.Si noscentramosenlos generadoresdeimpulsos,la característicafundamentalesquecarecendeestadosestables,por lo quetambiénrecibenel nombredecircuitos astables. La ideaconsisteenlograrun cir-cuito cuya función lógica sea de la forma:

Q = q

el cualno tendráningúnestadoestable.La formamásdirectadeobtenerdichafunciónlógicaserála conexión en cascadade un númeroimpar de inversores,comosemuestraen la figura6.35.El problemade estegeneradorde impulsosconsisteen el pococontrol existenteen elperiodode la señalobtenida.Esteperiodoserán·tinv, donden es el númerode inversoresconectadosencascaday tinv esel retrasodeun inversor. El retrasodecadainversorvaadepen-derdemultituddefactores,entrelosqueseencuentrala tecnologíadefabricación.Además,elretraso es diferente para cada transición, por lo que la señal tenderá a ser asimétrica.

AQ

Q

A

Figura 6.33.- Temporizador formado por una puerta AND y un inversor.

AQ

Q

A

Figura 6.34.- Temporizador no realimentado.

Page 35: TEMA VI: DISEÑO SECUENCIAL MSI

TEMA VI: DISEÑO SECUENCIAL MSI 111

Paratratardeminimizaresteproblemaen la mayormedidade lo posible,generalmenteseintroducenelementosderetrasocuyovalor seamuy superioral de los inversores.Conestamedida se logran dos objetivos:

• Minimizar la dependenciacon la tecnología,ya queal serdespreciableslos retrasosde los inversores, también lo serán sus variaciones.

• Tenerun mayorcontroldelos periodosdelos impulsos,ya queel retrasoescomúnatodas las transiciones, y muestra un rango de variación menor que el de un inversor.

Por lo tanto,en la FIGURA semuestraun posibleesquemadeun generadorde impulsosconelementos de retraso.

Q

Figura 6.35.- Generador de impulsos construido mediante inversores.

Q

Figura 6.36.- Generador de impulsos construido mediante inversores y elementos deretraso.

Page 36: TEMA VI: DISEÑO SECUENCIAL MSI

Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática112