FPGAs Libres

Instituto Nacional de Tecnología Industrial FPGAs Libres: Hardware, simulación y síntesis Disertante: Salvador E. Tropea

Views 146 Downloads 24 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Instituto Nacional de Tecnología Industrial FPGAs Libres: Hardware, simulación y síntesis Disertante: Salvador E. Tropea Centro de Micro y Nanoelectrónica (CMNB)

Copyright © 2005-2017 INTI, Salvador E. Tropea

Breve introducción y terminología

Copyright © 2005-2017 INTI, Salvador E. Tropea

Breve introducción y terminología

 FPGA (Field Programmable Gate Array), el representante dominante de la “Lógica Programable” • Circuitos integrados reconfigurables • Pueden realizar cualquier función digital • Se basan en lógica combinacional (LUTs) y flip-flops • La lógica y su interconexión es reconfigurable • Usualmente se describe el circuito usando un HDL • Principales fabricantes: • Xilinx • ALTERA (Intel) • Medianos: Microsemi y Lattice Copyright © 2005-2017 INTI, Salvador E. Tropea

Breve introducción y terminología

 HDL (Hardware Description Language), un código que sirve para describir circuitos (normalmente digitales) • Permite describir el circuito propiamente dicho y también verificarlo. • Se parecen a los lenguajes de programación, pero describen circuitos (compuertas y flip-flops) • Los más populares: • Verilog (migrando a SystemVerilog) • VHDL

Copyright © 2005-2017 INTI, Salvador E. Tropea

Breve introducción y terminología

 Verilog (Verification Logic) • Se parece al lenguaje C • Dominante en la costa oeste de USA (Silicon Valley) • Compacto, aunque peligroso • Norma IEEE 1364  VHDL (Very High Speed Integrated Circuit HDL) • Con raíces en el ADA (DoD) • Dominante en la costa este de USA y Europa (también en el ámbito académico y gubernamental local) • Autodocumentado, verborrágico • Norma IEEE 1076 Copyright © 2005-2017 INTI, Salvador E. Tropea

Breve introducción y terminología

 Sintetizar: Convertir el código HDL en un circuito • FPGA: en la configuración de los elementos lógicos internos (bitstream) • Esta información usualmente se almacena en una memoria.  Simular: Convertir el código HDL en un programa • El programa puede ser código nativo o interpretable • Al HDL del circuito se agrega un HDL que simula los componentes externos, inyecta estímulos y verifica los resultados (testbench). • Permite verificar el funcionamiento Copyright © 2005-2017 INTI, Salvador E. Tropea

Breve introducción y terminología

 Kit de desarrollo: Circuito electrónico con la FPGA y accesorios útiles para validar nuestro diseño. • El diseño final podría usarlo • O bien diseñamos un circuito que agregue/quite la funcionalidad de nuestro diseño • El fabricante usualmente provee el circuito esquemático para que podamos usarlo como base para nuestro diseño

Copyright © 2005-2017 INTI, Salvador E. Tropea

Breve introducción y terminología

 Lo más común es usar un kit de desarrollo propietario • En muchos casos vendido por el fabricante, aunque diseñado por un tercero. • Solo parte de la información de diseño se encuentra disponible

 Lo más común es usar el software propietario que provee el fabricante • El software tratará de mantenernos cautivos mediante características propietarias difíciles de portar. Inclusive violando estándares • Solo algunos detalles internos son conocidos • El software impone limitaciones arbitrarias Copyright © 2005-2017 INTI, Salvador E. Tropea

La opción que nos da libertad

Copyright © 2005-2017 INTI, Salvador E. Tropea

