Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf ·...

40
Simulación de VHDL con Software Libre Rodrigo A. Melo, Salvador E. Tropea Introducción GHDL Ejemplo GtkWave Final Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto Nacional de Tecnología Industrial Centro de Electrónica e Informática Laboratorio de Desarrollo Electrónico con Software Libre 12 de julio de 2010

Transcript of Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf ·...

Page 1: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Final

Simulación de VHDL con Software Libre

Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea

Instituto Nacional de Tecnología IndustrialCentro de Electrónica e Informática

Laboratorio de Desarrollo Electrónico con Software Libre

12 de julio de 2010

Page 2: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

VHDL

Software Libre

GHDL

Ejemplo

GtkWave

Final

Introducción

Page 3: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

VHDL

Software Libre

GHDL

Ejemplo

GtkWave

Final

VHDL

Definido en

Estándar 1076 de IEEE

VHDL

VHSIC + HDL

Donde:

VHSIC: Very High Speed Integrated Circuit

HDL: Hardware Description Language.

Uso principal

Realizar descripciones de hardware a utilizar con PLDs,

FPGAs, ASICs y similares.

Page 4: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

VHDL

Software Libre

GHDL

Ejemplo

GtkWave

Final

Software Libre

Una definición muy sencilla

Denominación del software que respeta la libertad de los

usuarios.

Un Software se considera Libre si garantiza

Libertad Descripción

0 Usarlo con cualquier propósito

1 Estudiar cómo funciona y modificarlo

2 Distribuir copias

3 Mejorarlo y hacer públicas esas mejoras

Page 5: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

VHDL

Software Libre

GHDL

Ejemplo

GtkWave

Final

VHDL + Software Libre

VHDL con software privativo

Las herramientas de software propietarias son costosas y

algunas han implementado características que hasta violan

el estándar VHDL.

VHDL con Software Libre

Las herramientas Libres que presentaremos, están lo

suficientemente maduras para su uso en ámbitos

educativos y en proyectos de mediana envergadura.

Además, el uso de Software Libre y la utilización de

estándares, promueve la independencia tecnológica, la

portabilidad de lo desarrollado y la posibilidad de ser

abordado por cualquiera con acceso a una PC, sin la

necesidad del pago de licencias.

Page 6: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

GHDL

Page 7: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Introducción

¿Qué es GHDL?

Simulador de VHDL, que implementa los estándares IEEE 1076-1987

(VHDL87), IEEE 1076-1993 (VHDL93) y algunas características del

IEEE 1076-2000 (VHDL00). Es Software Libre.

¿Qué no es GHDL?

No es una herramienta de síntesis. No puede generar un netlist .

Técnicamente es un compilador

En función de las descripciones VHDL, genera un archivo binario o

ejecutable, utilizando el compilador GCC como back-end , sin usar

lenguajes intermedios como C o C++. La simulación consiste en la

ejecución del archivo resultante, el cuál permite además generar

archivos de formas de onda.

Compila correctamente

Procesadores como DLX o el LEON1.

Page 8: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Formato de comando

Formato de comando

ghdl comando [opciones...] [archivos/unidades...]

El primer argumento es un comando.

Las opciones modifican la acción del comando.

No se permiten opciones antes de un comando.

Unidades hace referencia a entidades,

configuraciones, arquitecturas, etc.

En general, no se permiten opciones luego de los

archivos/unidades.

Page 9: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Comandos más utilizados (I)

Analisis

ghdl -a [opciones] archivos

Controla la sintasis y compila uno o más archivos.

Los archivos se analizan en el orden suministrado.

Aborta en caso de error sin analizar al resto de

archivos.

Page 10: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Comandos más utilizados (II)

Elaboración

ghdl -e [opciones] unidad_primaria [unidad_secundaria]

Elabora el diseño y crea un ejecutable (GNU/Linux).

unidad_primaria: entidad o configuración.

unidad_secundaria: arquitectura.

La opción -o seguida de un nombre de archivo, permite

especificar el nombre del ejecutable.

Nombre del ejecutable resultante

Nombre de la unidad_primaria si no se especifica la

unidad_secundaria.

unidad_primaria-unidad_secundaria si se especifica la

unidad_secundaria.

Page 11: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Analisis y elaboración automática

Importación (import)

ghdl -i [opciones] archivos...

Parsea los archivos sin analizarlos y coloca las unidades de diseño que

encuentra en la biblioteca.

Elaboración (make)

