www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Im aktuellen Projekt von Spartan-3E auf Cyclone IV wechseln?


Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich arbeite derzeit an einem (privaten) Projekt, in dem ich ursprünglich 
einen Spartan-3E (bzw. A) einsetzen wollte. Inzwischen stelle ich jedoch 
fest, dass ich sehr viel mehr RAM benötige als eingeplant. Insgesamt 
brauche ich 512 kBit statt 256 kBit.

Die Spartan-3 von Xilinx bieten diese Menge RAM erst in Packages mit BGA 
an. Das kann ich leider nicht löten. Bei Altera gibt es jedoch bis zu 
594 kBits RAM im EQFP-Gehäuse - und damit gut lötbar!

Meine Fragen (bezogen auf Spartan XC3S200A vs. Cyclone IV E EP4CE22):

- Ich habe bisher in VHDL entwickelt und bilde mir deshalb ein, von der 
Zielhardware unabhängig zu sein. Zumindest was die Logik angeht. Stimmt 
das?

- Könnte ich nun einfach Quartus von Altera runterladen und mein Projekt 
hätte, abgesehen von der Neuzuordnung der Resourcen (DCMs/PLLs, 
Pinzuweisungen etc.), gute Chancen, direkt zu laufen? Oder unterscheiden 
sich die beiden Bausteine und damit die Synthese-Ergebnisse im 
Allgemeinen stark voneinander?

- Mal angenommen, obiges funktioniert. Ich besitze ein Spartan-3E Board, 
aber kein Cyclone-Board. Könnte ich theoretisch meine Entwicklung in ISE 
fortführen, auf dem Spartan-Board testen und erst im letzten Schritt zu 
Quartus wechseln?


Mir ist schon klar, dass es hier wohl keine genauen Antworten gibt. Ich 
denke aber, eine allgemeine Einschätzung ist schon möglich.

Grüße
Steffen

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

Bewertung
0 lesenswert
nicht lesenswert
> Ich habe bisher in VHDL entwickelt und bilde mir deshalb ein, von der
> Zielhardware unabhängig zu sein.
Das komtt darauf an, ob du den Code generisch geschrieben hast, oder 
darin bereits herstellerabhängige Komponenten instantiiert hast.

> erst im letzten Schritt zu Quartus wechseln?
Das halte ich für verwegen, weil du je nach Anforderungen und 
Taktfrequenz schon bei der Entwicklung (evtl. unbewusst) Optimierungen 
für eine Zielplattform machen wirst.

> Die Spartan-3 von Xilinx bieten diese Menge RAM erst in Packages
> mit BGA an.
Warum schliesst du RAM nicht extern an? Ein großes FPGA nur wegen des 
(trotzdem wenigen) Speichers zu kaufen ist nicht unbedingt logisch. 
Speicher auf dem FPGA ist teuer, ein externes RAM ist da wesentlich 
billiger und leichter saklierbar.
> bezogen auf Spartan XC3S200A vs. Cyclone IV E EP4CE22
Immerhin geht es bei dieser Frage bereits um einen Schritt von 10 auf 35 
Euro. Und für 25 Euro bekommst du viel RAM.

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Der Code ist weitestgehend generisch gehalten. Ich verwende zwar zwei 
Dual-Port-RAM als IP-Core. Aber ich nehme an, dass Quartus mir etwas 
vergleichbares bieten wird. Ansonsten ist alles reiner VHDL-Code.

Ich kann den RAM leider nicht extern anbinden, weil er sensible Daten 
enthalten wird. Das ist überhaupt erst der Grund, weshalb ich einen FPGA 
und keinen Mikrocontroller verwende. Außerdem muss es, wie schon 
angedeutet, ein Dual-Port-RAM sein.

Der Bauteilpreis ist für mich als Bastler (es wird ein Einzelstück) noch 
im Rahmen. Viel wichtiger ist da schon die Verfügbarkeit. Die schaut 
offensichtlich nicht so gut aus beim IVer. Ich habe aber gesehen, dass 
auch schon der IIIer ähnlich viel RAM bietet.


Da Du nicht die Hände über den Kopf geschlagen hast, denke ich, mein 
Vorhaben ist also durchaus realistisch. Dann werde ich mich mal in 
Quartus versuchen :-)

