Forum: FPGA, VHDL & Co. VHDL Probleme


von Tobias Danz (Gast)


Lesenswert?

Hallo,

ich bin dabei mit Xilinx eine Schaltung für Spartan-3 zu entwerfen, die
einen 8_Bit Datenstrom erzeugt(mit Zähler), dieser Datenstrom soll auf
einem SRAM abgelegt werden und anschließend von dort über eine
RS232-Schnittstelle auf dem PC sichtbar machen, zB. Mit HyperTerminal.

Ich Habe eine Post P&R Simulation durchgeführt und habe das Ergebnis
bekommen, welches ich haben wollte. Mein Problem ist nun, wenn ich den
FPGA programmiert habe und mir mein Ergebnis auf dem PC darstellen
will, sehe ich nichts, d.h. die Simulation ist korrekt, aber zu sehen
ist nichts.
Ich hoffe mir kann jemand helfen.
 Gruß

von Jörn (Gast)


Lesenswert?

Hi,

ich versteh Deine Schaltung nicht ganz. Du schreibst mit dem FPGA Daten
in das SRAM. Wie holst Du die Daten aus dem SRAM? Wie schickst Du sie an
den PC?

Beim FPGA würd ich mal prüfen, ob die Ausgangssignale Deiner Schlaltung
auf die richten Pins gelegt sind.

Sonst könnte des noch sein, dass der PC und das Gegenstück nicht auf
mit der selben Baudrate laufen.

Gruß Jörn

von Tobias Danz (Gast)


Lesenswert?

Hallo Jörn,

später soll anstelle des Datenstromes ein Gerät außen an das Board
gehängt werden, das diesen Datenstrom erzeugt. Diesen Datenstrom will
ich erst in den SRAM schreiben und danach wieder auslesen. Meine
Pinbelegung stimmt und auch die Baudrate ist Ok. Ich erzeuge die
Baudrate, indem ich den entsprechenden Takt vor dem Register abgreife.

Gruß Tobias

von Jörn (Gast)


Lesenswert?

Hallo Tobias,

verstehe ich das richtig, dass um im Moment auch ein UART im FPGA hast?
Hast Du in diesem Fall einen Pegelwandler angeschlossen?

GRuß Jörn

von Tobias Danz (Gast)


Lesenswert?

Hallo Jörn,
wenn du mit UART meinst, dass ich den Datenstrom seriell mache, dann
ja, ansonsten weiß ich jetzt grade nicht was du meinst?? Der
Pgelwandler ist auf dem Board schon mit drauf. Ich habe ein Spartan-3
Starter Kit Evaluation Board. Pegelwandlung macht das Board schon
selber.

Gruß Tobias

von Jörn (Gast)


Lesenswert?

UART (=Universal Asynchronous Receiver & Transmitter) oder auf gut
deutsch, die serielle Schnittstelle. Wie hast Du diese eingebunden?
Hast Du eine Application Note von Xilinx benutzt oder schiebst Du die
Daten direkt auf den die serielle Schnittstelle.

Gruß Jörn

von Tobias Danz (Gast)


Lesenswert?

auf dem Board ist eine serielle Schnittstelle integriert, an der auch
ein Treiber dranhängt, d.h. ich muß mich eigentlich bloß darum kümmern,
daß ich die richtige Baudrate verwende.

von Jörn (Gast)


Lesenswert?

Hallo Tobias,

ich glaube wir haben das Problem lokalisiert. Ich vermute Du hast das
Spartan 3 Board von Xilinx aus ihrem Onlineshop. Was hast Du für Dein
Baord bezahlt?

Der Treiber der aussen am FPGA hängt, macht die Logikpegelumsetztung
von 3.3 auf +/- 12V. Die gesamte Steuerung für den Treiber musst Du im
FPGA machen (Start/Stop Bits, Timing für die Bits).

Gruß Jörn

von Tobias Danz (Gast)


Lesenswert?

Hallo Jörn,