ghdl -m [opciones] unidad_primaria [unidad_secundaria]

Analiza automáticamente los archivos y elabora el diseño. Un archivo se

reanaliza cuando fue modificado o una unidad de diseño que utiliza

internamente fue modificada. Del orden de analisis se da cuenta solo.

Con la opción -f (force), se reanalizan todos los archivos.

Elaboración de Makefile

ghdl –gen-makefile [opciones] unidad_primaria [unidad_secundaria]

Funciona como el comando anterior pero solamente crea un archivo

Makefile.

Page 12: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Otros comandos

Ejecución

ghdl -r [opciones] unidad_primaria [unidad_secundaria]

[opciones_de_simulacion]

En GNU/Linux

Este comando simplemente determina el nombre del

ejecutable y lo corre. Las opciones son ignoradas.

Control de sintaxis

ghdl -s [opciones] archivos

Page 13: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Opciones más utilizadas

–work=NOMBRE

Especifica el NOMBRE de la biblioteca de trabajo, cuyo

nombre por defecto es work.

–workdir=DIRECTORIO

Especifica el nombre del DIRECTORIO donde se coloca la

biblioteca y los archivos generados. De no especificarse, se

colocan en el directorio actual.

-PDIRECTORIO

La opción -P agrega DIRECTORIO a la lista de directorios

donde se deben buscar los archivos de biblioteca.

Page 14: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Otras opciones

–std=ESTANDAR

Especifica el ESTANDAR a usar. Por defecto se utiliza el

93c, que implica el VHDL-93 que acepta sintaxis de

VHDL-87. Los posibles valores son: 87, 93, 93c, 00 y 02.

–ieee=VERSION

Especifica la VERSION de biblioteca IEEE a utilizar. Los

posibles valores son: none, standard (defecto), synopsys y

mentor.

Page 15: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Warnings

Algunos ejemplos

–warn-reserved: informa si se utilizó una palabra

reservada de un estándar superior al utilizado.

–warn-unused: informa si un subprograma no se utilizá

nunca.

–warn-error: cuando está habilitado, los warnings son

considerados errores.

Deshabilitación

–warn-no-X.

Page 16: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Introducción

Comandos

Opciones

Simulación

Ejemplo

GtkWave

Final

Opciones

La simulación se lleva a cabo utilizando el archivo

ejecutable generado por la compilación mediante GDHL.

Algunas de las opciones de simulación más interesantes:

–stop-time=TIEMPO

Detiene la simulación cuando transcurrió el TIEMPO de

simulación indicado. TIEMPO se expresa con valores de

tiempo tales como 1fs, 25ns, 100ms, etc.

–vcd=NOMBREARCHIVO o –wave=NOMBREARCHIVO

Generan respectivamente un archivo en formato VCD o

GHW, con el volcado de las formas de onda resultantes de

la ejecución.

Page 17: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Ejemplo

Page 18: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Componente

inversor.vhdl

l ib ra ry IEEE ;use IEEE . std_logic_1164 . a l l ;

en t i ty Inv isport (

entrada : in s t d _ l o g i c ;sa l i da : out s t d _ l o g i c

) ;end en t i ty Inv ;

arch i tecture RTL of Inv isbegin

sa l i da <= not ( entrada ) ;end arch i tecture RTL;

Inv, el nombre de la entidad, es el nombre de acceso a este

componente.

Page 19: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Testbench

inversor_tb.vhdl

l ib ra ry IEEE ;use IEEE . std_logic_1164 . a l l ;l ib ra ry s td ;use s td . t e x t i o . a l l ;

en t i ty Inv_TB isend en t i ty Inv_TB ;

arch i tecture Simulador of Inv_TB issignal entrada , sa l i da : s t d _ l o g i c ;

component Inv isport ( entrada : in s t d _ l o g i c ;

sa l i da : out s t d _ l o g i c ) ;end component Inv ;

begin

dut : Invport map( entrada => entrada , sa l i da => sa l i da ) ;

Page 20: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Testbench (continuación)

inversor_tb.vhdl (continuación)

tes teo :process

var iab le l : l i n e ;begin

w r i t e ( l , s t r i n g ’ ( "∗ Comienza e l t e s t " ) ) ;w r i t e l i n e ( output , l ) ;entrada <= ’ 0 ’ ;for i in 0 to 5 loop

wait for 1 fs ;assert entrada /= sa l i da report " E r ro r " sever i ty

