Forum: FPGA, VHDL & Co. sidechannel analysis fpga


von wuba (Gast)


Lesenswert?

Hallo Community!

Ich versuche gerade über den Leistungsverbrauch eines FPGA Demobords 
Kenntnisse über die inneren Vorgänge zu bekommen.

Also mein Ziel ist es erstmal den Takt zu erkennen und dann ungefähr 
wieviele Register in diesem Takt geschalten werden

Was ich bis jetzt habe:

*ein Oszi 4GS/s 1GHz  mit Aktiven probes (1M Ohm 0.9pF)

*externe Spannungsersorgung mit einer relativ präzisen Quelle (1,25 
Volt) für die intere Logic Versorgung am FPGA

*am GND hängt mein Messwiderstand (Standard 1 Ohm leider noch kein 
Shunt)

*Kondensatoren in verschiedenen Größen an der externen 
Spannungsversorgung

*das fpga rennt mit 100MHz

* Das FPGA benötigt so im Schnitt ungefähr 150 mA


Meine jetztigen Messergebnisse sind nicht gerade besonders brauchbar (es 
ist kaum ein Takt erkennbar

Das FPGA benötigt so im Schnitt ungefähr 150 mA
eine FFT und das filtern von Frequenzen in Matlab hat auch zu keinen 
Verbesserungen geführt


liegt das an dem einfachen Kohlewiderstand?
Messaufbau ohne Sense Leitung  und somit schwankender Versorgung am 
FPGA?
Oder überhaupt einen anderen Messaufbau?
Den zulangen Leitungen  ca 20cmm?

in welche Richtung sollte ich da am besten gehen?

Danke
Lukas

von Achim S. (Gast)


Lesenswert?

die 100MHz per FFT in der Versorgung wiederzufinden sollte noch 
einigermaßen einfach sein. Aber in einem einzigen Takt die Höhe des 
Strompulses auszuwerten um auf die Zahl der schaltenden Register zu 
schließen, ist sehr anspruchsvoll.

Dein Hauptproblem besteht darin, dass hinter deinem Messwiderstand noch 
viele, verteilte Kondensatoren am VCC_int Netz hängen (in Summe sicher 
diverse µF). Der gepulste Anteil des Stroms fließt zum allergrößten Teil 
aus diesen Kondensatoren und fast gar nicht über deinen Messwiderstand. 
(Der Strompuls besteht aus Frequenzanteilen mit vielfachen von 100MHz. 
Da ist der Wechselstromwiderstand der Kondensatoren um viele 
Größenordnungen kleiner als der Wechselstromwiderstand deines Shunts mit 
seiner Leitungsinduktivität). Über den Shunt fließt nur der gemittelte 
Strom, die Mittelungsdauer kannst du aus R und C abschätzen.

Theoretisch könntest du auf Idee kommen, die Pufferkapazitäten auf dem 
Board abzulöten, so dass der gepulste Stromüber den Shunt fließen muss. 
Dummerweise wird dein FPGA dann aber nicht mehr funktionieren, da es auf 
eine stabile, niederohmige Versorgung angewiesen ist (die vielleicht 
100nH deiner Zuleitung sind viel zu hochohmig). Einige FPGAs haben auch 
Pufferkapazitäten im IC-Gehäuse mit integriert, selbst wenn du die 
Kondensatoren auf dem Board ablöten solltest wirst du die internen 
Pufferkaps nicht los.

Kann also sein, dass aus deiner Messung einfach nichts wird. Um 
rauszukriegen, was vielleicht doch geht, würde ich folgendermaßen 
vorgehen:
- die Anzahl der Pufferkaps am VCC_int Netz schrittweise auf ein 
notwendigs Minimum reduzieren (vielleicht kann man mehr als die Hälfte 
davon ablöten und das FPGA läuft trotzdem noch stabil). Damit wird das 
VCC_int Netz auf der Platine höherohmig und du hast vielleicht eine 
Chance, den Spannungsabfall am Innenwiderstand des Netzes zu messen.
- lokal an den jeweiligen VCC_int Pins des FPGAs mit dem Oszi den 
Spannungseinbruch bei der Taktflanke nachmessen. Dazu auf den CLK selbst 
triggern, damit du eine Chance hast zu erkennen, in welcher Relation die 
beobachteten Spannungsschwankungen auf dem Netz zum CLK stehen.
Es wird nicht reichen, an einem einzelnen VCC_Int Pin zu messen: dein 
FPGA hat viele davon, und der Stromverteilung über diese Pins kann 
(speziell bei einem Flipchip-Gehäuse) stark variieren.
- Evtl. kannst du auch den ESR der verbliebenen Pufferkapazitäten 
künstlich erhöhen um damit den Spannungseinbruch deutlicher machen. Also 
Pufferkaps erst ablöten, und dann jeden mit einem kleinen 
Serienwiderstand wieder auflöten. "Klein" bezieht sich dabei sowohl auf 
den Widerstandswert (z.B. 1Ohm) als auch auf die Bauform (z.B. 0603, je 
nachdem welche Bauform die Pufferkaps haben).

Aber es dürfte ein schmaler Grat werden, die Versorgung so hochohmig zu 
gestalten, dass man vernünftige Spannungseinbrüche sieht, aber 
gleichzeitig so niederohmig zu lassen, dass das FPGA noch stabil läuft. 
Und wenn du Pech hast, zerbröselst du dir mit der Löterei dein 
Eval-Board (welches Board nutzt du eigentlich?)

wuba schrieb:
> *ein Oszi 4GS/s 1GHz  mit Aktiven probes (1M Ohm 0.9pF)

das ist gut, wobei dir die hohe Impedanz der probe bei der Messung am, 
Versorgungsnetz wenig nützt (parallel dazu liegt 1Ohm). Eine aktive 
differentielle Probe zur Messung direkt an den Pufferkondensatoren 
könnte allerdings hilfreich sein.

wuba schrieb:
> *am GND hängt mein Messwiderstand (Standard 1 Ohm leider noch kein
> Shunt)

Du misst im GND-Pfad? Hast du getrennte GND für die Rückströme von 
VCC_int und VCC_IO? Ansonsten verhageln dir die IO-Ströme wahrscheinlich 
die Messung der vcc_int Ströme. Lieber wie oben beschrieben in der 
VCC_int Zuleitung messen.

wuba schrieb:
> liegt das an dem einfachen Kohlewiderstand?

ob Kohle oder Metall gehört zu den geringeren deiner Probleme, die 
Bauform des Widerstands und die Länge der Zuleitungen machen (aufgrund 
der parasitären Induktivität) sehr viel mehr aus.

wuba schrieb:
> in welche Richtung sollte ich da am besten gehen?

Vielleicht findest du auch irgendwo Stromprobes, die lokal das gepulste 
Magnetfeld direkt an den VCC_int Pins des FPGAs auswerten können. Da 
di/dt groß ist halte ich zumindest für denkbar, ich kenne aber keine 
Quelle für sowas.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

wuba schrieb:
> Meine jetztigen Messergebnisse sind nicht gerade besonders brauchbar (es
> ist kaum ein Takt erkennbar)
Dann ist das ein gutes Layout: es hat die Blockkondensatoren an der 
richtigen Stelle...

> *am GND hängt mein Messwiderstand (Standard 1 Ohm leider noch kein
> Shunt)
Du versorgst extra die Vccint und misst dann an der gemeinsamen Masse 
aller Versorgungsspannungen?

: Bearbeitet durch Moderator
von wuba (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Achim
Hallo Lothar

Danke, dass ihr euch Zeit genommen habt mir zurückzuschreiben !!


Achim S. schrieb:
> Dein Hauptproblem besteht darin, dass hinter deinem Messwiderstand noch
> viele, verteilte Kondensatoren am VCC_int Netz hängen (in Summe sicher
> diverse µF). Der gepulste Anteil des Stroms fließt zum allergrößten Teil
> aus diesen Kondensatoren und fast gar nicht über deinen Messwiderstand.
> (Der Strompuls besteht aus Frequenzanteilen mit vielfachen von 100MHz.
> Da ist der Wechselstromwiderstand der Kondensatoren um viele
> Größenordnungen kleiner als der Wechselstromwiderstand deines Shunts mit
> seiner Leitungsinduktivität). Über den Shunt fließt nur der gemittelte
> Strom, die Mittelungsdauer kannst du aus R und C abschätzen.
>
> Theoretisch könntest du auf Idee kommen, die Pufferkapazitäten auf dem
> Board abzulöten, so dass der gepulste Stromüber den Shunt fließen muss.
> Dummerweise wird dein FPGA dann aber nicht mehr funktionieren, da es auf
> eine stabile, niederohmige Versorgung angewiesen ist (die vielleicht
> 100nH deiner Zuleitung sind viel zu hochohmig). Einige FPGAs haben auch
> Pufferkapazitäten im IC-Gehäuse mit integriert, selbst wenn du die
> Kondensatoren auf dem Board ablöten solltest wirst du die internen
> Pufferkaps nicht los.

Also ich habe bereits alle Kapazitäten am Board entfernt die direkt an 
1V2 liegen bzw an VCCINT (bestimmt an die 30)
Der FPGA rennt noch immer einwandfrei :)

Der einzige der noch stören könnte der auch an 1V2 liegt ist der 
Ethernet-IC (dort hab ich natürlich auch die Kapazitäten 
rausgenommen...)


> - die Anzahl der Pufferkaps am VCC_int Netz schrittweise auf ein
> notwendigs Minimum reduzieren (vielleicht kann man mehr als die Hälfte
> davon ablöten und das FPGA läuft trotzdem noch stabil). Damit wird das
> VCC_int Netz auf der Platine höherohmig und du hast vielleicht eine
> Chance, den Spannungsabfall am Innenwiderstand des Netzes zu messen.

Dh einfach meine Widerstand weg und mal direkt VCCInt messen? werd ich 
probieren ist eine gute Idee :)


