Hallo, ich habe gerade angefangen mir mit einem XILINX Spartan3 Board und der ISE Version 9.2i VHDL beizubringen. Nun bin ich auf ein Problem gestoßen auf das ich keine Lösung finden kann. Evtl. kann mir jemand weiterhelfen. Ich möchte den auf dem Eval Board befindlichen VGA Anschluß dazu animieren einen Text auf einen Monitor zu zaubern. Die angehängte Datei (ROM 2K; 8 Bit, kein Parity) ist ein Teil eines Zeichengenerators. Wenn ich darüber einen Syntax Check laufen lasse ist alles fehlerfrei. Wenn ich das Bauteil in mein Design einbinde zeigt der Syntax check ebenfalls keine Fehler. Sobald ich aber versuche den Code zu synthetisieren bringt ISE mir die beiden Fehler: ERROR:Xst:2587 - Port <DIP> of instance <char_0_127> has different type in definition <RAMB16_S9>. ERROR:Xst:2587 - Port <DOP> of instance <char_0_127> has different type in definition <RAMB16_S9>. In der XILINX Hilfe ist nachzulesen, daß es sich dabei um ein Mismatch von Datentypen handelt. Das verstehe ich leider nicht, da in der UNISIM Library die Signale DIP und DOP als Vektoren der Länge 1 (0 downto 0) deklariert sind und ich das Signal DOP als open und DIP mit "0" fest vorbelegt habe da ich kein Parity brauche. Nach meinem Verständnis sollte das doch passen oder hab ich was übersehen ? Bitte seid gnädig mit mir, ist sicherlich ein doofer Anfängerfehler (VHDL Erfahrung lässt sich bei mir noch in Stunden messen ;-) Gruß, Oliver
falls dies( DO => Data, -- 8-bit Data Output DOP => open, -- 1-bit parity Output ADDR => Adress, -- 11-bit Address Input CLK => Clock, -- Clock DI => X"00", -- 8-bit Data Input DIP => "0", -- 1-bit parity Input EN => ren, -- RAM Enable Input SSR => '0', -- Synchronous Set/Reset Input WE => '0' -- Write Enable Input) signale sein sollen musst du sie erst mal zwischen architecture und begin definieren marcel
Hallo Marcel, danke für Deine Antwort. Die Signale werden bereits in der Unisim Library definiert, da es sich bei dem RAM un ein von XILINX vordefiniertes Primitive handelt. Ich hab trotzdem mal die Signale zusätzlich definiert, man kann ja nie wissen, aber der selbe Fehler kommt immer noch. Oliver
Als was ist denn dip definiert? Wenn es ein std_logic ist muss Deine Zeile so lauten (andere Anführungsstriche):
1 | DIP => '0', |
Ansonsten tu Dir den Gefallen und verwende eine allgemeinere, lesbare Schreibweise für den RAM (wie steht in xst.pdf). Die verstehst Du auch in fünf Jahren noch und sie ist nicht primär von Xilinx abhängig. Rick
Hallo Rick, danke für den Tipp, Ich hab jetzt den RAM allgemeiner und ohne Xilinx primitives definiert und er hat auf Anhieb funktioniert. Den Fehler hab ich übrigens mittlerweile als Bug im XST Synthesetool lokalisieren können. Gruß, Oliver
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.