f a i l u r e ;wait for 1 ns ;entrada <= not ( entrada ) ;

end loop ;w r i t e ( l , s t r i n g ’ ( "∗ Terminó e l t e s t " ) ) ;w r i t e l i n e ( output , l ) ;wait ;

end process tes teo ;end arch i tecture Simulador ;

Page 21: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Análisis y elaboración básica

Estado inicial del directorio:

$ ls

inversor_tb.vhdl inversor.vhdl

Análisis y elaboración:

$ ghdl -a *.vhdl

$ ghdl -e inv_tb

Estado final del directorio:

$ ls

e inv_tb.o inversor_tb.o inv_tb inversor_tb.vhdl

workobj93.cf inversor.o inversor.vhdl

Ejecución del test:

$ ./inv_tb

* Comienza el test

* Terminó el test

Page 22: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Informe del assert

Provocando un mal funcionamiento del componente y ejecutando el test:

$ ./inv_tb

* Comienza el test

inversor_tb.vhdl:33:11:@1fs:(assertion failure):

Error

./inv_tb:error: assertion failed

./inv_tb:error: simulation failed

Descripción de la línea de información del assert:

inversor_tb.vhdl: nombre del archivo donde se encuentra.

33: número de fila donde se encuentra.

11: número de columna donde se encuentra.

@1fs: tiempo de simulación transcurrido.

(assertion failure): tipo.

Error: mensaje.

Page 23: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Paquete

inversor_pkg.vhdl

l ib ra ry IEEE ;use IEEE . std_logic_1164 . a l l ;

package Basicos iscomponent Inv is

port (entrada : in s t d _ l o g i c ;sa l i da : out s t d _ l o g i c

) ;end component Inv ;

end package Basicos ;

El nombre del componente concuerda con el de la entidad (Inv). El

nombre del paquete (Basicos) se usará junto al de la biblioteca

(Compuertas) para acceder al componente.

Page 24: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Testbench (modificación)

inversor_tb.vhdl (modificación)

l ib ra ry IEEE ;use IEEE . std_logic_1164 . a l l ;l ib ra ry s td ;use s td . t e x t i o . a l l ;l ib ra ry Compuertas ;use Compuertas . Basicos . a l l ;

en t i ty Inv_TB isend en t i ty Inv_TB ;

arch i tecture Simulador of Inv_TB issignal entrada , sa l i da : s t d _ l o g i c ;

begin

dut : Invport map( entrada => entrada , sa l i da => sa l i da ) ;

Page 25: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Creando una biblioteca

Estado inicial del directorio:

$ ls

inversor_pkg.vhdl inversor_tb.vhdl inversor.vhdl

Análisis sin especificar la biblioteca:

$ ghdl -a *.vhdl

inversor_tb.vhdl:5:9: cannot find resource library

çompuertas"

inversor_tb.vhdl:6:16: primary unit "basicos"not

found in library çompuertas"

ghdl: compilation error

Análisis especificando la biblioteca:

$ ghdl -a -work=compuertas *.vhdl

Elaboración sin especificar la biblioteca:

$ ghdl -e inv_tb

error: cannot find entity or configuration inv_tb

ghdl: compilation error

Page 26: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Creando una biblioteca (continuación)

Elaboración especificando la biblioteca:

$ ghdl -e -work=compuertas inv_tb

Estado final del directorio:

$ ls

compuertas-obj93.cf inversor_pkg.vhdl inv_tb

e inv_tb.o inversor_tb.o work-obj93.cf inversor.o

inversor_tb.vhdl inversor_pkg.o inversor.vhdl

Ejecución del test:

$ ./inv_tb

* Comienza el test

* Terminó el test

Si modificamos un archivo e intentamos elaborar:

$ ghdl -e -work=compuertas inv_tb

file inversor_tb.vhdl has changed and must be

reanalysed

ghdl: compilation error

Page 27: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Especificando directorio destino

Estado inicial del directorio:

$ ls

inversor_pkg.vhdl inversor_tb.vhdl inversor.vhdl

Work

Análisis y elaboración:

$ ghdl -a -work=compuertas -workdir=Work *.vhdl

$ ghdl -e -work=compuertas -workdir=Work -o

Work/inv_tb inv_tb

Estado final del directorio:$ ls

inversor_pkg.vhdl inversor_tb.vhdl inversor.vhdl

Work

Estado del directorio destino:

$ ls Work

compuertas-obj93.cf inversor.o inversor_tb.o