> - lokal an den jeweiligen VCC_int Pins des FPGAs mit dem Oszi den
> Spannungseinbruch bei der Taktflanke nachmessen. Dazu auf den CLK selbst
> triggern, damit du eine Chance hast zu erkennen, in welcher Relation die
> beobachteten Spannungsschwankungen auf dem Netz zum CLK stehen.
> Es wird nicht reichen, an einem einzelnen VCC_Int Pin zu messen: dein
> FPGA hat viele davon, und der Stromverteilung über diese Pins kann
> (speziell bei einem Flipchip-Gehäuse) stark variieren.

Die VCC_Int sind alle zusammengeschlossen... und da komm ich nicht 
besonders gut ran!
Kann aber versuchen an den verschiedenen VCCINT direkt Spannung zu 
messen.

> - Evtl. kannst du auch den ESR der verbliebenen Pufferkapazitäten
> künstlich erhöhen um damit den Spannungseinbruch deutlicher machen. Also
> Pufferkaps erst ablöten, und dann jeden mit einem kleinen
> Serienwiderstand wieder auflöten. "Klein" bezieht sich dabei sowohl auf
> den Widerstandswert (z.B. 1Ohm) als auch auf die Bauform (z.B. 0603, je
> nachdem welche Bauform die Pufferkaps haben).
>
> Aber es dürfte ein schmaler Grat werden, die Versorgung so hochohmig zu
> gestalten, dass man vernünftige Spannungseinbrüche sieht, aber
> gleichzeitig so niederohmig zu lassen, dass das FPGA noch stabil läuft.
> Und wenn du Pech hast, zerbröselst du dir mit der Löterei dein
> Eval-Board (welches Board nutzt du eigentlich?)

