Sunteți pe pagina 1din 45

Sistemas embebidos

Tema 3 - Introducción al lenguaje VHDL y FPGAs

Francisco Rodríguez Ballester


Departamento de Informática de Sistemas y Computadores
(DISCA)
prodrig@disca.upv.es

Primavera 2019
Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Índice de la presentación

1 Síntesis lógica ¾Qué es?¾Para qué se usa?

2 Lenguaje de descripción de hardware VHDL

3 Dispositivos lógicos programables (PLDs/FPGAs vs ASICs)

4 Usos y benecios del uso de FPGAs

5 Fabricantes de FPGAs

6 Tendencias modernas en el diseño digital

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 2 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Qué es la síntesis lógica?

De la wikipedia . . .

Un proceso por el cual una descripción abstracta del


comportamiento de un circuito es transformada en una
implementación del circuito en términos de puertas lógicas

Es un aspecto más de la automatización del diseño electrónico

Ehhh ... ¾descripción abstracta?¾del comportamiento?

Describimos cómo se obtienen las salidas del circuito

Signica que describimos lo que queremos obtener del circuito,


no cómo obtenerlo

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 3 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Para qué se usa la síntesis lógica?

Utilizando un lenguaje de descripción de hardware (HDL 


Hardware Description Language ) se usa para el diseño de circuitos
complejos . . .

Con menos esfuerzo:


Mayor nivel de abstracción
Concentración del esfuerzo sobre la funcionalidad

Con mejor legibilidad

Con mejor mantenibilidad

Más fácilmente documentables

Con independencia de las herramientas y sistemas de desarrollo

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 4 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Ejemplo

Diseñar un contador ascendente de 4 bits

1 Interfaz: entradas y salidas


1 Entrada de reset (rst) asíncrona y activa a nivel bajo
2 Entrada de reloj (clk) activa por anco de bajada
3 Salida (count) de 4 bits

2 Funcionalidad
1 Con la entrada rst activa la salida count cambia
instantáneamente (asíncronamente) al valor 0
2 Mientras rst no está activa la salida count se incrementa en
una unidad (con roll-over ) con cada anco activo de clk

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 5 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Ejemplo (2)

Interfaz (visión caja negra") del contador

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 6 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Ejemplo (3)

Diseño tradicional del contador

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 7 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Ejemplo (4)

Listado 1: Diseño con VHDL (sólo la interfaz)


-- Esta descripci ón de interfaz corresponde a un contador
-- con las entradas :
-- rst ( reset as í ncrono , entrada activa a nivel bajo )
-- clk ( reloj , entrada activa en el flanco de bajada )
-- y salidas :
-- count
library ieee ;
use ieee . std_logic_1164 . all ;
entity contador is
port (
rst : in std_logic ;
clk : in std_logic ;
count : out integer ;
);
end entity contador ;

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 8 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Ejemplo (5)

Listado 2: Diseño con VHDL (sólo la implementación)


-- Esta descripci ón de comportamiento corresponde a un
-- contador ascendente con entrada de reset activa a nivel
-- bajo y entrada de reloj activa en el flanco de bajada .
architecture implementacion of contador is
begin

proc_contar : process ( rst , clk ) is


begin
if ( rst = '0 ') then
count <= 0;
elsif falling_edge ( clk ) then
if ( count < 15) then
count <= count + 1;
else
count <= 0;
end if ;
end if ;
end process proc_contar ;

end architecture contador ;


Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 9 / 45
Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Ejemplo (6)

Comentarios

El diseño esquemático tradicional mezcla el qué queremos" y


el cómo conseguirlo", mientras que en VHDL sólo se describe
el qué queremos"

El diseño esquemático tradicional no ofrece una clara


separación entre interfaz e implementación

¾Qué diseño te parece mejor?


Facilidad en la creación
Sencillez en la comprensión
Facilidad en la modicación para crear, por ejemplo, un
contador de 32 bits

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 10 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Lenguajes de descripción de hardware

HDL = Hardware Description Language, término genérico para


designar los lenguajes empleados en la síntesis lógica.

Sólo existen dos HDLs extendidos: Verilog y VHDL


Dominar uno de ellos permite cubrir el 50 % del mercado
profesional

VHDL = VHSIC HDL (acrónimo de dos acrónimos)

VHSIC = Very High Speed Integrated Circuit


¾Cuál es la diferencia entre un lenguaje de programación típico
y uno de descripción de hardware?

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 11 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Qué es VHDL?

Es un HDL que puede ser utilizado para describir cualquier


sistema digital a cualquier nivel de abstracción

Se puede usar con dos objetivos diferentes, cada uno con


requisitos divergentes
1 Simulación
2 Implementación (síntesis)

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 12 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Qué es VHDL? (2)

Se puede usar con dos objetivos diferentes, cada uno con requisitos
divergentes

1 Simulación: Vericar que la funcionalidad es correcta, con


total control sobre las entradas y salidas, observabilidad de los
nodos internos del circuito, etc.
Simulación rápida
Inserción de retardos a voluntad
Repetibilidad de los tests (tests de regresión)
Acceso a cheros, memoria dinámica, estructuras de datos
complejas, etc. típicos de un lenguaje de programación

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 13 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Qué es VHDL? (3)

Se puede usar con dos objetivos diferentes, cada uno con requisitos
divergentes (cont.)

2 Síntesis: Obtener de forma automática un conjunto de puertas


lógicas, elementos de memoria e interconexiones que
implementen el circuito
Producir diseños que sean comprensibles para la herramienta
de síntesis
El retardo de cada parte del circuito depende de los elementos
hardware resultantes de la síntesis, no del código VHDL
¾Acceso a cheros? No hay procesador que ejecute el código
VHDL, ni sistema operativo, sistema de cheros, disco duro,
etc.

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 14 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Qué es VHDL? (4)

¾Cómo se compatibilizan ambos objetivos?

Se puede simular cualquier código VHDL, incluyendo retardos


y accesos a cheros, puesto que la simulación se realiza en un
ordenador con sistema operativo, sistema de cheros, etc. y un
hay hardware que limite la temporización indicada en el código
VHDL

No se puede sintetizar cualquier código VHDL, sólo aquél


código que no incluya retardos, acceso a cheros, memoria
dinámica, etc.

Las sentencias de VHDL que son susceptibles de síntesis


forman un subconjunto dentro del lenguaje VHDL: el
subconjunto sintetizable

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 15 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Qué es VHDL? (5)

Sobre el subconjunto sintetizable

Limitarse a usar el subconjunto sintetizable de VHDL en un


diseño no garantiza que el diseño resultante sea sintetizable

Debe ser, además, entendido por la herramienta de síntesis


De ahí la importancia de los patrones de diseño

Debe ser, además, realizable con la tecnología empleada en la


implementación
¾Puedo usar buers triestado en mi FPGA?
¾Dispongo de biestables que reaccionen al anco de subida y
bajada del reloj?

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 16 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Cómo vamos a aprender VHDL? (6)

Usa la referencia rápida desde el primer día

No gastes tiempo memorizando la sintaxis

½La vericación de la sintaxis es trabajo del compilador, no


tuyo!

Usa tu cerebro y el tiempo disponible para comprender los


principios del diseño

No te frustres si inicialmente obtienes numerosos errores


durante la compilación, es algo normal cuando se comienza a
trabajar con cualquier lenguaje

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 17 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Cómo vamos a aprender VHDL? (7)

En conclusión

Nos centraremos en adquirir una buena base


Metodología de diseño
Conceptos

½Hay que pensar antes de teclear! Sólo después ½piensa de


nuevo!

Usaremos ejemplos/patrones de diseño para introducir nuevos


conceptos o elementos del lenguaje

Describiremos brevemente la sintaxis

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 18 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Versiones del lenguaje

1 Cada versión es un superconjunto de la anterior


2 IEEE Std. 1076-1987 (conocida como VHDL'87)
3 IEEE Std. 1076-1993 (VHDL'93)
4 IEEE Std. 1076-2002 (VHDL'2002)
5 IEEE Std. 1076-2008 (VHDL'2008)

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 19 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Efectos de la estandarización y su implantación

1 Es necesario elegir la versión del lenguaje a utilizar en las


herramientas

2 Antes de utilizar aspectos especícos de una versión (por


ejemplo, VHDL'2008) es necesario vericar el soporte en las
herramientas de las que disponemos

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 20 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Defectos del proceso de estandarización

1 Elementos que eran estándar de-facto han pasado a ser


obsoletos
Especialmente los paquetes ieee_logic_arith,
ieee_arith_signed y ieee_arith_unsigned
2 Elementos que se pensó serían útiles han quedado reducidos a
nada
Por reemplazo: los tipos de datos bit y bit_vector
Por las restricciones de uso: los puertos de tipo buffer y
linkage

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 21 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Generalidades del lenguaje

1 Insensible a mayúsculas y minúsculas


2 Comentarios desde marca hasta el nal de línea
No existe comentario de bloque (bueno . . . en VHDL'2008 sí)

3 Separación total entre interfaz e implementación de un módulo


( design entity )
4 La distribución del código VHDL en uno o más cheros es
arbitraria

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 22 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Código VHDL en Internet

Existen numerosas referencias en Internet con ejemplos


sencillos de código VHDL ©
Muchas de esas referencias utilizan código obsoleto §
Descarta ejemplos que usen:
1 Los tipos de datos bit y bit_vector; reemplázalos por los
tipos std_logic y std_logic_vector, que son los que se
usan actualmente
2 Los puertos de tipo buffer. Las herramientas de síntesis
advierten de que su uso puede dar problemas

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 23 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Código VHDL en Internet (2)

Descarta ejemplos que usen (cont.):


1 Los puertos de tipo linkage
Código no es portable
Se utiliza para conectar VHDL con elementos externos a
VHDL.

2 ieee_logic_arith, ieee_arith_signed,
Los paquetes y/o
ieee_arith_unsigned
Utiliza numeric_std en su lugar para disponer de operaciones
aritméticas sobre los tipos de datos signed y unsigned
El tipo de datos std_logic_vector no debe usarse en
operaciones aritméticas

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 24 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Dispositivos lógicos programables

Dispositivo lógico programable

Término genérico que hace referencia a un circuito integrado


sin una funcionalidad concreta

Las puertas lógicas, biestables, etc. internas tienen


conguraciones y conexiones programables

© Mucho espacio para la customización: qué pines se usan y


cómo, qué funciones lógicas se calculan, qué información se
almacena y cuándo, etc.

© Time-to-market, costes NRE (Non-Recurring Engineering


costs )

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 25 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Dispositivos lógicos programables (2)

Tipos de dispositivos lógicos programables

PLA = Programmable Logic Array


PAL = Programmable Array Logic

GAL = Generic Array Logic

(C)PLD = (Complex) Programmable Logic Device

FPGA = Field-Programmable Gate Array

Dos clases generales de dispositivos:


1 PLD. Dispositivo logic-intensive
2 FPGA. Dispositivo register-intensive

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 26 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Benecios del uso de dispositivos lógicos programables

Se reduce el time-to-market y el riesgo económico derivado de


errores en el diseño

El diseño puede comenzar sin el dispositivo real

Reconguración in-the-eld
Fácil de adaptar al usuario nal
Corrección de errores post-venta/post-instalación

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 27 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Descripción general de una FPGA

Arquitectura general de una FPGA Cyclone IV

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 28 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Descripción general de una FPGA (2)

LAB  Logic Array Block (agrupación de LEs)

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 29 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Descripción general de una FPGA (3)

LE  Logic Element

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 30 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Descripción general de una FPGA (4)

Hoy en día las FPGAs incluyen mucho más que simples puertas
lógicas y biestables:

Memorias (bloque de memoria, no una agregación de


biestables sueltos)

Procesadores de propósito general

Bloques especializados para procesamiento digital de señales

Multiplicadores especializados

Unidades de gestión de reloj

Transceivers de alta velocidad

...

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 31 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Conguración de una FPGA

La conguración ( bitstream) es la información necesaria para


personalizar la FPGA a n de conseguir una funcionalidad concreta

¾Cómo se almacena esta conguración?

Dispositivos basados en ROM (la mayoría de las PLDs)


La ROM interna contiene esta información

Dispositivos basados en RAM (la mayoría de las FPGAs)


La FPGA necesita una ROM externa con esta información
Durante la inicialización la FPGA descarga la conguración de
la ROM externa en su memoria RAM interna
Hasta que no se termina la inicialización la FPGA no es
funcional

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 32 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Algunos términos más

IP = Intellectual Property. Módulo de funcionalidad especíca


Soft-core IP. Módulo diseñado usando un HDL (como VHDL)
que puede ser añadido en un diseño más complejo

Hard-core IP. Módulo incorporado en una FPGA como un


bloque que se puede usar o no, pero que siempre está presente

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 33 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Para qué se usan las FPGAs?

Sistemas empotrados

Sistemas de procesado digital de la señal

Comunicaciones de alta velocidad

Prototipado rápido para sistemas nales en ASIC

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 34 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Cuáles son los benecios de uso de las FPGAs?

En el diseño de sistemas clásicos

Mayor integración, reducción de la lista de materiales (BOM


 Bill Of Materials )
Sistemas más compactos

Sistemas recongurables

Diseño de sistemas que serían impracticables sin FPGAs

Con cientos o miles de elementos trabajando en paralelo

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 35 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

¾Porqué no usar un microcontrolador?

A veces usar un microcontrolador es la selección más adecuada,


pero . . .

Un microcontrolador ejecuta un programa secuencial, por lo


que la complejidad se traduce en tiempo de ejecución

Con una FPGA podemos explotar su paralelismo inherente


para realizar el mismo trabajo en menos tiempo de lo que
necesitaría un microcontrolador, incluso utilizando una
frecuencia de reloj inferior

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 36 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Fabricantes de FPGAs

Dos grandes jugadores en este mercado de dispositivos lógicos


programables se reparten la mayor parte del pastel:

1 Xilinx (http://www.xilinx.com)
2 Altera (http://www.altera.com), ahora una compañía de Intel

Otros actores:

1 Atmel
2 Actel
3 Lattice. Uno de los pocos fabricantes que ofrecen FPGAs
basadas en ROM

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 37 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Fabricantes de FPGAs (2)

Los vendedores de FPGAs crean líneas de dispositivos diferenciados


en función de los objetivos del diseñador: bajo consumo, sistemas
de procesado digital de señal de máxima potencia, sistemas de
comunicaciones de alta velocidad, de propósito general, etc.

Familias Xilinx: Spartan, Artix, Kintex, Virtex

Familias Altera: Cyclone (I a V), Arria, Stratix

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 38 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Tendencias modernas en el diseño digital

La evolución tecnológica permite integrar cada vez más elementos


dentro de los circuitos integrados

La tendencia es la creación de soluciones con un único circuito


integrado que incluyen uno o más procesadores
Incluyen procesador(es), lógica especíca, transceivers, etc.
Ese único circuito integrado es una FPGA de alta capacidad o
contiene una FPGA

Estos sistemas se conocen como SoC ( System on Chip )

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 39 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Tendencias modernas en el diseño digital (2)

Ejemplos de SoC (procesadores como Soft-IP)

1 Serie de procesadores ARM Cortex-M1, soft-cores diseñados


especícamente para su inclusión en una FPGA

2 Procesadores PowerPC 405 y 440, utilizados en FPGAs


Virtex-4 y Virtex-5 de Xilinx

3 Procesadores PicoBlaze y MicroBlaze de Xilinx


4 Procesador NIOS-II de Altera
5 ...

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 40 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Tendencias modernas en el diseño digital (3)

Ejemplos de SoC (procesadores como Hard-IP)

1 Serie Atom E6x5C de Intel (codename Stellarton)


La C en E6x5C signica conguración
Un único encapsulado, dos dispositivos separados internamente
Un procesador Atom E600 (Tunnel Creek) diseñado para
sistemas empotrados
Una FPGA Arria-II GX de Altera

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 41 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Tendencias modernas en el diseño digital (4)

Arquitectura del Atom E6x5C

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 42 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Tendencias modernas en el diseño digital (5)

Ejemplos de SoC (procesadores como Hard-IP, cont.)

2 Serie Zynq-7000 (Extensible Processing Platform) de Xilinx


Un único dispositivo
Un procesador ARM Cortex-A9 MPCore (A9 dual core )
Una FPGA Artix-7 o Kintex-7 de Xilinx

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 43 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

Tendencias modernas en el diseño digital (6)

Arquitectura de un dispositivo de la serie Zynq-7000

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 44 / 45


Síntesis lógica VHDL FPGAs Usos Fabricantes Tendencias

License

This work is subject to a Creative Commons license of type


Attribution - NonComercial - ShareAlike (by-nc-sa)

You are free to share and adapt this work

for non-commercial use as long as

you follow the conditions of

the by-nc-sa license

More information in http://creativecommons.org/licenses/

Francisco Rodríguez (prodrig@disca.upv.es) Sistemas embebidos baremetal 45 / 45

S-ar putea să vă placă și