FPGA austauschbar?

OP #2873028
Lesenswert?

Hi,

ich wollte mal fragen, ob es auch Boards zu kaufen gibt, auf denen man 
den FPGA austauschen kann?
Fuer ein Projekt moechte ich etwas auf ungefaher 15 FPGAs implementieren 
und ausprobieren. Ich habe gesehen, dass man FPGAs auch einzeln kaufen 
kann, aber hier in einem aelteren Beitrag gesehen, dass man die fuer 
gewoehnlich nicht ein und ausbauen kann.

Danke!
#2873036
Lesenswert?

Klar kann man die austauschen. Mit einer guten Rework Station geht das 
schon. Allerdings kannst du immer nur den gleichen Typ wieder reinlöten, 
oder einen kompatiblen, da gibts aber höchstens mal 4...5 Typen die sich 
dann höchstens in der Anzahl der Slices unterscheiden. So zum Beispiel 
beim Spartan 6 im FGG484 Gehäuse. Aber 15 verschiedene? Und dann auch 
noch vielleicht herstellerübergreifend? Vergiss es.
Gast #2873057
Lesenswert?

Dein erstes Design mit FPGAs?

Kauf nicht dem Ramsch auf ebay, kauf dir eine passendes Prototyping 
Board.

Je nach dem was du machen willst, gibt es auch klein-serie boards mit 
denen man verdammt viel erreichen kann, aber ich kenn dein projekt 
nicht.

Aber ein Spartan3 200 ist ein uralter baustein.

Cheers
#2873058
Lesenswert?

Ich blicke nicht durch, was Du eigentlich erreichen möchtest.

Du willst auf einem Board "15 baugleiche" FPGA's benutzen, resp. "ein 
paar Messungen" pro FPGA machen.

Schaut für mich aus, als möchtest Du eine Art Chip-Evaluation des FPGA 
machen. Mit anderen Worten, traust Du dem FPGA nicht?

Normalerweise verhalten sich die FPGA so wie im Datenblatt, Du kannst 
also von "known good devices" ausgehen. Ich würde das (vermutete) 
Problem also eher in der Umgebung (oder Config) des FPGA suchen.

Oder liege ich total falsch?
Gast #2873059
Lesenswert?

Warum willst Du auf einem einzigen Board abwechselnd 15 gleiche FPGAs 
einsetzen? Das macht ja mal überhaupt keinen Sinn...
Willst Du vielleicht 15 verschiedene Konfigurationen in Dein FPGA laden? 
Dann wäre es vielleicht besser das Konfig-Flash auszutauschen, oder sich 
etwas zu überlegen, wie man "onboard" 15 Konfigurationen speichert und 
auswählbar macht - z.B. mit einem µC oder so.
OP #2873550
Lesenswert?

Guten Morgen,

tatsaechlich kenne ich mich wie ihr richtig erraten habt noch nicht 
allzugut mit FPGAs aus.
Was ich machen moechte ist aber moeglich und ich kann euch gerne 
erklaeren worum es geht. Wie ihr wisst, sind keine zwei Chips exakt 
gleich, das liegt z.B. an den Fertigungsvariationen. Jetzt kann man 
bspw. auf einem FPGA zwei exakt gleiche Pfade implementieren und dann 
testen, welcher der beiden Pfade schneller ist. Es handelt sich dabei 
also um ein Forschungsprojekt und das Thema sind Physically Unclonable 
Functions.

Das soll dann eben auf mehreren FPGAs getestet werden. Ich hatte 
gehofft, dass es eine bessere Variante gibt, als 15 Boards zu kaufen.

Danke aber schonnmal fuer die Antworten!
OP #2873569
Lesenswert?

Es geht nicht darum, dass man den FPGA nicht kopieren koennen soll - 
zumindest im Prinzip nicht (man geht davon aus, dass er durchaus 
kopierbar ist. In der Forschung ist das auch moeglich). Das Prinzip 
dahinter ist es, ein Geheimnis im FPGA zu speichern, ohne dass man es in 
irgendeinem Speicher hinterlegt hat. Es geht mir hier auch eher darum, 
ob ich so ein Board bekommen kann auf dem man den FPGA austauschen kann, 
oder ob es ein ganz einfaches Board gibt mit nur den Grundbauteilen 
drauf, weil ich keine Displays, Taster, oder Aehnliches brauche.
Gast #2873581
Lesenswert?

