Professional Documents
Culture Documents
Introducción
La siguiente investigación se realiza con el fin de seguir reforzando el proyecto de trabajo de grado
de maestría construcción de módulo de enseñanza de electrónica digital usando FPGA. El tema que se
va a tratar ahora va dirigido al diseño de circuitos secuenciales, ¿qué diferencia tiene con las tres
últimas entregas?. Que aquí se hará énfasis en el diseño, arrancar el proyecto desde cero y también se
hará hincapié en las aplicaciones en ingeniería. Hasta este momento se mostraba el hardware a describir
en VHDL y no se explicaba cómo se llegaba a ese circuito. En esta entrega se cambia un poco eso, y
por lo tanto se mostrará todo desde el comienzo. Para eso se necesitan herramientas como los mapas de
Karnaugh, el Diagrama de Estados y toda la teoría inicial de cada circuito.
Después de haber desarrollado los temas de los Flip – Flops, CONTADORES y Registros se elige
ahora el tema del diseño de circuitos secuenciales para explicar usando las herramientas de electrónica
digital de donde proviene cada uno de los componentes usados en un montaje particular. Al igual que
las otras guías entregadas después de tener el circuito lógico se le hará su descripción en VHDL. Como
este material se piensa sea didáctico se habla de todos los aspectos relacionados con el tema, aunque al
final se termine teniendo una serie de líneas de código que pareciera que no dicen nada pero, si
entendemos lo básico seguro se llega a comprender más rápido la codificación. Por ejemplo, estar
claros que los circuitos secuenciales necesitan un reloj (clk de Clock, reloj en Inglés) sirve para
entender la codificación del clock en VHDL if (clock = ‘1’ and clock ‘event) then y también la del
proceso en la descripción VHDL, ésta se hace así process(clk, reset, shift_load) lo que quiere decir
que al haber cualquier cambio en estas palabras claves dentro el paréntesis ocurre una acción en la
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
investigaciones separadas debido a la especialización y profundidad que se puede llegar a tener con los
softwares actuales. Por ejemplo LOGISIM, el Simulador de Construcción de Circuitos Digitales y el
software BooleDeusto, son muy completos y vale la pena dedicar más espacio a estos desarrollos. Un
punto importante a partir de ahora es que se comienza a mencionar y se profundizará más el trabajo
con los llamados Diagramas de Estados y las Maquinas de Estado Finito. Como se ve, llegar a lo que
parece lo más importante como FPGA – VHDL lleva su tiempo y hay obligatoriamente que tocar
muchos temas y aclarar muchos aspectos antes de establecer la codificación en VHDL.
Después de hablar lo básico de Circuitos Secuenciales y mostrar sus aspectos más relevantes viene la
codificación del circuito en VHDL. A cada codificación le sigue el RTL, que es el hardware producto
del proceso de síntesis, dado por el software Quartus II. El siguiente diagrama muestra los aspectos de
interés obtenidos con el Quartus II
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Diagrama que esboza las cosas que se pueden hacer con el software Quartus II
Se cierra la investigación con las aplicaciones, se habla un poco de la tecnología más avanzada que
se podría llegar a tocar en futuras investigaciones, conclusiones, comentarios y las referencias de
Internet. Con respecto a las referencias de Internet quiero agregar que se hizo énfasis en resaltar a los
autores de libros, canales de youtube, autores de láminas de power point y otras referencias
colocándolas de manera más visible de lo habitual a lo largo del trabajo. Lo normal es colocar la
dirección web y hacer un comentario, bueno aquí además de eso se coloca una foto de la portada del
libro, se toma una foto de la primera lámina de power point, se toma una foto de google map para
resaltar donde queda ubicada tal universidad. De esa forma pienso dar más importancia a las personas
que con su trabajo hacen posible trabajos como el que les entrego hoy y esto los motiva a seguir en
nuevas investigaciones
Pedro Landaeta
Landaeta Pedro
Prof Jubilado de la uPT de aragua “fbf”
2463
ENERO 2019
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Un circuito secuencial es un tipo de circuito lógico. Envía una salida que depende de la entrada
actual, además de la historia de la entrada. Eso lo hace diferente de un circuito combinacional, cuya
salida depende únicamente de la entrada actual. Dada su dependencia de la historia de entrada (o
entrada almacenada), los circuitos secuenciales son particularmente útiles en la memoria de acceso
aleatorio (RAM, por sus siglas en inglés) de la computadora. Los dos tipos de circuitos secuenciales
son circuitos síncronos y circuitos asíncronos.
Los circuitos secuenciales utilizan un concepto de la teoría de circuitos llamado lógica secuencial. La
lógica secuencial se basa en el estado de las entradas, así como en los datos almacenados en la memoria
del circuito. Uno de los aspectos más importantes de la lógica secuencial es el concepto de "Flip-
Flops". Los Flip-Flops [FF] son conmutadores internos en un circuito secuencial que son, ya sea
abiertos, permitiendo el flujo de información; o cerrados, inhibiendo el flujo de información. Depende
de una serie de factores establecidos por el ingeniero. Esto permite la construcción de sistemas
complejos que pueden completar una amplia gama de funciones. Comentario aparte, aquí lo de
sistemas complejos se trata simplemente de algo de mayor envergadura. Para nada se está hablando de
los sistemas complejos que se refieren a CAOS, Sistemas Dinámicos y Procesos Cognitivos. Y esto se
mantiene así para todo el trabajo.
Figura 1.- Figura que refleja los tipos de circuitos lógicos existentes
Dirección web donde se encuentra la información sobre los conceptos básicos de lógica secuencial
https://www.youtube.com/watch?v=zG6ZyG-l7gs
Material de lógica Secuencial muy completo tocando todos los aspectos básicos de interés inicial
Universidad Nacional Autónoma del Estado de Hidalgo y el CEDICAME: Centro de Innovación para
el Desarrollo y la Capacitación en Materiales Educativos http://cidecame.uaeh.edu.mx/
A los circuitos en los que las salidas dependen no sólo del valor actual de las entradas, sino también
de los valores pasados se les denomina secuenciales, ya que su salida depende de la secuencia de
valores que toman las entradas, ver la figura 2.
Para ilustrar cómo es posible que un circuito dependa del valor anterior de las entradas nada mejor
que ver un ejemplo. En la figura 3 se muestra un circuito secuencial en el que la salida S se ha
conectado a una de las entradas de la puerta OR. En el cronograma de la derecha se puede ver la
evolución temporal del circuito. Si se supone que la salida S y la entrada E valen cero inicialmente,
como 0 + 0 = 0 la salida permanecerá a cero mientras la entrada E siga a cero. Cuando E se ponga a
uno, la salida S pasará a valer uno después del retardo de la puerta y a partir ese momento, como E +
1 = 1 la salida permanecerá a uno indefinidamente, haga lo que haga la entrada E.
Como puede apreciar, la salida de este circuito depende no sólo del valor actual de la entrada E, sino
de la historia pasada de dicha entrada. Así, si la entrada E nunca ha valido uno, la salida S valdrá cero,
pero si la entrada E ha tomado alguna vez el valor uno, la salida S será igual a uno, independientemente
del valor actual de la entrada E. El diagrama de estados de la figura 4 ayuda a entender un poco más lo
que aquí se expresa.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Nótese que este circuito, al igual que el resto de los circuitos secuenciales, tiene memoria, que es lo
que le permite reaccionar a una secuencia de entradas. En este caso la memoria no es muy útil, ya que
se pone a uno y no hay forma de volver a ponerla a cero; pero en seguida se verán circuitos en los que
es posible memorizar cualquier valor. En cualquier caso hay que destacar que la memoria se consigue
mediante la realimentación de las salidas. En este circuito se ha realimentado la salida S a una de las
entradas de la puerta OR.
Contenido:
En este texto se realiza una introducción a los conceptos
básicos que se utilizan dentro de los sistemas digitales y
analógicos, remarcando las ventajas de los primeros frente a
los segundos. Su interesante estructura nos brinda un
recorrido por las principales áreas de la computación en
relación con la ciencia matemática en que se basa.
Los sugerentes capítulos que componen este ensayo son:
Álgebra de Boole
Sistemas de numeración
Introducción al lenguaje VHDL
Circuitos Aritméticos
Bloques Combinacionales
Circuitos secuenciales. Fundamentos
Máquinas de estados finitos
Diseño de sistemas complejos: ruta de datos + control
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Como se ve en la figura 8, se cuenta con la misma puerta OR realimentada pero ahora a través de
una compuerta AND. Al hacer esto aparece otra entrada que se diferencia por completo de la salida. Se
cuenta ahora con una tabla de verdad más clara y precisa que la que pudiera hacerse en el circuito de
la figura 6.
Estas señales fueron obtenidas con el software QUARTUS II de la empresa INTEL FPGA. Del cómo
se obtienen las señales, uso del software QUARTUS II y otros comentarios los puede encontrar en la
siguiente dirección web https://es.scribd.com/document/376832662/Guia-de-FPGA-Cyclone-II-de-la-
empresa-ALTERA
Copiando de nuevo el circuito de la figura 8. La idea es llevarlo a un formato más conocido para
nosotros. Como el de los Flip Flops RS por ejemplo hecho en base a compuertas NOR
(a) (b)
Haciendo los ajustes necesarios y los cambios convenientes se puede pasar del circuito de la figura
12(a) al de la figura 12(b). Un detalle, por ser un circuito secuencial este posee memoria, y ahí se
puede corroborar lo que aquí se dice en la figura 12 (a) donde teniendo A = 0 y B = 0 se tiene en la
salida = 0……..esto contradice la tabla I donde se coloca que salida = 1……..No hay ningún error en el
montaje ni en la teoría. Es un problema propio del circuito secuencial, más que problema es una
peculiaridad de los circuitos secuenciales. Y es la historia que ellos traen en el arranque. Por ejemplo
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Ahora, regresando a lo que se estaba comentando en la página anterior de ir del circuito de la figura
12 (a) a la 12 (b) se tiene entonces un leve ajuste en la figura 13
(a) (b)
Figura 13.- Primera aproximación para pasar de (a) a (b)
Y el circuito de la figura 14 se
aproxima bastante al de la figura 13
(b). Se observan las realimentaciones,
las dos entradas y las dos salidas.
Aunque el de la figura 14 resalta una
sola de ellas.
Con esto se llega a donde se
deseaba, que era tener una idea de
donde salían los circuitos
Figura 14.- Segunda aproximación para pasar de (a) a (b) secuenciales básicos.
Se puede demostrar por algebra de Boole que el circuito de la figura 16 es idéntico al de la figura 17.
Por ejemplo la primera compuerta NOR se hace con la puerta OR más el inversor. Y la segunda
compuerta NOR de la figura 17 se logra con los dos inversores en las entradas de la compuerta AND.
Es decir, la salida de la AND es S = 𝐴̅ . 𝐵̅ , y se puede demostrar por Algebra de Boole que esto
es similar a S = 𝐴 ̅̅̅̅̅̅̅̅
+𝐵
Figura 17.- Transformaciones necesaria para pasar del circuito de la figura 16 al de la figura 18
El circuito de la figura 16 es lo que se conoce como biestable. Y comparando la Tabla I con la tabla
de verdad del biestable RS (ver tabla II en la página siguiente) se ve que es exactamente igual.
Un biestable (flip-flop en inglés), es un multivibrador capaz de permanecer en uno de dos estados
posibles durante un tiempo indefinido en ausencia de perturbaciones, señales de entrada o entradas de
excitación. Esta característica es ampliamente utilizada en electrónica digital para memorizar
información. Ejemplo clásico las memorias RAM de las computadoras
https://es.wikipedia.org/wiki/Biestable
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Lo que viene después en el estudio es agregar a lo anterior una circuitería de habilitación. Ahí si se
tiene por completo el Latch SR. Para convertirlo en Flip Flop se le debe agregar un reloj para que
sincronice toda la operacionalización del circuito. Se tiene entonces los Latch asincrónicos y los Flip
Flop sincrónicos.
Para evitar los valores no permitidos del Flip Flop SR se creó el Flip Flop JK.
Luego con el SR y con el JK se crean los Flip Flops D y T respectivamente.
Toda la teoría de funcionamiento, aplicaciones y conceptos básicos de Latch, Biestables y Flip Flops
se encuentra en la guía que puede descargar de la siguiente dirección web
https://es.scribd.com/document/396832271/Flip-Flops-Con-VHDL de mi propia autoría.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
A continuación un resumen de dos láminas de power point bajado de Internet donde se deja ver los
conceptos de Flip Flops, tablas de verdad y tablas de transiciones
Las tablas de excitación para cambios de estado es lo que interesa para un proyecto usando circuitos
secuenciales. Esto define todo el proyecto y no importando la cantidad de entradas dará como resultado
una circuitería que al montarla en un breadboard (tablero de montajes) o describirla con VHDL arrojará
los resultados definidos inicialmente en el diseño.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Figura 20.- Circuito resultado del proceso de síntesis hecha por el software QUARTUS II
del circuito de la figura 18
Se cierra esta parte con la figura 20 donde se ve el circuito resultante luego del proceso de síntesis de
la descripción hecha en VHDL. Como se aprecia en el circuito se observa en azul un Flip Flop tipo D.
Es de señalar aquí que los Flip Flops tipo D son los usados en la arquitectura de las FPGA para
construir los circuitos secuenciales. Revise el siguiente material para reforzar la parte de arquitectura de
las FPGAs https://es.scribd.com/document/394770039/Arquitectura-de-Las-Fpga de mi autoría.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Hay dos tipos principales de circuitos secuenciales, y su clasificación depende de los tiempos de sus
señales. Estos son,
Circuito Secuencial Asíncrono: que No dependen de ninguna señal de reloj, y
Circuito Secuencial Síncrono: Dependen de un reloj.
https://sites.google.com/site/circuitossec/tipos
Aunque es un reloj con una frecuencia determinada y con un periodo T fijo el sistema no tiene
sincronismo porque el sistema 2 posee la misma señal de clock pero con un retardo de tiempo.
Y la número 2 que se ve en la figura 23. El pulso lo envía el usuario del sistema cada vez que quiera
ver la respuesta de éste. Lo asíncrono existe desde el momento que se verifica por completo que no
existe periodicidad entre los pulsos enviados al sistema
El Clock y Temporizadores
Ya se ha dicho que los sistemas digitales pueden operar en forma asíncrona o síncrona. Resumiendo,
en los sistemas asíncronos las salidas de los circuitos lógicos pueden cambiar de estado en cualquier
momento en que una o más de las entradas cambie. En los sistemas síncronos los tiempos exactos en
que alguna salida puede cambiar de estado se determinan por medio de una señal denominada reloj o
clock. Esta señal de reloj consiste en una serie de pulsos rectangulares o cuadrados como se muestra en
la figura 25.
Denominaremos periodo al tiempo T entre transiciones sucesivas en la misma dirección, esto es entre
dos flancos de subida o entre dos flancos de bajada. La transición de estado en los circuitos
secuenciales síncronos se efectúan en el momento en el que el reloj hace una transición entre 0 y 1
(flanco de subida) o entre 1 y 0 (flanco de bajada). Entre pulsos sucesivos de reloj no se efectúan
cambios.
1
El inverso del periodo es lo que denominamos la frecuencia f del reloj 𝑓 = 𝑇 . donde la frecuencia
f está dada en Hertz Hz …..y el periodo T en unidades de tiempo, se toma el segundo “s” como
base.
Los circuitos de temporización se requieren frecuentemente para varias aplicaciones. Una puede ser la
de medir el lapso de tiempo que un suiche ha estado en la posición on o en la posición off . También
se ha visto que un circuito de clock es necesario para sincronizar varios componentes en circuitos
secuenciales. Existen muchas formas diferentes de construir circuitos temporizadores, pero el chip
temporizador 555 ha llegado a ser en la industria un estándar para éste propósito.
Clocks
Así como el baterista en una banda ayuda a mantener el resto de los integrantes sincronizados, así
mismo hace el clock en un circuito. Éste se usa para sincronizar un circuito que contiene diferentes
componentes que tienen diferentes retardos de propagación.
Se requiere la sincronización porque los cambios en la señal toman su tiempo en viajar a través de un
circuito. Las inductancias y capacitancias internas en los cables del circuito y los propios componentes
causan retardos. Para el caso en que se requiera mucha más rapidez como en los procesadores de
computadoras que operan en el orden de los Gigahertz, estos son construidos usando cristales de
cuarzo. El 555 no puede ser fabricado para esas frecuencias debido al retardo de propagación interno
dentro de los transistores en el chip, pero puede proporcionar un pulso de reloj confiable para
aplicaciones que no requieren mucha rapidez. A continuación en la figura 27 se muestra el circuito
clásico astable para el 555
En la página siguiente se muestran dos referencias de interés para el tema de temporización, clock,
circuitos sincrónicos y lógica secuencial. El de la figura 28 es un libro de filosofía open source y cuya
dirección web se deja para el que quiera descargarlo; y la de la figura 29 es una presentación que
involucra Flip Flops y temporizadores. Hecha por el Prof William Moscoso de la Universidad de La
Sabana en Colombia https://www.unisabana.edu.co/
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
https://openlibra.com/es/book/download/introduction-to-digital-logic-with-laboratory-exercises
https://www.academia.edu/27422371/L%C3%93GICA_SECUENCIAL_Flip-Flops_y_Temporizadores
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Osciladores a cristal
Existen otros tipos de osciladores que se utilizan para rangos de frecuencias mayores y cuya pureza
espectral es mayor. Estos osciladores están basados en el empleo de un cristal. El cristal de cuarzo es
utilizado como componente de control de la frecuencia de circuitos osciladores convirtiendo las
vibraciones mecánicas en voltajes eléctricos a una frecuencia específica, ver figura 30. Esto ocurre
debido al efecto "piezoeléctrico". La piezoelectricidad es electricidad creada por una presión mecánica.
En un material piezoeléctrico, al aplicar una presión mecánica sobre un eje, tendrá como consecuencia
la creación de una carga eléctrica a lo largo de un eje ubicado en un ángulo recto respecto al de la
aplicación de la presión mecánica. Por las propiedades mecánicas, eléctricas, y químicas, el cuarzo es
el material más apropiado para fabricar dispositivos con una frecuencia bien controlada, ya que sus
características son prácticamente constantes respecto al tiempo y la temperatura. De este modo, cuando
se aplica una diferencia de tensión entre dos caras opuestas de este material se generará una frecuencia
que vendrá determinada, junto con su factor de calidad, por las características del cristal, tales como su
dimensión o la orientación de las superficies respecto a sus ejes.
http://www.dinel.us.es/ASIGN/CE_2T/pracs/2010-2011/p2/practica10.pdf
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
https://www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-c-con-ejemplos/oscilador-de-reloj
Entre las tarjetas de desarrollo con FPGAs más básicas se suelen manejar los 50MHz, este es el
caso de la cyclone ii EP2C5T144C8. La misma dispone de PLLs que pueden elevar la frecuencia de
trabajo hasta 300 MHz, ver la web page http://www.digilogic.es/altera-cyclone-ii-ep2c5t144-fpga/
para más información sobre esta FPGA. Ahora, si se quiere comparar con algún microcontrolador hay
que ser cuidadoso porque para los FPGAs esa frecuencia es una frecuencia de operación real, realizan
sumas, multiplicaciones, divisiones y cambios de estado de un pin a 50MHz, a diferencia de los
microprocesadores que aunque están conectados a un cristal de cierta frecuencia, su frecuencia de
operación es 2 o 4 veces menor debido a la arquitectura que tienen.
Otro detalle es que al igual que muchos microcontroladores y microprocesadores los FPGAs tienen
PLLs internos que permiten multiplicar la frecuencia llegando a 100MHz, 200 ó 300MHz desde
50MHzsin ningún problema. Ver la figura 32 donde se resalta entre otros componentes el cristal de 40
MHz que viene con la tarjeta de la cyclone i
https://nodoelectronico.com/2016/01/01/que-son-los-fpgas-como-funcionan-para-que-sirven-quien-
deberia-utilizarlos/
https://es.scribd.com/presentation/76049642/FPGA
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Diagrama de Estado: Este muestra la secuencia de estados por los que pasa bien un caso de uso,
un objeto a lo largo de su vida, o bien todo el sistema. Es una forma de representación gráfica más
intuitiva de los autómatas finitos basadas en dígrafos con arcos acotados llamados transiciones en los
cuales se ponen los símbolos de tránsito entre un vértice (estado) y otro y se identifican los estados de
partida y los de aceptación del resto. Los diagramas de estados finitos son también representaciones
más cómodas para su elaboración, legibilidad y comprensión de distintos tipos de abstracciones
computacionales de reconocimiento
como los autómatas de pila y las
máquinas de Turing.
Páginas web de referencias
https://www.ecured.cu/Diagrama_d
e_estado
https://es.slideshare.net/faurbano/di
seo-de-circuitos-secuenciales
https://boole-deusto.soft112.com/modal-download.html
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Esta es la primera parte que se ve en el video. Se tratan aquí los temas de Diagrama de Estados, Mapas
de Karnaugh, Flip Flop JK y, se resalta aquí el uso del software Boole Deusto y PROTEUS.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Flip Flop
Se pueden ver el IC 4043, 4044, 7474, el 4027 y el 7476. Estos se encargan en un solo chip ( IC)
de lo que hacen las compuertas en forma discreta. Hay una forma mayor de discretización y es la de
hacer las compuertas a base de transistores, pero no es tema de esta investigación.
Figura 37a.- IC 4043 es un quad (R/S) Figura 37b.- IC 4044 es una latch Quad R/S construido a
construido a base de compuertas NOR base de compuertas NAND
Figura 38a.- IC 4027 flip Flop JK fabricado Figura 38b.- IC 7476 es un Flip – Flop JK dual
con Tecnología CMOS
Circuito integrado comercial Flip-Flops J-K 4027 fabricado con tecnología CMOS:
el cual incluye dos flip-flops J-K (simbolizados en el diagrama como F/F). En el Flip-Flop 1, el
equivalente de nuestra terminal S que fuerza al Flip-Flop a entrar en el estado Q=1 está puesto en la
terminal 9 del circuito integrado (SET 1), mientras que el equivalente de nuestra terminal R que
"limpia" al Flip-Flop poniéndolo en el estado Q=0 está puesto en la terminal 12 del circuito integrado
(RESET 1).
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Flip Flop D
IC 40175
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
o como el circuito integrado CD4175 (también fabricado con tecnología CMOS) cuyo diagrama
funcional interno es el siguiente:
Además de ser fabricado con tecnología CMOS, el Flip-Flop D también ha sido fabricado con
tecnología TTL, de lo cual se muestra como
ejemplo el circuito integrado dual 7474 y el octal
74LS374 (el prefijo "74" indica que pertenece a la
familia TTL de circuitos lógicos, y el sufijo
intermedio "LS" significa Low power Schottky
señalando que es de consumo bajo de energía y de
alta velocidad):
Contadores
A continuación se muestran algunos IC que sirven como contadores digitales. Se comienza con el IC
7490. Contador de 0 a 9 Ascendente en BCD.
Figura 40a.- IC 74192/193 son Contadores Figura 40b.- IC 7493 es un Contador Binario de 4 bits
reversibles. BCD/Binario síncrono TTL
Figura 41a.- IC 74190/191 son contadores Figura 41b.- IC 74160/162 y 74161/163 son contadores
reversibles. BCD/Binario síncrono TTL ascendentes. BCD/Binario síncrono TTL
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Acá se tiene una muestra de los diferentes contadores construidos con IC. Faltan otros pero la idea
era hacer un paseo rápido por esta tecnología para dejar claro que los contadores se pueden encontrar
de otra forma distinta a la conocida hasta ahora que era la de solamente usar unos Flip – Flops en forma
individual o en grupos dependiendo de la cantidad de bits que se quisiera en el conteo.
Otro aspecto importante es que solamente aquí se muestran los contadores TTL, faltan los de
tecnología CMOS.
Además del libro de referencia que he comentado anteriormente que estoy usando para construir este
material, el de la serie Schaum de Principios Digitales. Aquí quiero recomendar el libro de Malvino y
Donald Leach llamado principios y aplicaciones digitales
Los autores hacen aquí una buena comparación y análisis de los contadores
en IC en su página 384
Registros
Aquí se muestran los Registros TTL y los CMOS, una pequeña muestra.
En el mercado existen actualmente varios circuitos integrados que desempeñan su función como
registros, en esta sección se mencionarán algunos de estos registros disponibles en lógica TTL y
CMOS.
Circuito Integrado 74HC373
Este integrado contiene en su interior 8
Cerrojos o Latches tipo D con salidas
triestado. En la figura 3 se observa el
PINOUT. La descripción de sus
entradas y salidas es la siguiente:
D0...D7: Entrada paralelo
Q0...Q7: Salida paralelo
LE: Latch Enable
OE: Output Enable
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
A diferencia de los dos IC anteriores los fabricantes ofrecen circuitos integrados específicos para ser
registros de desplazamiento. El que se estudiará a continuación es un registro de desplazamiento
universal. El símbolo lógico para el registro de desplazamiento /universal de 4 bits, TTL 74194 se
muestra en la figura 45.
Este registro tiene 10 entradas y 4 salidas; estas últimas están conectadas a las salidas normales (Q) de
cada Flip Flop en el circuito integrado.
El 74194 es un registro universal de desplazamiento bidireccional de 4 bits con una muy alta velocidad
de operación y un bajo consumo de energía, cuenta con cuatro entradas paralelas (A,B,C y D) y cuatro
salidas en paralelo (Q1, Q2, Q3 y Q4), una entrada serial para desplazamientos hacia la derecha y otra
hacia la izquierda, un nivel bajo activa la entrada para borrado (clear), entrada de señal de reloj y dos
entradas (S0 y S1) para seleccionar uno de los cuatro modos diferentes de operación del integrado, es
decir si se desea operar como registro de desplazamiento PIPO, PISO (Entrada Paralelo-Salida Serie),
SISO (Entrada Serie-Salida
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Serie) con desplazamiento hacia la izquierda, SISO (Entrada Serie-Salida Serie) con desplazamiento
hacia la derecha o SIPO (Entrada Serie-Salida Paralelo).
Comentario: La opción de los ICs se propone porque aunque la investigación promueve el lenguaje
VHDL y la simulación con PROTEUS, LOGISIM y otros softwares de simulación electrónica. Puede
ser que existan personas que por alguna razón quieran montar en hardware todos los experimentos aquí
planteados. No obstante, también existe la opción virtual para este caso con el software Simulador de
Construcción de circuitos digitales del Profesor Peruano Arturo Miguel de Priego. Aquí sus redes
sociales amiguel@pucp.edu.pe y www.tourdigital.net . Con este software se tiene la opción de
montar los experimentos de una manera muy realista. En este link lo descargas
http://www.tourdigital.net/SimuladorTTLconEscenarios.htm
t t+1
A A JA KA
0 1 1 x
1 0 x 1
Como es una sola variable no se puede construir el mapa de Karnaugh. No obstante, se puede observar
en la tabla III de transición que los datos existentes coinciden con el modo Toggle del Flip Flop JK.
Este modo resulta cuando las dos entradas del Flip Flop son iguales a 1. Viendo los valores resultantes
para JA y KA según la tabla de transición se pueden tomar esos datos como si fuera un mapa de
Karnaugh donde todos los valores son 1……..al hacer eso se puede considerar a JA = KA = 1. El
diagrama de estados de la figura 47 corrobora lo que se desea diseñar. En la cuenta resultante debe
verse como los datos pasan de 0 a 1 y luego vuelve el valor a cero. Esto ocurre indefinidamente
mientras esté alimentado el circuito
Figura 47.- Diagrama de estados del Contador de 1 bit con Flip Flop JK
AB AB JA KA JB KB
00 01 0 x 1 x
01 10 1 x x 1
10 00 x 1 0 x
JA = B KA = 𝐵̅
A / B 0 1 A / B 0 1
0 0 1 0 x x
1 x x 1 1 x
JB = 𝐴̅ KB = B
A / B 0 1 A / B 0 1
0 1 x 0 x 1
1 0 x 1 x x
Figura 52.- Diagrama de estados del Contador de 2 bits con Flip Flop JK
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
https://www.youtube.com/watch?v=i5JHQ1nSTvY
El profesor en este video y los siguientes que encontrarás del mismo autor explica los mapas de
Karnaugh de 2, 3 y 4 variables
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Figura 57.- Diagrama de estados del Contador de 3 bits con Flip Flop JK
Figura 58.- Mapas de Karnaugh para el contador de 3 bits con Flip Flop JK
El video pertenece al canal Aportación Electrónica y fue subido a la red en Noviembre 2017
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
- Luego vienen las librerías usadas necesarias para que el proyecto se ejecute
- Process ( ) …dentro de la arquitectura o architecture en Inglés que Se debe usar porque es una
palabra clave se coloca process ( ) porque dentro del process ( ) es donde se puede usar la
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
- instrucción if…..es como un aparte que permite VHDL para usar códigos de lenguaje
estructurado
- https://www.dte.us.es/docencia/etsii/ii/dcsl/temas/VHDL_isesimulator/at_download/file
- https://www.tamps.cinvestav.mx/~adiaz/Vhdl/01-VHDL-ALuca.ppt
Enlace interesante para profundizar con el lenguaje VHDL. En formato .ppt
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
REGISTROS
El tema que falta por tocar es el de registros. Ya el tema fue tratado anteriormente, puede encontrarla
en https://es.scribd.com/document/394116308/Registros-de-Desplazamiento-Usando-FPGA . No
obstante, aprovechando lo ya investigado se propone estudiar las aplicaciones de estos registros para
que de alguna manera tenga sentido tanto empeño en entenderlos y conocerlos de la forma en que se
está haciendo.
Considerando la transmisión de datos en serie como la clave de las comunicaciones entre equipos
más usada actualmente se tiene el registro PISO Parallel Input Serial Output y el registro SIPO
Serial Input Parallel Output como puntas de lanza para darle una aplicación importante a este tema.
A continuación se presenta una lámina de una presentación del tema de registros realizada en la
Universidad Rey Juan Carlos en Madrid – España. En la misma se presentan los registros mencionados
y los dos restantes como son el Serie – Serie y el Paralelo - Paralelo
Lo que se señala en la figura 63 como salida de datos es lo que vendría a ser el pin de Tx
(Transmisión)…..luego de Tx lo que viene es el canal que se usará para transmitir los datos que puede
ser inalámbrico o cableado
Figura 64.- Registro Paralelo - Serie con Flip Flop RS convertido en FF D de 3 bits
La figura 64 muestra básicamente el mismo circuito de la figura 63 pero ahora haciendo los FF D
usando FF RS. Los dos circuitos poseen multiplexores (MUX) y los dos, como debe ser, poseen dos
botones de selección (para decirlo de alguna manera) que se les conoce como
̅̅̅̅̅̅̅̅̅̅ 𝑜 𝐿𝑂𝐴𝐷
̅̅̅̅̅̅̅̅̅̅ , 𝐶𝐴𝑅𝐺𝐴
𝑊𝑅𝐼𝑇𝐸 ̅̅̅̅̅̅̅̅ 𝑦 𝑆𝐻𝐼𝐹𝑇 𝑜 𝐷𝐸𝑆 𝑑𝑒 𝐷𝐸𝑆𝑝𝑙𝑎𝑧𝑎𝑚𝑖𝑒𝑛𝑡𝑜. Con cero (0) se cargan los
datos en paralelo y con uno (1) se desplazan los bits cargados anteriormente.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Los datos transmitidos desde el registro PISO anterior llegan a un receptor (Rx) donde hay un
registro SIPO que recibe los datos y los manda en paralelo a donde se desee que sean procesados.
Figura 65.- Registro Serie - Paralelo con Flip Flop RS convertido en FF D de 5 bits
Este registro SIPO cierra el sistema de comunicaciones de transmisión de datos. Los ejemplos
colocados aquí no llegan a 8 bits (1 byte) que es lo que normalmente se maneja en computación,
microprocesadores o transmisión inalámbrica de datos.
A continuación se mostrara la descripción de los registros PISO y SIPO usando lenguaje VHDL
con el software QUARTUS II de la empresa INTEL FPGA. El Chip FPGA usado es la cyclone II
EP2C5T144C8, posee 89 pines para manejar entradas y salidas de datos. Con esta se puede construir
dos registros….uno PISO y otro SIPO de 16 bits cada uno ó 2 bytes cada uno para hacer pruebas
de Transmisión de datos serial. Es una propuesta que es factible ya que la capacidad de la FPGA lo
permite.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Figura 67.-
Diagrama del hardware que
se desea describir en HDL
Figura 69.- Síntesis del circuito Registro Entrada Paralelo y salida Serie
Figura 71.- Salida del registro PISO con Variación del tiempo de Shift - Load
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Figura 72.- Salida del registro PISO con Variación del tiempo de Shift - Load
Nota: la figura 67, se muestra de nuevo abajo para resaltar que estructura es la correspondiente a un
circuito Secuencial Síncrono
También hay que agregar muy rápidamente, sin más comentarios, que esta estructura es la
correspondiente a un circuito asociado a un modelo de MOORE, que corresponde a Maquinas de
Estado Finito (FSM por sus siglas en Inglés). A continuación se presenta el modelo general de FSM de
MOORE
Figura 75.- Síntesis del circuito Registro Entrada Serie y salida Paralelo
Figura 76.- Señales de salida para cada Flip Flop (FF) del registro
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
b) Memorias RAM
c) Computadoras
d) Microprocesadores
Sistemas Secuenciales
Es la unión básicamente de todos los conceptos aquí vistos. Imagínese un equipo electrónico que
tenga en su interior Flip Flops, Contadores y Registros. La unión de todas esas partes es lo que
constituye un sistema.
No debe confundirse con sistemas secuenciales que tienen que ver con Control Industrial. No es el
tema de esta investigación. Aquí les dejo el libro DESARROLLO DE SISTEMAS SECUENCIALES
de ANTONIO RODRIGUEZ MATA; JULIAN COCERA RUEDA para que vean la diferencia
entre lo que propone el libro y los sistemas secuenciales en electrónica digital
En Conclusión
1) Hay varios tipos de Sistemas Secuenciales, por la variedad de formas de cargar los datos
y su forma variante de poder obtener la salida ya sea en formato serie o paralelo. Todos
los sistemas secuenciales son síncronos. Tienen como punto de partida los Flip – Flops
(FF). Los sistemas secuenciales se pueden construir a base de FF, que vienen en IC o
comprarlos ya convertidos en IC comerciales más especializados. Todo esto apoyado
con diagramas de estados se hace más ilustrativo a la hora de diseñar.
2) A nivel de software se van a construir los sistemas secuenciales usando VHDL. Ese
programa o descripción que es la forma correcta de hablar en el mundo de las FPGAs
se inserta en el chip FPGA y se tiene un sistema secuencial construido a base de
códigos.
3) A todos los sistemas secuenciales les hace falta un reloj para darle su sincronismo. Este
reloj se puede construir en base a IC 555 ó a cristales de cuarzo
4) Los sistemas secuenciales que se pueden diseñar con FPGA son muy variados, y la
CYCLONE II de INTEL FPGA cuenta internamente con 4608 FF, y esta es la de
menor capacidad.
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
COMENTARIO
Con respecto a las descripciones VHDL realizadas en cada tipo de Flip Flop, Contador o registro de
desplazamiento se puede decir que está realizado cada ejemplo sin mayor explicaciones ya que como
siempre digo en cada una de las entregas anteriores que ya he hecho estoy en etapa de aprendizaje y
solamente el hecho de lograr la meta pautada en cada trabajo me es suficiente. Luego en otras
investigaciones posteriores se profundizará en cada tema. Por ejemplo en esta entrega se hacen los
diseños de los contadores desde cero. Haciendo las tablas de transiciones, mapas de Karnaugh y
circuito digital usando Flip Flops. Lo importante aquí es que cada ejemplo funciona correctamente y
cada uno está bien sustentado.
Espero con este material haber aportado a los interesados en conocer el tema de FPGA y VHDL
Seguimos en contacto
REFERENCIAS DE Internet
CIRCUITOS SECUENCIALES
http://ocw.usal.es/ensenanzas-tecnicas/electronica/contenido/electronica/Tema10_SistemSecuencial.pdf
http://www.gmcon.net/cirlog/con06.html
Lógica secuencial
http://docplayer.es/44341146-Unidad-iii-introduccion-a-la-logica-secuencial.html
a) Video donde se observa paso a paso como se trabaja con el software TINA, usando MACROS y
descripciones en .vhd…..en este caso el TINA 8
https://www.youtube.com/watch?v=joY7vOD9Gww
LOGISIM
Página web del gobierno de Canarias donde se le hace publicidad al software y se indica para donde
fue pensado su uso y las ventajas del software
http://www3.gobiernodecanarias.org/medusa/ecoescuela/recursosdigitales/2015/02/09/simulado
r-de-puertas-logicas-digitales-logisim/
Página de descarga de LOGISIM http://www.cburch.com/logisim/index_es.html
DESIGNSOFT
Página web de Design Soft fabricante de TINA software de simulación de Circuitos eléctricos y
electrónicos
http://www.designsoftware.com/home/demos/demo_tina
Página web de Texas Instruments
www.ti.com
PROTEUS
En esta dirección https://www.labcenter.com/downloads/ se baja el ejecutable que engancha la
descarga directamente desde los servidores de LabCenter y el resto es cuestión de tiempo
porque el software se instala completamente solo.
FPGA
Introducción alos PLDs
http://www.intesc.mx/2017/04/introduccion-a-los-dispositivos-logicos-programables/
Descripciones en VHDL de Flip - Flops https://allaboutfpga.com/vhdl-code-flipflop-d-t-jk-sr/
FPGA Libres
http://www.jornadassarteco.org/js2017/documents/Keynote3.pdf
Grupo Español que trabaja con FPGA Libres
http://fpgawars.github.io/
Las FPGAs Libres en la educación
https://juegosrobotica.es/icezum-alhambra-educacion/
Hecho por el Prof Pedro Landaeta. Prof Jubilado de la UPT de Aragua y Aspirante a MSc en la
UCV - Venezuela. Material Introductorio de FPGA, Enero 2019
Registros
Láminas de Power Point correspondientes a descripciones en VHDL de registros de Desplazamiento
https://vdocuments.mx/registros-de-desplazamiento-56cc365a75e91.html
Estas láminas fueron hechas en Universidad Industrial de Santander – Colombia. Colocado
en Internet en Febrero de 2016
Esta página pertenece al prof Miguel Angel Perez Solano. Prof del Tecnologico Nacional de México
http://solano.orgfree.com/
Registros
Trabajo sobre el registro de desplazamiento universal 74194
https://es.scribd.com/doc/125964598/74194
La siguiente dirección tiene un universo de posibilidades para conseguir libros con licencias libres
https://openlibra.com/es/