Hallo, ich versuche zur Zeit abzuschätzen, wieviel Strom ein Spartan 6 (genauer: xc6slx45t) im Suspend minimal verbrauchen kann. In den Xilinx Dokumenten ist leider keine genaue Angabe zu finden. Auf dem Entwicklungsboard des FPGAs ist bei aktivem Suspend immernoch ein Strom um 10mA zu messen, auf der VCCint-Schiene. Das wirkt doch etwas viel? Ich dachte vielleicht daran das Ganze mit einem GoldCap oder einem kleinen Akku längere Zeit zu puffern. Es ist sehr wichtig, dass der Bitstream nicht verloren geht, da ein Nachladen ausgeschlossen sein soll. Ist es möglich den FPGA irgendwie so zu konfigurieren, dass der Stromverbrauch wirklich minimal ist? Ich hoffe jemand hat damit schon Erfahrung sammeln können. mfG Alex
ich kenn mich zwar mit dem Spartan6 nicht aus, aber ich denke nur mit einer Batterie hast du schlechte karten. Was spricht denn gegen ein config flash ?
Da es ja auch Mikrocontroller gibt, die im Standby ein paar µA ziehen, erhoffe ich mir zu mindest annähernde Werte für einen modernen FPGA. Natürlich soll nicht die Batterie alleine angeschlossen sein, es muss entsprechend ein DC-DC-Regler dazwischen. Es Config-Flash ist nur leider auslesbar und das soll eben vermieden werden, da ein Teil des Bitstreams geheime Daten enthalten soll. Die Idee ist, bei Verlust der Netzteilspannung den FPGA in Suspend zu bringen (alles unnötige abzustellen) und von der Batterie/Akku zu laufen. Nach Wiedereinstecken des Netzteils läuft das System dann halt weiter, ohne diese Geheimen Daten von Außen neuladen zu müssen. Wäre ein interner Config-Flash evtl. eine Alternative? Beim Spartan 3-AN gab es eine Option zum Laden des Bitstreams aus dem In-System-Flash. Leider konnte ich beim Spartan 6 diese Konfiguration nicht finden, oder funktioniert das irgendwie anders?
Dazu gibts doch die BitStream Verschlüsselung. Da wird der BitStream AES verschlüsselt und verschlüsselt in den FPGA geladen. Am VBatt Anschluss wird der kleine SRAM, der den Schlüssel enthält, gepuffert. Wozu also das Rad nochmal erfinden?
Daher kam ich ja überhaupt auf die Idee, der xc6slx45t hat das nicht. Ab slx100 gibts eine integrierte AES Engine und auch ein Vbatt pin.
Achso. Hm, naja, aber über Suspend ist halt schon mehr, als es für eine Batterie sinnvoll ist. Musst du mal sehen, wie die Peripherie sich verhält, ob da eventuell Pull-Ups oder Pull-Downs sind, die stören.
Ein anderer Ausleseschutz wäre, einen BGA-Flash zu benutzen, und den nach dem Löten auf der Platine zu verkleben, so dass man ihn nur zerstörend runter bekommt. Dann aber einen Platform Flash, der kann ja gegen Auslesen über JTAG gesichert werden.
Das ist wirklich eine gute Idee, wenn das mit dem internen Flash gar nicht funktioniert. Afaik werden beim Suspend-Mode alle Outputs hochohmig geschaltet. Wegen den Pull-Ups/-Downs lässt sich glaube ich im Constraints-File einstellen. Ich werde jetzt erstmal ein Probedesign machen und versuchen die Leistung zu minimieren.
Naja, internen Flash gibts ja beim Spartan 6 nicht. Den hat nur der Spartan 3 AN. Du schriebst ja oben, auf VCCINT ist noch 10mA, da wird wohl nicht allzuviel zu machen sein, denn das ist ja die Core-Logik. Im Power Management User guide steht beim Standby Mode "Reduces quiescent current by 40% or more." Naja, und 18mA ist der Ruhestrom laut Datenblatt, da sind deine 10mA ja schon ganz gut.
Das Ergebnis aus dem Test ist ernüchternd, wenn Suspend aktiv ist, liegt der Strom nach wie vor in dem Bereich 10mA. Also kann er wohl lange nicht mit einem Mikrocontroller mithalten, schade. Ich danke euch beiden für eure Hilfe.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.