Habe ein Bild mit meinem jetzigen Messaufbau angehängt

>
> wuba schrieb:
>> *ein Oszi 4GS/s 1GHz  mit Aktiven probes (1M Ohm 0.9pF)
>
> das ist gut, wobei dir die hohe Impedanz der probe bei der Messung am,
> Versorgungsnetz wenig nützt (parallel dazu liegt 1Ohm). Eine aktive
> differentielle Probe zur Messung direkt an den Pufferkondensatoren
> könnte allerdings hilfreich sein.
>
> wuba schrieb:
>> *am GND hängt mein Messwiderstand (Standard 1 Ohm leider noch kein
>> Shunt)
>
> Du misst im GND-Pfad? Hast du getrennte GND für die Rückströme von
> VCC_int und VCC_IO? Ansonsten verhageln dir die IO-Ströme wahrscheinlich
> die Messung der vcc_int Ströme. Lieber wie oben beschrieben in der
> VCC_int Zuleitung messen.

Muss leider meine verfügbare Probe auf GND legen sonst bau ich mir einen 
Kurzschluss mit dem Computer über USB

>
> wuba schrieb:
>> liegt das an dem einfachen Kohlewiderstand?
>
> ob Kohle oder Metall gehört zu den geringeren deiner Probleme, die
> Bauform des Widerstands und die Länge der Zuleitungen machen (aufgrund
> der parasitären Induktivität) sehr viel mehr aus.
>