La opción que nos da la libertad

 Software Libre: El software que nos da la libertad de copiarlo, estudiarlo, modificarlo, etc. • Las FPGAs son casi tan viejas como el movimiento de S.L. (primer mitad de los '80) • Sin embargo recién en 2015 se logró cerrar el ciclo de diseño

 Hardware Libre: Una extrapolación del concepto de S.L. llevado al hardware • Hardware que podemos copiar, estudiar, modificar, etc. Con la salvedad que nadie nos va a regalar los componentes • Idealmente, el hardware libre debería tener toda su información de diseño disponible y en formatos usables con S.L. Copyright © 2005-2017 INTI, Salvador E. Tropea

La opción que nos da la libertad

 Tomaremos como base dos proyectos de importancia y disponibles en español.  FPGALibre: • Impulsado por nuestro laboratorio desde 2005 • http://fpgalibre.sf.net/  FPGA Wars (por Star Wars) • Nacido en España • http://fpgawars.github.io/

Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware libre

Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware Libre

 Existe gran cantidad de diseños disponibles en internet  Hay empresas que venden kits de desarrollo con FPGAs bajo esta modalidad. Por ejemplo: • Ej: OLIMEX https://www.olimex.com/Products/FPGA/

 Existen proyectos comunitarios dedicados a difundir herramientas de S.L. que incluyen SL y HL  A continuación dos ejemplos, uno nacional y otro de España

Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware Libre: FPGALibre

S2Proto  Xilinx  Spartan II (50/100/150)  1536/2400/3456 LUT4/FF  32/40/48 kib BRAM  PQ208 (TQFP)  PCB 2 capas  Conf: JTAG  Obsoleta Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware Libre: FPGALibre

S3Proto  Xilinx  Spartan 3E (1600)  29.504 LUT4/FF  648 kib BRAM  FG320 (BGA)  PCB 4 capas  Conf: JTAG

Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware Libre: FPGALibre

Kéfir I  Lattice  iCE40HX4K  7.680 LUT4/FF  128 kib BRAM  TQ144 (TQFP)  PCB 2 capas  Conectores Arduino  FPGA económica  Conf: SPI Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware Libre: FPGALibre (cable)

MILK  Cable de configuración  Lado PC: USB  Dos canales • SPI • RS-232 • JTAG • I2C • Otros  Tensiones 1 a 5 V Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware Libre: FPGAWars

IceZum Alhambra  Lattice  iCE40HX1K  1.280 LUT4/FF  64 kib BRAM  TQ144 (TQFP)  PCB 4 capas  Conectores Arduino  FPGA económica  Conf: USB (SPI incluida) Copyright © 2005-2017 INTI, Salvador E. Tropea

Hardware Libre: Otros ejemplos  Lattice: • ICEHat, iCE5LP4K http://hackaday.com/2016/11/05/give-your-rpi-a-cool-fpga-hat/ • ICEd1, iCE40HX1K https://hackaday.io/project/6636-iced-an-arduino-style-board-with-ice-fpga • CAT Board1, iCE40HX8K https://hackaday.io/project/7982-cat-board • eCow-Logic pico-ITX1, iCE40HX1K http://opencores.org/project,ecowlogic-pico • MyStyorm1, iCE40HX4K https://folknologylabs.wordpress.com/2016/08/17/the-lull-before-the-storm/

 Xilinx: • PHR, UTN FRC, Spartan 3A 200 http://opencores.org/project,phr • Mimas/Saturn, Spartan 6 https://numato.com/products/fpga-boards/xilinx-spartan6/ • Arduino FPGA shield 2, Spartan 6 http://hackaday.com/2014/03/05/a-low-cost-arduino-fpga-shield/

• Papilio2,3, Spartan 6 http://papilio.cc/ • Mojo2, Spartan 6 https://embeddedmicro.com/mojo-v3.html 1 El sitio indica que son hardware libre, pero no hay una manera obvia de obtener la información de diseño 2 Diseño basado en herramientas propietarias 3 No hay manera obvia de obtener TODOS los archivos de diseño Copyright © 2005-2017 INTI, Salvador E. Tropea

El flujo de desarrollo con FPGA

Copyright © 2005-2017 INTI, Salvador E. Tropea

Descripción del circuito en HDL

SI Simulación

¿Correcto?

Descripción del banco de pruebas en HDL

Síntesis

NO

Errores de sintaxis Errores funcionales

Visor de formas de onda

SI

Error detectado

NO

Copyright © 2005-2017 INTI, Salvador E. Tropea

NO

Correcciones Descripción en HDL

Simulación

Síntesis

¿Correcto?

SI

NO

¿Correcto?

Transferir a la placa

SI ¡Éxito!

Copyright © 2005-2017 INTI, Salvador E. Tropea

Descripción en HDL NO

Correcciones

Descripción en HDL

Simulación

Síntesis

NO

¿Correcto?

¿Correcto?

Transferir a la placa

SI ¡Éxito! Copyright © 2005-2017 INTI, Salvador E. Tropea

Descripción en HDL

 Usualmente los editores de las IDEs no son los mejores  Recomendación: usar alguno que ya usemos para otras cosas. Preferentemente que cumpla: • Tener resaltado de sintaxis para nuestro HDL • Permitir ejecutar comandos desde el mismo • Recolectar errores y permitir saltar a ellos • Que ayude en el indentado • Que posea templates de código • Que permita buscar entidades, constantes, etc. (por ejemplo usando ctags) Copyright © 2005-2017 INTI, Salvador E. Tropea

Descripción en HDL

 Un editor con estas características, con soporte para VHDL es el SETEdit (disponible en FPGALibre) • El soporte para Verilog es experimental

http://fpgalibre.sourceforge.net/editor.html Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación Correcciones

Descripción en HDL

Simulación

Síntesis

NO

¿Correcto?

NO

¿Correcto?

Transferir a la placa

SI ¡Éxito! Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación

 Los HDLs más usados son: • VHDL • Verilog  Los simuladores de S.L. más usados para estos lenguajes son: • GHDL • Icarus Verilog  No son los únicos

Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación VHDL: GHDL

Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación VHDL: GHDL

 Muy completo y estricto con respecto al estándar  Disponible para Linux (distro), Windows y Mac OSX  http://ghdl.free.fr  Convierte nuestro testbench en un ejecutable • Lo puede hacer trabajando como frontend de GCC (el compilador del proyecto GNU)  Es de línea de comandos, pero fácil de usar • El viernes hay un tutorial con un ejemplo • Apunte en con ejemplos: http://fpgalibre.sourceforge.net/simul.html Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación VHDL: GHDL

 Uso del GHDL en 3 pasos simples: • En el primer paso le informamos cuáles son los fuentes del circuito y la verificación. • En el segundo le pedimos que analice y elabore. • En el tercero que ejecute la simulación 1) ghdl ­i TODOS_LOS_FUENTES 2) ghdl ­m ENTIDAD_TOP_LEVEL 3) ghdl ­r ENTIDAD_TOP_LEVEL ­­wave=ondas.ghw  Si introducimos algún cambio volvemos al punto 2  Para agregar nuevos fuentes lo hacemos con ­i Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación Verilog: Icarus Verilog

Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación Verilog: Icarus Verilog

 Muy completo  Disponible para Linux (distro), Windows y Mac OSX  http://iverilog.icarus.com/  Convierte nuestro testbench en un lenguaje interpretable  Es de línea de comandos, pero fácil de usar • El viernes hay un tutorial con un ejemplo  Es posible usarlo para simulación mixta (VHDL + Verilog) ya que es capaz de generar código VHDL

Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación Verilog: Icarus Verilog

 Uso del Icarus Verilog en 2 pasos simples: • En el primer paso compilamos el Verilog a vvp assembly • En el segundo lo simulamos con vvp 1) iverilog ­o ARCH_SALIDA TODOS_LOS_FUENTES 2) vvp ARCH_SALIDA  Siempre volvemos a compilar, no es incremental como con el GHDL  Tener en cuenta que las posibles formas de onda se indican en el testbench