Vielleicht stehe ich gerade auf der Leitung, was genau mit/an PUFs 
erforscht werden soll - ich stelle mir das Ganze jedoch so vor, dass für 
die erfolgreiche Umsetzung bzw. die Erstellung einer Statistik über die 
"Wirksamkeit" solch einer PUF ohnehin detaillierte Kenntnisse über den 
physikalischen Aufbau des FPGAs sowie z. B. die Fertigungsstreuungen 
notwendig sind. Des Weiteren halte ich die Grundmenge von 15 für relativ 
klein für das genannte Vorhaben, zumal Du offenbar auch planst, 
"irgendwelche" Chips (d. h. ohne Wissen über Fab und Wafer bzw. 
diesbzgl. Zusammenhänge) zu kaufen...

Kurzum: Was genau soll damit eigentlich bezweckt werden?
Gast #2873592
Lesenswert?

Nachtrag:

Es gibt wohl "Sockel" für BGAs, aber auf so etwas würde ich persönlich 
nicht bauen (speziell das Thema "zuverlässige Kontaktierung" bereitet 
mir hier etwas Bauchschmerzen). Für TQFPs sieht es schon wesentlich 
freundlicher aus, aber ein FPGA-Board mit "Sockel" konnte ich hier auf 
die Schnelle auch nicht finden.
Was spricht dagegen, ein "Low-Cost-FPGA-Board" zu entwickeln und dieses 
z. B. 15 Mal aufzubauen?
Gast #2873605
Lesenswert?

Also... Das was Du vor hast macht wenig (bis gar keinen) Sinn. Die 
Daten, die Du hoffst aus so einem Vorhaben zu bekommen, hat der 
Hersteller. Diese wiederrum hängen von VIELEN Faktoren ab: Temperature, 
Stromversorgung, Sack Reis in China,... Die Chips sind alle mehr oder 
weniger unterschiedlich und deshalb kommt ja auch durch die Selektion 
der Speedgrade und/oder Industrialtype raus oder nicht.

Ich denke, Du solltest mal eine Stuffe darunter anfangen: mit 
Transistoren ;-)
Die Idee mit FPGAs im Sockel ist nicht neu und wird gar nicht mehr für 
ernst genommen, weil eben ein Sockel viel teuerer als ein FPGA sein 
könnte.

Wenn es dann nun gar nicht mehr geht, dann kannst Du ja CPLDs nehmen 
(gesockelt). Aber, ehrlich, das ganze Vorhaben ist quasi nicht 
durchführbar.

Ich habe mal mit jemandem Diskutiert, ob man durch 
Strom/Spannung/Temperatur-Analyse rausfinden kann, was sich in einem 
FPGA vorgeht (also z.B. ob ein Schlüssel akzeptiert wird oder nicht), 
aber so weit ich weiß, funktioniert(e) es mal nur mit einfachen 
Smart-Cards (Telefonkarten).

Aber hey, wir waren alle mal jung :-)

Kest
Moderator (Firma: Titel) Persönliche Seite #2873613
Lesenswert?

Sven K. schrieb:
> Habe ich es richtig verstanden, dass die guenstigste Variante
> Boards mit FPGAs sind?
Ja.
Allerdings musst du dann abschätzen können, inwiefern sich deine 
gemessenen Laufzeitunterschiede tatsächlich wegen des FPGAs ändern, und 
oder ob da nicht noch andere Parameter signifikant mit reinmurksen 
(Versorgungsspannung, Kapazität der Entkopplungskondensatoren, 
Schwankungen in der Prepeg-Dicke, andere Temperaturen usw. usf.). 
Zusammen mit dem Board änderst du eben auch alle Umgebungsparameter...
(Firma: www.dossmatik.de) #2873631
Lesenswert?

Sven K. schrieb:
> Es geht erstmal darum abzuschaetzen, was so an Kosten auf uns zukommen
> wird. Habe ich es richtig verstanden, dass die guenstigste Variante
> Boards mit FPGAs sind?

Das war doch das Grundanliegen deiner Aufgabe, Pfad im FPGA vergleichen?

