Carrera: Ingenieria Electrónica
Clave de la asignatura: ETF-1014
GRUPO: E3B
Horas teoría-horas práctica-créditos: 3-2-5

ING. MIGUEL ANGEL PÉREZ SOLANO CUB. No. 3
INGENIERO EN COMUNICACIONES Y ELECTRÓNICA/MAESTRIA EN EDUCACIÓN
ESCUELA SUPERIOR DE INGENIERIA MECÁNICA Y ELÉCTRICA (ESIME)- IPN

                                                                                     
                                                                                   

Unirse al grupo de Classroom
CLASS CODE: gt3gnbc
                                     
 Inscribirse a la Universidad de Xilinx                    

  BIENVENIDOS AL SEMESTRE AGOSTO-DICIEMBRE 2024
 
REQUISITOS NECESARIOS PARA TENER EXITO AL CURSAR ESTA MATERIA
  • Haber cursado y aprobado el curso de Programación Estructurada (lenguaje C).
  • Haber cursado y aprobado la materia de Mediciones eléctricas, cumpliendo todos los objetivos.
  • Read technical documents and understand videos in english (very, very important).
  • Contar con un pen drive de 32 GB minimo. Organizar la memoria de la siguente manera:
        • CODIGOS VERILOG
          • LAB #1
          • LAB #2
          • LAB #3
          • LAB #4
  • Tener computadora personal en casa y ser competente en su manejo.
  • Ser disciplinado en la puntualidad y orden en sus apuntes y material de clase. Para esto debe contar con un cuaderno único para los apuntes de esta materia. 
  • Manifestar habilidades para trabajar en equipo.
  • Contar con la bata antiestatica para asistir a las prácticas de laboratorio, color; Blanca o Azul (a partir de la semana del 9 de Septiembre es requisito para ingresar al laboratorio).
 
 Presentación 
Este curso trata del diseño de sistemas digitales, taambien llamado DISEÑO LOGICO. Este proceso da lugar al nombre la materia; DISEÑO DIGITAL. Un sistema digital es aquel en el que todas las señales que procesan estan representadas por valores discretos. Las computadoras y calculadoras son ejemplos obvios, pero la mayoria de los sistemas (equipos) electronicos contienen una gran cantidad de electrónica trabajando con lógica digital. Internamente los sistemas digitales por lo general operan con señales de dos valores, que se etiquetan com 0 y 1, conociendose como estados lógicos o bits (binary digital).

La manifestacion física de tales estados lógicos es mediante dos voltajes (ej. 1=5V y 0= 0V) conocidos como niveles lógicos de voltaje. La generacion electrónica de una señal discreta de 2 niveles de voltaje, se da mediante el proceso de conmutacion de un transistores, proceso que se explicará en clase.

Es muy importante saber que arreglos de transistores en conmutacion dan lugar a las compuertas lógicas, y las existentes son; AND, OR, NOT, NAND, NOR, XOR y XNOR, que ejecutan operaciones lógicas. Asi tambien la conexion de compuertas lógicas mediante un diseño basado en algebra de Boole, da lugar a circuitos lógicos, circuitos que realizan una función logica. Es importante recalcar que los circuitos lógicos que se construyen en la electronica digital se dividen en; Combinacionales y Secuenciales.

Una vez que se ya se tienen identificados los diferentes circuitos lógicos, se da lugar al diseño digital de equipos electronicos (sistemas digitales) que realizan las tareas de proceso de datos binarios. Este tipo de sistemas digitales son conocidos como computadoras.
                         


Basandome en mi experiencia y analizando el estado del arte de la electrónica digital, me atrevo a presentar algunas observaciones acerca del diseño digital, que son evidentes. Primero, el tamaño de la circuiteria lógica está escalando muy rapidamente, esto nos tiene en las dimensiones de los nanometros para el transistor. por lo anterior se considera imposible diseñar sistemas electrónicos by hand. Segundo, El proceso de mover desde una descripción de alto nivel de como trabaja un circuito (Ej. desde una tabla de verdad) a un formato que sea apto para ser implementado en un circuito real (ej. un diagrama lógico minimizado) es simple y bien definido.  Ambas observaciones nos motivan al uso de herramientas asistidas por computadora (CAD) para realizar dicho diseño. En este curso utilizaremos como medio para describir circuitos logicos usando un lenguaje basado en texto; tanto combinacionales como secuenciales a los llamsdos lenguages descriptivos de hardware (HDL). Estos lenguajes proporcion un medio para describir grandes sistemas digitales sin la necesitad de esquematicos, lo cual se puede volver impractico en diseños muy grandes. Se apoya uno en un diagrama a bloques solo para definir conexiones que se describiran en el lenguaje. Los HDLs en su evolución soportan simulación lógica a diferentes niveles de abstracción, lo que proporciona al ingeniero diseñador la posibilidad de verificar la funcionalidad de sistemas grandes a un alto nivel de abstracción y posponer los detalles de implementacion del circuito durante el ciclo de diseño.

Los HDLs soportan una fase de "sintesis", lo cual permite a las herramientas CAD hacer una descripción funcional de sistema y automaticamente crear la circuiteria a nivel-compuerta para que sea implementado fisicamente en un hardware.