Ja hatte nur einen klassischen großen Widerstand zur Verfügung bin grad 
dabei einen kleineren shunt zu bestellen

> wuba schrieb:
>> in welche Richtung sollte ich da am besten gehen?
>
> Vielleicht findest du auch irgendwo Stromprobes, die lokal das gepulste
> Magnetfeld direkt an den VCC_int Pins des FPGAs auswerten können. Da
> di/dt groß ist halte ich zumindest für denkbar, ich kenne aber keine
> Quelle für sowas.

Stromprobes find ich gut mal sehen ob ich die auftreiben kann


___________________________



Lothar Miller schrieb:
>> *am GND hängt mein Messwiderstand (Standard 1 Ohm leider noch kein
>> Shunt)
> Du versorgst extra die Vccint und misst dann an der gemeinsamen Masse
> aller Versorgungsspannungen?

Ich hab meinen Messaufbau hinzugefügt ich hoff das ist so korrekt wie 
ich mir das vorstelle

LG

von Fpgakuechle K. (Gast)


Lesenswert?

wuba schrieb:

> *externe Spannungsersorgung mit einer relativ präzisen Quelle (1,25
> Volt) für die intere Logic Versorgung am FPGA

Die DCM's hängen IMHO an der Vccaux-rail (2V5),  und nicht an Vcccore.

Vielleicht ist das die Ursache das der Takt nicht gut zu sehen ist.

Meines Erachtens ist die Erfolgswahrscheinlichkeit eines Angriffs mit 
EM-probe höher als über die Leistungsaufnahme. Siehe auch 
http://etrij.etri.re.kr/etrij/journal/getPublishedPaperFile.do?fileId=SPF-1207280140665

MfG,

von wuba (Gast)


Lesenswert?

Fpga Kuechle schrieb:
> wuba schrieb:
>
>> *externe Spannungsersorgung mit einer relativ präzisen Quelle (1,25
>> Volt) für die intere Logic Versorgung am FPGA
>
> Die DCM's hängen IMHO an der Vccaux-rail (2V5),  und nicht an Vcccore.
>
> Vielleicht ist das die Ursache das der Takt nicht gut zu sehen ist.
>
> Meines Erachtens ist die Erfolgswahrscheinlichkeit eines Angriffs mit
> EM-probe höher als über die Leistungsaufnahme. Siehe auch
> http://etrij.etri.re.kr/etrij/journal/getPublished...
>
> MfG,


