Forum: FPGA, VHDL & Co. Elektor FPGA Board Pinbelegung wtf?


von Martin G. (Firma: http://www.gyurma.de) (martin_g)


Angehängte Dateien:

Lesenswert?

Hi Jungs!
Hab mir in der Sommeraktion das FPGA Board vom Elektor ergattert. War 
gar nicht so teuer und konnte endlich wieder mal daheim was 
FPGA-mässiges zusammenschustern, nach 2 Jahren Pause.

Da ich schon mehrere Jahre Erfahrung bei der Embedded und FGPA 
Entwicklung habe, dachte ich mir das geht ruck-zuck, aber naja, das war 
also doch nicht so einfach. Hab schnell von Anfang an die Artikel 
gelesen, und brav alles so gemacht wie darin beschrieben war.

Und jetzt kommts. Z.B. die Pinbeschriftung auf dem Board ist total 
irreführend, und stimmt überhaupt nicht mit dem überein, was man im UCF 
angeben muß. Pin P28 auf dem Board ist z.B. P95 am Chip, und folglich 
auch für das UCF.

Ich hab mal im Anhang die richtigen Pin P-Nummern dazugeschrieben, die 
laut Schematik des Board als Resultat entstehen.

Ich wollte das 7-Segment BCD Zählerbeispiel ausführen, und da hatte ich 
brav alles schön mit dem Schematic Editor fertig gezeichnet.

Hatte ein paar 7 Segment Displays noch aus was altem ausgeschlachtet, 
und versucht zu benutzen, stellt sich raus, die sind Common Anode. Naja. 
Passt schon. Schnell Inverter zu den 7-Segment-Dekodern geklatscht, und 
eigene UCF erstellt.

Belegung der Segmente:
1
 a
2
f b
3
 g
4
e c
5
 d 
6
   p
Pins am 7-segment:
1
g f + a b
2
3
e d + c p




Relevanter Teil im UCF:
1
NET "Display2_D" LOC = P24;
2
NET "Display2_E" LOC = P23;
3
NET "Display2_A" LOC = P22;
4
NET "Display2_B" LOC = P18;
5
NET "Display2_F" LOC = P17;
6
NET "Display2_G" LOC = P16;
7
NET "Display2_C" LOC = P15;
8
NET "Display1_D" LOC = P12;
9
NET "Display1_E" LOC = P11;
10
NET "Display1_A" LOC = P10;
11
NET "Display1_B" LOC = P9;
12
NET "Display1_F" LOC = P5;
13
NET "Display1_G" LOC = P4;
14
NET "Display1_C" LOC = P3;

IO-standards sind natürlich alle
IOSTANDARD = LVCMOS33;

Ich hab lange gebraucht, bis ich die obigen zuweisungen festgestellt 
habe und die Zähleranzeige jetzt funktioniert.

Anbei hab ich ein Foto meines Aufbaus gemacht.

Hier meine Frage:
Warum geht das nur so? Warum musste ich Segmente E mit F und G mit D 
vertauschen? Das ist doch total unlogisch!
Logisch wäre für meinen Aufbau gewesen:
1
NET "Display2_G" LOC = P24;
2
NET "Display2_F" LOC = P23;
3
NET "Display2_A" LOC = P22;
4
NET "Display2_B" LOC = P18;
5
NET "Display2_E" LOC = P17;
6
NET "Display2_D" LOC = P16;
7
NET "Display2_C" LOC = P15;
8
NET "Display1_G" LOC = P12;
9
NET "Display1_F" LOC = P11;
10
NET "Display1_A" LOC = P10;
11
NET "Display1_B" LOC = P9;
12
NET "Display1_E" LOC = P5;
13
NET "Display1_D" LOC = P4;
14
NET "Display1_C" LOC = P3;


Also warum ???

von ./. (Gast)


Lesenswert?

Bei Elektorprojekten, so wie diesem, hab ich immer das Gefuehl
als wenn Laien sich an einer Mondmission versuchen.

Ich habe mir extra mal das Dez 2012 rausgekramt.

Ein "normaler" Konfigflash haette den Aufbau vereinfacht
und zusaetzlich freie IOs an den Stiftleisten ermoeglicht.

Tipp:
Zum "Ausklingeln" von Ausgaengen lasse ich einfach einen
Zaehler durchlaufen der ueber die IOs ausgegeben wird.

Vermutlich sind da nur einige Pins an den Anzeigen vertauscht.

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.