Existen hoy en dia 2 HDLs muy utilizados; Verilog (no tiene un acronimo, solo es un nombre comercial; trade) y  VHDL (Very high-speed integrated circuit hardware descriptionlanguage: Lenguaje descriptivo de hardware para circuitos integrados de muy alta velocidad). El uso de estos 2 HDLs es dividido casi a partes iguales dentro de industria del diseño digital. Por experiencia una vez que se aprende un HDL es sencillo aprender el otro. En este curso trabajaremos con el lenguaje Verilog HDL con el cuál comprobaremos de manera práctica todo el conocimiento teórico visto en clase. Verilog es ampliamente utilizado en el diseño de circuitos integrados customizables, por lo que hay gran cantidad de informacion en linea. El objetivo de este curso es introducirse al mundo del diseño electrónico con herramientas CAD involucradas en el estado-del-arte de la fabricacion de circuitos integrados.



 TEMARIO (bajarlo en pdf)

UNIDAD 1: FUNDAMENTOS DE DISEÑO DIGITAL.
1.1 Diferencias entre sistemas digitales y sistemas analógicos.
1.2. Sistemas numéricos.
1.2.1. Binario.
1.2.2. Octal.
1.2.3. Hexadecimal.
1.2.4. Conversión entre sistemas numéricos.
1.3 Códigos Binarios.
          1.3.1 Código BCD (aritmético).
          1.3.2 Código XS-3 (aritmético).
          1.3.3 Código Gray (no-aritmético).
          1.3.4 Código ASCII (alfanumérico).
1.4 Aritmética Binaria con números no signados (unsigned), y signados (signed).
1.5. Compuertas lógicas.
1.6. Familias lógicas de circuitos integrados.
1.7. Algebra booleana.
1.7.1. Postulados y teoremas booleanos.
1.7.2. Simplificación de funciones..
RECURSOS ACTIVIDADES
R1.1 Plantillas de la unidad I.                                          Cuestionario # 1 Conceptos básicos de lógica digital 
R1.2 Texto: "Compuertas Lógicas" Cuestionario #2 Conversion entre sistemas numéricos.
R1.3  Texto; "Algebra Booleana" Cuestionario #3 Aritmetica binaria (unsigned). 
R1.4  Guia sobre lenguaje ensamblador Cuestionario #4 Aritmetica binaria signada (signed)
R1.5 (Video) BCD code.
R1.6 (Video) ASCII code. LAB #1 COMPUERTAS LOGICAS.
R1.7 (Software): Digital Circuit Virtual Builder . Examen_Práctico 7_8
Examen_Práctico 8_9


UNIDAD II: LOGICA COMBINACIONAL.
RECURSOS ACTIVIDADES
 R2.1 Texto "Analisis de cuircuitos combinatorios.
UNIDAD III: DISEÑO COMBINACIONAL EN SSI

RECURSOS ACTIVIDADES
UNIDAD IV: DISEÑO COMBINACIONAL EN MSI
RECURSOS ACTIVIDADES
UNIDAD V: LOGICA SECUENCIAL 
RECURSOS ACTIVIDADES
https://youtu.be/nykP82R8-gc
UNIDAD VI: INTRODUCCION AL LENGUAJE VERILOG CIRCUITOS
COMBINACIONALES
RECURSOS ACTIVIDADES

VIVADO and  VERILOG (HDL)
Verilog HDL:  Es un lenguaje Descriptivo de Hardware,  el cuál es utilizado para describir circuitos digitales de manera textual. Escribiremos nuestros diseños para los FPGAs (como si se estuviera escribiendo códigos en C o ensamblador para microcontroladores) utilizando el, lexico, semantica y sintaxis de dicho lenguaje. Aprenderlo no es dificil si se tienen conocimientos en programacion de lenguaje C. Check out this wiki page (http://en.wikipedia.org/wiki/Verilog) or check this tutorial (http://www.asic-world.com/verilog/index.html).

Vivado: Vivado® Design Suite, es la herramienta IDE de Xilinx para la serie 7 de FPGA y SoC que incluye las familias Artix, Zynq, Virtex y Kintex y las nuevas generaciones de embebidos por desarrollar. Permite el desarrollo de soluciones usando técnicas de diseño basadas en RTL (Register Transfer Level) y con diseños HL (High Level), con lo que se puede hacer abstracciones mas rápidas de los modelos de concepto usando variaciones del lenguaje System C en C/C++.

Vivado reemplaza todo el conjunto de herramientas disponibles en ISE y las combina en un entorno mas integrado que se ejecuta completamente en memoria y permite acelerar los tiempos de síntesis e implementación de los diseños.
.


1.-Learning FPGA and  VERILOG: A beginner´s guide.


VIDEOS QUE LES SIRVEN DE APOYO PARA SU FORMACION COMO INGENIEROS DE HARDWARE.


1.- SYNTHESIZING AND DESIGN with VIVADO in Xilinx VERILOG platform
.
2.- VERILOG  HDL basics by Altera-Intel.

TEORIA SOBRE LOS FPGA´s

VIDEOS QUE LES SIRVEN DE APOYO PARA SU FORMACION COMO INGENIEROS DE HARDWARE

1.- Introduccion a los FPGA´s  para la industria (Parte 1).   (Parte 2).

TEAMWORKS
    
Free Web Hosting