Die Messungen werden aber nur informativeund ohne praktischen Nutzwerte 
haben. Das die Delayzeiten auch temperaturabhängig sind, wird es schwer 
sein sinnvolles physikalisches statistisches Model zu finden.

Dann soll noch gezielt Information gespeichtet werden, wenn bei einer 
kleinen Änderung jedesmal das Routing anders verläuft. Und wie groß darf 
die Auswerteeinheit werden?
Müssen 20 FPGAs einen verschlüsselten FPGA auswerten?

Lernt erstmal was sinnvolles mit dem FPGA umzusetzen.
Gast #2873632
Lesenswert?

Kest schrieb:
> Ich habe mal mit jemandem Diskutiert, ob man durch
> Strom/Spannung/Temperatur-Analyse rausfinden kann, was sich in einem
> FPGA vorgeht (also z.B. ob ein Schlüssel akzeptiert wird oder nicht),
> aber so weit ich weiß, funktioniert(e) es mal nur mit einfachen
> Smart-Cards (Telefonkarten).

Vllt ist diese Diss interessant von jemandem hier am Lehrstuhl, der hat 
sich mit dem Thema beschäftigt:

http://www12/people/ziener/pub/DanielZienerDissertation.pdf
OP #2873633
Lesenswert?

Danke fuer alle eure Antworten!
Dann weiss ich erstmal Bescheid, was wir uns anschaffen muessen. Mir ist 
sowieso klar, dass ich noch etwas mehr zu FPGAs lernen muss ;)

Im Gegensatz zu dem, was die meisten hier schreiben, macht es schon 
sinn. Ihr koennt euch ja einmal bei scholar.google.com zu PUFs einlesen. 
Es gibt auch einiges von Xilinx selber!

Und Kest, zu der Spannungsanalyse: Man kann solche Side Channel Attacks 
selbst an Kryptographie Prozessoren durchfueren und damit zB AES 
Schluessel herausfinden.
OP #2873638
Lesenswert?

Rene,
danke fuer deine Antwort, die sich aber leider nicht auf meine Frage 
bezieht. Es stimmt, dass Temperatur und Spannungsvariationen einen 
Einfluss haben. Es gibt aber schon einiges an Arbeit in diesem noch 
relativ jungen Forschungsfeld, google doch einfach mal danach bevor du 
sinnvollere Projekte vorschlaegst!
Moderator (Firma: Titel) Persönliche Seite #2873690
Lesenswert?

Sven K. schrieb:
> google doch einfach mal danach bevor du sinnvollere Projekte vorschlaegst!
Statt mit Ausrufezeichen zu reagieren könntest du doch einfach ein paar 
Links anhängen, oder gleich einen Google-Link mit den richtigen 
Suchbegriffen...

Denn schließlich ist das hier dein Thread. Und wenn du willst, dass da 
was sinnvolles rauskommt, solltest du den Thread angemessen 
moderieren. Das ist, wie wenn du bei einer Besprechung der Leiter 
wärst...
OP #2873702
Lesenswert?

Das kann ich machen, hier:
http://videos.dac.com/44th/slides/1_3.ppt
ist eine Praesentation von Xilinx und hier:
http://people.csail.mit.edu/devadas/pubs/puf-dac07.pdf
ist ein aelteres Paper, das PUFs gut erklaert.

Einen Side Channel Attack gibts z.B. hier
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5681772&tag=1

Gibt es den Sockel auch direkt mit einem Board zu kaufen? Ich denke, 
2000$ muessten noch drin sein.
Allerdings kostet ein Basys 2 auch nur 59$, das ist dann sicherlich die 
einfachere Variante.
Gast #2873773
Lesenswert?

OT: Als Student fand ich solche Themen toll und habe entsprechend die 
Profs/Assis und alle anderen damit vollgelabert (ohne viel davon zu 
verstehen). Irgendwann mal musste ich einen sinnvollen Schutz für ein 
FPGA Design (und das ganze Gerät) ausdenken/implementieren. Da wurde mir 
klar, dass alles, aber auch alles, was ich mir bis dahin überlegt habe, 
einfach Quatsch war. Es läuft doch darauf hinaus, dass man im FPGA 
irgendwie eine eindeutige ID hinterlegen möchte, die man nicht kopieren 
kann. Und es gibt weitaus pragmatischere (entschuldung, ich bin halt Ing 
;-)) Lösungen dafür.