Copyright © 2005-2017 INTI, Salvador E. Tropea

Simulación Verilog: Icarus Verilog

 Es posible pedirle a Icarus Verilog que genere código VHDL en lugar de vvp assembly:  iverilog ­t vhdl ­o SALIDA.VHDL FUENTES  El archivo SALIDA.VHDL contendrá las entidades VHDL equivalentes.  De esta manera es posible lograr cierto grado de simulación mixta.  El VHDL resultante es útil únicamente a los fines de simulación, no se supone que sea código mantenible.

Copyright © 2005-2017 INTI, Salvador E. Tropea

Visor de formas de onda: GTKWave Descripción del circuito en HDL Descripción del banco de pruebas en HDL

SI Simulación

¿Correcto?

Síntesis

NO

Errores de sintaxis Errores funcionales

Visor de formas de onda

SI

Error detectado NO

Copyright © 2005-2017 INTI, Salvador E. Tropea

Visor de formas de onda: GTKWave

 Los bancos de prueba deben verificar el funcionamiento de nuestro circuito automáticamente.  Idealmente se debería recurrir a un visor de formas de onda solo cuando los bancos de prueba reportan un error que no es evidente.  GTKWave soporta el formato VCD (Verilog) y GHW (GHDL)  http://gtkwave.sourceforge.net/