Danke für Deine Tipps!
Steffen

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

Bewertung
0 lesenswert
nicht lesenswert
> Ich kann den RAM leider nicht extern anbinden, weil er sensible Daten
> enthalten wird.
Die kann ich aber ohne signifikante Mühe auch aus dem FPGA per JTAG 
auslesen...

> Außerdem muss es, wie schon angedeutet, ein Dual-Port-RAM sein.
Das ist mit einem "normalen" RAM auch nur eine Frage der 
Geschwindigkeit. Ein Adressmultiplexer, dann ein Schreibzyklus, danach 
ein Lesezyklus, schon hast du dein DPRAM.

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, aber den JTAG kann man doch deaktivieren, oder? Das ist zumindest 
meine Information.

Deine Idee mit dem Multiplexer wird natürlich funktionieren, aber wozu 
soll ich mir die Hürde aufstellen, wenn ich einfach einen größeren FPGA 
nehmen kann? Bei Timing-Geschichten suche ich mich im Debugging 
hinterher einen Wolf. Spricht denn irgendetwas FÜR den bisherigen FPGA 
oder GEGEN den zukünftigen?

Grüße
Steffen

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

Bewertung
0 lesenswert
nicht lesenswert
> Spricht denn irgendetwas FÜR den bisherigen FPGA
> oder GEGEN den zukünftigen?
Bei einer für dich richtigen Gewichtung der Argumente: Nein.
Ein wichtiges Argument für eine Umstellung ist auch, dass du dann mal 
mitbekommst, wie sich eine andere Plattform anfühlt. Ich mache Lattice 
und Xilinx, und es gibt immer ein schlagendes Argument, warum der eine 
oder der Andere ran darf.

> Aber ich nehme an, dass Quartus mir etwas vergleichbares bieten wird.
Das solltest du evtl. vorher noch abchecken...
> Ja, aber den JTAG kann man doch deaktivieren, oder?
... und das auch. Insbesondere, ob es bei deiner Zielplattform geht.

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Ein wichtiges Argument für eine Umstellung ist auch, dass du dann mal
>
> mitbekommst, wie sich eine andere Plattform anfühlt.

Ja, guter Punkt. Zwar stehe ich noch ganz am Anfang mit FPGAs (bin erst 
seit fünf Monaten dabei), aber vielleicht ist das ja am Ende sogar 
vorteilhaft. Weil ich noch nicht so auf einen Weg eingefahren bin.

Danke für Deine Tipps!

Grüße
Steffen

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Steffen,

in deinem ersten Post hast Du etwas geschrieben, dem ich leider 
widersprechen muss. Zitat:

"Bei Altera gibt es jedoch bis zu 594 kBits RAM im EQFP-Gehäuse - und 
damit gut lötbar!"

Altera nennt dieses Gehäuse nicht ohne Grund EQFP statt TQFP. Rein von 
den Abmaßen her wäre es schon ein TQFP, aber es hat eine metallische 
Fläche auf der Unterseite, den 145-sten Pin. Und diesen Pin muss man 
anschließen! Aus dem Datenbuch von Cyclone IV:

"The E144 package has an exposed pad at the bottom of the package. This 
exposed pad is a ground pad that must be connected to the ground plane 
of your PCB. Use this exposed pad for electrical connectivity and not 
for thermal purposes."

Das wird dir mit einem Lötkolben leider nicht gelingen. Ansonsten stimme 
ich Lothar zu: Mach ruhig auch mal Erfahrung mit anderen Tools. Nur in 
diesem Fall, bei diesem Package...

Grüße,
Harald

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

Bewertung
0 lesenswert
nicht lesenswert
> Das wird dir mit einem Lötkolben leider nicht gelingen.
Wenn da eine Durchkontaktierung sitzt, ginge das schon...

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder EP3C25 als PQFP240, geht auch problemlos zu löten.

> - Mal angenommen, obiges funktioniert. Ich besitze ein Spartan-3E Board,
> aber kein Cyclone-Board. Könnte ich theoretisch meine Entwicklung in ISE
> fortführen, auf dem Spartan-Board testen und erst im letzten Schritt zu
> Quartus wechseln?

