Lab. 3 Sistemas
Lab. 3 Sistemas
SISTEMAS DIGITALES
PRÁCTICA DE LABORATORIO NO 3
Esta práctica trata sobre una “alarma de incendios”, la cual ya fue implementada de manera física y
simulativa, pero esta vez se le aumentó un nuevo sensor de fuego (F), y la implementación física no es en
la protoboard sino en una tarjeta FPGA. Para la implementación de esta se pondrán en práctica los temas
vistos en clases, tales como algebra de Boole, tablas de verdad, compuertas lógicas y lenguaje de
programación en Verilog. La alarma cuenta con 5 sensores (entradas H, G, F T45, T60), los cuales son los
que arrojan la respuesta de la alarma mediante uno de los leds de la FPGA, dependiendo de cada
combinación de éstas. Como son 5 entradas, se tienen 32 combinaciones, enumeradas en intervalos de 0 a
31, las cuales son mostradas en uno de los displays de la FPGA.
OBJETIVOS
• Aplicar los conocimientos adquiridos en clase acerca de tablas de verdad, compuertas lógicas,
algebra de Boole, Verilog, FPGA.
• Diseñar un circuito “alarma de incendios” con cinco sensores (entradas), dos de temperatura,
uno de humo, uno de gases y uno de fuego.
• Tarjetas FPGA: Son dispositivos programables que contienen bloques de lógica cuya interconexión
y funcionalidad puede ser configurada en el momento, mediante un lenguaje de descripción
especializado (por ejemplo Verilog). La lógica programable puede reproducir desde funciones tan
sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta
complejos sistemas en un chip.
Las FPGA se utilizan en aplicaciones similares a los ASIC sin embargo son más lentas, tienen un
mayor consumo de energía y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto,
las FPGA tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo
de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de
dispositivos y el tiempo de desarrollo es también menor.
Primero, se realiza la tabla de verdad para la alarma con sus respectivas 5 entradas y una salida (alarma). Se
hace el respectivo análisis del problema planteado para implementar una alarma, dependiendo de las
respuestas de algunos sensores de humo, gas, fuego y temperatura. Las condiciones para evitar falsas
alarmas, propuestas en el enunciado del laboratorio, se llevan a una una tabla de verdad para iniciar su
análisis y así encontrar una expresión reducida. La table de verdad resultante se encuentra resistrada en la
siguiente table:
TABLA 1.
HUMO GAS FUEGO T45° T60° ALARMA
(D) (C) (F) (B) (A) (F)
0 0 0 0 0 0
0 0 0 0 1 X
0 0 0 1 0 0
0 0 0 1 1 1
0 0 1 0 0 0
0 0 1 0 1 X
0 0 1 1 0 1
0 0 1 1 1 1
0 1 0 0 0 0
0 1 0 0 1 X
0 1 0 1 0 1
0 1 0 1 1 1
0 1 1 0 0 1
0 1 1 0 1 X
0 1 1 1 0 1
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 0 1 X
1 0 0 1 0 1
1 0 0 1 1 1
1 0 1 0 0 1
1 0 1 0 1 X
1 0 1 1 0 1
1 0 1 1 1 1
1 1 0 0 0 1
1 1 0 0 1 X
1 1 0 1 0 1
1 1 0 1 1 1
1 1 1 0 0 1
1 1 1 0 1 X
1 1 1 1 0 1
1 1 1 1 1 1
De esta tabla de verdad podríamos sacar la expresión para que la alarma encienda, sea con la suma de
productos (minterms) o con el producto de sumas (maxterms), y después simplificar esta.
Pero es mucho más práctico, corto y de igual manera eficiente, llevar esta tabla al Mapa de Karnaugh, y de
aquí encontrar la respuesta (salida) de este circuito lógico, un poco más simplificada, y si es posible,
simplificarla más.
Utilizando Mapa de Karnaugh y agrupando los unos (1s) de la manera más conveniente, tomando todas
las X como unos, se obtienen los siguientes minterms:
𝐦(𝟏, 𝟑, 𝟓, 𝟕, 𝟗, 𝟏𝟏, 𝟏𝟑, 𝟏𝟓, 𝟏𝟕, 𝟏𝟗, 𝟐𝟏, 𝟐𝟑, 𝟐𝟓, 𝟐𝟕, 𝟐𝟗, 𝟑𝟏) = 𝑇60
𝐦(𝟏𝟖, 𝟏𝟗, 𝟐𝟐, 𝟐𝟑, 𝟐𝟔, 𝟐𝟕, 𝟑𝟎, 𝟑𝟏) = 𝐻𝑇45
𝐦(𝟏𝟎, 𝟏𝟏, 𝟏𝟒, 𝟏𝟓, 𝟐𝟔, 𝟐𝟕, 𝟑𝟎, 𝟑𝟏) = 𝐺𝑇45
̅ 𝐺̅ 𝐹𝑇45
𝐦(𝟔, 𝟕) = 𝐻 ̅ 𝐺̅ 𝐹𝑇45 + 𝐻𝐺 + 𝐻
𝐀 = 𝑇60 + 𝐻𝑇45 + 𝐺𝑇45 + 𝐻 ̅ 𝐺𝐹 + H𝐺̅ 𝐹
Las siguientes imágenes son pantallazos del código correspondiente a la alarma, son las combinaciones
mostradas en un display.
Después de haber corrido el código en todos sus ítems, se procede a realizar la asignación de cada entrada,
salida y conexión a la FPGA, abriendo y modificando un archivo llamado “elvertv2.ucf”, el cual ya tiene
todo el código para programar la tarjeta, donde solo resta realizar los respectivos cambios y asignaciones,
y una vez completado esto, se programa la FPGA para que esta funcione con las condiciones que se le
ingresaron.
Las siguientes dos imágenes son pantallazos de algunos de los cambios que se le realizan al código para
programar la FPGA (Numato Elbert V2), como por ejemplo quitar el comentario y asignarle un pin en la
FPGA a la salida de la alarma, las entradas del circuito en los dipswithches y los segmentos del display.
Las siguientes, son fotos de la FPGA en funcionamiento una vez se le programó el código completo:
CONCLUCIONES
• Los circuitos combinacionales son herramientas de gran utilidad para la automatización y control de
sistemas electrónicos con los cuales se puede llegar a facilitar en gran medida la vida diaria. Estos
circuitos pueden se pueden llevar a cabo de manera simultaiva y físicamente. De manera física, es
mucho más sencillo utilizar una tarjeta FPGA por ejemplo ya que internamente está configurada con
compuertas lógicas, etc, y tiene entradas de todo tipo, incluyendo led, displays, y esto es de gran
ayuda.
• Es de vital importancia aprender y comprender diferentes lenguajes de programación, los cuales son
de mucha utilidad en el mundo de la electrónica digital y en general. Muchos de estos lenguajes son
muy similares en su lógica.
• Antes de realizar el código de algún ejercicio en específico, se debe elegir mediante qué tipo de
lógica se va a llevar a cabo, si es de tipo funcional o de tipo estructural, de acuerdo al ejercicio y
manejo personal en cada tipo de lógica.
• Las FPGA son muy prácticas y sencillas para trabajar, con la ventaja de que estas son
reprogramables, facilitando así la implementación de diferentes circuitos.
BIBLIOGRAFIA
• https://es.wikipedia.org/wiki/Verilog
• https://es.wikipedia.org/wiki/Field-programmable_gate_array
• https://traguatan.com/desarrollo/352-fpga-numato-elbert-v2-spartan-3a.html
• https://planetachatbot.com/qu%C3%A9-es-una-fpga-y-por-qu%C3%A9-jugar%C3%A1n-un-
papel-clave-en-el-futuro-e76667dbce3e