Forum: FPGA, VHDL & Co. Nexsys 3 - Einstieg - unbenutzte IOs


von Som (Gast)


Lesenswert?

Hallo,
bin gerade dabei mich mit dem Nexsys 3 zu beschäftigen.

Dazu ein paar Fragen:

Ich habe meine erste Konfig draufgespielt (nur LEDs und Switches 
verwendet).
Funktioniert soweit.

- Kann ich eigentlich was kaputt machen, wenn ich die anderen IOs, die 
ich nicht benuzte und  an denen irgendwelche Board peripherie 
angeschlossen ist (z.B. Sieben-Segment-Anzeige) nicht oder falsch 
konfiguriere?

Die SiebenSegmentAnzeigen glimmen leicht, kann ich das lassen, oder 
sollte ich die Ports auf definiert LEvel legen, wenn ich sie nicht 
benutze?

- Gibt es eigentlich ausser den Sachen auf der Digilent-Webseite 
irgendwelche Beispiele und Demos?

Schon mal vielen Dank für Eure Unterstützung, werde sicher noch weitere 
Fragen haben...

von Josef G. (bome) Benutzerseite


Lesenswert?

Bei meinen Boards habe ich mir angeschaut, wie die unused
IO-pins vor und während der Konfiguration eingestellt sind
(float/pullup/pulldown). Das hängt von der Beschaltung
eines speziellen Eingangs des FPGA ab. Wie dieser beim
Spartan6 heisst weiss ich nicht. Die gleiche Einstellung habe
ich dann für das konfigurierte Board gewählt, das kann man
in ISE bei Generate Programming File einstellen.

von Som (Gast)


Lesenswert?

noch eine Frage, das board wurde in einer weißen schachtel mit 
schaumstoff geliefert.

ISt der schaumssctoff leitend, oder kann ich das Board im Betrieb auf 
dem Schaumstoff liegen lassen?

von Som (Gast)


Lesenswert?

Stürzt IMPACT bei Euch auch so oft ab? (Win 7, 64 Bit)

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


Lesenswert?

Som schrieb:
> noch eine Frage, das board wurde in einer weißen schachtel mit
> schaumstoff geliefert.
> ISt der schaumssctoff leitend,
Ja, schon...

> oder kann ich das Board im Betrieb auf dem Schaumstoff liegen lassen?
... aber so hochohmig, dass du das machen kanst.

> - Kann ich eigentlich was kaputt machen, wenn ich die anderen IOs, die ich nicht
> benuzte und an denen irgendwelche Board peripherie angeschlossen ist
> (z.B. Sieben-Segment-Anzeige) nicht oder falsch konfiguriere?
Interessant sind hier eher irgendwelche Chipselects, die aktiv gesetzt 
werden sollten...

von Sigi (Gast)


Lesenswert?

Minimale Beschaltung:
Mindestens alle ChipSelect, OutputEnable und andere Enable-Signale
entspechend ansteuern, damit zwischen FPGA und anderen Bausteinen
keine Buskonflikte entstehen. Besser noch: Datenleitungen auch
entsprechend ansteuern (z.B. "Z" plus PULLUPs oÄ). Sich auf die
Default-Settings vom Synthesetool zu verlassen ist sehr gefährlich.

Weitere Gefahrenquelle: Einige Bausteine teilen sich einen gemeinsamen
Bus. Dieser  Bus muss entsprechen angesteuert werden (z.B. nur ein Chip
darf den Datenbus ansteuern etc., z.B. SRAM und Flash bei Altera
Boards).

Für jeden Baustein auf der Platine kann z.B. eine Default-Ansteuerung
vorgegeben werden. Wird ein Baustein von dir nicht verwendet, dann
sollte diese Default-Ansteuerung greifen.

(gilt übrigends für alle Boards)

von Som (Gast)


Lesenswert?

Hat da jemand so eine default konfiguration fur das nexsys 3?

von Christian R. (supachris)


Lesenswert?