die Steuerung funktioniert. Ich habe jetzt festgestellt bei der
Simulation, daß mein PC beim simulieren beim Schreibprozess mittendrin
einfach aufhört. Der setzt einfach ein Timing limitation. Wie kann ich
das ändern?
Ein weiteres Problem ist, daß ich meinen Rechner schon mal mehr als
drei Tage einer Post P&R-Simulation unterzogen habe und der Rechner
immer noch beim Schreibprozess war, d.h. der rechner kommt einfach
nicht vorwärts, obwohl meine Schaltung nicht so groß ist. Kann das Am
Computer selber liegen??

Gruß Tobias

von Jörn (Gast)


Lesenswert?

Mit welchem Programm simulierst Du Deine Schaltung? Modelsim? Wenn, ja
mit welcher Version. Wenn es die freie Version von Xilinx ist, ist die
Performancebeschränkt.

Beim Webpack kannst Du mit die Simulationzeit einstellen:

Wähle Deine Testbench im Projektnavigator aus. Es müßte im "processes
for Source" Fenster vier verschiedene Simulationsmodi auftrauchen:
behavioral,Post-Translate,Post-Map, Post P&R.

Nun wählst Du eins aus und rufst mit der rechten Maustaste ein Popup
menu auf. Wählst dort Properties aus und kannst dann die Simulation Run
Time setzen.

Gruß Jörn

von Tobias Danz (Gast)


Lesenswert?

hey danke, hat mir sehr geholfen, aber kann es sein das das DCM die
Simulation ungemein verzögert? Also ohne DCM brauch er nicht so lange
für die Simulation.

Tobias

von Jörn (Gast)


Lesenswert?

Bin ich überfragt. Mit DCM hab ich noch keine Schaltung simluliert.

Jörn

von Tobias Danz (Gast)


Lesenswert?

Dann sind wir ja schon zwei die überfragt sind. Trotzdem danke.

von Jörn (Gast)


Lesenswert?

Noch ne Frage zu Deinem Board. Wo hast Du es bestellt?
Direkt bei Xilinx oder über einen Distri. Bin grad am Überlegen, ob ich
mir auch ein zulege

von Tobias Danz (Gast)


Lesenswert?

Ich mach grad mein Praxissemester vom Studium aus und drei Tage nach dem
angefangen habe hier in der Firma kam das Board. Soviel ich weiß ist es
nicht direkt bei XILINX bestellt worden. Aber über den preis habe ich
keine Ahnung.

von christian (Gast)


Lesenswert?

Abend miteinander!

Kleine Frage: Was ist denn los, wenn im "Pinassignment" (Webpack) die
Eingänge nicht angezeigt werden. Speziell bit_vector- Eingänge, hab sie
schon einem Signal zugewiesen (war ein Tipp) aber die werden noch immer
nicht angezeigt!

Bitte um Hilfe!

mfg. christian, VHDL- Anfänger

von Jörn (Gast)


Lesenswert?

schau mal im transcription fenster, ob signale/ports gelöscht wurden.
(Schau mal in den Schaltplan, ob dort die Ports da sind).Kannst du
deinen Code mal posten?

Gruß Jörn

von MrleMaire (Gast)


Lesenswert?

i just create create an tchat room and a forum in vhdL... and i am
looking for some partners and administrators and moderators... Are you
interested?

von Stefan Rack (Gast)


Lesenswert?

Mal eine Frage zur Übertragung selbst.

Hat irgendwer eine Idee wie das Programm ungefähr aussehen könnte um
die ganze Übertragung auszuführen? Also mit Start- und Stopbit,
Datenbits, richtiger Baudrate usw.

von Bernhard Spitzer (Gast)


Lesenswert?

Hallo Zusammen,

für eine serielle Schnittstelle braucht man, wie Stefan schon richtig
bemerkt hat, erstmal einen Baudraten-Generator, Sende- und
Empfangs-Schieberegister und am Besten noch eine Fehlerprüfung... Alles
in allem recht viel kram. Man kann natürlich das Rad neu erfinden oder
man hängt sich zumindest für die Registerdefinition an einen Standard
UART wie den 8250. Dann kann man noch über FIFOs grüblen,
Interruptverarbeitung etc. etc.
Auf www.opencores.org gibt es beide Versionen. Ein einfacher UART mit
eigener Registerbeschreibung und ein 16550-Kompatibler (der braucht
dann aber auch ca. 50k Gatter).

tschuessle
Bernhard

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.