Dise o de Sistemas Embebidos en FPGA Curso de...

48
Tema 1 Diseño de Sistemas Embebidos en FPGA Curso de Posgrado Facultad de Ciencias Exactas y Tecnología UNT. Parte 1: Clasificación de circuitos digitales Parte 2: Lenguajes de descripción de Hardware

Transcript of Dise o de Sistemas Embebidos en FPGA Curso de...

Tema 1

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Parte 1: Clasificación de circuitos digitalesParte 2: Lenguajes de descripción de Hardware

Parte 1. Introducción

Microelec-trónica

Área de la electrónica

aplicada

Estudio de métodos y

procesos de realización

de circuitos integrados

Circuitos Integrados:

• Componentes pasivos:

• Resisten-cias y diodos

• Dispositivos electrónicos

• Transisto-res BJT, MOS, CMOS

• Conexiones entre ellos. En uno o varios substratos

Circuitos integrados monolíticos

• Único substrato o bloque semiconductor

Electrónica digital

Circuitos integrados digitales monoliti-

cos

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad 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 PosgradoFacultad 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 PosgradoFacultad 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 PosgradoFacultad 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 PosgradoFacultad 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 PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Según la forma en que se realiza el diseño

Normalizados o Estándar

“Standard off-the-self integrated circuit”

Determinados por el fabricante

Arquitectura

Conjunto de elementos

interrelacionados entre sí

Características eléctricas

Características funcionales

Especificados por el usuario

ASIC

Realizados a medida del

usuario

Diseño asistido por Computadora

Clasificación de los circuitos integrados digitales monolíticos

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

NormalizadosNormalizados

Según la funcionalidad

Fija Según el campo se aplicación:

General

SSI MSI LSI

Específica

ASIC

ProgramableSegún la arquitectura:

Fija:

Conexiones fijas entre los elementos lógicos

PAL PLA uC DSP

Configu-rable:

Conexiones modificables

por el usuario

VLSI-ULSI

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Clasificación de los CIDM Según la forma en que se realiza el diseñoCIDM normalizados de función fija de aplicación gral

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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.

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

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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.

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

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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)].

Clasificación de los CIDM según la forma en que se realiza el diseñoCIDM normalizados de función fija de aplicación específica

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Transmisor –Receptor Asíncrono Universal

Clasificación de los CIDM según la forma en que se realiza el diseño.CIDM normalizados programables

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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.

Clasificación de los CIDM según la forma en que se realiza el diseño.CIDM normalizados programables de arquitectura fija

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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 PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Clasificación de los CIDM según la forma en que se realiza el diseño.

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 PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Clasificación de los CIDM según la forma en que se realiza el diseñoNORMALIZADOS PROGRAMABLES DE ARQUITECTURA CONFIGURABLE

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

-La flexibilidad de los CIDM programables de arquitectura fija no essuficiente ya que están formados por elementos unidos directamenteentre sí. Sólo pueden cambiar la función que realizan modificando elcontenido de una memoria.

- Los CIDM programables de arquitectura configurable cuentan conelementos con conexiones modificables cambiando el estado de unasvariables binaria

-Son Circuitos digitales cuya función se puede modificar utilizandosólo una parte de los elementos que lo componen y/o cambiando lainterconexión entre ellos.

--Dicha modificación se hace mediante la programación de unconjunto de variables que forman una determinada estructura dememoria.

NORMALIZADOS PROGRAMABLES DE ARQUITECTURA CONFIGURABLE

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Clasificación de los CIDM según la forma en que se realiza el diseñoEspecificados por el usuario. “ASIC”

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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 IntegratedCircuits).

DEFINICIÓNCircuito integrado diseñado para implementar un sistema electrónico queimplementa una función práctica concreta que no es de aplicacióngeneral.

Clasificación de los CIDM según la forma en que se realiza el diseñoEspecificados por el usuario. “ASIC”

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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ñadoradopta decisiones al nivel de descripción lógica sinalcanzar el de descripción eléctrica

Clasificación de los CIDM según la forma en que se realiza el diseñoEspecificados por el usuario. “ASIC”

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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ñototalmente a medida

Existen diversas variantes de los circuitos integrados semimedida quese diferencian en la complejidad de las celdas utilizadas y la forma deinterconectarlas. Entre ellas las más utilizadas son:

- Conjuntos de puertas programables mediante máscara(Mask Programmable Gate Arrays)

- Celdas estándar (Standard Cells)

Clasificación de los CIDM según la forma en que se realiza el diseñoEspecificados por el usuario. “ASIC”

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

CIDM SEMIMEDIDA (SEMICUSTOM)

CONJUNTOS DE PUERTASPROGRAMABLESMEDIANTE MÁSCARA(Mask Programmable Gate Arrays)Están formadas por un conjunto de elementosbásicos dispuestos de forma regular . Suelenser puertas NAND o NOR.Los fabricantes pueden establecer el circuitomediante la máscara final de interconexión.

Clasificación de los CIDM según la forma en que se realiza el diseñoEspecificados por el usuario. “ASIC”

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

CIDM SEMIMEDIDA (SEMICUSTOM)

CELDAS ESTÁNDAR(STANDARD CELLS)

Consisten en un conjunto o bibliotecade celdas normalizadasque constituyen bloques funcionalesde mayor complejidadque las puertas lógicas universalesLa colocación de las celdasy los canales para su interconexiónno están predefinidos

Clasificación de los CIDM según la forma en que se realiza el diseñoEspecificados por el usuario. “ASIC”

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Clasificación de los CIDM según la forma en que se realiza el diseñoEspecificados por el usuario. “ASIC”

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Parte 2 LENGUAJES DE DESCRIPCIÓN DE HARDWARE

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 PosgradoFacultad 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

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

encendidoeruuptorenganchadouroncpresenteconductoraadvertenciluz _int_int__

EjemploDiagrama Esquemático

Diagrama de tiempos

Tabla de verdad

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad 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 PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Concurrente Vs SecuencialLenguaje 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 boxesdepende 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 PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Implementación de sistemas digitales complejos-Componentes

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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

Formato del HDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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

AHDL vs VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Elementos esenciales en AHDL Elementos esenciales en VHDL

Librerías:Modo -> IN, OUT, INOUT, BUFFERTipo -> Nro de Bit

& AND

# OR

! NOT

$ XOR

Esquema de la arquitectura VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Parte declarativa:Señales intermediasComponentesTipo

Cuerpo de la arquitectura:OperadoresDeclaraciones concurrentesDeclaraciones secuenciales

Operadores Descripción de Flujo de datos

Declaraciones concurrentes Descripción de estructuras

Descripción secuenciales Descripción de comportamiento

Operadores VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

lógicosAnd S1 <= A AND B AND C;OR S1 <= A OR B OR C;Xor S1 <= A XOR B XOR C;NAND S1 <= (A nand B) nand C;NOR S1 <= (A NOR B) NOR C;not S1 <= NOT A;

aritméticas+ --> suma- --> resta* --> multiplicación/ --> división** --> potenciaciónabs --> valor absoluto

relacionales= --> igual/= --> distinto< --> menor<= --> menor o igual> --> mayor>= --> mayor o igual

Declaraciones concurrentes VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Selección with select

Componente port map

Asignamiento condicional when else

Bucle for generate

Bloque block

Avisos assert report

Procesos process

Declaraciones secuenciales VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

wait on <SEÑAL>;Espera wait for <TIEMPO>;

wait until <CONDICIÓN>;

Condicional if thenelsif

Selección case

Bucle for loops

AHDL vs VHDL. Señales intermedias

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Programación de un CI configurable

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

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

Software de desarrollo:

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Software de referencia: MAX+PLUS II de AlteraDescarga: https://www.altera.com/download/legacy/maxplus2/dnl-student.jspLicencia: 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

Proceso de diseño

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Representación de datos en HDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Designación de sistemas numéricos en HDL

Arreglos de bits/vectores de bits

Bibliotecas y paquetes en VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

“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

Tipos de datos en VHDL .Biblioteca IEEE

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

STD_LOGIC :Tipo predefinido en el estándar IEEE 1164. Este tipo representa una lógica multivaluada de9 valores. Además del ‘0’ lógico y el ‘1’ lógico, posee alta impedancia ‘Z’, desconocido ‘X’ ó sininicializar ‘U’ entre otros. Igual que se permite crear un vector de bits se puede crear unvector 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 purause ieee.std_logic_unsigned.all

Los vectores están en CA2

use ieee.std_logic_signed.all

Tipos de datos comunes en VHDL .Biblioteca IEEEstd_logic_1164 de VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Tipo de datos Declaraciones de ejemploPosibles

valoresUso

BIT y: OUT BIT; „0‟, „1‟ Y <= 0

STD_LOGIC Control: STD_LOGIC„0‟, „1‟, „Z‟, „X‟, „-

‟Control <= „Z‟;

BIT_VECTOR

datos_bcd: BIT_VECTOR

(3 DOWNTO 0);“0101”, “0000”,

“1001”

Digito <=

datos_bcd

STD_LOGIC_VECTOR

dbus: STD_LOGIC_VECTOR

(3 DOWNTO 0); “0Z1X”IF rd=„0‟ then

dbus <= “ZZZZ”

INTEGER SIGNAL m: INTEGER RANGE -32 TO 31-32, … -2, -1, 0,

1,2, …, 31IF m>5 THEN …