Die allermeisten Chip Select Leitungen sind Low-Aktiv, da kannst du im 
Bitgen in ISE (Generate Programming File -> Process Properties) die 
unused I/Os auf Pull-Up setzen. Standardmäßig macht ISE da leider 
Pull-Downs rein. Sicherheitshalber aber im Schaltplan mal schauen, ob da 
nicht ein High-Aktiver Chip-Select irgend eines Bausteins drin ist.

Und ja, iMpact ist immer noch das Xilinx Programm, was am meisten 
abstürzt. Das ist schon immer so. Jedenfalls die GUI. Ich arbeite da 
fast ausschließlich im Command Line Modus, mit impact -batch kann man 
den starten. Der ist bei mir noch nie abgestürzt.

von Holger H. (holger-h-hennef) Benutzerseite


Lesenswert?

Som schrieb:
> Stürzt IMPACT bei Euch auch so oft ab? (Win 7, 64 Bit)


C:\Xilinx\11.1\ProgrammingTools\bin\nt64\impact.ex
Du kannst also explizit 64 Bit Treiber installieren, (Handarbeit).
Damit habe ich ein altes SPARTAN 3E Board auf 64 Bit Win7 am laufen.
Die normale ISE 11.1 Install reicht da nicht für das Impact.
Über die CD die ich habe musste ich ganz nach unten scrollen, da sind
die 64 Bit Installer drin.

Somit geht das Impact auf dem 64Bit Win7 bei mir jetzt.

Gruss Holger.

von Josef G. (bome) Benutzerseite


Lesenswert?

Frage zu Impact: Warum ist in diesem Thread zum Nexys3
von Impact die Rede? Ich dachte, das Nexys3/Nexys2 wird
mit Digilent Adept programmiert?

von Christian R. (supachris)


Lesenswert?

Josef G. schrieb:
> Frage zu Impact: Warum ist in diesem Thread zum Nexys3
> von Impact die Rede? Ich dachte, das Nexys3/Nexys2 wird
> mit Digilent Adept programmiert?

Die Digilent Programmer werden seit einiger Zeit direkt von iMPACT 
unterstützt, jedenfalls die meisten. Sind dann preislich eine sehr gute 
Alternative zu den Original-Xilinx-Programmern.

von decimad (Gast)


Lesenswert?

Hallo!
Vor einigen Tagen habe ich also mal allen Mut zusammengenommen und eine 
Schaltung mit einem induktiven Winkelgeber-IC (Hersteller sollte klar 
sein :D) auf einem Breadboard zusammengesteckt. Dieser IC hatte wie hier 
weiter oben beschrieben einen negierten CS-Eingang für sein 
SSI-Interface. Es passte also hardwaretechnisch offenbar alles so gut 
zusammen, dass es nicht nötig war, etwas besonderes auf meinem 
Nexys3-Board einzustellen.
Allerdings hatte ich natürlich eine gehörige Portion Angst, dass ich mir 
böse etwas mindestens an den FPGA-IOs zerschieße. Zum Glück hat alles 
funktioniert und ich konnte die Position wunderbar auf der 
Segmentanzeige ausgeben (Mein freudiges Strahlen müsst ihr euch einfach 
vorstellen).
Nun aber meine erste Frage: Ich bin kein Elektroniker - könnte man die 
Ausgänge der FPGA nicht eigentlich so bauen, dass auch ein treibender 
Ausgang gegen Masse nicht zum vorzeitigen Hitzetod führt? Es würde mich 
echt freuen, wenn man das bei den Spartan6'en irgendwie umgesetzt hätte, 
damit ich mir nicht immer so viel Sorgen machen brauche.
Und hier meine zweite Frage: Was bringt es eigentlich, dass die 
CS-Eingänge der Peripherie-ICs negiert ausgeführt sind? Ich stelle mir 
die Eingänge eben auf Grund der Eigenschaft "Eingang" sowieso schon 
hochohmig vor. Was hat es damit auf sich?


Viele Grüße,
Deci

