www.mikrocontroller.net

Forum: FPGA, VHDL & Co. spartan 3a beispielprojekt


Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir das Spartan-3A angeschafft, um mich in die programmierbare 
Logik einzuarbeiten, leider fehlt mir jegliches Grundwissen. Könnte mir 
wohl jemand ein einfaches Projekt, welches nur die LED's auf dem Board 
steuert, zur Verfügung stellen, damit ich einen Einstieg habe.

Grüsse der Anfänger

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wohl jemand ein einfaches Projekt ... zur Verfügung stellen
Welches Board?
Welches FPGA?
Welches Gehäuse?
Wo ist der Takt angeschlossen (Pin-Nr)?
Welche Frequenz hat der Takt?
Welche ISE-Version?
Wo ist die LED angeschlossen (Pin-Nr)?

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Board ist das Xilinx® Spartan®-3A Evaluation Kit.
Auf dem FPGA steht XC3S400A und es hat ein BGA Gehaüse.
Er hat ein 12Mhz Takt an PIN N9 IO_L11P_2/GCLK0.
Die Version von ISE ist 10.1 und es hat 4 LED's an B15 IO_L02P_0/VREF_0, 
C16 IO_L24P_1/A24, C15 IO_L24N_1/A25 und an D14 IO_L23N_1/A23, ich hoffe 
die PINs sind aussagekräfitg, so stehen sie zumindest im Schaltplan.

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte ich gerade übersehen, da ist auch noch ein 16MHz Takt an C10 
IO_L09N_0/GCLK5.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es geht offenbar um das AVNET Board, das Xilinx-Board hat andere 
Takte...
Das FPGA auf dem Board ist ein XC3S400A-4FTG256C, also das "kleine" 
BGA-Gehäuse.

Im Anhang ein Projekt, schnell mal aufgesetzt (ISE9.1).
Für dich interessant sind die Dateien BlinkerS3A.vhd (der Code) und 
BlinkerS3A.ucf (die Pinzuordnung).


Für den besseren Wiedererkennungswert habe ich den OLD SCHOOL-Style für 
einen getakteten Prozess noch mit implementiert (und auskommentiert), 
ich verwende den nur noch ungern.

Autor: Thomas Stoll (tstoll)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lothar, weshalb verwendest du den OLD SCHOOL Style nur noch 
ungern? Gibts da gewisse Gründe?

Tom

Autor: walle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öhm, magst Du mal auf die Avnet Seite gehen? Da gibts jede Menge zum 
Download nur für dieses Board ...

Da ist auch ein VHDL Blinker-Projekt dabei ...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Stoll wrote:
> Hallo Lothar, weshalb verwendest du den OLD SCHOOL Style nur noch
> ungern? Gibts da gewisse Gründe?
Ja. Gründe siehe dort:
http://www.lothar-miller.de/s9y/archives/16-Takt-i...

Und so ein böses Latch wie hier:
   process (reset,clk) begin -- Sesitivity-List unvollständig, weil "and clk'event" fehlt
      if (reset='1') then
         out <= '0';
      elsif (clk='1') then   -- hier fehlt  "and clk'event" 
         out <= inp;
      end if;
   end process;   
wird dir niemals mehr passieren.
Übrigens: diesen echt üblen Fehler wirst du wegen der unvollständigen 
Sensitivity-List in der Simulation nicht sehen, dort sieht alles gut 
aus: out ändert sich nur, wenn sich clk oder reset ändern :-o

Und weil
   process begin
      wait until rising_edge(clk);
      :
   end process;
keine solche Liste enthält, wird zwangsläufig korrekt simuliert. Zudem 
gibt es keinen asynchronen Reset mehr.
>>> Reset Costs More Than You Think! <<<
sagt Xilinx dazu. Und im 
Beitrag "Re: Fläche des Designs optimieren" bewahrheitet sich 
das.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ich mir den Code angeschaut hab, ist mir auch sofort aufgefallen, 
dass die sensitivity-list leer ist ... Das kann nur Vorteile haben :-)

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin jetzt den ganzen Morgen dabei, das Projekt zum Laufen zu 
bekommen und jetzt klappt es, vielen Dank für die schnelle und gute 
Hilfe.

Gruss der Anfänger

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.