Und andere Seite ist: wer braucht so etwas? Was soll geschützt werden? 
Was nützt es mir ein FPGA zu schützen, wenn die ("chinesische") 
Putzfrau, wenn ich nicht an meinem Rechner bin, einen 
Virus/Keylogger/... installieren kann. Die "Kette" ist sehr lang, und 
wenn nur ein einziges Glied versagt, dann ist sowieso alles verloren. 
Langer Rede kurzer Sinn: ich finde, man könnte die Studis mit 
sinnvolleren Sachen beschäftigen :-/

Kest
Gast #2873785
Lesenswert?

Noch kurzer nachtrag:
Im Grunde geht es doch eher um die SRAM-Zellen und nicht um die 
Laufzeiten der Gatter, oder? Wäre es nicht sinnvoller, einfach SRAMs 
daraufhin zu untersuchen? Es muss ja kein FPGA sein, reicht ja sogar 
irgendwas einfaches, aus einem 286er Mainboard (512 kByte cache z.b.). 
Oder von mir aus auch die große Bausteine. Ist auf jeden Fall 
preiswerter, als mit FPGAs.
Wenn man damit fertig ist, kann man ja auch rein theoretisch auf die 
FPGAs übertragen ;-) (Übrigens, bei kleinen FPGAs ist mir keins bekannt, 
wo die SRAM-Zellen uninitialisiert bleiben, bei ALTERA Arria und 
Stratixen aber geht es. Diese sind aber teuer)

Kest
#2873800
Lesenswert?

Reicht da nicht die Device DNA, die bei Xilinx ab der 6er Serie drin 
ist? Ist eine einmalige eingelaserte 56 Bit Nummer, die sich nicht 
ändern lässt. Sowas bietet doch für Kopierschutzverfahren eine sehr hohe 
Sicherheit. Wenn man dazu noch den AES Schlüssel einbrennt, also nicht 
die batteriegepufferte Variante nimmt, ist es fraglich, ob man mit Side 
Channel Attacks die rausbekommt. Mit einem REM vielleicht...solange es 
Forschungsgeld gibt, kann man ja daran herumforschen. Ist aber meiner 
(Ingenieurs-)Meinung nach in etwa so anwendungsrelevant wie partielle 
Rekonfiguration.
Moderator (Firma: Titel) Persönliche Seite #2873857
Lesenswert?

Und immer im Hinterkopf behalten: Ich würde als Kunde zuerst große Augen 
kriegen, wenn mein (gekauftes und bezahltes) System nur mit ca. 99% 
Wahrscheinlichkeit hochliefe, und dann der Support des Hersteller einige 
deutliche Worte...

Dieses Xilinx-Dokument zeugt bestenfalls davon, dass sowas gerade mal 
bei Chipherstellern laut überlegt wird. Es ist auf jedenfall noch einige 
Jahre weit weg von "praxistauglich".
(Firma: www.dossmatik.de) #2874131
Lesenswert?

Im Grunde genommen ist es ein asynchrones Design. Hier werden 
Kippglieder je nach differenziellen Laufpfaden gesetzt oder nicht ohne 
sich auf einen Takt zu synchronisieren.

Dass so etwas geht ist keine Frage. Ich versuche synchron zu bleiben, 
weil ich alle unerklärlichen Problem auf den Hals habe.

Ein wichtiges Tool bei der FPGA Programmierung ist die Simulation. Und 
nun kommts, die asynchronen Effekte kannst du nicht simulieren.

Und noch was. Wenn der Gegenschlüssel, der zu deinem Schlüssel auf dem 
FPGA gespeichert wird, dann landet er in einer Speicherzelle. Beim 
Knacken deines Verfahrens würde ich nicht versuchen deinen Schlüssel zu 
kopieren sondern den Gegenschlüssel zu suchen und anzupassen.

Was noch für die Praxis toll ist. Wenn deine Kunden ein Update bekommen 
sollen weil das Grundgerät jetzt ein neues Feature hat, dann kannst du 
es nicht einfach aufspielen, da der Fitter ein anderes Timings und damit 
einen neuen Schlüssel erzeugt, den du nicht testen kannst, das das Gerät 
beim Kunden steht.
#2874210
Lesenswert?

