Forum: FPGA, VHDL & Co. ModelSim


von Marius (Gast)


Lesenswert?

Hallo zusammen!

Ich habe meine VHDL Datei erfolgreich mit XILINX ISE compiliert. Nach 
dem ich dann die Testbench (Wavegenerator) auch erstellt habe, wollte 
ich diese im MODEL SIM simulieren lassen. Leider meldete mir ModelSim 
folgenden Fehler:
# ** Failure: (vsim-3807) Types do not match between component and 
entity for port clk

Ich habe dann in den Foren nach gleichem Fehler gesucht und 
herausgefunden, dass wenn ich bei meiner entity die eingänge vom 
Datentyp BIT auf STD_LOGIC wechsle, dass die Simulation dann 
funktioniert. Aber meine Frage ist, warum funktioniert es mit dem 
Datentyp BIT nicht??
Weiter habe ich bemerkt dass aus meiner VHD Datei eine VHW Datei für 
ModelSim generiert wird. Aber die VHD Datei und die VHW Datei stimmen in 
der entity nicht überein! Darum meldet der ModelSim Kompiler auch diesen 
Fehler. Warum wird die entity überhaupt einfacht verändert?? Gibt es 
Compilation Standards die BIT Datentypen nicht mehr akzeptieren ?

Folgende entity habe ich im VHD File:

entity SynShift is
generic(WIDTH : natural := 4;
      SHW : natural := 2);
    Port ( CLK : in  bit;
           LOAD : in  bit;
           R_L : in  bit;
           DIN : in  std_logic_vector(WIDTH - 1 downto 0);
           YOUT : out  std_logic_vector(WIDTH - 1 downto 0));
end SynShift;

Und folgende component wird im VHW File generiert:

ENTITY Test_Shift IS
END Test_Shift;

ARCHITECTURE testbench_arch OF Test_Shift IS
    FILE RESULTS: TEXT OPEN WRITE_MODE IS "results.txt";

    COMPONENT SynShift
        PORT (
            CLK : In STD_LOGIC;
            LOAD : In STD_LOGIC;
            R_L : In STD_LOGIC;
            DIN : In std_logic_vector (3 DownTo 0);
            YOUT : Out std_logic_vector (3 DownTo 0)
        );
    END COMPONENT;


Wäre froh um eine antwort....

MFG Marius

von T.M. (Gast)


Lesenswert?

Ich nehme mal an, dass der Waveformgenerator einfach von std_logic 
ausgeht. So ein Problem hatten wir hier schonmal glaube ich mich zu 
erinnern. Da stimmten die Ports der instanziierten Komponente und der 
dazugehörigen Entity auch nicht überein. Die Lösung dafür besteht 
wahrscheinlich darin, den Waveformgenerator links liegen zu lassen und 
die Testbench selber zu schreiben.


T.M.

von Dirk (Gast)


Lesenswert?

Hi,

T.M. erinnert sich richtig. Du musst Dir selber das Testbench schreiben 
oder die VHW Datei zum Projekt adden (ADD testbench to project) und dann 
die Enity von Hand korregieren.

Gruß,
Dirk

von Marius (Gast)


Lesenswert?

Ok, danke! Ich hatte mir darum vorgestellt, dass es vielleicht eine 
Methode gibt, um das vhw file mit BIT Datentyp zu kompilieren, also eine 
Einstellung die besagt, was für Bibliotheken genutzt werden, entweder 
STANDARD oder STD_LOGIC....

MFG Marius

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.