Professional Documents
Culture Documents
M Diseno Sistemas Digitales 2020-2
M Diseno Sistemas Digitales 2020-2
UNAM
Facultad de Estudios Superiores Cuautitlan
Departamento: Asignatura:
Ingeniería Diseño de Sistemas Digitales
Índice
Facultad de Estudios Superiores Cuautitlán UNAM
Índice
Índice i
Facultad de Estudios Superiores Cuautitlán UNAM
Introducción
Una forma más rápida y directa de integrar aplicaciones es mediante la lógica programable, la cual
permite independizar el proceso de fabricación del proceso de diseño fuera de la fábrica de
semiconductores. Esta idea fue desarrollada por Hon y Sequin y Conway y Mead a finales de los años
sesenta.
Los dispositivos lógicos programables (PLD, por sus siglas en inglés) favorecen la integración de
aplicaciones y desarrollos lógicos mediante el empaquetamiento de soluciones en un circuito
integrado. El resultado es la reducción de espacio físico dentro de la aplicación; es decir, se trata de
dispositivos fabricados y revisados que se pueden personalizar desde el exterior mediante diversas
técnicas de programación. El diseño se basa en bibliotecas y mecanismos específicos de mapeado de
funciones, mientras que su implementación tan sólo requiere una fase de programación del
dispositivo que el diseñador suele realizar en unos segundos.
Prólogo ii
Facultad de Estudios Superiores Cuautitlán UNAM
Con los dispositivos lógicos programables, podemos usar herramientas de software baratas para
llegar rápidamente al desarrollo, simulación y prueba de nuestros diseños. Por lo tanto, un diseño
puede ser programado rápidamente en el dispositivo, e inmediatamente probados en vivo en el
circuito.
El presente reglamento de la sección electrónica, tiene por objeto establecer los lineamientos,
requisitos y condiciones que deberán de conocer y aplica, alumnos y profesores en los laboratorios
dentro de sus cuatro áreas: comunicaciones, control, sistemas analógicos y sistemas digitales.
Prólogo iii
Facultad de Estudios Superiores Cuautitlán UNAM
2. Se permite el uso de medios electrónicos y equipo de sonido (celulares, tabletas, computadoras, etc.)
únicamente para la realización de las prácticas.
3. Es responsabilidad del profesor y de los alumnos revisar las condiciones del equipo del laboratorio al
inicio de cada práctica. (encendido, dañado, sin funcionar, maltratado, etc.) El profesor reportará
cualquier anomalía al encargado de área correspondiente o al jefe de sección.
4. Los profesores deberán de cumplir con las actividades y tiempos indicados en el “cronograma de
actividades de laboratorio”.
6. Es requisito indispensable para la realización de las prácticas, que el alumno cuente con su manual
completo y actualizado al semestre en curso, en formato digital o impreso, el cual podrá obtener en:
http://olimpia.cuautitlan2.unam.mx/pagina_ingenieria.
7. Es requisito indispensable para la realización de las prácticas de laboratorio que el alumno cuente con
las hojas de datos técnicos de los dispositivos a utilizar.
8. El alumno deberá traer su circuito armado en la tableta de conexiones para poder realizar la práctica,
de no ser así, tendrá una evaluación de cero en la sesión correspondiente.
9. En caso de que el alumno no asista a una sesión, tendrá falta, (evaluándose con cero) y será indicada
en el registro de seguimiento y control por medio de guiones.
10. La evaluación de cada sesión debe realizarse en base a los criterios de evaluación incluidos en los
manuales de prácticas de laboratorio y no podrán ser modificados. En caso contrario, reportarlo al
jefe de sección.
A - (Aprobado); Cuando el promedio total de todas las prácticas de laboratorio sea mayor o
igual a 6 siempre y cuando tengan el 90% de asistencia y el 80% de prácticas acreditadas
en base a los criterios de evaluación.
NA - (No Aprobado); No se cumplió con los requisitos mínimos establecidos en el punto anterior.
NP - (No Presentó); No se entregó reporte alguno.
12. Profesores que requieran hacer uso de las instalaciones de laboratorio para realizar trabajos o
proyectos, es requisito indispensable que notifiquen por escrito al jefe de sección. Siempre y cuando
no interfiera con los horarios de los laboratorios.
13. Alumnos que requieran realizar trabajos o proyectos en las instalaciones de los laboratorios, es
requisito indispensable que esté presente el profesor responsable del trabajo o proyecto. En caso
contrario no podrán hacer uso de las instalaciones.
14. Correo electrónico del buzón para quejas y sugerencias para cualquier asunto relacionado con los
laboratorios (electronica@fesc.cuautitlan2.unam.mx).
15. Los casos no previstos en el presente reglamento serán resueltos por el Jefe de Sección.
NOTA: En caso de incurrir en faltas a las disposiciones anteriores, el alumno o profesor será acreedor a las
sanciones correspondientes.
Prólogo iv
Facultad de Estudios Superiores Cuautitlán UNAM
Será necesario incluir en cada actividad previa y reporte de la práctica una portada obligatoria que
contenga la información mostrada a continuación:
Para la presentación del reporte se deberá cumplir con los requisitos indicados en cada una de las
prácticas, incluyendo:
• Introducción.
o Para la cual deberá realizar una investigar acerca del tema de la práctica y escribir
su propia introducción.
• Procedimiento experimental:
o Con todos sus resultados y elementos que considere importantes para enriquecer su
reporte como tablas de datos, mediciones, gráficas, comentarios, observaciones,
esquemas y diagramas.
• Cuestionario.
• Conclusiones.
o Representan una parte medular del reporte, es en dónde el alumno presenta la
síntesis del trabajo, es decir, se pone a prueba la teoría contra la práctica.
• Bibliografía:
o Elaborar una lista de las referencias bibliográficas realmente consultadas,
presentadas en un estilo de citación como APA o IEEE.
Así como todos los puntos solicitados dentro del desarrollo de la práctica.
Prólogo v
Facultad de Estudios Superiores Cuautitlán UNAM
Tema
1. Introducción.
Objetivos
Introducción
Los dispositivos lógicos programables (PLD por sus siglas en inglés) y su más reciente evolución
como un arreglo de compuertas lógicas programable en campo (FPGA) ofrecen una versatilidad en
cuanto a las características de capacidad lógica, velocidad y voltaje; además de que estos dispositivos
pueden volver a ser configurados para cambiar cualquier característica de su función. Para ir más allá
de la teoría, usaremos una plataforma para el desarrollo de circuitos digitales, que está lista para
usarse; además, está diseñada para implementar aplicaciones de la industria en el ambiente del salón
clase.
La Nexys4 DDR (figura 1.1) es una tarjeta de desarrollo basada en la última FPGA Artix-7TM de
Xilinx®. Podemos desarrollar proyectos que van desde circuitos digitales básicos hasta poderosos
procesadores embebidos. En la misma tarjeta se encuentran varios periféricos, entre los cuáles se
incluyen: acelerómetro, sensor de temperatura, micrófono digital, amplificador de sonido, así como
otros dispositivos de entrada y salida, que permiten llevar a cabo diseños sin necesidad de
componentes adicionales.
Como herramienta software de desarrollo, la Nexys4 DDR es compatible con el suite de diseño
Vivado®, así como el conjunto de herramientas software ISE®. Para obtener estas herramientas,
Xilinx ofrece una versión WebPACKTM que nos permite implementar nuestros diseños sin costo
adicional.
Por supuesto, existen otros fabricantes de FPGA como Altera, Lattice Semiconductor, Actel y otros.
Cada uno ofrece dispositivos con sus características y ambientes de desarrollo particulares.
El ambiente de desarrollo contiene varias herramientas software que nos permiten realizar nuestro
diseño de manera esquemática o textual, realizar la verificación mediante herramientas de
simulación, especificar restricciones sobre el dispositivo específico para una óptima implementación
y herramientas de programación para descargar el diseño sobre el dispositivo físico.
Existen numerosos lenguajes de descripción de hardware (HDL), sin embargo los más usados y
soportados en la industria son Verilog y VHDL.
Práctica 1 1
Facultad de Estudios Superiores Cuautitlán UNAM
Actividades previas
a la práctica
Equipo
1 PC con software instalado:
• VivadoTM HL WebPACK®
1 Tarjeta Nexys4 DDR de DIGILENT®
Práctica 1 2
Facultad de Estudios Superiores Cuautitlán UNAM
Material
No aplica.
Procedimiento experimental
1. Crea un nuevo proyecto en Vivado, para ello ejecuta el programa y en la barra superior elije
la opción “File”→ ”New Project”, y oprimimos “Next”.
2. Aparece una nueva ventana en la que debemos escribir el nombre de nuestro proyecto,
seleccionamos la ruta (Project location) para depositar nuestra carpeta, seleccionamos
“Create project subdirectory” y oprimimos “Next” (figura 1.3).
3. Aparece una nueva ventana, verificamos que esté seleccionado RTL (Register Transfer Level)
y oprimimos “Next”.
4. Aparece otra ventana para especificar el tipo de lenguaje que usaremos para escribir el código,
seleccionamos VHDL en las opciones “Target” y “Simulator”, oprimimos el botón “+” para
continuar y seleccionamos “Create File”. Aparece una pequeña ventana, escribimos el nombre
del archivo y luego damos “OK” (figura 1.4). Nuevamente aparece una ventana, esta vez para
indicar si añadimos un IP (Intellectual Property), damos “Next” (por ahora no lo usaremos).
Práctica 1 3
Facultad de Estudios Superiores Cuautitlán UNAM
5. Aparece otra ventana (figura 1.5) para crear o añadir el archivo de restricciones. Oprimimos
el botón “+”, seleccionamos añadir, buscamos el archivo, lo seleccionamos y damos “OK”.
Regresa a la ventana, seleccionamos el cuadro “Copy constraints files into project” y
oprimimos “OK”.
Práctica 1 4
Facultad de Estudios Superiores Cuautitlán UNAM
7. Finalmente se crea el proyecto y aparece la vista de las opciones del ambiente de desarrollo.
En la ventana “Sources”, podemos identificar los archivos que hemos credo previamente
(figura 1.7).
9. Editar el archivo de restricciones para que asignemos los interruptores (8 para el dato A y 8
para el dato B), así como los LEDs (1 para indicar A>B, otro para A<B y otro para A=B) que
usaremos para indicar el resultado de la comparación.
Práctica 1 5
Facultad de Estudios Superiores Cuautitlán UNAM
13. Ejecutar “Program and Debug” →“Generate Bitstream”, seleccionando las opciones que
muestra la figura 1.11.
Práctica 1 6
Facultad de Estudios Superiores Cuautitlán UNAM
14. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, abrir
la ventana con la opción “Open Target” → “Next” →”Next”, para establecer la conexión con la
tarjeta. Como se muestra en la figura 1.12.
15. Una vez establecida la conexión, aparece otra ventana para seleccionar el tipo de la tarjeta,
damos “Next” y luego “Finish” (figura 1.13).
16. Finalmente, escogemos la opción “Program device” y luego el tipo de dispositivo (ver figura
1.14). A continuación aparece otra ventana para seleccionar el archivo a copiar,
seleccionamos dicho archivo y el programa ha sido cargado en
Práctica 1 7
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario.
1) Elabore una tabla comparativa en cuanto a las capacidades de las recientes FPGA (al menos
tres) de los tres fabricantes cuyos dispositivos son los más usados en la industria y el diseño.
2) ¿Además de la FPGA, cuáles son los módulos con que cuenta la tarjeta usada en la práctica y
para qué nos sirve cada uno de ellos?
Conclusiones
Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 1 8
Facultad de Estudios Superiores Cuautitlán UNAM
Tema
Objetivos
Introducción
Práctica 2 9
Facultad de Estudios Superiores Cuautitlán UNAM
3) Haciendo uso de las técnicas de modelado del diseño arriba-abajo, flujo de datos, jerarquía de
módulos y algoritmos; diseñe un circuito comparador de magnitud de 8 bits, tomando como
instancia el comparador de 2 bits diseñado en la práctica anterior. Cree un nuevo proyecto y
escriba su código en Vivado HL WebPACK. Realice un análisis RTL para verificar que su diseño
cumple con lo solicitado.
Equipo
1 PC con software instalado:
• VivadoTM HL WebPACK®
1 Tarjeta Nexys4 DDR de DIGILENT®
Material
No aplica.
Procedimiento experimental
1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito
en las actividades previas.
2. Editar el archivo de restricciones para que asignemos los interruptores (8 para el dato A y 8
para el dato B), así como los LEDs (1 para indicar A>B, otro para A<B y otro para A=B) que
usaremos para indicar el resultado de la comparación.
Práctica 2 10
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario
2) Mencione las características que considere importantes y que obtuvo en el resumen del
proyecto “Project Summary”, para cada diseño de las actividades previas mencionadas en los
puntos 2) y 3).
Conclusiones
Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 2 11
Facultad de Estudios Superiores Cuautitlán UNAM
Tema
Objetivos
➢ El diseño de sistemas digitales con lógica programable, empleando la descripción por flujo de
datos.
➢ Diferenciar y entender el uso de las sentencias concurrentes, condicional y por selección.
Introducción
La arquitectura de un sistema digital puede ser modelada de diferentes maneras. Entendiendo las
diferentes técnicas de modelado y cómo usarlas, representa el paso más importante para aprender
VHDL. Una arquitectura puede ser descrita mediante tres técnicas básicas de modelado, más, la
combinación de cualquiera de las tres; dichas técnicas pueden ser por flujo de datos, funcional,
estructural e híbrido.
El modelo de la descripción en VHDL se fundamenta en el paralelismo y la concurrencia con la
descripción textual de los circuitos. El corazón de la descripción en VHDL es la sentencia concurrente,
de la cual existen cuatro tipos: asignación concurrente de una señal, asignación condicional,
asignación selectiva y la sentencia proceso (process en inglés).
En las arquitecturas de flujo de datos se encuentran las sentencias concurrentes descritas
anteriormente (asignación concurrente, condicional y selectiva). A continuación se presenta la
sintaxis de cada una de ellas con fines ilustrativos y para diferenciar una de otras:
• Asignación concurrente
<destino> <= <expresión>;
• Asignación condicional
<destino> <expresión> when <condición> else
<expresión> when <condición> else
<expresión>;
• Asignación selectiva
With <opción> select
<destino> <= <expresión> when <opciones>,
<expresión> when <opciones>,
<expresión> when others;
Práctica 3 12
Facultad de Estudios Superiores Cuautitlán UNAM
En estos ejemplos, podemos prácticamente “observar” el flujo de los datos por el circuito. Este tipo
de modelado funciona bien para circuitos pequeños y relativamente simples. Pero, para circuitos más
complejos, es mejor cambiar a los modelos funcionales.
Equipo
1 PC con software instalado:
• VivadoTM HL WebPACK®
1 Tarjeta Nexys4 DDR de DIGILENT®
Material
No aplica.
Procedimiento experimental
1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito
en las actividades previas.
2. Editar el archivo de restricciones para que asignemos los interruptores (4 para las entradas
de datos y 2 para las señales de selección), así como el LED que usaremos para indicar el
estado de la salida de datos.
Práctica 3 13
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario
1) De acuerdo a sus resultados, recomiende en qué tipos de diseño usar uno u otro tipo de
asignación.
Conclusiones
Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 3 14
Facultad de Estudios Superiores Cuautitlán UNAM
Tema
Objetivos
Introducción
Como hemos abordado en las prácticas anteriores, existen diferentes maneras de diseñar un sistema
digital y sólo queda al diseñador escribir su diseño de la manera más clara y dejar a la herramienta
de síntesis ordenar los detalles.
La sentencia de proceso (process) es una herramienta que nos permite ejecutar un cierto número
de instrucciones de manera secuencial, sin embargo, no debemos olvidar que la sentencia “process”,
en sí misma, es concurrente.
A continuación, mostramos la estructura de la sentencia de proceso:
mi_etiqueta: process(señales_a_sensar) is
<declaración_señales,variables, etc.>
Begin
<sentencias_secuenciales>
End process mi_etiqueta;
Práctica 4 15
Facultad de Estudios Superiores Cuautitlán UNAM
mi_etiqueta: process(señales_a_sensar) is
<declaración_señales,variables, etc.>
Begin
case (expresión) is
when opciones =>
<sentencias_secuenciales>
when opciones =>
<sentencias_secuenciales>
when others =>
<sentencias_secuenciales>
end case;
End process mi_etiqueta;
En la sentencia case sólo se ejecuta un conjunto de sentencias secuenciales, por cada ejecución de la
sentencia case.
Equipo
1 PC con software instalado:
• VivadoTM HL WebPACK®
1 Tarjeta Nexys4 DDR de DIGILENT®
Material
No aplica.
Procedimiento experimental
1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito
en las actividades previas.
Práctica 4 16
Facultad de Estudios Superiores Cuautitlán UNAM
2. Editar el archivo de restricciones para que asignemos los interruptores (4 para las entradas
de datos y 2 para las señales de selección), así como el LED que usaremos para indicar el
estado de la salida de datos.
Cuestionario
1) De acuerdo a sus resultados, recomiende en qué tipos de diseño usar el modelo por flujo de
datos.
Conclusiones
Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 4 17
Facultad de Estudios Superiores Cuautitlán UNAM
Tema
Objetivos
➢ El diseño de sistemas digitales con lógica programable, empleando los modelos de descripción
por flujo de datos y funcional.
➢ Modelado de máquinas de estados con lógica programable.
Introducción
Las Máquinas de Estados Finitos (FSM) son abstracciones matemáticas utilizadas para resolver
problemas de automatización electrónica, diseñar protocolos de comunicación, análisis y otras
aplicaciones de ingeniería.
Una red secuencial canónica puede ser descrita por el diagrama de la figura 5.1:
Con frecuencia es conveniente separar la red combinacional en dos partes, C1 y C2, como muestra la
figura 5.2:
Práctica 5 18
Facultad de Estudios Superiores Cuautitlán UNAM
Esta máquina de estados en la cual la salida presente z(t) depende del estado presente s(t) y de la
entrada presente x(t), se llama máquina de Mealy.
Si la salida presente z(t) depende sólo del estado presente, la máquina de estados es conocida como
máquina de Moore (figura 5.3).
Esta representación mediante diagrama de bloques funcional, nos facilita su descripción en VHDL.
Por ejemplo, para la máquina de moore:
• Entidad
o Descripción de las entradas y salidas a la FSM (x(t), z(t) y clk).
• Señales intermedias:
o Declaración de estado presente y estado siguiente (s(t) y s(t+1)).
• Bloque de registro de estados:
o Descripción de un proceso secuencial.
• Bloque del proceso combinacional de entrada C1:
o Descripción mediante un proceso para probar las condiciones de los estados y
transiciones (prácticamente es traducir el diagrama de estados a código de VHDL).
• Proceso combinacional de salida C2:
o Descripción mediante un proceso para probar el último estado y asignar la salida
final z(t).
La versatilidad del comportamiento en VHDL evita la necesidad de hacer largos diseños en papel.
Práctica 5 19
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
1 PC con software instalado:
• VivadoTM HL WebPACK®
1 Tarjeta Nexys4 DDR de DIGILENT®
Material
No aplica.
Procedimiento experimental
1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito
en las actividades previas.
2. Editar el archivo de restricciones para que asignemos los interruptores (8 para definir el
código), así como los LEDs que usaremos para indicar el estado de la salida de datos(1 para
indicar código erróneo y otro para código correcto).
Práctica 5 20
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario
2) Mencione las características que considere importantes y que obtuvo en el resumen del
proyecto “Project Summary”.
Conclusiones
Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 5 21
Facultad de Estudios Superiores Cuautitlán UNAM
Tema
Objetivos
➢ El diseño de sistemas digitales con lógica programable, empleando los modelos de descripción
por flujo de datos, funcional y estructural.
➢ Diseño de un sistema digital integral.
Introducción
Las técnicas modernas y las herramientas de síntesis de sistemas digitales raramente emplean
circuitos integrados de mediana escala de integración (MSI) y de gran escala de integración (LSI); sin
embargo, las propiedades generales de las funciones contenidas en estos circuitos, siguen siendo de
gran utilidad. Por esta razón, las técnicas modernas hacen uso de las funciones de los decodificadores,
circuitos aritméticos, multiplexores, contadores, memorias, arreglos lógicos programables, etcétera.
Frecuentemente un sistema se compone de una variedad de pequeños sistemas. Esto nos permite
construir grandes sistemas a partir de pequeños componentes o de componentes que fueron
previamente diseñados. VHDL proporciona un mecanismo conocido como instanciación, para llevar
a cabo estas tareas. Este tipo de código se llama descripción estructural.
Por ejemplo, para diseñar un sumador de 2 bits, podemos diseñar un sumador de 1 bit y utilizarlo
como bloque de construcción (estructura) para sumadores de mayor tamaño. A este tipo de
estructuras también se le conoce como “bit-slice”.
Práctica 6 22
Facultad de Estudios Superiores Cuautitlán UNAM
Como ya hemos observado, aún los circuitos digitales más complejos están compuestos de un
conjunto de circuitos estándar más algunas señales de control asociadas. El arte de diseñar usando
VHDL se centra alrededor de la adecuada selección e interfaz de estos circuitos.
La mayor ventaja de utilizar circuitos digitales estándar con VHDL consiste en usar el código
existente para estos circuitos y modificarlo de acuerdo a las necesidades de nuestro diseño particular.
2) Diseñar un sistema digital que realice la función de reloj digital de acuerdo con los
siguientes requerimientos:
Cree un nuevo proyecto y escriba su código en Vivado HL WebPACK. Realice un análisis RTL
para verificar que su diseño cumple con lo solicitado.
Equipo
1 PC con software instalado:
• VivadoTM HL WebPACK®
1 Tarjeta Nexys4 DDR de DIGILENT®
Material
No aplica.
Práctica 6 23
Facultad de Estudios Superiores Cuautitlán UNAM
Procedimiento experimental
1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito
en las actividades previas.
Cuestionario
2) Mencione las características que considere importantes y que obtuvo en el resumen del
proyecto “Project Summary”.
Conclusiones
Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 6 24
Facultad de Estudios Superiores Cuautitlán UNAM
Tema
Objetivos
➢ El diseño de sistemas digitales con lógica programable, empleando los modelos de descripción
por flujo de datos, funcional y estructural.
➢ Diseño de un sistema digital integral utilizando elementos de memoria.
Introducción
Con frecuencia un sistema digital requiere de memoria para el almacenamiento de información. Para
satisfacer esta necesidad, la mayoría de los dispositivos FPGA contienen módulos de memoria
embebidos. Sin embargo, estos dispositivos no pueden reemplazar el almacenamiento masivo de los
dispositivos externos de memoria, los contenidos internamente, son usados para aplicaciones que
requieren pequeñas o medianas cantidades de memoria.
Un bloque de RAM es un módulo especial embebido en el dispositivo FPGA y está separado de las
celdas lógicas regulares. Puede pensarse como una SRAM rápida conectada por una interfaz síncrona
configurable. Dependiendo de la FPGA, cada bloque de RAM puede consistir de 16Kbits de datos más,
opcionalmente, 2Kbits de paridad. Cada bloque de RAM se puede organizar de diferentes anchos,
desde 16K x 1 hasta 512 x 32.
Aunque la estructura interna de los módulos de memoria es similar, existen diferencias sustanciales
en sus interfaces, como el número de puertos de lectura y escritura, el esquema de temporización,
etcétera. Es posible describir el comportamiento del módulo deseado con código en VHDL; sin
embargo, el software de síntesis puede, o no, reconocer la intención del diseñador. Por lo tanto, el
código VHDL no siempre puede inferir el módulo apropiado de memoria y normalmente no es
portable. En el ambiente de desarrollo de Xilinx, existen tres métodos para incorporar un módulo de
memoria embebido:
• Instanciación.
• Un programa generador de núcleos.
• Un código que se puede importar (template).
En el caso de las memorias ROM, como su nombre lo indica, son memorias de sólo lectura, es un
circuito combinacional y no tiene estados internos. Su salida depende sólo de la entrada. Realmente
no existe un bloque de ROM embebido a la FPGA, pero puede ser emulado por un circuito
combinacional o un bloque de RAM con la operación de escritura deshabilitada. El contenido de la
ROM se puede expresar por medio de constantes en el código HDL y los valores se cargan cuando el
Práctica 7 25
Facultad de Estudios Superiores Cuautitlán UNAM
dispositivo es programado. Debido a que la ROM se basa en la RAM, la operación de lectura puede ser
asíncrona o síncrona.
Práctica 7 26
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
1 PC con software instalado:
• VivadoTM HL WebPACK®
1 Tarjeta Nexys4 DDR de DIGILENT®
Material
No aplica.
Práctica 7 27
Facultad de Estudios Superiores Cuautitlán UNAM
Procedimiento experimental
1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito
en las actividades previas.
2. Edite el archivo de restricciones para asignar las entradas y salidas de su sistema para el
desplegado de la imagen.
Cuestionario
2) Mencione las características que considere importantes y que obtuvo en el resumen del
proyecto “Project Summary”.
Conclusiones
Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 7 28
Facultad de Estudios Superiores Cuautitlán UNAM
Bibliografía
[1] P. P. Chu, FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version, Edición: 1.
Hoboken, N.J: John Wiley & Sons Inc, 2007.
[3] Richard E.Haskell y Darrin M. Hanna, Learning By Example Using VHDL - Advanced
Digital Design with a Nexys-2 FPGA Board. Rochester, MI: LBE Books, 2008.
[4] “Nexys 4 DDR Reference Manual [Reference.Digilentinc]”. [En línea]. Disponible en:
https://reference.digilentinc.com/reference/programmable-logic/nexys-4-ddr/reference-manual.
[Consultado: 06-ago-2016].
[7] D. G. Maxinez y J. Alcalá Jara, VHDL: El arte de programar sistemas digitales. México:
COMPAÑÍA EDITORIAL CONTINENTAL, 2007.
Bibliografía 29