Naja, er schrieb ja dass es ein Forschungsprojekt ist, sowas hat ja 
öfters mal sehr wenig mit der Praxis zu tun. Schau dir nur mal die 
ganzen Veröffentlichungen und Arbeiten zum Thema Partielle 
Rekonfiguration an. Da kann man sicher noch 10 Doktorarbeiten schreiben, 
ohne dass das Thema mehr Praxisrelevanz bekommt. Lassen wir ihn halt 
seine Doktorarbeit schreiben da drauf. Immer noch besser als abkupfern.
Moderator (Firma: Titel) Persönliche Seite #2874473
Lesenswert?

Marco M. schrieb:
> Es geht nicht darum was die können, sondern wie die sich mess- und
> verwertbar unterscheiden.
Weil es das Ziel von Xilinx ist, alle FPGAs gleich zu fertigen, man 
aber annimmt, dass es verwertbare Unterschiede gibt, kann man durchaus 
mal untersuchen, ob sich eine bestimmte Logik-Lauzeit in einer Ecke 
eines FPGAs anders auswirkt als in der Anderen. Wenn nicht, dann hätte 
man wenigstens die Aussage, dass die Platzierung des zukünftigen 
"Kryptomoduls" auf dem FPGA irrelevant isr.

> Wenn du anhand des Laufzeitverhaltens sicher
> einen FPGA identifizieren kannst, dann hat das einen nutzbaren Wert.
Ja, aber erst, wenn es sicher "sicher" ist. Und "sicher" bedeutet 100% 
nachvollziehbar. Sonst ist es wie beim Türsteher bei der Disse: wenn 
er dich kennt, oder du ihm nur gefällst, dann kommst du rein oder auch 
nicht.
Denn wie gesagt: dein Kunde kratzt dir das Auge aus, wenn gerade sein 
System wegen dubiosen Fertigungstoleranzen ab&an mal nicht hochläuft.
(Firma: www.dossmatik.de) #2874482
Lesenswert?

>> Wenn du anhand des Laufzeitverhaltens sicher
>> einen FPGA identifizieren kannst, dann hat das einen nutzbaren Wert.
> Ja, aber erst, wenn es sicher "sicher" ist. Und "sicher" bedeutet 100%
> nachvollziehbar.

Das ist was aus der Kiste "unsere Lösung Ihr Problem".


>>kann man durchaus
>>mal untersuchen, ob sich eine bestimmte Logik-Lauzeit in einer Ecke
>>eines FPGAs anders auswirkt als in der Anderen. Wenn nicht, dann hätte
>>man wenigstens die Aussage, dass die Platzierung des zukünftigen
>>"Kryptomoduls" auf dem FPGA irrelevant ist.

Wenn wir dich nicht abhalten können, dann noch ein Tipp zum besseren 
Vorgehen.
Baue auf der Basis eines PUFs einen Zufallgenerator. Wenn die 
Reihenfolger der Zufallszahlen sich auf den 15 FPGAs unterscheidet, dann 
gibt es 15 verschieden Pseudozufallsgeneratoren. Das wäre ein Teilerfolg 
mit gleicher Aussagekraft ob sich die FPGAs unterscheiden. Das ist 
einfach zu implementieren und auszuwerten. Die Verschlüsselung ist est 
Stufe 2 und eine Anwendung der unterschiedlichen Zufallsgeneratoren. Du 
musst die Zufallsgeneratoren nachweisen.


Dafür reicht auch ein kleiner FPGA den du auch im TQFP Gehäuse bekommst 
und auch unter Umständeren einen Testadapter bekommst.

Das Ergebnis würde mich auch interessieren. Kannst ja mal an mich 
denken, wenn du Daten hast.
Gast #2874490
Lesenswert?

hmm... hab in das pdf mal reingeschaut...

wir hatten hier mal den präsentation von krytoexperten, die zur 
schlüsselgenerierung das quasistatische power-up pattern eines sram 
blocks nutzten, mit sicher 100% korrekturbits ;-)