Copyright © 2005-2017 INTI, Salvador E. Tropea

Visor de formas de onda: GTKWave

Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis Correcciones

Descripción en HDL

Simulación

Síntesis

NO

¿Correcto?

NO

¿Correcto?

Transferir a la placa

SI ¡Éxito! Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: Introducción

 Las primeras FPGAs datan de 1985  Alliance VLSI CAD comenzó en 1990 (síntesis ASICs)  iverilog comenzó en 1998  GHDL comenzó en 2003  Sin embargo no fue hasta 2015 que aparecieron sintetizadores completos y libres.  El mayor problema es que los fabricantes de FPGAs no ofrecen documentación sobre los detalles internos de las mismas.

Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: Pasos

 La síntesis para FPGAs involucra las siguientes tareas: • Análisis del HDL para convertirlo en un circuito (síntesis propiamente dicha) • Mapeo tecnológico (usando los recursos del dispositivo de destino) • Place (selección de los recursos a usar en forma individual, cuáles usaremos en concreto) • Route (interconexión de los recursos seleccionados) • Generación de la configuración a usar por la FPGA (bitstream) Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: Yosys (Yosys Open SYnthesis Suite)

 Yosys es un sintetizador de código Verilog creado por Clifford Wolf (http://www.clifford.at/yosys/)  Utiliza el Berkeley ABC para resolver varios aspectos combinacionales (https://people.eecs.berkeley.edu/~alanmi/abc/)  Su desarrollo comenzó en 2012  Resuelve la síntesis propiamente dicha y el mapeo tecnológico.  Sin embargo, la falta de información impedía realizar el resto de los pasos.  Era posible usar Yosys para reemplazar algunos de los pasos de las herramientas de Xilinx Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: iCE40

 La empresa SiliconBlue Technologies comienza a trabajar en 2006 en el desarrollo de FPGAs (ex-Actel/Xilinx entre otros)  En 2008 lanza su primer línea con tec. de 65 nm  A mediados de 2011 introduce las iCE40 (40 nm)  FPGAs de bajo costo, gracias a un diseño muy simple y minimalista  La empresa fue adquirida por Lattice Semiconductors a fines de 2011  http://www.latticesemi.com/Products/FPGAandCPLD/iCE40.aspx

Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: Proyecto IceStorm

 A principios de 2015 sale a la luz un proyecto de Clifford cuyo objetivo es el análisis de la arquitectura interna de las iCE40  Este proyecto logra documentar dicha estructura y como crear un bitstream para iCE40  Se crean las herramientas necesarias para crear y transferir bitstreams  http://www.clifford.at/icestorm/

Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: Arachne-PNR

 El último eslabón faltante en la cadena era el de Place & Route  Con la información de IceStorm “Cotton Seed” crea dicha herramienta  https://github.com/cseed/arachne-pnr  El 27/5/2015 Clifford anuncia que ya existe un tool-chain completo.

Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: Limitaciones y ventajas

 Solo para iCE40LP384/1K/4K/8K y iCE40HX1K/4K/8K  Solo Verilog • Frontend experimental con traductor de VHDL propietario • 2 frontends experimentales p/VHDL (uno basado en GHDL)  Soporte básico para lógica de 3 estados  Síntesis menos eficiente que las herramientas del fabricante  Ventaja importante: • Muchísimo más rápido, ej: • Síntesis 4'10” vs 50” • Transferencia 1'6” vs 6” Copyright © 2005-2017 INTI, Salvador E. Tropea

Síntesis: Uso básico para iCE40HX4K-TQ144  yosys -p 'synth_ice40 -top TOP_LEVEL -blif synth.blif' FUENTES  arachne-pnr -d 8k -P tq144:4k -o prj.asc -p CONSTRAINTS.pcf synth.blif  icepack prj.asc prj.bin

 Primero se sintetiza el código Verilog y se lo mapea a los recursos de la iCE40 (LUTs, Cys, FFs, etc.) • El resultado se guarda en un .BLIF  Luego Arachne realiza el place & route para la iCE40 indicada y genera un bitstream en ASCII  El icepack convierte el bitstream a su forma binaria

Copyright © 2005-2017 INTI, Salvador E. Tropea

Transferencia Correcciones

Descripción en HDL

Simulación

Síntesis

NO

¿Correcto?

NO

¿Correcto?

Transferir a la placa

SI ¡Éxito! Copyright © 2005-2017 INTI, Salvador E. Tropea

Transferencia a la FPGA

 Depende mucho de la placa y la FPGA que use.  Usualmente involucra un “cable” (circuito conectado a la PC) • En algunos casos incluido en la placa (p.e. IceZum Alhambra)  En Altera y Xilinx lo más común es usar protocolo JTAG  Las iCE40 usan SPI  Hay muchos “cables” basados en chips de FTDI (principalmente FT2232H, como el caso de MILK) • El FT2232H soporta JTAG y SPI

Copyright © 2005-2017 INTI, Salvador E. Tropea

Transferencia a la FPGA: Xilinx

 Aún no es posible completar la síntesis con SL, por lo que necesitamos ISE o Vivado  Por esta razón no tiene mucho sentido reemplazar el Xilinx iMPACT. • Aunque si evitar usar su interfaz gráfica para automatizar el proceso  iMPACT Helper es una herramienta que facilita el uso de iMPACT desde Makefiles • Incluye soporte para FT2232H • http://fpgalibre.sourceforge.net/hard.html Copyright © 2005-2017 INTI, Salvador E. Tropea

Transferencia a la FPGA: iCE40

 El proyecto IceStorm cubre esta necesidad  El comando iceprog realiza la transferencia  Funciona con cualquier memoria SPI que soporte los comandos modernos para averiguar su disposición interna  Si nuestro bitstream es prj.bin: • iceprog prj.bin  El FT2232H tiene 2 canales, si el canal usado para configurar la FPGA es el B usamos: • iceprog ­I B prj.bin  Usa la libftdi que a su vez usa libusb Copyright © 2005-2017 INTI, Salvador E. Tropea

Otras herramientas de más alto nivel

Copyright © 2005-2017 INTI, Salvador E. Tropea

Apio

 Es una herramienta de línea de comandos  Su objetivo es simplificar el flujo de desarrollo mediante comandos simples  Solo soporta IceStorm (iCE40)  Es la base de Apio-IDE y icestudio  Basada en PlataformIO (http://platformio.org/)  https://github.com/FPGAwars/apio  Paquetes Debian/Ubuntu disponibles en FPGALibre

Copyright © 2005-2017 INTI, Salvador E. Tropea

Apio

 Para tener una idea, este sería el flujo  Se asume que en el directorio actual están los fuentes Verilog a sintetizar 1) 2) 3) 4)