nee, du solltest es schon mit einem Cyclone board testetn. Ich nehme an 
du hast auch kein Altera usb blaster. Evt. kannst du so ein board (sammt 
usb blaster) für testzwecke benutzen -> ebay 280448044613

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald Flügel schrieb:
> Rein von
> den Abmaßen her wäre es schon ein TQFP, aber es hat eine metallische
> Fläche auf der Unterseite, den 145-sten Pin. Und diesen Pin muss man
> anschließen!

Danke für den Hinweis. Ich habe glücklicherweise eine 
Heißluft-Lötstation. Ein einzelner Pin an der Unterseite des Packages, 
warum auch immer Altera den dort vorgesehen hat (EMV?), stellt kein 
Problem dar. Er ist ja auch relativ groß gehalten. Nur Hunderte von 
kleinen Pins in einem BGA-Package sind nicht für mich machbar.



Thomas R. schrieb:
> nee, du solltest es schon mit einem Cyclone board testetn.
Dann wäre wieder ein Hunderter weg. Es muss halt am Ende günstiger 
bleiben, als mich das (professionelle) Bestücken eines Spartan im 
BGA-Package kostet.

Verwendest Du das von Dir vorgeschlagene Board? Es hat offensichtlich 
viele I/O-Ports, das ist sehr schön. Offensichtlich ist es eine 
Eigenentwicklung?

Autor: Countdown (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sensible Daten + Einzelstück?

Und bei einem Einzelstück besteht wirklich die Gefahr, das sich wirklich 
jemand die Mühe macht sowas zu zerlegen und auf die Daten im externen 
RAM zuzugreifen?
Das klingt doch eher nach ner gefahr für ein Serienprodukt und nicht für 
nen Einzelstück.

Oder was meinst Du mit "sensibel"?

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen Hausinger schrieb:
> Dann wäre wieder ein Hunderter weg. Es muss halt am Ende günstiger
> bleiben, als mich das (professionelle) Bestücken eines Spartan im
> BGA-Package kostet.

wenn es einzelstück sein sollte kann man den FPGA auslöten und 
wiederverwenden nach dem du mit dem test fertig bist. USB blaster zu 
haben tut nicht weh, das board hat kaum extras so ist der overhead sehr 
klein.

> Verwendest Du das von Dir vorgeschlagene Board? Es hat offensichtlich
> viele I/O-Ports, das ist sehr schön. Offensichtlich ist es eine
> Eigenentwicklung?

Es ist eigenentwicklung von dem eheman von Liyan (sie ist der 
verkäufer), ich benutze die boards auch allerdings projekt bedingt 
EP2C8Q208 einmal mit 2x SRAM und einmal mit 2x SDRAM, werde aber bald 
auf EP3Cxx
wechseln (C16 oder C25).
Für mich war wichtig - kein schnick schnack, viel I/O und evt. RAM - und 
genau das bieten die boards.

Am preis kann man kaum was machen, sogar direkt in china verkauft sie 
für ~85eur (http://item.taobao.com/item.htm?id=3315349047).

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Countdown schrieb:
> Oder was meinst Du mit "sensibel"?

Die Definition ist relativ. Ich möchte einfach eine saubere Lösung 
haben. Und die ist mit dem Cyclone III greifbar - warum also nicht 
wechseln? Das ist schon alles.


@tinman:
Der Preis ist günstig, keine Frage. Bei Altera selbst bzw. bei Terasic 
gibt es noch das DE0 für 79$ (Academic), es hat allerdings einen 
kleineren FPGA mit lediglich 504 kBits. Für die Entwicklung reicht es 
vielleicht (einfach alles auf die Hälfte skalieren).

Das von Dir vorgeschlagene Board gefällt mir allerdings aus den 
ebenfalls von Dir schon genannten Gründen sehr gut. Kann ich Deinem Post 
entnehmen, dass es von der Qualität her (Bestückung/Verlöten, 
Empfindlichkeit, Stabilität im Betrieb) in Ordnung ist? Oder hattest Du 
irgendwelche Probleme? Eigenentwicklungen können halt meist nicht so 
getestet werden wie eine kommerzielle Serie...

Autor: aa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal die lattice XCP serie an die hat das config flash im device, 
ist also auch nicht auslesbar.

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.