von Thomas_L (Gast)


Lesenswert?

Christian R. schrieb:
> Josef G. schrieb:
>> Frage zu Impact: Warum ist in diesem Thread zum Nexys3
>> von Impact die Rede? Ich dachte, das Nexys3/Nexys2 wird
>> mit Digilent Adept programmiert?
>
> Die Digilent Programmer werden seit einiger Zeit direkt von iMPACT
> unterstützt, jedenfalls die meisten. Sind dann preislich eine sehr gute
> Alternative zu den Original-Xilinx-Programmern.

Um ganz korrekt zu sein:
Die Digilent Programmer werden nicht nativ von iMPACT unterstützt, 
sondern benötigen ein Adept-Plugin für iMPACT, werden dann aber wie die 
Originalkabel eingebunden.

von Som (Gast)


Lesenswert?

Nochmal zu der Pin-Konfiguration.

Also ich habe mir mal ein Beispiel von Digilent angeschaut,
in dem auch nur Buttons und LEDs verwendet werden,
ich finde dort nirgends eine Konfiguration von den unbenutzten Pins.

Bei Generate Programming File steht unter Configuration OPtions der 
Schalter "unused Pins" auf "Pulldown".

Auf der Homepage von Digilent wird ein Master.UCF File zum Download 
angeboten:
http://www.digilentinc.com/Data/Products/NEXYS3/Nexys3_Master_UCF.zip

Dort sind aber alle Einträge auskommentiert und es steht nur drin, dass 
man für die Komponenten die man benutzt den Kommentar entfernen soll.

brauch ich mich dann nicht um die oben angegebene Sachen kümmern?
Ich meine wenn es der Hersteller schon nicht anders macht, kanns ja 
nicht zu einem Defekt führen ,oder?

von Som (Gast)


Lesenswert?

Zu den Einträgen im UCF File, die sehen so aus:
1
#NET "btn<0>"         LOC = "B8"  | IOSTANDARD = "LVCMOS33";   #Bank = 0, Pin name = IO_L33P,                           Sch name = BTNS

Wo steht da, ob es ein Eingang oder Ausgang ist?
Bzw. kann ich hier angeben, ob Pullup oder Pulldown?

Und ist der zweite Teil der Zeile wirklich ein Kommentar, oder braucht 
man das auch?

von Christian R. (supachris)


Lesenswert?

Som schrieb:
> Bei Generate Programming File steht unter Configuration OPtions der
> Schalter "unused Pins" auf "Pulldown".

Das ist eigentlich genau das ungünstige. Denn viele externe Chips wie 
RAMs usw. verwenden Low-Aktive Enable Eingänge. Lieber dort auf Pull-Up 
stellen, dann sind eigentlich alle Bausteine deaktiviert und es kann 
nichts schief gehen.

von Duke Scarring (Gast)


Lesenswert?

Som schrieb:
> #NET "btn<0>" LOC = "B8"  | IOSTANDARD = "LVCMOS33";   #Bank = 0, Pin name = 
IO_L33P,  Sch name = BTNS
>
> Wo steht da, ob es ein Eingang oder Ausgang ist?
Das steht in Deinem obersten Design-File (bei mir immer top.vhd):
1
library ieee;
2
use ieee.std_logic_1164.all;
3
4
entity top is
5
  port (
6
    clk : in    std_logic;
7
    btn : in    std_logic_vector(3 downto 0);
8
    led : out   std_logic_vector(7 downto 0)
9
  );
10
end entity;

> Bzw. kann ich hier angeben, ob Pullup oder Pulldown?
Ja. Je nachdem, was vom Chip unterstützt wird.
Weitere Beispiele hier:
http://www.mikrocontroller.net/articles/UCF-Dateien

> Und ist der zweite Teil der Zeile wirklich ein Kommentar, oder braucht
> man das auch?
Wenn man den ersten Kommentar entfernt, bleibt der zweite stehen.
Der Kommentar ist nur für den Entwickler.

Duke

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.