Datum: 13.05.2008 23:02
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
Datum: 13.05.2008 23:13
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
Datum: 14.05.2008 19:18
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
Datum: 14.05.2008 21:12
Als was ist denn dip definiert? Wenn es ein std_logic ist muss Deine Zeile so lauten (andere Anführungsstriche):
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
Datum: 31.05.2008 19:55
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
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [vhdl]VHDL-Code[/vhdl]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel