Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Tema 1
Parte 1: Clasificación de circuitos digitales Parte 2: Lenguajes de descripción de Hardware
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Parte 1. Introducción Circuitos Integrados:
Microelectrónica
Área de la electrónica aplicada
Estudio de métodos y procesos de realización de circuitos integrados
• Component es pasivos: • Resistencias y diodos • Dispositivos electrónicos • Transistores BJT, MOS, CMOS • Conexiones entre ellos. En uno o varios substratos
Circuitos integrados monolíticos • Único substrato o bloque semicondu ctor
Electrónica digital
Circuitos integrados digitales monoliticos
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la realización física. Según el nro de dispositivos
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la realización física. Evolución de la capacidad de integración
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la realización física. Evolución del tamaño del transistor y del área del CI
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la realización física. Evolución del tiempo de propagación y del costo de compuerta
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la realización física.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los circuitos integrados digitales monolíticos
Según la forma en que se realiza el diseño Normalizados o Estándar
Especificados por el usuario
“Standard off-the-self integrated circuit”
ASIC
Determinados por el fabricante
Realizados a medida del usuario
Características eléctricas
Diseño asistido por Computadora
Arquitectura Conjunto de elementos interrelacionados entre sí
Características funcionales
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Normalizados Normalizados Según la funcionalidad Fija
Programable
Según el campo se aplicación:
Según la arquitectura:
General
SSI
MSI
Fija:
Configurable:
Conexiones fijas entre los elementos lógicos
Conexiones modificables por el usuario
Específica
LSI
ASIC
PAL
PLA
uC
DSP
VLSIULSI
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM Según la forma en que se realiza el diseño CIDM normalizados de función fija de aplicación gral Se utilizan en la realización de numerosos circuitos y sistemas
electrónicos y pueden, a su vez, ser de función única o multifuncionales. Constituyen bloques funcionales que se utilizaron en la realización de numerosos sistemas digitales.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño CIDM normalizados de función fija de aplicación gral Multifuncional Circuitos expansibles (Bit slice) Comenzaron a realizarse en MSI: ejemplo el contador 74LS160 de
tecnología TTL. Al alcanzarse la LSI y VLSI empezó a utilizarse la denominación de expansible.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño . CIDM normalizados de función fija de aplicación específica CIDM que contiene un sistema digital completo que realiza una función
compleja determinada o específica, o una parte de un sistema digital complejo. Son ejemplos del primer caso un sistema de riego automático o un sistema de telemando,
y del segundo caso las unidades de interfaz (Interfaces) complejas de procesadores digitales
programables (como un procesador de comunicaciones, una unidad de visualización gráfica, etc.).
No existe una denominación de estos circuitos universalmente aceptada.
La mayoría de los fabricantes los denominan circuitos integrados de aplicación específica normalizados [Standard Application Specific Integrated Circuits (Standard ASIC)], y otros los denominan productos normalizados de aplicación específica [Application Specific Standard Products (ASSP)].
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño CIDM normalizados de función fija de aplicación específica Transmisor –Receptor Asíncrono Universal
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño. CIDM normalizados programables Pueden a su vez ser: CIDM normalizados programables de arquitectura fija CIDM normalizados programables de arquitectura configurable
ARQUITECTURA DE UN CIRCUITO O SISTEMA ELECTRÓNICO Conjunto de elementos que lo forman y las interconexiones entre los mismos.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño. CIDM normalizados programables de arquitectura fija Los elementos que lo componen están unidos entre sí
directamente Las conexiones entre ellos no pueden ser modificadas por el usuario. Se clasifican en combinacionales o secuenciales. Los secuenciales pueden contener: La unidad central de proceso de un computador (CPU) Un computador completo: Microcontrolador Un procesador digital de señales
Características: Bajo costo y Gran fiabilidad para fabricación en grandes series Disponibilidad de varias fuentes de suministro
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño NORMALIZADOS PROGRAMABLES DE ARQUITECTURA CONFIGURABLE -La flexibilidad de los CIDM programables de arquitectura fija no es suficiente ya que están formados por elementos unidos directamente entre sí. Sólo pueden cambiar la función que realizan modificando el contenido de una memoria.
- Los CIDM programables de arquitectura configurable cuentan con elementos con conexiones modificables cambiando el estado de unas variables binaria -Son Circuitos digitales cuya función se puede modificar utilizando sólo una parte de los elementos que lo componen y/o cambiando la interconexión entre ellos. --Dicha modificación se hace mediante la programación de un conjunto de variables que forman una determinada estructura de memoria.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
NORMALIZADOS PROGRAMABLES DE ARQUITECTURA CONFIGURABLE
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño Especificados por el usuario. “ASIC” Los inconvenientes de los circuitos normalizados, en especial los de función fija y el interés de muchos fabricantes de distintos tipos de máquinas por automatizarlas con productos muy difíciles de copiar hizo que a principios de la década de 1980 los fabricantes de circuitos integrados ofreciesen a los citados fabricantes la posibilidad de desarrollar circuitos integrados de aplicación específica conocidos por el acrónimo ASIC (Application Specific Integrated Circuits). DEFINICIÓN Circuito integrado diseñado para implementar un sistema electrónico que implementa una función práctica concreta que no es de aplicación general.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño Especificados por el usuario. “ASIC” CIDM A MEDIDA (CUSTOM INTEGRATED CIRCUITS) De acuerdo con el nivel hasta el que se llega en el diseño, los CIDM a medida se clasifican en dos grandes tipos: -CIDM totalmente a medida (Full-custom). El diseñador llega hasta el nivel de transistor - CIDM semimedida (Semicustom) Utilizan elementos predefinidos y el diseñador adopta decisiones al nivel de descripción lógica sin alcanzar el de descripción eléctrica
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño Especificados por el usuario. “ASIC” CIDM SEMIMEDIDA (SEMICUSTOM) El diseñador utiliza elementos preespecificados denominados celdas (Cells) y actúa a un nivel más alto de descripción que en el diseño totalmente a medida Existen diversas variantes de los circuitos integrados semimedida que se diferencian en la complejidad de las celdas utilizadas y la forma de interconectarlas. Entre ellas las más utilizadas son: - Conjuntos de puertas programables mediante máscara (Mask Programmable Gate Arrays) - Celdas estándar (Standard Cells)
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño Especificados por el usuario. “ASIC” CIDM SEMIMEDIDA (SEMICUSTOM)
CONJUNTOS DE PUERTAS PROGRAMABLES MEDIANTE MÁSCARA (Mask Programmable Gate Arrays) Están formadas por un conjunto de elementos básicos dispuestos de forma regular . Suelen ser puertas NAND o NOR. Los fabricantes pueden establecer el circuito mediante la máscara final de interconexión.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño Especificados por el usuario. “ASIC” CIDM SEMIMEDIDA (SEMICUSTOM)
CELDAS ESTÁNDAR (STANDARD CELLS) Consisten en un conjunto o biblioteca de celdas normalizadas que constituyen bloques funcionales de mayor complejidad que las puertas lógicas universales La colocación de las celdas y los canales para su interconexión no están predefinidos
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño Especificados por el usuario. “ASIC”
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Clasificación de los CIDM según la forma en que se realiza el diseño Especificados por el usuario. “ASIC”
Parte 2 LENGUAJES DE DESCRIPCIÓN DE HARDWARE
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
METODOS PARA DESCRIBIR CIRCUITOS LÓGICOS Descripción verbal Tablas de verdad
Diagrama esquemático Expresiones del álgebra booleana Diagrama de tiempos
Lenguajes de descripción de hardware (HDL)
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Ejemplo Representar un circuito digital que capaz de controlar un indicador de
advertencia del cinturón de seguridad un automóvil
Descripción verbal
Expresión booleana luz _ advertencia conductor _ presente c int uron _ enganchado int eruuptor _ encendido
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Ejemplo Diagrama Esquemático
Diagrama de tiempos
Tabla de verdad
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Lenguajes de descripción de hardware - HDL Hardware Description Language Permite Describir circuitos digitales complejos mediante lenguaje basado en texto Diseñar e implementar circuitos digitales complejos Un HDL estandarizado por el IEEE es el VHDL VHSIC (Very High Speed Integrated Circuit ) Description Language. Un HDL propio de Altera es AHDL Altera Hardware Description Language
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Concurrente Vs Secuencial Lenguaje de descripción de hardware
Lenguajes de computadoras
Lenguaje para programar un dispositivo
Lenguaje para programar un dispositivo
Hardware
Software
Instrucciones ejecutadas en forma concurrente (todas al mismo tiempo)
Instrucciones ejecutadas en forma secuencial
La velocidad en la ejecución del programa depende sólo de la rapidez del circuito digital y de los retardos de propagación de las señales de salidas que responden a las señales de entrada
La velocidad en la ejecución del programa depende de la velocidad de la computadora
EJEMPLO: Parada en boxes de autos de carrera Un cjto de mecánicos haciendo en paralelo todas las tareas
Un solo mecánico haciendo todas las tareas en forma secuencial. El tiempo en boxes depende de la rapidez de la persona
CONCLUCION: Los lenguajes HDL se implementan en forma similar a los lenguajes de computadoras (BASIC, C, JAVA) pero son de comportamientos muy diferentes.
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Implementación de sistemas digitales complejos-Componentes En gral se implementan en CI normalizados configurables. Dos grupos: PLD “Programmable Logic Devices” Son de organización matricial Evolución de CI PLA, PAL y ROM de LSI. FPGA “Field Programmable Gate Array” Son de recursos distribuidos Se configuran en forma electrónica y sus circuitos internos se interconectan en forma electrónica para formar un circuito eléctrico. Esta configuración se hace mediante los HDL que con un software especial (compilador) traduce el lenguaje en matrices de 0 y 1.
Configuración de conexiones de hardware con FPGA En cada conexión se puede programar un 1 o un 0
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Formato del HDL Formato de archivos HDL Documentación
Comentarios que no generan hardware
Definición de bibliotecas Definición de tipos de datos Permite diseños jerárquicos Definición del componente. Definición de E/S Descripción lógica del componente Descripción funcional
Documentación Definición de bibliotecas Definición de E/S
Descripción Funcional
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
AHDL vs VHDL
Elementos esenciales en AHDL
Elementos esenciales en VHDL
& AND #
OR
!
NOT
$
XOR
Librerías: Modo -> IN, OUT, INOUT, BUFFER Tipo -> Nro de Bit
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Esquema de la arquitectura VHDL Parte declarativa: Señales intermedias Componentes Tipo Cuerpo de la arquitectura: Operadores Declaraciones concurrentes Declaraciones secuenciales
Operadores
Descripción de Flujo de datos
Declaraciones concurrentes
Descripción de estructuras
Descripción secuenciales
Descripción de comportamiento
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Operadores VHDL lógicos And OR Xor NAND NOR not
S1 valor absoluto
relacionales = --> igual /= --> distinto < --> menor menor o igual > --> mayor >= --> mayor o igual
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Declaraciones concurrentes VHDL Selección
with select
Componente
port map
Asignamiento condicional
when else
Bucle
for generate
Bloque
block
Avisos
assert report
Procesos
process
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Declaraciones secuenciales VHDL Espera
wait on ; wait for ; wait until ;
Condicional
if then elsif
Selección
case
Bucle
for loops
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
AHDL vs VHDL. Señales intermedias
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Programación de un CI configurable Programar significa realizar conexiones abiertas (‘0’) o cerradas (‘1’) de una
matriz de interconexiones Dos maneras de programar
Remover el chip de su sistema y colocándolo en un programador Interfase JEDEC (Joint Electron Devices Engineering Council) Estándard IEEE. Formato para transferir datos de programación independiente del fabricante Programación en sistema (ISP). El chip no necesita extraerse para su
programación
Interfase JTAG (Joint Test Action Group). Estándad IEEE. Se usa tanto para programar como para testear el sistema
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Software de desarrollo: Software de referencia: MAX+PLUS II de Altera Descarga: https://www.altera.com/download/legacy/maxplus2/dnl-student.jsp Licencia: http://www.altera.com/download/licensing/lic-choose.html
Permite: Describir un sistema digital mediante: HDL: VHDL, AHDL, Verilog Diagrama esquemático Formas de ondas
Compilar Verificar Programar
DISEÑO JERARQUICO
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Proceso de diseño
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Representación de datos en HDL Designación de sistemas numéricos en HDL
Arreglos de bits/vectores de bits
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Bibliotecas y paquetes en VHDL “Libraries” Elementos Fundamentales del VHDL Normalizadas
Tipos de datos predefinidos Definidas por el usuario Elementos definidos por el diseñador Se usan para diseño jerárquico Formada por paquetes
Sintaxis
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Tipos de datos en VHDL .Biblioteca IEEE STD_LOGIC : Tipo predefinido en el estándar IEEE 1164. Este tipo representa una lógica multivaluada de 9 valores. Además del ‘0’ lógico y el ‘1’ lógico, posee alta impedancia ‘Z’, desconocido ‘X’ ó sin inicializar ‘U’ entre otros. Igual que se permite crear un vector de bits se puede crear un vector de std_logic, STD_LOGIC_VECTOR. Para poder utilizar el tipo std_logic hay que añadir la librería que lo soporta. use ieee.std_logic_1164.all Para poder utilizar las funciones aritmeticológicas definidas (suma, resta, multiplicación) use ieee.std_logic_arith.all Si los vectores están en representación binaria pura use ieee.std_logic_unsigned.all Los vectores están en CA2 use ieee.std_logic_signed.all
Diseño de Sistemas Embebidos en FPGA – Curso de Posgrado Facultad de Ciencias Exactas y Tecnología – UNT.
Tipos de datos comunes en VHDL .Biblioteca IEEE std_logic_1164 de VHDL Tipo de datos
Declaraciones de ejemplo
Posibles valores
Uso
BIT
y: OUT BIT;
„0‟, „1‟
Y