www.mikrocontroller.net

Forum: FPGA, VHDL & Co. ISE Simulator: Could not read binray file because it was not written by Xilinx Simulator


Autor: k3itall (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich will einen digitalen Filter mit dem Xilinx ISE Simulator simulieren 
und habe dazu meine Eingangswerte binär in einer Datei stimulus.dat. 
Diese sollen mit dem Xilinx ISE eingelsen simuliert und dann wieder in 
eine andere Datei geschrieben werden.
Dies funktioniert auch wunderbar, wenn ich es mit ModelSim simuliere, 
aber der Standardsimulator bringt mir den Fehler:


ERROR:Simulator:29 - at 0 ns : Could not read binary file
   ..\data_scripts\stimulus.bin, because it was not written by Xilinx 
Simulator
   on line 85 in file "J:/plb_alt/tb_fir/f.vhd"


Leider muss ich es aber mit dem ISE Simulator zum laufen bringen.
Hier meine einfachste Programmvariante:


read_input: process
   type char_file is file of character;
   file c_file_handle: char_file;
   variable C: character;
begin
   file_open(c_file_handle, "..\data_scripts\stimulus.bin", READ_MODE);
   while not endfile(c_file_handle) loop

  read (c_file_handle, c);
  din(7 downto 0) <= conv_std_logic_vector(character'pos(c), 8);
  read (c_file_handle, c);
  din(15 downto 8) <= conv_std_logic_vector(character'pos(c), 8);

   end loop;
   file_close(c_file_handle);
end process;


... das traurige daran is blos, dass das hier fast 1:1 aus den Language 
Templates des XILINX ISE raus ist.

muss ich den Simulator vielleicht mit irgendwelchen Parametern 
aufrufen???

Autor: k3itall (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, formatierung vergessen:

read_input: process
   type char_file is file of character;
   file c_file_handle: char_file;
   variable C: character;
begin
   file_open(c_file_handle, "..\data_scripts\stimulus.bin", READ_MODE);
   while not endfile(c_file_handle) loop

  read (c_file_handle, c);
  din(7 downto 0) <= conv_std_logic_vector(character'pos(c), 8);
  read (c_file_handle, c);
  din(15 downto 8) <= conv_std_logic_vector(character'pos(c), 8);

   end loop;
   file_close(c_file_handle);
end process;

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal im xst.pdf. Ich glaube da gibt es ein Kapitel (VHDL language 
support?), wo drin steht welche VHDL-Sachen von ISE unterstützt werden 
und welche nicht.

Rick

Autor: k3itall (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rick

danke für den Tipp.
hab mal die xst.pdf durchgepflügt. Da steht schon einiges über File IO 
drin. Mich wundert nur, dass das Programm mit ModelSim funktioniert, 
aber der ISE Simulator nicht will. Anscheinend nimmt es ModelSim einfach 
nicht so streng mit den Formaten.

chris

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. Modelsim ist State-of-the-art. Das muß einfach mehr können.

Rick

Autor: k3itall (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so, wenn noch jemand anders das problem haben sollte. anscheinend 
braucht der xilinx simulator eine präambel, damit er erkennt, dass die 
datei von ihm ist. jedenfalls habe ich mit dem write-befehl einfach eine 
neue datei erstellt und nachher wieder gelesen.

die präambel lautet:  ÖÉÊÓ«§¨ und danach noch ein linefeed.
ich habe eine funktionierende datei mit "hallo" drin angehängt...


chris

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, danke!

Mit diversen Funktionen kann man dem Synthesiser (xst) auch beibringen, 
hexdump, Intel-hex u.ä. einzulesen, um Speicherinhalte vorzubelegen.

Rick

Autor: Michael Sauron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuche eine BMP Datei mit dem xilinx simulator zu öffnen. Was 
natürlich nicht geht (s.o.) Modelsim läuft bei mir leider nicht, und 
immer wenn ich versuche die Präambel in das BMP File einzufügen, meldet 
der simulator bein Lesen , das die Datei corrupt sei. Es muss doch 
irgendwie eine Möglichkeit geben, eine normale BMP datei zu öffnen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.