hmm.. ich würde mal einen händisch platzierten ring-ozillator bauen und 
dessen frequenz messen bzw vergleichen, bzw abhängikeiten zu temp und 
spannung messnen... da langt dann auch der kleinste FPGA...

trotzdem, das kommt IMHO aus einer anderen Zeit, als Laserfusing noch 
nicht wirklich ging...

Cheers..
#2874571
Lesenswert?

Händich platziert muss ja für den Test jetzt erst mal gar nicht sein. 
Solange alle FPGAs das gleiche Bitfile kriegen, ist der innerhalb der 
Messreihe an der gleichen Stelle. Lustig wirds nur, wenn man am Design 
was ändert, dann fängt man ja von vorne an, und hat keinerlei Bezug zur 
vorhergehenden Messreihe, wenn man den Oszillator nicht 100% exakt an 
die gleiche Stelle platziert. Bei Änderungen am Oszillator selber 
schließt sich das ja u.U. schon selbst aus.
Gast #2874692
Lesenswert?

Wozu eigentlich noch Forschung betreiben? Das erscheint mir irgendwie 
sinnlos.  Man muss doch nur hier im Forum eine entsprechende Frage 
stellen, und schon finden sich Menschen die das alles schon wissen!
#2874792
Lesenswert?

Naja ganz so ist es ja auch nicht. Aber zu Forschung gehört auch immer 
die Relevanz und die Recherche der potenziellen Anwendungsmöglichkeiten. 
Sonst hätten wir wahrscheinlich schon längst Geräte die Spiegeleier 
automatisch unter atmosphärischen Bedingungen des Planeten Crypton 
backen könnten.
#2875222
Lesenswert?

Christian R. schrieb:
> Aber zu Forschung gehört auch immer
> die Relevanz und die Recherche der potenziellen Anwendungsmöglichkeiten.

Wenn alle so denken würden oder gedacht hätten:

"Das von Leibniz (1646-1716) weiterentwickelte duale Zahlensystem legte 
den Grundstein für die rechnergestützte Informationstechnologie des 20. 
Jahrhunderts."

Wärst Du jetzt arbeitslos... ;-)
OP #2875278
Lesenswert?

Hi Allerseits,

ich bin zurzeit etwas beschaeftigt und kann nicht so sehr auf die Posts 
eingehen, aber wir koennen die Diskussion spaeter einmal fortsetzen :-)

Ohne, dass es es boese gemeint ist, kann ich wohl sagen, dass die 
meisten hier wenig Ahnung von der Thematik an sich haben - ist ja auch 
klar, ein paar PDFs ueberfliegen bringt nicht so viel ;-) Das ist 
tatsaechlich ein sehr praxisrelevantes und auch praktisches Thema. Wenn 
man etwas weiter erforscht, woran Unternehmen schon arbeiten und was 
Unternehmen teilweise schon realisieren, noch praktischer geht es ja 
fast nicht mehr.

Die meisten von euch unterschaetzen auch die Anwendungsgebiete von 
solchen PUFs und die Art der PUFs. Ring Oszillatoren wurden ja schon 
genannt, die urspruenglich erwaehnten zwei Delay Lines waren also nur 
ein einfaches Beispiel zur Veranschaulichung. Den PUF kann man fuer alle 
moeglichen Dinge benutzen, zum Beispiel als Seed fuer eine 
Schluesselgenerierung in einem Private / Public Key Scenario, zur 
Authentifikation, usw.

Ich finde die Beitraege ja gut, aber teilweise klingen sie doch recht 
arrogant - ich habe direkt am Anfang zugegeben, dass meine praktischen 
Kenntnisse mit dem FPGA nicht die besten sind, jetzt urteilen hier 
einige ueber ein Forschungsfeld das sie nicht mal kennen. Nicht boese 
gemeint!
Moderator (Firma: Titel) Persönliche Seite #2876009
Lesenswert?

Sven K. schrieb:
> aber wir koennen die Diskussion spaeter einmal fortsetzen
Wäre nicht schlecht, wenn du da ab&an mal Informationen und Erkenntnisse 
durchgibst (falls du es darfst).
Es wäre allein schon interessant, ob es verwertbare Variationen gibt, 
und wie groß die sind (Qualität und Quantität). Denn das betrifft 
letztlich viele.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren