Está en la página 1de 78

ELECTRÓNICA

DIGITAL APLICADA

Ing. Lissette Salinas


GUIA DE ESTUDIOS

CARRERA: Tecnología Superior en Electrónica


NIVEL: Tecnológico
TIPO DE CARRERA: Tradicional
NOMBRE DE LA SIGNATURA: Electrónica Digital Aplicada
CÓDIGO DE LA ASIGNATURA: 2013_ELECTA_2_2
PRE – REQUISITO: 2013_ELECTA_1_2
CO – REQUISITO: Ninguno
TOTAL HORAS: Teoría: 54 Práctica: 36 Trabajo independiente: 20
NIVEL: Segundo
PERIODO ACADÉMICO: Junio – Octubre 2021 (I PA 2021)
MODALIDAD: Presencial
DOCENTE RESPONSABLE: Ing. Lissette Salinas

2
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

INDICE
No se encuentran entradas de índice.

Contenido
PRESENTACIÓN ............................................................................................................ 5
ORIENTACIONES PARA EL USO DE LA GUÍA DE ESTUDIOS ............................. 6
Unidad Didáctica I .......................................................................................................... 8
Los dispositivos lógicos de última generación y el lenguaje descriptor de
hardware.......................................................................................................................... 8
Introducción de la Unidad Didáctica I: .................................................................... 8
Objetivo de la Unidad Didáctica I: ........................................................................... 8
Actividades de aprendizaje de la Unidad Didáctica I: .......................................... 9
Actividad de Aprendizaje 1 de la Unidad Didáctica I: ............................................. 9
Actividad de Aprendizaje 2 de la Unidad Didáctica I: ........................................... 10
Actividad de Aprendizaje 3 de la Unidad Didáctica I: ........................................... 14
Actividad de Aprendizaje 4 de la Unidad Didáctica I: ........................................... 15
Actividad de Aprendizaje 5 de la Unidad Didáctica I: ........................................ 16
Resumen ................................................................................................................... 26
Actividades de Auto-evaluación de la Unidad Didáctica I: ................................ 27
Actividad de Evaluación de la Unidad Didáctica I: ............................................. 28
Unidad Didáctica II ....................................................................................................... 30
Lógica combinacional mediante VHDL .................................................................... 30
Introducción de la Unidad Didáctica II: ................................................................. 30
Objetivo de la Unidad Didáctica II: ........................................................................ 30
Actividades de aprendizaje de la Unidad Didáctica II: ....................................... 31
Actividad de Aprendizaje 1 de la Unidad Didáctica II: .......................................... 31
Actividad de Aprendizaje 2 de la Unidad Didáctica II: .......................................... 40
Actividad de Aprendizaje 3 de la Unidad Didáctica II: .......................................... 44
Resumen ................................................................................................................... 56
Actividades de Auto-evaluación de la Unidad Didáctica II: ............................... 57
Actividad de Evaluación de la Unidad Didáctica II: ............................................ 58
Unidad Didáctica 3 ....................................................................................................... 59
Lógica secuencial mediante VHDL ........................................................................... 59
Introducción de la Unidad Didáctica N: ................................................................ 59

3
Objetivo de la Unidad Didáctica N: ........................................................................... 59
Actividades de aprendizaje de la Unidad Didáctica III: ...................................... 60
Actividad de Aprendizaje 1 de la Unidad Didáctica III: ........................................ 60
Actividad de Aprendizaje 2 de la Unidad Didáctica III: ........................................ 61
Actividad de Aprendizaje 3 de la Unidad Didáctica III: ........................................ 65
Actividad de Aprendizaje 4 de la Unidad Didáctica III: ........................................ 70
Resumen ................................................................................................................... 76
Actividades de Auto-evaluación de la Unidad Didáctica N: .............................. 77
Actividad de Evaluación de la Unidad Didáctica N:............................................ 78

4
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

PRESENTACIÓN

Ante los cambio tecnológicos de la era actual y la implementación cada vez más
creciente de la automatización de sistemas inteligentes y sofisticados, se
presenta la necesidad de profundizar en los estudiantes sobre el estudios de
electrónica digital aplicada, sistemas embebidos que permiten el control digital
de sistemas basados en programación VHDL.

Electrónica digital aplicada es una asignatura correspondiente a la unidad de


organización curricular básica y campo de formación de adaptación e innovación
tecnológica, se dicta en el segundo nivel de la carrera de Tecnología Superior
en Electrónica, comprende el estudio de lenguaje descriptor de hardware (HDL)
y dispositivos lógicos programables (PLD), de tal modo que se pueda llegar a
tecnologías más sofisticadas como sistemas embebidos y el uso del lenguaje
de descripción de hardware estandarizada VHDL, brindando al futuro
profesional un punto de vista para el desarrollo de sistemas digitales basados en
procesadores, diseño de aplicaciones específicos y codiseño de dispositivos tipo
hardware y software.

El objeto de estudio de la asignatura es diseñar aplicaciones tecnológicas en


relación con la electrónica digital basada en placas de desarrollo de sistemas
embebidos y FPGA, con lenguaje descriptor de hardware, que permitirá el
control de procesos.
El objetivo general de la asignatura es analizar sistemas digitales mediante
aplicaciones de última generación, aplicando los principios generales de
electrónica digital, fomentando el razonamiento lógico y técnico para dar
solución a problemas prácticos en el ámbito electrónico; a vez cultivando en los
estudiantes los valores de pertinencia y responsabilidad.

5
ORIENTACIONES PARA EL USO DE LA GUÍA DE
ESTUDIOS
Antes de empezar con nuestro estudio, debes tomar en cuenta lo siguiente:

1. Todos los contenidos que se desarrollen en la asignatura contribuyen a tu


desarrollo profesional, ética investigativa y aplicación en la sociedad.
2. El trabajo final de la asignatura será con la aplicación de la metodología de
investigación científica.
4. En todo el proceso educativo debes cultivar el valor de la constancia porque
no sirve de nada tener una excelente planificación y un horario, si no eres
persistente.
5. Para aprender esta asignatura no memorices los conceptos, relaciónalos con
la realidad y tu contexto, así aplicarás los temas significativos en tu vida
personal y profesional.
6. Debes leer el texto básico y la bibliografía que está en el syllabus sugerida
por el docente, para aprender los temas objeto de estudio.
7. En cada tema debes realizar ejercicios, para ello debes leer el texto indicado
para después desarrollar individual o grupalmente las actividades.
8. A continuación te detallo las imágenes que relacionadas a cada una de las
actividades:

Imagen Significado
Sugerencia

Talleres

Reflexión

6
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Subir Tareas al Aula


Virtual Amauta

Apunte clave

Foro

Resumen

Evaluación

9. Ánimo, te damos la bienvenida a este nuevo periodo académico.

7
DESARROLLO DE ACTIVIDADES
Unidad Didáctica I
Los dispositivos lógicos de última generación y el lenguaje descriptor de
hardware

Introducción de la Unidad Didáctica I:

En esta unidad se estudiará de manera general los dispositivos FPGA, como es


la estructura, arquitectura, consideración y campo de aplicación de los mismos,
así como el aporte dentro de la electrónica digital aplicada. También se
introducirá al mundo de lenguaje de programación VHDL (descriptor de
hardware), reconociendo la estructura de programa como entidad y arquitectura
para programar circuitos digitales empelando operadores lógicos.

Objetivo de la Unidad Didáctica I:


Los dispositivos lógicos de última generación y el lenguaje de descripción de
hardware
Organizador Gráfico de la Unidad didáctica I:

Los FPGA,
arutectura,
consideracion
es de diseño y
aplicaciones

VHDL para
síntesos y Lenguaje
UNIDAD 1 VHDL
simulación

Entidad y
arquitectura

Figura 1: Contenidos unidad didáctica 1


Fuente: La autora

8
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Actividades de aprendizaje de la Unidad Didáctica I:

Actividad de Aprendizaje 1 de la Unidad Didáctica I:

Introducción a la electrónica digital aplicada


La electrónica digital es una rama de la electrónica más moderna, que se
caracteriza por manipular o procesar señales discretas, que trabajan con dos
niveles lógicos (0 o 1). La electrónica digital ha revolucionado el mundo, ya que
gracias a ellos la tecnología ha evolucionado a pasos agigantados. A su vez se
subdividen en las áreas:
 Lógica combinacional: no tienen memoria, se emplean las compuertas
lógicas.
 Lógica secuencial: tiene la capacitad de almacenar bit, generalmente se
empelan biestables para el diseño de autómatas es decir, máquinas de
estado.
Con la invención de los circuitos integrados, los equipos electrónicos cada vez
brindan mayor prestaciones y alta velocidad de procesamiento, con tañamos
reducidos; la aplicación de electrónica digital es amplia, ya que se encuentra
presente en todos los dispositivos tecnológicos tales como: celulares,
computadoras, tablet, Smart TV, lavadoras, autos, aviones, entre otros.

En la presente asignatura se estudiará sobre la aplicación de circuito lógicos


combinaciones y secuenciales, empleando lo último en tecnología,
reemplazando así el uso de los dispositivos como compuertas lógicas y
biestables para la implementación física de los circuitos electrónicos por una
programación en lenguaje descriptor de hardware o más conocido como VHDL
sobre una placa FPGA.

Figura 2: Contenidos unidad didáctica 1


Fuente: La autora

9
Actividad de Aprendizaje 2 de la Unidad Didáctica I:

Los FPGA
La palabra FPGA se debe a las siglas en inglés de “Fiel Programmable Gate
Array”, que quiere decir, arreglo de compuertas lógicas programables en sitio.
Por lo cual se define a una FPGA como un circuito integrado que consta una
gran matriz de compuertas que interconecten unas con otras por medio de
claves programables.

Estas placas son el resultado de la convergencia de dos tecnologías diferentes,


como con los dispositivos lógicos programables (PLD) y los circuitos integrados
de aplicación específica (ASIC). Estas placas fueron inventadas por los
cofundadores de la empresa Xilinx en los años 80´s, como una solución al
problema de procesamiento de información muy compleja.

Figura 3: Placa FPGA Altera


Fuente: https://comunidadmsx.com/2013/10/25/construir-un-msx-con-altera-de1/

Una FPGA puede desempeñar cualquier función lógica, incluso soportan la


reconfiguración parcial del sistema, para reprogramar una parte del diseño
mientras el resto sigue funcionando normalmente.

Arquitectura de las FPGA


Las placas FPGA constas principalmente de tres bloques: Bloques lógicos
configurables, bloque de entradas/salidas y las interconexiones programables,
como se puede observar en la figura 4.

10
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Figura 4: Arquitectura de una placa FPGA


Fuente: https://comunidadmsx.com/2013/10/25/construir-un-msx-con-altera-de1/

 Bloques de lógicos configurables: existen dos tipos los basados en LUT y


multiplexor. Los primeros representan celdas de memorias ARAM que
almacenan una tabla de verdad para la implementación de cualquier función
lógica de n estradas; y los basados en multiplexores tienen menos lógica
por lo que reduce el tamaño, lo cual limita la implementación de funciones
con n entradas.
 Bloques de entrada y salida: Estos con pines o GPIO (General Purpose
Input/Output), es decir, pines de propósito general para entradas o saldas,
cuyo comportamiento lo controla el usuario.
 Interconexiones entre bloques: En una FPGA se tiene una gran cantidad
de líneas que interconectan los diferentes bloques lógicos con varias
entradas y salidas, para lo cual emplead diferentes tecnologías que permiten
ir conectando las compuertas de tal modo que se vaya formado el circuito
lógico digital; dentro de las principales tecnología está la Antifuse, SRAM y
flash.
a. Anfisue: Inicialmente no conducen corriente, al configurarle se cierran
los contactos.
b. SRAM: Esta tecnología tiene celdas lógicas que se almacena en una
memoria estática.

11
c. Flash: Usa tecnología Flash para el almacenamiento de las
configuraciones de canales o líneas que conectan los bloques lógicos.

En la siguiente tabla se presenta una comparación en re las diferentes


tecnologías para conectar los bloques lógicos en una FPGA.

Tecnología de programación
Características Antifuse SRAM Flash
Reprogramable No Si Si
Memorias externa No Si No
Velocidad Rápido Lento Lento
Potencia Bueno Malo Mejor
Densidad Bueno Mejor Bueno
Toleración a ruido Mejor Malo Bueno

Tabla 1: Comparación de las tecnologías de programas de FGPA


Fuente: Modificada por Autora

Ventajas de FPGA
Las FPGA han revolucionado el mercado y son ampliamente usadas en especial
para el campo de la electrónica de consumo, debido a las siguientes ventajas:
 Procesamiento de información ráido
 Costo bajo
 Capacidad de reconfiguración en campo
 Durabilidad larga
 Flexibilidad
 Posibilidad de reconfirmación de hardware
 Procesamiento en paralelo
 Versatilidad, etc.

Aplicaciones de las FPGA


Las FPGA tienen varias aplicaciones entre ellas podemos citar a las siguientes:
 Comunicaciones, como: radio, televisión, internet
 Industria aeroespacial

12
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

 Procesamiento de imagen de alta resolución


 Procesamiento digital de señales
 Sistemas embebidos
 Equipos médicos, entre otros

Consideraciones de diseño
Muchos FPGA emplean LUT de 4 entradas para implementar cualquier función
lógica, con el fin de mejorar las prestaciones de estos dispositivos se han
ampliado las rutas permitiendo LUT de 6, 7, incluso 8 entradas, cuya salida
estaba conectada a la entrada de un multiplexor. La salida del multiplexor
alimenta la entrada de un registro, mismo que se puede configura para que
funciones como un biestables.
Los FPGA son bloques de alta velocidad, que pueden soportan interfaces en el
orden de GB seriales. La estructura programable en una FPGA puede usarse
para implementar cualquier función digital, es decir, que es exclusivo para
procesamiento digital, presentando limitaciones en cuanto a circuitos analógicos.
Para lo cual va a tener entradas y salidas digitales que va a ser procesadas por
la placa.
 Bloques de entrada: conformada por pulsadores e interruptores que
proporcionan las señales de entrada al circuito implementado.
 Bloques de salida: conformado por led, display; los cuales permiten la
visualización de salidas luego de procesar las entradas.

Periféricos de Periféricos
FPGA
entrada de salida

Para el diseño de circuitos digitales en placas FPGA se debe considerar los


siguientes aspectos:
 Software: Programa donde se va a generar un archivo configurable que
va a ejecutar sobre la FPGA
 Cable de configuración: Encargo de establecer la comunicación entre el
computador y el FPGA.

13
 Tarjeta entrenadora: Permite, comprobar el correcto funcionamiento de
los circuitos programados en lenguaje especial.

Actividad de Aprendizaje 3 de la Unidad Didáctica I:

El lenguaje Descriptor de Hardware VHDL


En electrónica digital aplicada para programar las placas FPGA y comprobar el
funcionamiento de los circuitos implementados mediante software, se usa un
lenguaje de programación especial, ya que no solo se van a ejecutar líneas de
códigos o instrucciones sino generar impulsos o señales eléctricas capaz de ir
uniendo los bloques lógicos, como lo es VHDL.
VHDL es acrónimo de:
 VHSIC: Very High Speed Integrates Circuit
 HDL: Hardware Descriptor Language

Por tanto VHDL se define como un lenguaje descriptor de hardware para el


diseño de circuitos electrónicos digitales, con procesamiento de alta velocidad.
Este lenguaje esta normado por la IEEE 1076 y permite:
 Modelar ensambles electrónicos complejos
 Simulación de circuitos electrónicos digitales
 Síntesis de lógica
 Portabilidad entre diferentes herramientas de síntesis y arquitectura.

Características de VHDL
 VHDL es un leguaje para diseño de circuitos digitales, por lo que presenta
limitaciones en el área analógica
 La norma IESSS 1076 define estándares y síntesis de diseño, más no el
estilo.
 No existe reconocimiento entre mayúsculas y minúsculas, es decir,
reconoce por igual a: HOLA u hola u HoLa.
 Los comentarios se expresar mediante dos guiones el inicio (--)
 Las líneas de instrucciones finalizan con un punto y como (;)

14
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Tarea: Realizar la consulta de programación VHDL

Actividad de Aprendizaje 4 de la Unidad Didáctica I:

Entidad de diseño
La entidad de diseño es la principal abstracción de hardware con el lenguaje
VHDL, permite presenta una porción del diseño de hardware que tiene entrada
y salidas definidas en el programa, puede expresar sistemas completos,
subsistemas, un marco de celda, una compuerta lógica, un biestable o cualquier
abstracción de la electrónica digital.

Figura 5: Entidad de diseño


Fuente: shorturl.at/opMNR

Entidad
Una entidad de diseño puede ser descrita en términos de un jerarquía de
bloques, cada uno de los cuales receta un porción del diseño completo, de
manera general es la sección del programa donde se van a realizar la
declaración de las variables definiendo su función (si es entrada o salida) así
como el tipo de datos que va a manejar (en función a norma IEEE 1076).

15
Figura 6: Declaración de entidad
Fuente: La autora

Arquitectura
La arquitectura es el cuerpo principal de programa, especifica las relaciones
entre las entradas y las salidas, esta expresada en términos de estructura, flujo
de datos o comportamental.

Figura 7: Arquitectura de programa VHDL


Fuente: La autora

Tarea: Consulta de las librerías en VHDL

Actividad de Aprendizaje 5 de la Unidad Didáctica I:

Tipos de datos
VHDL usa un conjunto limitado de datos, mismos que son suficientes para
diseñar los circuitos eléctricos digitales de alta complejidad, todos estos
definidos por el estándar IEEE 1076 y 1164.
Ante todo es importante conocer los tipos de objetos que maneja VHDL, mismos
que se pueden visualizar en la figura 8.

16
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Constantes

Tipos de Variables
Ficheros
objetos

Señales

Figura 8: Tipos de objetos que maneja VHDL


Fuente: La autora

Dentro de los tipos de datos predefinidos por el estándar IEEE para VHDL están:
 Bit: Solo puede tomar valores de 0 ó 1 lógicos
 Bit_vector: Consiste en una agrupación de tamaño definidos de bits
 Integer: Toma valores números reales enteros, utilizados para índices de
loop, constantes, valores genéricos, entre otros.
 Boolean: puede tomar valores de False o True
 Enumerated: Enumeración de valores definidos previamente por el usuario.
 Std_logic: Similar al bit, pero representan todos los posibles estados es un
señal, es un tipo de datos de estándar industrial.
 Std_logic_vector: Es un arreglo o vector que consiste en una agrupación
de std_logic.
 Std_ulogic y std_ulogic_vector: Esta función decide cual debe ser el valor
de la señal cuanto tiene dos fuentes de asignación diferentes; por ejemplo,
si una fuente asigna un 1 y la una un L, la función decide con qué valor se
queda.

17
Participación en foro de debate sobre FPGA y programación VHDL

Declaración de constantes
Las constantes son aquellos objetivos que mantiene el mismo valor del tipo de
datos especificado durante toda la ejecución del programa, la sintaxis usada en
VHDL es la siguiente.

Figura 9: Sintaxis para declaración de constantes en VHDL


Fuente: La autora

Declaración de variables
Las variables son objetos que almacenan valores de tipo de dato especificado,
estos pueden tomar cualquier valor durante la ejecución del programa, se los
debe declarar al inicio del programa. No tienen significado físico directo. La
sintaxis para declaración de variables es la siguiente.

Figura 10: Sintaxis para declaración de variables en VHDL


Fuente: La autora

Declaración de señales
Las señales con aquellos objetivos que almacenan valores que pueden cambiar
durante la ejecución del programa con una repetición física, es decir, emiten un
estímulo eléctrico para que se conecten los diferentes componentes. Se declara

18
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

en sentencias concurrentes. Para asignación de valores a las señales de emplea


el símbolo <=, la sintaxis para declaración de señales se muestra en la figura 10.

Figura 11: Sintaxis para declaración de señales en VHDL


Fuente: La autora

Declaración de entidad
Una entidad es una parte de la estructura en la cual se especifican las señales y
entradas del programa, así como la definición del tipo de dato a usar, es decir,
define la interfaz entre una entidad de diseño y el entorno en el cual se usará.
Se emplea la siguiente sintaxis.

Figura 12: Sintaxis para declaración de entidad en VHDL


Fuente: La autora

Declaración de arquitectura
La arquitectura constituye el cuerpo del programa mimo que está definido por la
entidad de diseño. Se coloca las instrucciones de las arquitectura luego de la
declaración de entidad, se especifican las operaciones, funciones o acciones que
se van a ejecutar, puede ser expresada en forma estructural, comportamental
o diagrama de flujo.

Figura 13: Sintaxis para declaración de arquitectura en VHDL

19
Fuente: La autora
Entre architecture y begin se declaran los objetos a usar en el programa ya
sean: constantes, variables o señales, seguidos del begin se escribe las
operaciones, cálculos o acciones que se van a desarrollar en función a las
entradas previamente establecidas para obtener las salidas deseadas. La
asignación de las salidas se realiza empleando el símbolo <=, tal y como se
muestra en la figura 13.

En la figura 14, se puede observar un ejemplo de un programa básico en VHDL,


en el cual se simula el diseño de una compuerta lógica AND, manteniendo la
estructura definida por el estándar IEEE. Es importante indicar que las letras que
aparecen de color azul corresponden a las palabras reservadas mientas que las
palabras en color negro son aquellas que se modifican por el usuario, como por
ejemplo colocar un nombre diferentes a la entidad, la arquitectura o las variables
asignadas para las entradas y salidas.

Figura 14: Estructura programa básico en VHDL


Fuente: La autora

También se tiene el tipo de dato std_logic_vector (es un array o


arreglo unidimensional) que maneja un conjunto de bits con una longitud
determinada por el usuario.

20
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Ejemplos

Library IEE

Figura 14: Ejemplo de instrucciones en VHDL


Fuente: https://bit.ly/3B4USkQ

Escribir las instrucciones para implementación del siguiente circuito en


VHDL.

Figura 15: Circuito de taller 1


Fuente: La autora

21
Existen dos posibles formar se trabajar con arreglos en VHDL, de forma
ascendente (valor mínimo to valor máximo) o de forma descendente (valor
máximo downto valor mínimo). Lo que cambia es la posición que va ir tomando
cada valor, por ejemplo si se tiene el siguiente vector arreglo1= {0 1 1 0 0} para
que tomen lo valores la misma posición descrita en la figura 16, se puede
declarar como:
Arreglo1 : std_logic_vector ( 4 downto 0) := “00110”
Arreglo1 : std_logic_vecto (0 to 4) := “01100”

Figura 16: Arreglos std_logic_vector


Fuente: La autora

Nota: Cuando se realizan asignaciones de un solo valor (bit) se lo coloca en


comilla simple y para asignaciones de un conjunto de bits se usa comilla doble.
Para comentar un línea en VHDL se inicializar con doble guion (--).

Xilinx
Xilinx es una empresa especializada en la fabricación de placas FGPA, además
de eso licencia el código descriptor de Hardware, como ISE Design Suite, que
permite el diseño de circuitos lógicos.

Figura 17: Software de Xilinx para programación VHDL


Fuente: La autora

22
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Este software permite realizar las instrucciones en VHDL y la simulación, para lo


cual se siguen los siguientes pasos:
1. Abrir el software, dando doble clic sobre el ícono que parece en escrito, como
se muestra en la figura 17.
2. Crear un nuevo proyecto, paro lo cual dar clic en File luego en New Project.
Dar un nombre al proyecto y seleccionar la carpeta donde se guardará, es
importante que en la parte inferior en Top-Level seleccionar HDL.

Figura 18: Creación de un proyecto en XILINX


Fuente: La autora

3. Crear un módulo VHDL, para lo cual se da clic derecho sobre el proyecto y


se selecciona la opción de VHDL Module, se da un nombre (que corresponde
a la entidad) y clic en siguiente.

Figura 18: Creación de módulo VHDL


Fuente: La autora

23
4. Definir las entradas y salidas del circuito (representas los puertos que
conforman la entidad), luego dar clic en siguiente.

Figura 19: Selección de puerto de la entidad


Fuente: La autora

5. Escribir las instrucciones del programa en VHDL, manteniendo los


estándares de la norma IEEE, luego verificar sintaxis para lo cual dar clic
sobre el triángulo de color verde, si todo está bien saldrá un visto en Check
Sintax.

Figura 20: Estructura del programa en Xilinx


Fuente: La autora

24
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Instalar el software Xilinx, para programación en VHDL

Taller 2

Del circuito mostrado en la figura 21:


1. Realizar el código en VHDL (Usando Xilinx)
2. Generar el esquemático en XILINX
3. Realizar el test bench
4. Explicar de manera individual el proceso

Figura 21: Circuito taller 2


Fuente: La autora

25
Resumen

Las soluciones de diseño de procesamiento digital son proporcionadas por


combinaciones de procesadores y FGPA. Los FPGA (arreglo de puertas lógicas
en campo) son circuitos integrados de alta capacidad formado por bloques
lógicos (a su vez que se encuentra formado por un conjunto compuertas lógicas)
lo cual se encuentran interconectan por líneas conocidas como bloques lógicos
programables, para lo cual se puede emplear diferentes tecnologías como la
SRAM, Flash y antifuse. La placa en su parte externa esta rodea de pines de
propósito general (GPIO) que permiten conectan a la placa con dispositivos de
entradas y salidas digitales tales como: pulsadores, interruptores, LED, display,
entre otros.
Las placas FPGA tienen una amplia aplicación en el área de las
telecomunicaciones y la electrónica de consumo.

Así como se dispone de elementos físico que representan la parte de hardware


de los sistemas embebidos, también se utiliza software que permiten realizar la
programación de dichas placas para desarrollar una actividad específica.
Principalmente para el diseño de circuitos lógico que compete el estudio de esta
asignatura de emplean un lenguaje descriptor de hardware o mejor conocido por
sus sigla como VHDL, mismo que esta normado por el estándar IEE 1076.

VHDL permite el diseño de circuitos lógicos de gran versatilidad y permite realizar


la simulación. Dispone su propio tipo de datos std_logic bajo el estándar IEEE
1164, que permite trabajar con un solo bit a un conjunto de los mismos
(std_logic_vector). Dentro de la estructura de diseño se tiene:
1. Declaración de librerías: LIBRARY IEEE
2. Diseño de entidad: Se declaran las variables de las entradas y salidas del
sistema
3. Arquitectura: cuerpo del programa, donde se realizan cálculos/ operaciones
sobre la entidad.

26
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Actividades de Auto-evaluación de la Unidad Didáctica I:

Seleccione la respuesta correcta:


1. Una de las desventajas de los sistemas embebidos es su alto costo
económico.
a. Verdadero b. Falso
2. Intel reina en el mercado de los dispositivos FGPA.
a. Verdadero b. Falso
3. Para programar una placa FPGA uso un lenguaje de programación orientado
a objetos.
a. Verdadero b. Falso
4. Xilinx es un lenguaje descriptor de hardware.
a. Verdadero b. Falso
5. VHDL es un lenguaje descriptor de hardware de baja velocidad.
a. Verdadero b. Falso
6. Para el diseño de circuitos electrónicos sobre placas FPGA se requiere de
hardware y software.
a. Verdadero b. Falso
7. La tecnología de programación Antifuse es reprogramable.
a. Verdadero b. Falso
8. Las señales son tipos de objeto en VHDL cuyo valor van cambiando en la
ejecución del programa y tiene representación física
a. Verdadero b. Falso
9. Si no se declara la librería IEE, el programa VHDL no funciona ya que
presenta un error de sintaxis.
a. Verdadero b. Falso
10. Con el tipo de datos std_logic, se puede manipular uno o varios bits que
corresponde a un determinado objeto en VHDL.
a. Verdadero b. Falso

27
Actividad de Evaluación de la Unidad Didáctica I:

1. FGPA significa:
a. Fiel Programmable Gateway Array
b. Fiel Programmable Gate Access
c. Fear Programmable Gate Access
d. Ninguna de las anteriores

2. Un dispositivo lógico programable (PLD) esta internamente construido de:


a. Memorias
b. Compuertas lógicas
c. Flip Flop
d. Todas las anteriores

3. La unidad básica de diseño de un programa en VHDL consta de:


a. Declaración de entidades, declaración de librerías y arquitectura
b. Arquitectura, declaración de librerías y declaración de entidades
c. Declaración de librerías, declaración de entidades y arquitectura
d. Ninguna de las anteriores

4. Las FGPA se programan en:


a. Bloques
b. Archivos
c. Compuertas
d. Ninguna de las anteriores

5. La complicación consiste en:


a. Comprobar que el programa funcióname correctamente
b. Comprobar sintaxis
c. Comprobar el esquemático
d. Ninguna de las anteriores

28
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

6. Cuál de las siguientes tecnologías de programación presenta mayor


tolerancia al ruido.
a. SRAM
b. Flash
c. SRAM-Flash
d. Antituse

7. El estándar IEE normaliza la programación VHDL, cuál de los siguientes


permite usar los datos st_logic.
a. IEEE 9019
b. IEEE 1076
c. IEEE 1164
d. Todas las anteriores

8. Sirve para indicar al programa VHDL que instrucción de esa línea ha


finalizado.
a. Doble guion (--)
b. Punto y coma (;)
c. Llaves ({ });
d. Begin

9. Los objetos a usar en un programa VHDL, se declaran:


a. Al inicio del programa
b. En la entidad
c. En la arquitectura
d. Entre la arquitectura y begin

10. Del siguiente lista, cual no es una aplicación de los FPGA


a. Automóviles
b. Sistemas de telecomunicaciones
c. Electrónica de consumo
d. Ninguna de las anteriores

29
Unidad Didáctica II
Lógica combinacional mediante VHDL

Introducción de la Unidad Didáctica II:

En esta unidad se va a estudiar sobre el diseño e implementación de circuitos


lógico combinaciones, mediante el empleo de operadores lógicos o compuertas
lógicas tales como AND, OR, XOR, etc. Para lo cual se usarán las estructuras
de declaraciones secuenciales y concurrentes, tales como: condicional IF,
función WAIT, función WHEN, función CASE y PROCESS. Para lo cual se
aplicarán los conocimientos sobre análisis de problema, generación de tablas
de verdad y técnicas de reducción para diseño de los circuitos electrónicos
digitales.

Objetivo de la Unidad Didáctica II:

Diseñar programas VHDL de circuitos digitales combinaciones, empelado las


estructuras de declaraciones secuenciales, concurrentes y diseño jerárquico.

Organizador Gráfico de la Unidad didáctica II:

Declaraciones
concurrentes

Diseño e Lógica Declaraciones


implementació combinacion secuenciales
n de hardware al

Diseño
jerárquico
simple

Figura 22: Temas unidad didáctica 2


Fuente: La autora

30
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Actividades de aprendizaje de la Unidad Didáctica II:

Actividad de Aprendizaje 1 de la Unidad Didáctica II:

Diseño circuitos digitales combinaciones


La lógica combinación emplea elementos como las compuertas lógicas y se
caracteriza por tener entrada salida, pero no almacena ningún bit. Es decir se
limita únicamente a emplear los operadores lógicos para manipular las entradas
y obtener las salidas esperadas.
Para implementar circuitos electrónicos lógicos combinaciones de debe usar el
nombre de las compuertas lógicas ya que están consta como palabras
reservadas en lenguaje descriptor de hardware.

Operadores lógicos Descripción


AND “y” lógica
OR “o” lógica
NAND “no - y” lógica
NOR “no – o” lógica
XOR “o-exclusiva” lógica
NOT Negación o complemento
Tabla 2: Operadores lógicos
Fuente: La autora

Para el diseño de los circuitos lógicos combinacionales, se deben seguir los


siguientes pasos:
1. Analizar el problema dado
2. Identificar las entradas y salidas del problema
3. Crear la tabla de verdad
4. Simplificar la función, de acuerdo a la tabla de verdad elaborada

31
5. Desarrollar el programa en Xilinx
6. Simulación

Para la simulación se debe crear un módulo de Test Bench como se muestra en


la figura 23, luego seleccionar la entidad de módulo VHDL del programa que se
quiere realizar la simulación.

Figura 23: Creación de test bench para la simulación en VHDL


Fuente: La autora

Luego se crea de manera automáticamente el código test bench, como se va a


simular circuito combinaciones se debe borrar o comentar (anteponiendo -- a las
instrucciones) las líneas de reloj y dar valores a las entradas en la parte de
stim_proc: process.

Figura 24: Programa test bench para la simulación en VHDL


Fuente: La autora

32
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Finalmente se debe seleccionar el programa, dar clic sobre ModelSim Simulator,


y permitirá comprobar sintaxis y realizar la simulación.

En la parte superior del Xilinx en VIEW seleccionar la opción de


Simulation para la simulación y para el desarrollo del módulo VHDL se debe
seleccionar Implementation.

Ejemplo:
Realizar la implementación del circuito electrónico que se muestra en la figura
25 en una FPGA usando lenguaje descriptor de hardware.

Figura 25: Circuito electrónico digital de automatización de un zoológico


Fuente: La autora
Solución:
-- declaración de llibrerias
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

--declaración de entidades
entity zoologico is
Port ( x,y,z : in STD_LOGIC;
a,b : out STD_LOGIC);
end zoologico;

-- arquitectura
architecture Behavioral of zoologico is

begin

a<= (x and (not y) and z) or (x and (not z));


b<= not ((x and (not y) and z) or (x and (not z)) );
end Behavioral;

33
Simulación

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY zoologico_tb IS
END zoologico_tb;

ARCHITECTURE behavior OF zoologico_tb IS

COMPONENT zoologico
PORT(
x : IN std_logic;
y : IN std_logic;
z : IN std_logic;
a : OUT std_logic;
b : OUT std_logic
);
END COMPONENT;

--Inputs
signal x : std_logic := '0';
signal y : std_logic := '0';
signal z : std_logic := '0';

--Outputs
signal a : std_logic;
signal b : std_logic;
-- No clocks detected in port list. Replace <clock> below with
-- appropriate port name

--constant <clock>_period : time := 10 ns;

BEGIN

-- Instantiate the Unit Under Test (UUT)


uut: zoologico PORT MAP (
x => x,
y => y,
z => z,
a => a,
b => b
);

-- Stimulus process
stim_proc: process
begin
x<='1';
y<='1';
z<='1';
wait for 300 ms;

34
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

x<='1';
y<='1';
z<='0';
wait for 300 ms;

x<='0';
y<='1';
z<='0';
wait for 3000 ms;

x<='1';
y<='1';
z<='0';
wait for 3000 ms;

x<='1';
y<='1';
z<='1';
wait for 3000 ms;

end process;

END;

Figura 26: Simulación de circuito de automatización de un zoológico


Fuente: La autora

35
Desarrollo caso práctico 1

Juan desea incluir un sistema de seguridad electrónica en su pequeño negocio


familiar, para lo cual ha contratado sus servicios profesionales. Para efecto Juan
dispone de un FGPA Spartan 3 y requiere conectar tres sensores A, B, C
respectivamente, el sensor A es para detectar movimiento en el el interior del
local, el sensor de presencia B y un sensor C final de carrera en la puerta
principal, de tal manera que si los tres sensores se activan se encaden una
alarma sonora y un luz piloto, en caso que se active únicamente el sensor C de
activará únicamente la luz piloto, en caso de activarse los sensor de A y B o B
y c se activa solo la alarma sonora. Adicional a ello dispone un botón que permite
activar el modo automático del sistema con 1, caso contrario funciona de modo
manual.

Preguntas.
Identificar las entradas y salidas del sistema
Elaborar la tabla de verdad
Simplificar el circuito empleando mapas de Karnaugh
Realizar el esquemático del circuito en el software Xilinx, añadir capturas de
pantalla
Realizar la simulación de esquemático en Xilinx, añadir capturas de pantalla
Realizar un video explicando el desarrollo del esquemático, incluir URL de
acceso

Desarrollar el diseño de circuito digital en VHDL y simulación (test


bench) para dar solución al problema dado en clase.

36
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Estructura básicas mediante declaraciones concurrentes


La principal sentencia concurrente que se tiene disponible para VHDL es el
proceso (process), sirve para definir los límites de un dominio secuencial, es
decir, que para emplear las sentencias secuenciales se debe realizar sobre un
proceso.
Otras sentencias concurrentes son asignación de señal concurrentes y la
instanciación de componente, que no más que una forma diferencia del proceso
que proporcionan al lenguaje mayor expresividad.

Proceso
Un procesos es la principal sentencia concurrente que se usa en VHDL, los
procesos se definen siempre dentro de la arquitectura, se pueden declaran más
de un proceso y estos interactúan entre sí de forma concurrente.
Un proceso se ejecuta cuando cambia alguna de las señales que aparecen en la
lista de sensibilidad (las entradas sobre las cuales se presente generar un
evento) o cuando se da una condición por la que se está esperando mediante
WAIT.

Es preciso resaltar que los procesos son importantes, ya que sobre estos se
colocan las sentencias secuenciales. La sintaxis es la siguiente:
etiqueta_opcional : PROCESS (lista sensibilidad opcional)
declaraciones
BEGIN
sentencias secuenciales
END PROCESS etiqueta_opcional;

Ejemplo de proceso
Se presenta un ejemplo en VHDL empelando una estructura básica mediante
declaración concurrente con process.

37
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;