e inv_tb.o inversor_pkg.o inv_tb

Page 28: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Utilizando una biblioteca

Creamos la biblioteca con el componente y el paquete:

$ ghdl -a -work=compuertas -workdir=Work

inversor.vhdl inversor_pkg.vhdl

Utilizamos la biblioteca para el análisis y elaboración del testbench:

$ ghdl -a -workdir=Work -PWork inversor_tb.vhdl

$ ghdl -e -workdir=Work -PWork -o Work/inv_tb

inv_tb

Estado del directorio destino:$ ls Work

compuertas-obj93.cf inversor.o inversor_tb.o

work-obj93.cf e inv_tb.o inversor_pkg.o inv_tb

Page 29: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Elaboración automática

Importmos los archivos:

$ ghdl -i -work=compuertas *.vhdl

Elaboramos el diseño:

$ ghdl -m -work=compuertas inv_tb

analyze inversor_pkg.vhdl

analyze inversor_tb.vhdl

analyze inversor.vhdl

elaborate inv_tb

Ejecución de la simulación:

$ ./inv_tb

* Comienza el test

* Terminó el test

Page 30: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Elaboración automática (continuación)

Si modificamos un archivo:

$ touch inversor.vhdl

Y elaboramos:

$ ghdl -m -work=compuertas inv_tb

analyze inversor.vhdl

elaborate inv_tb

Si modificamos otro archivo:

$ touch inversor_pkg.vhdl

Y elaboramos:

$ ghdl -m -work=compuertas inv_tb

analyze inversor_pkg.vhdl

analyze inversor_tb.vhdl

elaborate inv_tb

Page 31: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

Archivos I

Ejemplo I

Archivos II

Ejemplo II

Ejemplo III

Ejemplo IV

Ejemplo V

GtkWave

Final

Elaboración automática (Makefile)

Para obtener el Makefile:

$ ghdl -gen-makefile -work=compuertas inv_tb >

Makefile

Utilizando el Makefile:

$ make

ghdl -a -work=compuertas inversor_pkg.vhdl

ghdl -a -work=compuertas inversor_tb.vhdl

ghdl -a -work=compuertas inversor.vhdl

ghdl -e -work=compuertas inv_tb

Page 32: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Introducción

Interfaz

Ejemplo

Final

GtkWave

Page 33: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Introducción

Interfaz

Ejemplo

Final

Introducción

Cuando se esta haciendo el debugging de un diseño, es

muy útil poder observar las formas de ondas digitales. Para

eso se precisa un visor de formas de onda.

GtkWave

Es un visor de formas de onda Software Libre.

Soporta 2 formatos de archivos

VCD formato abierto, de texto plano, definido para el

lenguaje Verilog. La mayoría de los visores de

forma de onda soportan este formato.

GHW dado que VCD esta orientado a Verilog, no se

pueden ver todos los tipos de VHDL. Como no

existe un formato abierto para VHDL, GHDL

creo su propio formato, el cuál es binario.

Page 34: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Introducción

Interfaz

Ejemplo

Final

Pantalla principal del GtkWave

Page 35: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Introducción

Interfaz

Ejemplo

Final

Visualización de señales

Page 36: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Introducción

Interfaz

Ejemplo

Final

Simulando el Inversor

Corremos la simulación:$ ./inv_tb -wave=inv_tb.ghw

* Comienza el test

* Terminó el test

Abrimos el archivo con GtkWave:

$ gtkwave inv_tb.ghw

Page 37: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Final

Final

Page 38: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Final

FPGALibre

Objetivos del Proyecto

Impulsar el desarrollo con dispositivos FPGA utilizando

herramientas de Software Libre u Open Source.

Fomentar el intercambio y desarrollo de cores IP con

licencias que posean el mismo espíritu que las del

Software Libre.

Alojado en SourceForge

http://fpgalibre.sourceforge.net/

Page 39: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Final

¿Dudas? ¿Consultas?

Page 40: Simulaci n de VHDL con Software Librefpgalibre.sourceforge.net/uEA2010/VHDL_con_SL.pdf · Simulación de VHDL con Software Libre Ing. Rodrigo A. Melo, Ing. Salvador E. Tropea Instituto

Simulación deVHDL con

Software Libre

Rodrigo A.Melo,

Salvador E.Tropea

Introducción

GHDL

Ejemplo

GtkWave

Final

Gracias

Rodrigo A. Melo

[email protected]

Salvador E. Tropea

[email protected]