Forum: FPGA, VHDL & Co. Synthesefehler XST:2587


von Smoerrebroed (Gast)


Angehängte Dateien:

Lesenswert?

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

von marcel (Gast)


Lesenswert?

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

von Smoerrebroed (Gast)


Lesenswert?

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

von Rick Dangerus (Gast)


Lesenswert?

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

von Smoerrebroed (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.