Hallo Kuechle

Ok das könnte ein Grund sein, dachte mir nur das ich das deutlicher im 
Verlauf sehe wenn die Register zum Takt durchschalten (der CMOS wird ja 
dann kurz niederohmig)

Hab auch versucht einen kleinen  Kondensator parallel zu meinem 
Mess-Widerstand zu setzen um den Effekt zu verlängern leider auch kein 
Ergebnis

von Achim S. (Gast)


Lesenswert?

wuba schrieb:
> Ich hab meinen Messaufbau hinzugefügt ich hoff das ist so korrekt wie
> ich mir das vorstelle

Danke. Mir ist noch etwas unklar, wie "Standard Netzteil" und 
"Spannungsversorgung" zusammen hängen. Hast du den DCDC, der 
normalerweise die 1,2V erzeugt, abgetrennt?


wuba schrieb:
> Also ich habe bereits alle Kapazitäten am Board entfernt die direkt an
> 1V2 liegen bzw an VCCINT (bestimmt an die 30)
> Der FPGA rennt noch immer einwandfrei :)

Heftig. Ich hab in Schematic des boards rund 45 Puffercaps an 1,2V 
gefunden, davon 28 direkt beim FPGA. Vielleicht hast du noch einzelne 
Kondendsatoren übersehen?

wuba schrieb:
> Muss leider meine verfügbare Probe auf GND legen sonst bau ich mir einen
> Kurzschluss mit dem Computer über USB

Ja, deshalb der Hinweis, dass eine differential-probe vorteilhaft sein 
könnte.

wuba schrieb:
> Dh einfach meine Widerstand weg und mal direkt VCCInt messen?

Ja, aber nicht weit weg vom FPGA messen sondern möglichst nahe dran, 
dort wo du die Puffercaps weggelötet hast. Den Masseanschluss deiner 
single ended probe direkt daneben (GND-Anschluss des losgelöteten 
Puffer-caps). Beim Strompuls siehst du dann hoffentlich einen 
Spannungseinbruch an der Leiterbahninduktivität. Der genaue Wert des 
induktiven Widerstands ist zwar unbekannt, aber für Vergleichsmessungen 
(viel Schalten - wenig Schalten) könnte es vielleicht reichen. Wobei der 
Artikel ovn FPGA-Kuechle zeigt, dass die simple Betrachtung ("wie viele 
FF schalten in Takt x") höchstens der Anfangspunkt für eine sidechannel 
Analyse ist.

von hunz (Gast)


Lesenswert?

Ohne Diffprobe kann man auch hi-side messen, nämlich AC-coupled. Dann 
kann man auch wieder mehr Verstärkung nehmen. Wenn die Probe keinen 
AC-Aufsatz hat einfach mal 100nF reinhängen. Deine Spannungsquelle 
sollte aber so stabil und rauscharm wie möglich sein, weil du die 
Störungen der Quelle genauso mitmißt.

von meckerziege (Gast)


Lesenswert?

Kannst du das FPGA auch mal testweise langsamer laufen lassen?
Lade auch mal ein Programm drauf, welches in jedem Takt möglichst viele 
Register umschalten lässt.
Dann kannst du schonmal eingrenzen an was as liegt.
Ansonsten kannst du auch mal deinen Shunt größer machen. Ob das ein 
Kohlewiderstand ist, das ist erstmal nicht wichtig.

Versuche auch mal an VCC mit AC Kopplung zu messen, nicht dass der Strom 
irgendwo anders abhaut bei GND.

Man kann übrigens durchaus side-channel analyses mit Shunt machen. 
EM-Probe kann zwar besser sein, aber auch so kann es funktionieren. 
Zumindest nen AES (ohne Schutzmaßnahmen) auf nem Atmega kann man so 
knacken.

von wuba (Gast)


Lesenswert?

Hallo Leute :)