apio apio apio apio

init -b PLACA examples -f EJEMPLO_CONSTRAINT build upload

Copyright © 2005-2017 INTI, Salvador E. Tropea

Apio-IDE

 Es un entorno completo  Utiliza Apio por debajo (solo IceStorm)  https://github.com/FPGAwars/apio-ide  Paquetes Debian/Ubuntu disponibles en FPGALibre  Es un plug-in de la IDE Atom • Tiene todas las ventajas de Atom • Incluye botones para llamar a Apio sin usar la línea de comandos

Copyright © 2005-2017 INTI, Salvador E. Tropea

Apio-IDE

Archivos de nuestro proyecto

Editor de texto

Mensajes Botones p/Apio Copyright © 2005-2017 INTI, Salvador E. Tropea

icestudio

 Herramienta gráfica que permite ingresar diagramas en bloques.  Permite ingresar bloques de código Verilog para cualquier cosa que no esté en bloques ya existentes.  Utiliza Apio como base  https://github.com/FPGAwars/icestudio  Paquete Debian/Ubuntu disponible en FPGALibre

Copyright © 2005-2017 INTI, Salvador E. Tropea

icestudio

Copyright © 2005-2017 INTI, Salvador E. Tropea

xil_project.pl

 Herramienta de línea de comandos que permite crear Makefiles para síntesis  Soporta: • ISE (Xilinx) • ICECube2 (Lattice) • IceStorm (iCE40)  Simplifica el reuso de bloques (bibliotecas)  Abstrae detalles particulares de la placa/FPGA usados  Utiliza iMPACT Helper para transferir a la FPGA  http://fpgalibre.sourceforge.net/sintesis.html#tp18 Copyright © 2005-2017 INTI, Salvador E. Tropea

