spartan 3a beispielprojekt

Gast #1229753
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
Gast #1229775
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.
Moderator (Firma: Titel) Persönliche Seite #1229896
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.
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #1230043
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-im-Prozess.html

Und so ein böses Latch wie hier:
1
   process (reset,clk) begin -- Sesitivity-List unvollständig, weil "and clk'event" fehlt
2
      if (reset='1') then
3
         out <= '0';
4
      elsif (clk='1') then   -- hier fehlt  "and clk'event" 
5
         out <= inp;
6
      end if;
7
   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
1
   process begin
2
      wait until rising_edge(clk);
3
      :
4
   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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.