Achim S. schrieb:
> wuba schrieb:
>> Ich hab meinen Messaufbau hinzugefügt ich hoff das ist so korrekt wie
>> ich mir das vorstelle
>
> Danke. Mir ist noch etwas unklar, wie "Standard Netzteil" und
> "Spannungsversorgung" zusammen hängen. Hast du den DCDC, der
> normalerweise die 1,2V erzeugt, abgetrennt?

Ja genau so ist es.
Laut 
schematic(http://www.digilentinc.com/Data/Products/ATLYS/Atlys_C2_sch.pdf) 
habe ich einfach den JTAG Messwiderstand 0.01 Ohm (R274) ausgelötet und 
mit meiner Versorgung ersetzt



> wuba schrieb:
>> Also ich habe bereits alle Kapazitäten am Board entfernt die direkt an
>> 1V2 liegen bzw an VCCINT (bestimmt an die 30)
>> Der FPGA rennt noch immer einwandfrei :)
>
> Heftig. Ich hab in Schematic des boards rund 45 Puffercaps an 1,2V
> gefunden, davon 28 direkt beim FPGA. Vielleicht hast du noch einzelne
> Kondendsatoren übersehen?

28 Kondensatoren vor dem FPGA und 12 am Ethernet IC sowie 3 sonstige die 
an dieser Versorgungsleitung hängen sind bereits Geschichte :)



> wuba schrieb:
>> Muss leider meine verfügbare Probe auf GND legen sonst bau ich mir einen
>> Kurzschluss mit dem Computer über USB
>
> Ja, deshalb der Hinweis, dass eine differential-probe vorteilhaft sein
> könnte.

Ja wie gesagt zurzeit habe ich nur diesen "primitiven" Tastkopf
(2x  ZS1000) zur Verfügung



> wuba schrieb:
>> Dh einfach meine Widerstand weg und mal direkt VCCInt messen?
>
> Ja, aber nicht weit weg vom FPGA messen sondern möglichst nahe dran,
> dort wo du die Puffercaps weggelötet hast. Den Masseanschluss deiner
> single ended probe direkt daneben (GND-Anschluss des losgelöteten
> Puffer-caps). Beim Strompuls siehst du dann hoffentlich einen
> Spannungseinbruch an der Leiterbahninduktivität. Der genaue Wert des
> induktiven Widerstands ist zwar unbekannt, aber für Vergleichsmessungen
> (viel Schalten - wenig Schalten) könnte es vielleicht reichen. Wobei der
> Artikel ovn FPGA-Kuechle zeigt, dass die simple Betrachtung ("wie viele
> FF schalten in Takt x") höchstens der Anfangspunkt für eine sidechannel
> Analyse ist.

Für meine Anwendung muss ich nicht die genauen Schaltvorgänge kennen, es 
reicht ein ungefähr

sowas in die Richtung wäre mein Ziel:
http://www.cosic.esat.kuleuven.be/publications/article-17.pdf?origin=publication_detail

hunz schrieb:
> Ohne Diffprobe kann man auch hi-side messen, nämlich AC-coupled.
> Dann
> kann man auch wieder mehr Verstärkung nehmen. Wenn die Probe keinen
> AC-Aufsatz hat einfach mal 100nF reinhängen. Deine Spannungsquelle
> sollte aber so stabil und rauscharm wie möglich sein, weil du die
> Störungen der Quelle genauso mitmißt.

Wenn das mein Oszi kann werd ich meinen Messwiderstand umlöten :)

meckerziege schrieb:
> Kannst du das FPGA auch mal testweise langsamer laufen lassen?
> Lade auch mal ein Programm drauf, welches in jedem Takt möglichst viele
> Register umschalten lässt.
> Dann kannst du schonmal eingrenzen an was as liegt.
> Ansonsten kannst du auch mal deinen Shunt größer machen. Ob das ein
> Kohlewiderstand ist, das ist erstmal nicht wichtig.

