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


von k3itall (Gast)


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???

von k3itall (Gast)


Lesenswert?

sorry, formatierung vergessen:

1
read_input: process
2
   type char_file is file of character;
3
   file c_file_handle: char_file;
4
   variable C: character;
5
begin
6
   file_open(c_file_handle, "..\data_scripts\stimulus.bin", READ_MODE);
7
   while not endfile(c_file_handle) loop
8
9
  read (c_file_handle, c);
10
  din(7 downto 0) <= conv_std_logic_vector(character'pos(c), 8);
11
  read (c_file_handle, c);
12
  din(15 downto 8) <= conv_std_logic_vector(character'pos(c), 8);
13
14
   end loop;
15
   file_close(c_file_handle);
16
end process;

von Rick Dangerus (Gast)


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

von k3itall (Gast)


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

von Rick Dangerus (Gast)


Lesenswert?

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

Rick

von k3itall (Gast)


Angehängte Dateien:

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

von Rick Dangerus (Gast)


Lesenswert?

Hey, danke!

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

Rick

von Michael Sauron (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.