entity ejer2 is
Port ( a : in STD_LOGIC_VECTOR (0 to 3);
b : in STD_LOGIC_VECTOR (0 to 3);
x : in STD_LOGIC;
y : in STD_LOGIC;
c : out STD_LOGIC_VECTOR (0 to 3));
end ejer2;

architecture arq of ejer2 is


begin
process(a,b)
begin
if ( x = '1') then
c <= a + b;
else
c <= a * b;
end if;
if ( y = '1') then
c <= a - b;
end if;
end process;
end arq;

La sentencia WAIT permite:


 Reiniciar el procesos cuando se da una condición: WAIT UNTIL condición;
 Reiniciar cuando se produce un evento: WAIT ON lista_señales;
 Suspender definitivamente el proceso: WAIT;

Ejemplo
WAIT Equivalen

PROCESS PROCESS (hora_alarma, hora_actual)


BEGIN BEGIN
IF (hora_alarma = hora_actual) THEN IF (hora_alarma = hora_actual) THEN
sonido_alarma <= '1'; sonido_alarma <= '1';
ELSE ELSE
sonido_alarma <= '0'; sonido_alarma <= '0';
END IF; END IF;
WAIT ON hora_alarma, hora_actual; END PROCESS;
END PROCESS;

Sentencia de asignación de señal concurrente

38
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Es la forma simplificada de describir un proceso que se asigna a una señal


mediante una expresión de control, permitiendo escribir programas en VHDL con
estilo de flujo de datos. La sintaxis que se emplea es la siguiente:

[rótulo:] asignaicón_señal_condicional
[rótulo:] asignaicón_señal_seleccionada
asiganción_señal_condicional::=
señal <= opciones de ondas
ondas_condionales:= {onda WHEN condición ELSE} onda

Si una señal tiene asignaciones dentro un proceso y está en la lista de


sensibilidad, puede ocasionar que se reactive el proceso una vez que éste se ha
suspendido.
Ejemplo
PROCESS (B,M)
BEGIN
M<=B;
Z<=M;
END PROCESS;

Nota: Si hay más de una asignación secuencial dentro de un proceso, solo se


ejecuta la última que aparece. Si hay varias asignaciones concurres, se da la
situación de varias puertas intentando manipular eléctricamente el mismo punto.
La señal debe ser del tipo std_Logic (de la biblioteca IEEE) para que pueda existir
una resolución de conflictos eléctricos.

Asignación de señal condicional


Esta estructura concurrente opera de forma similar a la sentencia secuencial IF
usando WHEN, la asignación de la señala se elige en base a un conjunto de
condiciones booleanas que aparecen a la derecha del símbolo de asignación
(<=).
Esta sentencia es sensible a las señales que aparecen en las expresiones de las
condiciones sean propias o no.

39
Figura 27: Ejemplo de asignación de señal condicional
Fuente: La autora

Actividad de Aprendizaje 2 de la Unidad Didáctica II:

Estructura básica mediante declaraciones secuenciales


La estructura mediante este diseño, se sitúan entre la cabecera de PROCESS y
la terminación END-PROCESS, caso contrario VHDL no reconoce las
declaraciones secuenciales. Se definen como secuencial a la zona del código
VHDL en el que las sentencias se ejecutan de manera secuencial, es decir, en
un orden determinado, por lo tanto no son concurrente.

Sentencias de asignaciones de variables


Las sentencias de asignación de variables en VHDL se realiza mediante:=, la
sintaxis es la siguiente:
Nombre_variables := expresión

Sentencia IF
Este tipo de sentencia permite evaluar una condición, es decir, si cumple cierta
condición se ejecuta una acción, la sintaxis que usa en la siguiente, la sintaxis
que se usa es la siguiente:

if (condición) then
sentencias_secuenciales ;
{elsif (condición) then
sentencias_secuenciales}
else
sentencias_concurrentes
end if;

40
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

En la expresión puede aparecer la propia condición de evento de


una determinada señal (se usa principalmente para diseño de
circuitos secuenciales), son la sintaxis: señal’EVENT

Ejemplo sentencia IF:


En el siguiente ejemplo se presenta la operación aritmética de ventores de
dimensión 4, usando la declaración concurrente process y sobre este la
estructura secuencial IF.
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;

entity ejer2 is
Port ( a : in STD_LOGIC_VECTOR (0 to 3);
b : in STD_LOGIC_VECTOR (0 to 3);
x : in STD_LOGIC;
y : in STD_LOGIC;
c : out STD_LOGIC_VECTOR (0 to 3));
end ejer2;

architecture arq of ejer2 is


begin
process(a,b)
begin
if ( x = '1') then
c <= a + b;
else
c <= a * b;
end if;
if ( y = '1') then
c <= a - b;
end if;
end process;
end arq;

Sentencia de repetición FOR LOOP


Esta estructura permite repetir las sentencias un determinado números de veces,
empleando un índice que va tomando los valores del rango especificados. Se
usa la siguiente sintaxis.
FOR parámetro IN rango LOOP
sentencias secuenciales
END LOOP;

41
Ejemplo de bicle for

PROCESS (a)
BEGIN
z <= "0000";
FOR i IN 0 TO 3 LOOP
IF (a = i) THEN
z(i) <= '1';
END IF;
END LOOP;
END PROCESS;

Sentencia CASE
Esta estructura selecciona un secuencia de sentencia en función del valor de
una expresión, generalmente se usa cuando se tiene varias condiciones a fin de
simplificar el código usando varias veces la estructura if, se emplea case. La
sintaxis es la siguiente:

CASE expresión IS
WHEN valor_1 =>
sentencias secuenciales
WHEN valor_2 =>
sentencias secuenciales
..............
WHEN valor_n =>
sentencias secuenciales
END CASE;

Con la sentencia CASE y condicionales internos, se pueden realizar máquinas


de estados finitos.

A continuación se presenta un ejemplo de código en VHDL usando sentencia


CASE.

42
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

ENTITY mux IS
PORT(
seleccion : IN BIT_VECTOR (1 downto 0);
Entrada0, Entrada1, Entrada2, Entrada3 : IN BIT_VECTOR (0 to 7);
Salida : OUT BIT_VECTOR(0 to 7));
END mux;

ARCHITECTURE mux1 OF mux IS


BEGIN
PROCESS (seleccion, Entrada0, Entrada1, Entrada2, Entrada3)
BEGIN
CASE seleccion IS
WHEN "00" =>
Salida <= Entrada0;
WHEN "01" =>
Salida <= Entrada1;
WHEN "10" =>
Salida <= Entrada2;
WHEN "11" =>
Salida <= Entrada3;
END CASE;
END PROCESS;
END mux1;

Conversor sistemas numéricos de binario a decimal

Se requiere visualizar los números decimales en un display de 7 segmentos en función a las


combinaciones en sistemas binario que se den empleado de 3 pulsadores. Siempre y cuando se
garantice que un interruptor para conversión de sistema decimal a binario este activado.

P1 P2 P3 Display
0 0 0 “0”
0 0 1 “1”
0 1 0 “2”
0 1 1 “3”
1 0 0 “4”
1 0 1 “5”
1 1 0 “6”
1 1 1 “7”

Preguntas.
Realizar el programa VHDL empleando declaraciones secuenciales y concurrentes.
Desarrollar la simulación con test bench
Realizar el respectivo informe en el formato proporcionado al inicio del curso.

43
Actividad de Aprendizaje 3 de la Unidad Didáctica II:

Diseño jerárquico simple, instanciación de componentes


El diseño jerárquico agrupa varias entidades electrónicas o subprogramas, las
cuales pueden analizar y simular de manera individual y con facilidad, para luego
unir mediante un algoritmo de integración TOP LEVEL.

Figura 28: Estructura de diseño jerárquico


Fuente: Modificado por la autora

Este diseño se emplea cuando los programas son extensos y la metodología


de diseño es la siguiente:
1. Analizar el problema (evaluar si es externo y se requiere realízalo por
partes)
2. Diseñar los programas de manera individual, conocido en VHDL como
componentes (son programas que van a aportar al programa general)
3. Crear un paquete de componentes (todo los componentes o programas
individuales se debe crear en un mismo proyecto)
4. Diseñar el programa integrado de alto nivel o Top Level, mediante la
instanciación de los componente

La sintaxis para la instanciación de componentes en el programa principal es la


siguiente:
 Para llamar a los componentes
COMPONENT nombre-componente
PORT(
entradas : IN tipo_dato ;
salidas : OUT tipo_dato
);
END COMPONENT;

44
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

 Para llamar a las instancias de cada componente


Inst_nombre-componente : nombre-componente PORT MAP(
--Se relacionan los puertos de cada componente con las
entradas/salidas del Top Level
Entrada_componte => entrada_programa
);

Ejemplo diseño jerárquico simple


De la figura mostrada anteriormente se va a presentar el código descrito en
formato VHDL, para lo cual se requiere de tres componentes o programas
individuales:
 Componente 1: compuerta AND (a1 y b1)
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity componente1 is
Port ( a1 : in STD_LOGIC;
b1 : in STD_LOGIC;
s1 : out STD_LOGIC);
end componente1;

architecture Behavioral of componente1 is


begin
s1 <= a1 and b1;
end Behavioral;

 Componente 2: compuerta OR (a1 y b2)

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity componente2 is
Port ( a2 : in STD_LOGIC;
b2 : in STD_LOGIC;
s2 : out STD_LOGIC);
end componente2;

architecture Behavioral of componente2 is

begin