Das "langsamer" laufen habe ich mit meinem ucf file versucht 
einzustellen leider erfolglos :(
hab es dann mit nen Zähler umgesetzt der den Takt dividiert -> das hat 
keine Verbesserungen gebracht....

bis jetzt habe ich nur versucht ein Programm das ständig 64 Bits von 
0000.. auf FFFF.. schaltet werde aber bei der nächsten Gelegenheit ein 
Programm schreiben, dass auf mehr Bits zugreift.


Komme leider erst wieder am Mittwoch in das Labor werde euch aber wenn 
es neue Erkenntnisse gibt informieren :). Und ein aktuelles FFT und 
Signal mitnehmen

Danke für den Input. Solltete euch noch etwas einfallen gerne her damit!

Einen schönen Sonntag Abend
ich

von Gustl B. (-gb-)


Lesenswert?

64 bits in einem FPGA sind sogar ziemlich wenig.

von 123abc (Gast)


Lesenswert?

Gustl Buheitel schrieb:
> 64 bits in einem FPGA sind sogar ziemlich wenig.

das geht im Rauschen unter ... zumal hier nur die interne Logik 
schaltet. Da sind es grad mal ein paar fA-pA (geschätzt)

von Lattice User (Gast)


Lesenswert?

Gustl Buheitel schrieb:
> 64 bits in einem FPGA sind sogar ziemlich wenig.

Der FPGA auf dem Board hat fast 1000 mal so viel.
Ausserdem wtte ich, dass der Synthesyser diese 64 auch noch weg 
optimiert hat, da nicht weiter verwendet.

Sobald das Ding etwas nenenswertes tut, wird sich rächen dass man alle 
Caps entfernt hat.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

wuba schrieb:
> bis jetzt habe ich nur versucht ein Programm das ständig 64 Bits von
> 0000.. auf FFFF.. schaltet werde aber bei der nächsten Gelegenheit ein
> Programm schreiben, dass auf mehr Bits zugreift.
Da würde ich aber auch genau hinschauen, ob die auch tatsächlich 
implementiert wurden. Oder ob da (wenn überhaupt) evtl. nur noch 1 FF 
vor sich hin toggelt.

Ich würde da eine Registerkette verwenden, und auf die dann das keep 
Attribut ansetzen. So ähnlich wie dort mit dem Ringoszillator, nur eben 
mit einem Takt am Ketteneingang:
http://www.lothar-miller.de/s9y/categories/29-Ringoszillator


> ein Programm
Soso...

von wuba (Gast)


Lesenswert?

Lothar Miller schrieb:
> wuba schrieb:
>> bis jetzt habe ich nur versucht ein Programm das ständig 64 Bits von
>> 0000.. auf FFFF.. schaltet werde aber bei der nächsten Gelegenheit ein
>> Programm schreiben, dass auf mehr Bits zugreift.
> Da würde ich aber auch genau hinschauen, ob die auch tatsächlich
> implementiert wurden. Oder ob da (wenn überhaupt) evtl. nur noch 1 FF
> vor sich hin toggelt.
>
> Ich würde da eine Registerkette verwenden, und auf die dann das keep
> Attribut ansetzen. So ähnlich wie dort mit dem Ringoszillator, nur eben
> mit einem Takt am Ketteneingang:
> http://www.lothar-miller.de/s9y/categories/29-Ringoszillator
>
>> ein Programm
> Soso...

Ich schreibe sie extern über die UART rein und lese die Daten wieder aus
um dieses weg optimieren zu verhindern.

Werde die Anzahl der Flip Flops vergrößern... Danke

bin schon sehr gespannt

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

wuba schrieb:
> Ich schreibe sie extern über die UART rein und lese die Daten wieder aus
> um dieses weg optimieren zu verhindern.
OK, wenn der Synthesizer nichts davon weiß, dass da lauter Einsen 
reingeschreiben werden, kann da auch nichts optimiert werden...

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.