Post on 18-Apr-2020
transcript
Copyright © 2005-2017 INTI, Salvador E. Tropea
Instituto Nacional de Tecnología Industrial
FPGAs Libres:Hardware, simulación y síntesis
Disertante: Salvador E. TropeaCentro 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ño2 Diseño basado en herramientas propietarias3 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
Descripción del banco de
pruebas en HDL
Simulación
Errores de sintaxis
Errores funcionales
¿Correcto?
NO
Error detectado
NO
SI
SI
Visor de formas de onda
Síntesis
Copyright © 2005-2017 INTI, Salvador E. Tropea
Descripción en HDL
Simulación
Correcciones
Síntesis ¿Correcto?
NO
SI
Transferir a la placa
¿Correcto?NO
¡Éxito!
SI
Copyright © 2005-2017 INTI, Salvador E. Tropea
Descripción en HDLDescripción
en HDL Simulación
Correcciones
Síntesis ¿Correcto?
NO
SI
Transferir a la placa
¿Correcto?NO
¡É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ónDescripción
en HDL Simulación
Correcciones
Síntesis ¿Correcto?
NO
SI
Transferir a la placa¿Correcto?
NO
¡É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ónVHDL: 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_FUENTES2) ghdl m ENTIDAD_TOP_LEVEL3) 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ónVerilog: 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_FUENTES2) 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
Simulación
Errores de sintaxis
Errores funcionales
¿Correcto?
NO
Error detectado
NO
SI
SI
Visor de formas de
onda
Síntesis¿Correcto?
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íntesisDescripción
en HDL Simulación
Correcciones
Síntesis ¿Correcto?
NO
SI
Transferir a la placa¿Correcto?
NO
¡É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
TransferenciaDescripción
en HDL Simulación
Correcciones
Síntesis ¿Correcto?
NO
SI
Transferir a la placa¿Correcto?
NO
¡É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) apio init -b PLACA2) apio examples -f EJEMPLO_CONSTRAINT3) apio build4) apio 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
Botones p/Apio
Archivos de nuestro proyecto
Editor de texto
Mensajes
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
Av. Gral. Paz 5445
(1650) San Martín
Buenos Aires, Argentina
+54-11-4724-6000 int. 6919
salvador@inti.gob.ar
¡Muchas Gracias!