s2 <= a2 or b2;
end Behavioral;

45
 Componente 3: función (i1 AND i2) XOR
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity componente3 is
Port ( i1 : in STD_LOGIC;
i2 : in STD_LOGIC;
en : in STD_LOGIC;
s3 : out STD_LOGIC);
end componente3;

architecture Behavioral of componente3 is


begin
s3 <= (i1 and i2) xor en;
end Behavioral;

 Programa de alto nivel (integrador)


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Alto_nivel is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
c : in STD_LOGIC;
sal : out STD_LOGIC);
end Alto_nivel;

architecture Behavioral of Alto_nivel is


-- Llamar a los componentes que integran el programa

COMPONENT componente1
PORT(
a1 : IN std_logic;
b1 : IN std_logic;
s1 : OUT std_logic
);
END COMPONENT;

COMPONENT componente2
PORT(
a2 : IN std_logic;
b2 : IN std_logic;
s2 : OUT std_logic
);
END COMPONENT;

COMPONENT componente3
PORT(
i1 : IN std_logic;
i2 : IN std_logic;
en : IN std_logic;
s3 : OUT std_logic
);

46
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

END COMPONENT;

signal comp1, comp2 : std_logic;


begin
--Llamar a las intancias de cada componente

Inst_componente1: componente1 PORT MAP(


a1 => a,
b1 => b ,
s1 => comp1
);

Inst_componente2: componente2 PORT MAP(


a2 => a ,
b2 => b,
s2 => comp2
);

Inst_componente3: componente3 PORT MAP(


i1 => comp1,
i2 => comp2,
en => c,
s3 => sal
);
end Behavioral;

 Esquemático

Figura 29: Esquema de diseño lógico secuencial programado


Fuente: La autora

47
Nota: En el programa VHDL para poder comprobar sintaxis de cada programa
se debe dar la opción de Set as Top Module.

Figura 30: Asignación de Set as Top Module en diseño jerárquico


Fuente: La autora

Participación en foro de debate sobre el diseño jerárquico en VHDL.

Caso práctico

Sumador completo con diseño jerárquico


Se requiere realizar un sumador completo en VHDL usando diseño jerárquico,
con dos medio sumadores, se puede realizar con dos o tres componentes.

48
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Preguntas.
Realizar el programa VHDL de un sumador completo, empelando diseño
jerárquico
Desarrollar la simulación
Realizar el respectivo informe en el formato proporcionado al inicio del curso.
Elaborar un video de 2 0 4 min en el cual se evidencie el funcionamiento del
programa (Simulación e incluir el link en el respectivo informe de
presentación)

Actividad de Aprendizaje 4 de la Unidad Didáctica II:


Diseño e implementación de hardware
Para el diseño de hardware, lo que se debe hacer escribir las instrucciones en
VHDL en un software compatible con una palca FPGA usando las estructuras
descritas anteriormente; la implementación en si consiste en la respectiva carga
del programa en una placa física.
Por lo tanto se consideran los siguientes pasos como los necesarios para el
diseño e implementación de hardware de circuitos electrónicos digitales:
1. Analizar el problema, a fin de establecer la tabla de verdad y la función
que se pretende implementar (se recomienda usar cualquier método para
simplificación).
2. Diseñar el programa VHDL, usando declaraciones concurrentes,
secuenciales o diseño jerárquico dependiendo las necesidades y
requerimiento del problema planteado.
3. Comprobar sintaxis del programa (se debe aclarar que la parte
compilación hace referencia a la traducción de las instrucciones a un

49
sistemas hexadecimal para que pueda entender la máquina, eso no
garantiza que las respuestas del diseño implementado sean las
esperadas).
4. Realizar la simulación para comprobar el correcto funcionamiento del
diseño digital, mediante el test bench (este paso es opcional, pero es
indispensable para corroborar el funcionamiento)
5. Cargar el programa en la placa FGPA.

Compilación
La compilación actúa como un traductor, si el código no compila de manera
exitosa o da errores el programa no puede ser cargado en la placa FPGA; si no
existe errores de sintaxis aparecer un visto en check sintaxis, tal y como se
muestra en la siguiente figura.

Figura 31: Compilación de código VHDL


Fuente: La autora

Además VHDL permite observar el circuito esquemático para comprobar, para lo


cual se debe dar click sobre View RTL Schematic.

50
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Figura 32: Generación de esquemático de código VHDL


Fuente: La autora

Simulación de diseño
No es un requerimiento pero si se recomienda verificar el correcto
funcionamiento previo a la carga del código en una FPGA. Los pasos para la
son:
1. Dar click derecho sobre el nombre de programa y crear nueva fuente de
VHDL Test Bench y en nombre se recomendar dar el mismo sobre el cual se
requiere la simulación.

Figura 33: Creación de Test Bench para simulación en VHDL


Fuente: La autora

51
2. Se generar una ventana de edición, para visualizar dar click sobre la opción
simulación. Una vez ahí comentar todas las líneas de reloj y asignar valores
a las entradas.

Figura 34: Test Bench en VHDL


Fuente: La autora

3. Comprobar sintaxis y dar click sobre Simulate Behavioral; aparece una nueva
ventana donde se puede ver las salidas en estado de alto (1) o bajos 0.

Figura 35: Simulación de diseño digital en VHDL


Fuente: La autora

52
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Carga del código en VHDL


Una vez que se haya disnea el circuito digital, comprobado sintaxis y su
funcionamiento se debe cargar sobre una placa para ya poner en funcionamiento
y dar saludación a un determinado problema o control de algún sistema.

Para ello se deben seguir los siguientes pasos:


1. Seleccionar las características de la placa en la parte de diseño, para lo cual
es importante consultar la hoja de datos técnico del dispositivo.

Figura 36: Ventana de propiedades de diseño


Fuente: La autora

2. En la opción User Constraints seleccionar I/O Pin Planning (PlanAhead) -


Pre-Synthesis

53
Figura 37: Inicialización de diseño para carga en FPGA
Fuente: La autora

3. Seleccionar los GPIO para las entradas y salidas (los pines físicos que se van
a usar para conectar las elementos de entradas y salida en la FPGA)

Figura 38: Selección de GPIO en FPGA


Fuente: La autora

54
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

4. Dar click sobre Generate Programming File

Figura 39: Generación del Programming File


Fuente: La autora

5. Dar click sobre Configure Target Device

Figura 40: Configuración y carga en placa FPGA


Fuente: La autora

55
Resumen
Los circuitos lógico combinaciones con aquellos cuyas salidas dependen
únicamente de las entradas, no capacidad de almacenar un bit y emplea
principalmente los puertas lógicas.
Dentro de las estructuras básicas para el diseño de circuitos electrónicos
digitales en VHDL son:
Estructura Sintaxis
Básicas Puertas lógicas And, or, xor, nand, not, nor
etiqueta_opcional : PROCESS
(lista sensibilidad opcional)
Declaraciones declaraciones
Procesos
concurrentes BEGIN
sentencias secuenciales
END PROCESS etiqueta_opcional;
if (condición) then
sentencias_secuenciales ;
{elsif (condición) then
IF sentencias_secuenciales}
else
sentencias_concurrentes
end if;

FOR parámetro IN rango LOOP


FORE sentencias secuenciales
Declaraciones END LOOP;
secuenciales
CASE expresión IS
WHEN valor_1 =>
sentencias secuenciales
WHEN valor_2 =>
CASE sentencias secuenciales
..............
WHEN valor_n =>
sentencias secuenciales
END CASE;

COMPONENT nombre-componente
PORT(
entradas : IN tipo_dato ;
Componentes
salidas : OUT tipo_dato
);
END COMPONENT;

56
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Inst_nombre-componente : nombre-
componente PORT MAP(
Diseño jerárquico Instancias Entrada_componte =>
entrada_programa
);

Actividades de Auto-evaluación de la Unidad Didáctica II:

Seleccionar la respuesta correcta.


1. Los circuitos combinacionales generan realimentación.
a. Verdadero b. Falso
2. Los procesos son estructuras básicas mediante declaraciones secuenciales.
a. Verdadero b. Falso
3. La compilación consiste en comprobar que el programa funciones
correctamente.
a. Verdadero b. Falso
4. Las sentencias como IF, FOR, CASE, funcionan dentro de un proceso.
a. Verdadero b. Falso
5. Un ejemplo de función de declaración secuencial es el CASE
a. Verdadero b. Falso
6. Para la simulación de circuito lógico combinacional se debe conservar las
líneas de reloj en el test bench.
a. Verdadero b. Falso
7. El software Xilinx, permite generar un esquemático del circuito en VHDL.
a. Verdadero b. Falso
8. El diseño jerárquico agrupa a varios programas para que en conjunto
cumplan un mismo objetivo.
a. Verdadero b. Falso
9. La instanciación es parte del componente dentro de un diseño jerárquico
básico en VHDL.
a. Verdadero b. Falso

57
10. Para implementación de circuito en una placa FPGA no es necesario definir
los fines de las entradas y salidas.
a. Verdadero
b. Falso

Actividad de Evaluación de la Unidad Didáctica II:

Parte 1: Fundamentación
Desarrollo de cuestionario de temas estudiados en unidad didáctica 2

Parte 2: Práctica
Del problema dado realizar:

a. Tabla de verdad. (1 punto)


b. Circuito lógico simplificado (0.5 puntos)
c. Programación VHDL (2.5 puntos)
i. Escribir las instrucciones

Copiar el código en Xilinx y realizar la simulación, además un pequeño video