xil_project_wz.pl

 Herramienta gráfica para: • Configurar xil_project.pl en forma gráfica • Recolectar, filtrar y mostrar errores de síntesis (usando SETEdit) • Transferir a la FPGA  Facilita el uso al: • Mostrar fotos de las placas soportadas • Mostrar ayuda de las placas soportadas (usando páginas web) • Mostrando las bibliotecas disponibles  Ejemplo paso a paso: http://fpgalibre.sourceforge.net/Kefir/ejemplos/capsense/xil_project_pap/0LEEME/index.html Copyright © 2005-2017 INTI, Salvador E. Tropea

xil_project_wz.pl: ejemplo de proyecto

Copyright © 2005-2017 INTI, Salvador E. Tropea

¿Cómo instalar las herramientas?

Copyright © 2005-2017 INTI, Salvador E. Tropea

Instalación simplificada

 En Windows y Mac OSX se deben seguir las instrucciones de cada paquete.  GHDL, iverilog y gtkwave están en Debian/Ubuntu/etc.  En sistemas compatibles con Debian GNU/Linux (por ejemplo Ubuntu) se puede usar el repositorio de FPGALibre  Las instrucciones de como hacerlo:  http://fpgalibre.sourceforge.net/ice40.html#tp22 • Agregamos el repositorio a los conocidos por nuestro sistema • Instalamos el/los paquetes como cualquier otro del sistema. Copyright © 2005-2017 INTI, Salvador E. Tropea

Instalación simplificada

 Agregando el repo a un Debian: # curl -sSL http://fpgalibre.sf.net/debian/go | sh  Agregando el repo a un Ubuntu: $ curl -sSL http://fpgalibre.sf.net/debian/go | sudo sh

 Para instalar las herramientas de síntesis p/iCE40: # apt-get install fpga-icestorm yosys arachne-pnr

 Para instalar APIO (incluye las de síntesis): # apt-get install apio

 Para instalar icestudio: # apt-get install icestudio

Copyright © 2005-2017 INTI, Salvador E. Tropea

Instalación simplificada

 Para instalar xil_project: # apt-get install xiltools

 Nota: Las líneas que comienzan con $ son ejecutadas por un usuario normal, las que comienzan con # por el root

Copyright © 2005-2017 INTI, Salvador E. Tropea

¿IceStorm es comparable con las herramientas propietarias? Copyright © 2005-2017 INTI, Salvador E. Tropea

Kéfir I + Lattuino

 Implementación de Arduino UNO usando la placa Kéfir I  La CPU es un soft-core (libre)  Se programa desde la IDE de Arduino  http://fpgalibre.sf.net/Lattuino/

Más detalles en la charla de soft-cores Copyright © 2005-2017 INTI, Salvador E. Tropea

Resultados de la síntesis

 iCECube2 (2017.01) [4'10”] • Synplify Pro L-2016.09L+ice40

 VHDL • LUT4s: 2253/3520 (64%) • DFFs: 722/3520 • Fmáx: 25,11 MHz (constraint 24 MHz)

 Verilog • LUT4s: 2273/3520 (65%) • DFFs: 723/3520 • Fmáx: 25,05 MHz (constraint 24 MHz)

 BRAMs: 20/20

Copyright © 2005-2017 INTI, Salvador E. Tropea

Resultados de la síntesis

 IceStorm [50”] • Yosys (0.7+207) ABC (1.01) Arachne (0.1+203+5)  Verilog • LUT4s: 2285/7680 (30%) • DFFs: 639/7680 • Fmáx: 28,58 MHz (unconstrained) • BRAMs: 21/32  VHDL: no soportado (yet ;-)

Copyright © 2005-2017 INTI, Salvador E. Tropea

Resultados de la síntesis

 …. Coooomoooo??!!! • LUT4s: 2253/3520 (64%) ← iCECube2 • LUT4s: 2285/7680 (30%) ← IceStorm  Las bondades del software libre

Copyright © 2005-2017 INTI, Salvador E. Tropea

¡Muchas Gracias!

Av. Gral. Paz 5445 (1650) San Martín Buenos Aires, Argentina +54-11-4724-6000 int. 6919 [email protected]

Copyright © 2005-2017 INTI, Salvador E. Tropea