Autor Tema: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1  (Leído 8136 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Qué tal, para un pequeño proyecto estoy tratando de hacer uso de una RAM 16x4, como estoy usando las herramientas de Xilinx me decidí por hacer la prueba con el Core Generator que incluye, así, creo una memoria y un archivo con los datos qe debe tener grabados.

Ahora, como no se soportan testbench waveform para las unidades creadas con el Core Generator, una vez creada la RAM, creo un archivo fuente VHDL que pretendo utilizar para probar el funcionamiento de la memoria, este es el código:

Código: VHDL
  1. library IEEE;
  2. use IEEE.STD_LOGIC_1164.ALL;
  3. use IEEE.STD_LOGIC_ARITH.ALL;
  4. use IEEE.STD_LOGIC_UNSIGNED.ALL;
  5.  
  6. entity top_memory is
  7.     Port ( clk : in  STD_LOGIC;
  8.            leer : in  STD_LOGIC;
  9.            direccion : in  STD_LOGIC_VECTOR (3 downto 0);
  10.            entrada : in  STD_LOGIC_VECTOR (3 downto 0);
  11.            salida : out  STD_LOGIC_VECTOR (3 downto 0));
  12. end top_memory;
  13.  
  14. architecture Behavioral of top_memory is
  15.  
  16. -- The following code must appear in the VHDL architecture header:
  17.  
  18. component memory
  19.     port (
  20.     addr: IN std_logic_VECTOR(3 downto 0);
  21.     clk: IN std_logic;
  22.     din: IN std_logic_VECTOR(3 downto 0);
  23.     dout: OUT std_logic_VECTOR(3 downto 0);
  24.     we: IN std_logic);
  25. end component;
  26.                
  27. begin
  28.  
  29. instancia : memory
  30.         port map (
  31.             addr => direccion,
  32.             clk => clk,
  33.             din => entrada,
  34.             dout => salida,
  35.             we => leer);
  36.  
  37. end Behavioral;

Luego, creo un testbench waveform para simular este archivo, pero no puedo realizar la simulación, ya que al llamarla usando "Generate Expected Simulation Results" siempre me da error:

ERROR: VSim failed to simulate annotated testbench

Esta es la salida completa en la consola:

Reading C:/Modeltech_xe_starter/tcl/vsim/pref.tcl

# 6.0a

# do top_memory_tb.ado
# ** Warning: (vlib-34) Library already exists at "work".
# resume
# Model Technology ModelSim XE III vlog 6.0a Compiler 2004.11 Nov 10 2004
# -- Compiling module memory
#
# Top level modules:
#    memory
# Model Technology ModelSim XE III vcom 6.0a Compiler 2004.11 Nov 10 2004
# -- Loading package standard
# -- Loading package std_logic_1164
# -- Loading package std_logic_arith
# -- Loading package std_logic_unsigned
# -- Compiling entity top_memory
# -- Compiling architecture behavioral of top_memory
# Model Technology ModelSim XE III vcom 6.0a Compiler 2004.11 Nov 10 2004
# -- Loading package standard
# -- Loading package std_logic_1164
# -- Loading package std_logic_arith
# -- Loading package std_logic_unsigned
# -- Loading package textio
# -- Loading package std_logic_textio
# -- Compiling entity top_memory_tb
# -- Compiling architecture testbench_arch of top_memory_tb
# Model Technology ModelSim XE III vlog 6.0a Compiler 2004.11 Nov 10 2004
# -- Compiling module glbl
#
# Top level modules:
#    glbl
# vsim -L xilinxcorelib_ver -L unisims_ver -lib work -t 1ps top_memory_tb glbl
# Loading C:\Modeltech_xe_starter\win32xoem/../std.standard
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_1164(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_arith(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_unsigned(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../std.textio(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_textio(body)
# Loading work.top_memory_tb(testbench_arch)
# ** Warning: (vsim-3479) Time unit 'fs' is less than the simulator resolution (1ps).
#    Time: 0 ps  Iteration: 0  Region: /
# XE version supports only a single HDL
# Error loading design
Error loading design
ERROR: VSim failed to simulate annotated testbench

En negritas está lo que creo es la causa de que no se lleve a cabo la simulación, sin embargo, debo comentar que en alguna ocasión funcionó la simulación sin problemas :?, pero desde entonces no he podido realizarla nuevamente. Ahora, ¿cómo es que al llamar al simulador se trata de compilar dos fuentes? ¿Alguien sabe qué es eso de glbl?

Saludos,
José Jorge (Geo).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #1 en: 11 de Mayo de 2006, 15:45:17 »
Si tienes la entidad y arquitectura de tu componente "memory" diseñadas por tí y compiladas en algún sitio,creo que deberías añadir las directivas "library" y "use" para poder hacer uso de ellas.

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #2 en: 12 de Mayo de 2006, 01:24:00 »
En ISE no es necesario agregar ya que las entidades están dentro del mismo proyecto, buscando encontré esto:

http://www.codecomments.com/archive378-2006-2-801607.html

pero definitivamente no me ha resuelto el problema :(.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #3 en: 12 de Mayo de 2006, 11:51:29 »
Si está dentro de tu proyecto imagino será porque la has compilado ahí.
Probaste a intentarlo en modelsim? A ver si es probema de tu versión del ISE

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #4 en: 14 de Mayo de 2006, 15:42:52 »
Creo que el problema está en el script que crea el Webpack 8.1 para llamar al simulador, por la llamada que hace al módulo glbl (¿alguien sabe qué es eso)?

Ahora estoy trabajando con la versión 7.1i del ISE (pero Foundation), con la misma versión de Modelsim que descargué de la página de Xilinx (6.0d, la versión 7 tanto de Foundation como del Webpack traen la versión 6.0a de Modelsim), y no tengo ningún problema en simular lo que antes traté. Esta es la salida de la consola:


Reading C:/Modeltech_xe_starter/tcl/vsim/pref.tcl

# 6.0d

# do top_memory_tb.ado
listening on address 127.0.0.1 port 1200
# resume
# Model Technology ModelSim XE III vcom 6.0d Compiler 2005.04 Apr 26 2005
# -- Loading package standard
# -- Loading package std_logic_1164
# -- Compiling entity memory
# -- Compiling architecture memory_a of memory
# -- Loading package textio
# -- Loading package ul_utils
# -- Loading package mem_init_file_pack_v6_1
# -- Loading package iputils_conv
# -- Loading package blkmemsp_pkg_v6_1
# -- Loading entity blkmemsp_v6_1
# Model Technology ModelSim XE III vcom 6.0d Compiler 2005.04 Apr 26 2005
# -- Loading package standard
# -- Loading package std_logic_1164
# -- Loading package std_logic_arith
# -- Loading package std_logic_unsigned
# -- Compiling entity top_memory
# -- Compiling architecture behavioral of top_memory
# Model Technology ModelSim XE III vcom 6.0d Compiler 2005.04 Apr 26 2005
# -- Loading package standard
# -- Loading package std_logic_1164
# -- Loading package std_logic_arith
# -- Loading package std_logic_unsigned
# -- Loading package textio
# -- Loading package std_logic_textio
# -- Compiling entity top_memory_tb
# -- Compiling architecture testbench_arch of top_memory_tb
# vsim -lib work -t 1ps top_memory_tb
# Loading C:\Modeltech_xe_starter\win32xoem/../std.standard
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_1164(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_arith(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_unsigned(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../std.textio(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../ieee.std_logic_textio(body)
# Loading work.top_memory_tb(testbench_arch)
# ** Warning: (vsim-3479) Time unit 'fs' is less than the simulator resolution (1ps).
#    Time: 0 ps  Iteration: 0  Region: /
# Loading work.top_memory(behavioral)
# Loading C:\Modeltech_xe_starter\win32xoem/../xilinx/vhdl/xilinxcorelib.ul_utils(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../xilinx/vhdl/xilinxcorelib.mem_init_file_pack_v6_1(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../xilinx/vhdl/xilinxcorelib.iputils_conv(body)
# Loading C:\Modeltech_xe_starter\win32xoem/../xilinx/vhdl/xilinxcorelib.blkmemsp_pkg_v6_1(body)
# Loading work.memory(memory_a)
# Loading C:\Modeltech_xe_starter\win32xoem/../xilinx/vhdl/xilinxcorelib.blkmemsp_v6_1(behavioral)
# ** Failure: Success! Simulation for annotation completed
#    Time: 2100 ns  Iteration: 0  Process: /top_memory_tb/line__105 File: top_memory_tb.ant
# Break at top_memory_tb.ant line 175
# Stopped at top_memory_tb.ant line 175


Compiling vhdl file "d:/programs/vhdl/memory/top_memory.vhd" in Library work.
Entity <top_memory> compiled.
Entity <top_memory> (Architecture <Behavioral>) compiled.


Si alguien sabe en dónde se guarda o cómo genera el Webpack los comandos para llamar a Modelsim, por favor coméntelo (en las propiedades del comando "Generate Expected Results" está la opción de utilizar un archivo Do personalizado o uno generado automáticamente, supongo que algo tendrá que ver).

También, algo de información sobre el uso de Modelsim (para compilar y simular sin utilizar ISE) me vendría muy bien :D.

Por lo pronto me decidí a trabajar con esta herramienta, una persona del grupo la consiguió y decidimos todos utilizar la misma versión para trabajar en equipo (y además, ahorita no tengo mucho tiempo para ponerme a probar, voy con lo que funcione ya).

Saludos,
José Jorge (Geo).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #5 en: 15 de Mayo de 2006, 09:46:22 »
Yo tengo el webpack 7.1
Cuelga si quieres los archivos y lo pruebo

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #6 en: 16 de Mayo de 2006, 01:10:44 »
Ya había probado con el Webpack, pero, como mencioné al principio, la memoria RAM no la estoy creando yo, sino estoy utilizando la herramienta Core Generator para crearla (más con ganas de aprender a trabajar con esta herramienta que por otra cosa), y cuando instalé la versión 7.1 del Webpack (la que viene con la tarjeta de desarrollo Spartan-3 Starter Kit), el Core Generator no traía todas las opciones (no venía la de creación de memorias), ya no probé si actualizando estaría todo, me fuí directo al Foundation :P.

De cualquier forma, aquí pongo el proyecto en donde está una memoria creada con el Core Generator, y un archivo fuente VHDL que hace uso de una instancia de la memoria para probarla, el problema me aparecía al tratar de simular el testbench waveform de este archivo VHDL.

Saludos,
José Jorge (Geo).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Bruno_AR

  • PIC12
  • **
  • Mensajes: 89
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #7 en: 26 de Diciembre de 2006, 16:35:16 »
siendo tan sencillo te convenia hacer la memoria en VHDL, si esta bien escrita infiere el mismo hardware y te aseguro que queda perfecto. De echo yo lo hago asi, fijate en los templates, donde esta la lamparita amarilla en ISE...

Suerte
Un saludo, desde Argentina

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Problemas al tratar de simular un testbench waveform con ISE Webpack 8.1
« Respuesta #8 en: 27 de Diciembre de 2006, 01:40:27 »
Es cierto, para algo tan simple resulta mejor hacerlo uno mismo en código :). Es sólo que quería aprender un poco el funcionamiento de esa herramienta (Core Generator).

Saludos,
JJ (Geo).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/