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


von anfänger (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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)?

von anfänger (Gast)


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.

von anfänger (Gast)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

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.

von Thomas S. (tstoll)


Lesenswert?

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

Tom

von walle (Gast)


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 ...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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.

von Gast (Gast)


Lesenswert?

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

von anfänger (Gast)


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

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.