explicativo además incluir los pasos para cargar a una SPARTAN 3. (Se
respetará hasta las 18h00 del día martes 23 de marzo de 2021) (2 puntos)
ELECTRÓNICA DIGITAL APLICADA

Unidad Didáctica 3
Lógica secuencial mediante VHDL

Introducción de la Unidad Didáctica N:

En esta unidad didáctica se estudiará las pautas para el diseño de circuitos


lógicos secuenciales en VHDL; poniendo en práctica los contenidos abarcados
en las unidades anteriores tales como el uso de estructuras mediante
declaraciones concurrente y secuenciales.
También se realizará el diseño e implementación de máquinas de estado, con el
fin de solventar cualquier problema planteado y siendo el primer acercamiento
para diseño de sistemas embebidos de uso específico.

Objetivo de la Unidad Didáctica N:


Desarrollar habilidades mediante la utilización de medios tecnológicos de última
generación para el diseño e implementación de sistemas electrónicos.

Organizador Gráfico de la Unidad didáctica N:

Características
del diseño
lógico
secuencial

Diseño de
sistemas Flip - Flops
embebidos
UNIDAD 3

Máquinas de Registros y
estado contadores

Figura 41: Contenidos unidad didáctica 3


Fuente: La autora

59
Actividades de aprendizaje de la Unidad Didáctica III:

Actividad de Aprendizaje 1 de la Unidad Didáctica III:

Diseño lógico secuencial


Un circuito digital secuencial es aquí que no depende solo de la combinación de
entradas, sino también de las historias de las entradas, es decir, tienen la
capacidad de almacenar el contenido del elemento anterior. Esto circuitos son
considerador la base principal para el desarrollo de la memorias, dispositivos
de almacenamiento y procesamiento de información.

La característica fundamental es que sus salidas realimentan a las entradas,


produciendo de esta manera que se almacene un bit (ya sea un “0” o “1” lógico)
durante el tiempo definido hasta que se producto un cambio de pulso en las
entradas.

Figura 42: Características de circuitos secuenciales


Fuente: Modificado por la autora

Los circuitos secuenciales se clasifican en dos tipos, en función a la manera en


la que manejan el tiempo para funcionamiento:
 Circuitos secuencia síncronos: estos necesitan de la señal de un reloj,
para manejar una determinada secuencia para activar los flancos de subida
y de esta manera funcionar los biestables.
 Circuitos secuenciales asíncronos: este tipo de circuitos no requieren de
la presencia de una señala de reloj para funcionar.

60
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Para el diseño de circuitos lógicos secuenciales es indispensable el uso de


declaraciones concurrentes (procesos) y secuenciales (empelando
principalmente en circuito síncronos para determinar las señales de reloj, que
puede causar que el estado del Flip-Flop cambie).

Actividad de Aprendizaje 2 de la Unidad Didáctica III:


Flip-flops

Los flip flops, o también conocidos como disponible biestables, son circuitos
integrados de tipo multivibrador y secuencial que pueden adquirir dos estados
de manera indefinida, a menos que exista una perturbación ya sea de origen
interno o externo. Estos elementos internamente están formados por
compuertas lógicas de tipo NAND y OR, se conectan entre sí, donde las salidas
realimenta a la entrada, tal y como se muestra en la siguiente imagen.

Figura 43: Estructura de un flip flop J-K


Fuente: http://hyperphysics.phy-astr.gsu.edu/hbasees/Electronic/jkflipflop.html

En los biestables se va a tener la salida (Q) y el complemento (𝑄̅), este


dispositivo tiene capacidad de almacenar un bit (0 ó 1), es considerado como la
memoria básica para las operaciones de lógica secuencial.

61
En el mercado existen diversos tipos de biestables, entre los más comerciales
se tiene:
 Flip-Flop R-S
 Flip-Flop D
 Flip-Flop T
 Flip-Flop J-K

Flip Flop R-S


El biestable R-S adquiere su nombre por sus entradas Reset y Set, para resetear
y setear la información ingresada o almacenada en el dispositivo.

Figura 44: Flip Flop tipo R-S


Fuente: http://hyperphysics.phy-astr.gsu.edu/hbasees/Electronic/jkflipflop.html

Flip Flop T
Este tipo de flip-flop, se produce un cambio de estado mediante un pulso externo,
el cual se constituye como un ciclo de cero a uno de manera completo. Este
biestables pude emplearse como un complemento de reloj para otros modelos
de biestables.

62
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Figura 45: Flip Flop tipo T


Fuente: http://hyperphysics.phy-astr.gsu.edu/hbasees/Electronic/jkflipflop.html

Flip Flop D
Es biestable tipo D se caracteriza por actuar como almacén, cuya que la salida
es exactamente igual a la entrada.

Figura 46: Flip Flop tipo D


Fuente: http://hyperphysics.phy-astr.gsu.edu/hbasees/Electronic/jkflipflop.html

Flip Flop J-K


Este dispositivo es una combinación de los dos anteriores, pero se diferencia de
RS en su comportamiento al activarse ambas entradas a la vez. Este biestable
hace que su salida tenga el estado contrario al que poseía antes de abrirse las
dos entradas de manera simultánea.

63
Figura 47: Flip Flop J-K
Fuente: http://hyperphysics.phy-astr.gsu.edu/hbasees/Electronic/jkflipflop.html

Diseñar flip –flop T, RS y JK en Xilinx usando funciones lógicas

Diseño de Biestables en VHDL


Para la descripción de biestables y circuitos secuenciales se emplean las
sentencias concurrentes en las que la señal de reloj CLK actúe por flanco.

A continuación se presenta el diseño de un flip flop tipo D en VHDL, empleando


declaraciones concurrentes y secuenciales, para circuitos síncronos.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity biestabled is
Port ( d : in STD_LOGIC;
clk : in STD_LOGIC;
qn : out STD_LOGIC;
q : out STD_LOGIC);
end biestabled;

architecture Behavioral of biestabled is

begin
process(d, clk)
begin
if(clk'event and clk='1') then
q <=d;
qn <= not d;
end if;
end process;

end Behavioral;

64
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Diseño de flip-flop JK, empleando estructuras concurrentes y


secuenciales.

Consultar sobre la apreciación de registros y contadores digitales

Actividad de Aprendizaje 3 de la Unidad Didáctica III:


Registro

Los registros son dispositivos digitales de almacenamiento temporal, formado


por un conjunto de biestables, los usos más comunes de los registros son:
 Direccionar la memoria
 Llevar la cuanta de donde está el programa que se encuentra en ejecución
 Almacenar un valor, entre otros.

Existen varios tipos de registro entre los cuales destacan los siguientes:
 Registros con carga en paralelo: Se caracterizas porque las entradas de cada
Flip-flop son independientes, pero se comparte la señal de habilitación.

Figura 48: Registro con carga en paralelo


Fuente: https://electrouni.files.wordpress.com/2010/08/registros.pdf

 Registro de corrimiento: este tipo de registro tiene varias aplicaciones como:


multiplicación, división y conversión de serie a paralelo.

65
Figura 49: Registro de corrimiento
Fuente: https://electrouni.files.wordpress.com/2010/08/registros.pdf

 Registro corrimiento con carga en paralelo: Este tipo de registro es una


combinación entre los dos mencionados anteriormente, como se muestra en
la siguiente figura.

Figura 50: Registro de corrimiento con carga en paralelo


Fuente: https://electrouni.files.wordpress.com/2010/08/registros.pdf

Ejemplo.
En el siguiente ejemplo se muestra un registro sencillo, en donde se depositaran
ciertos valores de 8 bits (se puede realizan de cualquier número), al son de tic
tac de las señales de reloj.

66
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity registro is
Port ( ent : in STD_LOGIC_VECTOR (7 to 0);
sal : out STD_LOGIC_VECTOR (7 to 0);
clk : in STD_LOGIC;
reset : in STD_LOGIC);
end registro;

architecture Behavioral of registro is


begin
process(clk, reset)
begin
if (clk'event and clk='1')
then
if reset ='1' then
sal <= "00000000";
else
sal <= ent;
end if;
end if;
end process;

end Behavioral;

Nota: La línea de condición del reloj también puede ser reemplaza por la
siguiente expresión, teniendo la misma validez, son alterar el funcionamiento del
programa VHDL.
If (rising_edge (clk)) then

Contadores
Los contadores digitales son circuitos que realizan el conteo ya sea de forma
ascendente o descendente entre un valor inicial y un final. Los contadores
contienen elementos de memoria que almacenan el valor de cada cuanta con el
son de tic tac del reloj.

67
Los circuitos contadores se usan principalmente para:
 Realizar operaciones de suma, resta, en cada ciclo de reloj
 Sistemas digitales para lleva la cuenta de varios eventos

Existen contadores síncronos y asíncronos.


Contadores asíncronos
Se caracterizan por que estar conectados en cascada y la señal de reloj solo se
conecta en el entrada del primer flip – flop.

Figura 51: Contador asíncrono con flip-flop tipo T


Fuente: https://vhdl.es/contador-vhdl/

Contadores síncronos
Estos contadores hacen que un flip-flop cambie su estado solo cuando todos los
flip-flops se cuentren en estado de alto (1) en las etapas anteriores. A diferencia
de los contadores asíncronos la señal de reloj va conectada en todos los
biesatbles.

Figura 52: Contador síncrono con flip-flop tipo T


Fuente: https://vhdl.es/contador-vhdl/

68
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Ejemplo
En el siguiente ejemplo se muestra el código en VHDL de un contador de 0 a
255, para lo cual se emplea un vector de 8 posiciones, una variable que indica si
finalizado el conteo, el reset para iniciar el conteo desde cero y la señal de reloj
que es que permitirá ir contando. En la señal cuenta se va realizando el conteo.

library IEEE;
use IEEE.std_logic_1164.all;
use ieee.numeric_std.all;

entity contador is
port(
clk : in std_logic;
reset : in std_logic;
sal : out std_logic_vector(7 downto 0);
a : out std_logic
);
end entity;

architecture cont of contador is


signal cuenta : integer range 0 to 255;
begin
process(clk,reset)
begin
if (reset='1') then
cuenta <= 0;
a <= '0';
elsif(rising_edge(clk)) then -- igual al clk'event and clk="1"
a <= '0';
if(cuenta=255) then
cuenta <= 0;
a <= '1';
else
cuenta <= cuenta + 1;
end if;
end if;
end process;
sal <= std_logic_vector(to_unsigned(cuenta, 8));
end cont;

Diseño de un cronómetro digital

69
Actividad de Aprendizaje 4 de la Unidad Didáctica III:

Máquinas de estado
Una máquina de estados finitos de esta es una herramienta que se emplea para
el diseño de circuitos secuenciales de aplicación específica, la máquina de
estado es considerada como una abstracción computacional que describe el
comportamiento de un sistema reactivo mediante un número determinado de
estados y transiciones.
Hay que resaltar que una máquina de estado no son diagramas de flujo, son
acciones que se asocian a las transiciones esperando que suceda un evento
para tener una salida; se emplean para el diseño de autómatas (diseño lógico) o
aplicaciones de uso específico como la arquitectura de computadores.

Consultar sobre las máquinas de estado finito

Se tiene dos tipos de representación de los diagramas de máquinas de estado:


 Mealy: se caracteriza porque determina sus salida en función al estado
represente y las entradas del sistema

Figura 53: Máquina de estados de Mealy


Fuente: La Autora

70
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

 Moore: se caracteriza porque las salidas dependientes únicamente del


estado presente, sin embargo las entradas interviene en la decisión del
próximo estado.

Figura 54: Máquina de estados de Moore


Fuente: La Autora

Cada circulo representan un estado, en el caso del diagrama de Moore existen


4 estados identificados como S0, S1, S2, S3, S4 y S5; en este caso el estado
S1 es estado inicial ya que tiene una flecha que lo indica, en cado de activar el
botón de reset volverá al estado inicial. Los estados se encuentran conectados
entre sí por unas fechas llamadas transiciones, que indican cómo evoluciona el
sistema de un estado a otro en función a las señales de entrada. Las salidas se
encuentran bajo el estado por ejemplo en el estado q1 la salida es cero (q1/0)

A continuación se presenta el código en VHDL de la máquina de estado de


Moore.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity MEF is
Port ( x : in STD_LOGIC;
y : out STD_LOGIC;
clk : in STD_LOGIC;

71
reset : in STD_LOGIC);
end MEF;
architecture Behavioral of MEF is
type estados_t is (q0,q1,q2,q3,q4);
signal estado, estado_siguiente : estados_t;
begin
process(x,estado)
begin
y <= '0';
estado_siguiente <= estado;
case(estado) is
when q0 =>
y <= '0';
if(x='0') then
estado_siguiente <= q1;
else estado_siguiente <= q2;
end if;
when q1 =>
y <= '0';
if(x='0') then
estado_siguiente <= q1;
else estado_siguiente <= q3;
end if;
when q2 =>
y <= '0';
if(x='0') then
estado_siguiente <= q4;
else
estado_siguiente <= q2;
end if;
when q3 =>
y <= '1';
if(x='0') then
estado_siguiente <= q4;
else
estado_siguiente <= q2;
end if;
when q4 =>
y <= '1';
if(x='0') then estado_siguiente <= q1;
else estado_siguiente <= q3;
end if;

72
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

--when q5 =>
--salida
--condiciones de entrada evaluar los eventos
when others => null;
end case;
end process;

process (clk,reset) begin


if(reset='1') then
estado <= q0;
elsif rising_edge(clk) then -- clk´event clk="1"
estado <= estado_siguiente;
end if;
end process;

end Behavioral;

Realizar el diseño para el control de una máquina expendedora de


bebidas teniendo dos opciones:
 Agua a 50 ctvs.
 Gaseosa a 75 ctvs.

Considerando que la máquina solo admite modelas de 25 ctvs, 50 ctvs y de un


dólar.

Actividad de Aprendizaje 5 de la Unidad Didáctica III:


Sistemas embebidos
Un sistema embebido es un sistema de computación (que no tiene el aspecto de
ser un computador) diseñado para realizar función especificada (o función
dedicada) en tiempo real. Se diferencian tanto de sistemas microcontrolados y
de computadores personales, ya que estos dispositivos con capaces de cubrir

73
en amplio rango de necesidades de forma general para múltiples propósitos;
mientras los sistemas embebidos solo cubren necesidades específicas.

En un sistema embebido la materia de componentes se encuentran incorporados


dentro de una misma placada base, como por ejemplo:

 Un celular
 Una Tablet
 Una tarjeta de video
 Una tarjeta de audio
 Decodificadores
 Un módem, etc.

Generalmente los sistemas embebidos son programas directamente en una


placa (FPGA o PCB de diseño propio) en lenguaje ensamblador o VHDL sobre
el microprocesador incorporado en la misma placa. También se puede usar
lenguajes como C, C++ y Java.

Consultar sobre la metodología de diseño de los sistemas embebidos

Ventajas y desventajas
Los sistemas embebidos son ampliamente aplicados a diferentes áreas, como la
automatización, salud, electrónica de consumo, milicia, telecomunicaciones y la
industria. Siento el sector de la industrial es quien mejor aprovecha esta
tecnología debido a los siguientes aspectos:

 Control total: permiten personalizar los sistemas, usando propia código para
realizar los cambios o modificaciones necesarias.
 Conectividad y adaptabilidad: la información es de fácil extracción y
modificación en otros dispositivos externos de manera sencilla.

74
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

 Reducción de costos: al estar formado por módulos electrónicos acosta los


precios, ya que se tiene incluido todo en una misma placa.
 Diseño Modular: con dispositivos fácil de trasladar y desmontar, lo que
permite integrar con otros sistemas electrónicos.
 Tiempo de respuesta: Los sistemas embebidos funcionan en tiempo real, es
decir que el procesamiento es inmediato.
 Accesibilidad: todos los usuarios y personas tiene acceso a estas placas para
sistemas embebidos a bajos costos.

Así como toda tecnología y dispositivos también tienen sus desventajas dentro
de estas tenemos:
 Cifrado débil, es decir que se puede acceder con facilidad a la información
 Fala de certificador
 No se puede bloquear o deshabilitar puertos de entrada y salida
 El código es libre, es decir, que otro usuario lo puede reutilizar.
 Son susceptibles a ataques de red.

Participación en foro de debate sobre sistemas embebidos

75
Resumen

Los circuitos digitales secuenciales son aquellos cuyas salidas realimentan a


las entradas, empelan dispositivos biestables que son la base de la memoria.
Para el diseño de circuitos secuenciales en VHDL se emplea las declaraciones
secuenciales y concurrentes. La sintaxis es la siguiente

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity biestabled is
Port ( entrada : in STD_LOGIC;
clk : in STD_LOGIC;
qn : out STD_LOGIC;
q : out STD_LOGIC);
end biestabled;

architecture Behavioral of biestabled is

begin
process(entrada, clk)
begin
-- procesos;
end if;
end process;

end Behavioral;

Las máquinas de estados finitos permiten el diseño de los sistemas embebidos,


para realizar una función específica.

76
Ing. Lissette Salinas
ELECTRÓNICA DIGITAL APLICADA

Actividades de Auto-evaluación de la Unidad Didáctica N:

1. Los circuitos lógicos secuenciales se caracterizan porque permiten guardar


temporalmente un estado.
a. Verdadero b. Falso
2. En los circuitos secuenciales síncronos es indispensable que se realiza la
condición para determinar si existe alguna señal de reloj activa para
funcionar.
a. Verdadero b. Falso
3. Las instrucciones rising_edge(clk) y clk'event and clk="1, realizan acciones
diferentes.
a. Verdadero b. Falso
4. Los registros digitales permiten crear cronómetros digitales
a. Verdadero b. Falso
5. Los contadores digitales se usan para realizar operaciones como la suma,
resta y multiplicación.
a. Verdadero b. Falso
6. Los sistemas embebidos son sistemas computacionales capaces de ejecutar
varias funciones.
a. Verdadero b. Falso
7. Un teléfono celular inteligente es un ejemplo de sistema embebido
a. Verdadero b. Falso
8. Una ventaja de los sistemas embebidos es la velocidad de procesamiento
(tiempo real)
a. Verdadero b. Falso
9. Las máquinas de estado es una poderosa herramienta para el diseño de
sistemas dedicados.
a. Verdadero b. Falso

77
Actividad de Evaluación de la Unidad Didáctica N:

Realizar el diseño en VHDL de una máquina dispensadora de café que brinda


lo siguiente:
 Café expreso, con un costo de 75 ctvos
 Mocachino, con un costo de 1 dólar
 Capuchino, con un costo de 1 dólar

Las cucharas de azúcar deben ser seleccionadas por el usuario:


 Cero cucharas
 Una cuchara
 Dos cucharas

78
Ing. Lissette Salinas

También podría gustarte