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