Abo
  • Services:
Anzeige
Schaltbild des Panels
Schaltbild des Panels (Bild: Christer Weinigel)

Den echten DDR-Bus identifizieren

Am FPGA ist ein echter DDR-Speicherbaustein angeschlossen. Ich hoffe, dass die Hardware-Ingenieure dafür die gleiche Pin-Belegung verwendet haben, wie sie Xilinx im MIG (Memory-Interface-Generator) vorgeschlagen wird. Ich habe meine Zeichnung entsprechend ergänzt.

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Pins zum RAM (Bild: Christer Weinigel)

Der Speicherbaustein sitzt über dem FPGA auf der Platine, so dass die Pin-Belegung auch hier sinnvoll ist. SSTL kommt erneut als Verbindungsstandard zum Einsatz, der VREF-Pin wird also auch hier mit 0,9 Volt Spannung versorgt.

Anzeige

So weit, so gut, allerdings gibt es hier auch ein Problem.

Wie zu sehen ist, habe ich neun Pins der Bank 3 als unbenutzt markiert. Diese wurden bei meinem Test ständig beschaltet und sind wahrscheinlich Teil des SoC-Busses. Das sollte üblicherweise kein Problem bereiten. Zum Beispiel fungiert der Pin B1 als M3BA2, er dient damit zur Adressierung des Speicherbausteins durch den FPGA-Speichercontroller. Da DDR2-Speicher nur aus zwei Bänken besteht, sind lediglich M3BA0- und M3BA1-Pins erforderlich und M3BA2 verbleibt ungenutzt - die Namen der Pins entstammen der Xilinx-Dokumentation. Beim Pin F4 sollte es sich um den Pin M3CKE (Clock Enable) handeln, der zum entsprechenden Pin des DDR2-Speicherbausteins führt. Es ist aber auch möglich, dass dieser Pin beim Speicherbaustein fest verdrahtet wurde und das Signal nicht durch den FPGA geschaltet wird.

Das große Problem an dieser Stelle ist die Aussage der Xilinix-Dokumentation, dass einer der Pins M4, M5, N4 oder B3 für die RZQ-Kalibrierung benutzt und nicht beschaltet werden sollte. So können Umwelteinflüsse auf die Datenleitungen erkannt und ausgefiltert werden. Das entsprechende Zitat aus der Dokumentation: "The RZQ pin is required and cannot be removed from the design". Aber alle Pins sind mit dem SoC-Bus verbunden. Ich habe nicht genug Erfahrung mit dem MIG-Werkzeug, um eine solche Verschaltung zum Laufen zu bekommen und dabei die Empfehlung von Xilinix zu ignorieren.

Ansonsten sollte es recht einfach sein, mit Hilfe von MIG den Speichercontroller auf dem FPGA zu konfigurieren.

Es fehlt nur noch der ADC-Bus

Es bleibt nun noch ein großer Bus übrig: Er verbindet den FPGA mit dem Analog-Digital-Konverter (ADC). Wenn ich das Oszilloskop normal starte, dann per OpenOCD den SoC neu starte und Linux boote, läuft der ADC normal weiter und dessen Pins liefern weiterhin Signale. Das ist praktisch zur Analyse.

Die ADC-Signale sind symmetrische (differenziale) Signale, und als ich die Frequenzen der Signale an den Pins analysiere, wird deutlich, dass die Frequenzen stets paarweise auftreten und es insgesamt 32 Stück davon gibt. Das entspricht genau meinen Erwartungen. Denn der ADC lieferte 32 symmetrische Signale (zwei Kanäle mit je 2 x 8 Bits).

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Pins zum ADC (Bild: Christer Weinigel)

Der ADC befindet sich auf der Platine unterhalb des FPGA, das Layout ergibt auch hier Sinn.

Diesmal ist alles recht einfach.

Die Signalwechsel des symmetrischen Signals an den Pins E7 und E8 liegt selbst dann an, wenn der ADC ausgeschaltet war. Wahrscheinlich handelt es sich um den Takt, mit dem der ADC über die Pins DCLK+/DCLK- betrieben wurde. Ich starte das Oszilloskop erneut, ändere die horizontale Auflösung der Signaldarstellung und starte erneut Linux. Darüber spiele ich wieder mein FPGA-Image ein und die Frequenz (Häufigkeit) der Signalwechsel an den Pins hat sich geändert. Ich bin mir sicher, es handelt sich um den Sampling-Takt, mit dem der ADC die gemessenen Signale an den angeschlossenen Tastköpfen erfasst.

Als ich später an einigen Pins des ADC herumstochere, führt das ebenfalls zu Schaltvorgängen an den Pins F13 und F14. Ich bin mir nicht sicher, was sie tun. Es könnte sich um die Pins des ADC handeln, die einen Überlauf und einen Kalibrierungsvorgang signalisieren.

Ich weiß nicht direkt, welche symmetrischen Signale am FPGA zu den Datenausgabe-Pins am ADC passen, aber das sollte nicht zu schwer herauszufinden sein. Wenn es mir gelingt, das Analog-Frontend zum Laufen zu bringen und eine Signalquelle anzuschließen, könnte ich den Gain-Wert (Verstärkung) so weit verändern, dass nur das niederwertigste Bit in der Datenausgabe auf dem zugehörigen FPGA-Pin auftaucht. Erhöhe ich dann den Gain-Wert, sollten schrittweise auch die höherwertigen Bits in der Datenausgabe auftauchen. So kann ich herausfinden, welches Pin-Paar welchem Bit entspricht, statt per Brute-Force alles durchzuprobieren. Doch das ist am Ende gar nicht notwendig, wie sich zeigen wird.

 Reverse Engineering: Signale auslesen an bunten PinsDie restlichen FPGA-Pins 

eye home zur Startseite
grslbr 26. Nov 2016

Du bist mit Abstand der coolste Typ auf dieser Erde. Wahrscheinlich wirst du eigentlich...

grslbr 26. Nov 2016

Jo, das Trollen bei Heise war schon mal lustiger. Früher konnte man da sicher sein, mit...



Anzeige

Stellenmarkt
  1. Kardex Produktion Deutschland GmbH, Neuburg an der Kammel
  2. OSRAM GmbH, München
  3. Volkswagen AG, Berlin
  4. THOMAS SABO GmbH & Co. KG, Lauf / Pegnitz


Anzeige
Top-Angebote
  1. 21,49€ (ohne Prime bzw. unter 29€ Einkauf zzgl. 3€ Versand) - Vergleichspreis 28€
  2. 3,99€
  3. 7,99€

Folgen Sie uns
       


  1. Classic Factory

    Elextra, der Elektro-Supersportwagen aus der Schweiz

  2. Docsis 3.1

    AVM arbeitet an 10-GBit/s-Kabelrouter

  3. Upspin

    Google-Angestellte basteln an globalem File-Sharing-System

  4. Apple Park

    Apple bezieht das Raumschiff

  5. Google Cloud Platform

    Tesla-Grafik für maschinelles Lernen verfügbar

  6. Ryzen

    AMDs Achtkern-CPUs sind schneller als erwartet

  7. Deutsche Glasfaser

    Gemeinde erreicht Glasfaser-Quote am letzten Tag

  8. Suchmaschine

    Google macht angepasste Site Search dicht

  9. Hawkspex mobile

    Diese App macht das Smartphone zum Spektrometer

  10. Asus Tinker Board im Test

    Buntes Lotterielos rechnet schnell



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Bundesnetzagentur: Puppenverbot gefährdet das Smart Home und Bastler
Bundesnetzagentur
Puppenverbot gefährdet das Smart Home und Bastler
  1. My Friend Cayla Eltern müssen Puppen ihrer Kinder zerstören
  2. Matoi Imagno Wenn die Holzklötzchen zu dir sprechen
  3. Smart Gurlz Programmieren lernen mit Puppen

Intel C2000: Weiter Unklarheit zur Häufung von NAS-Ausfällen
Intel C2000
Weiter Unklarheit zur Häufung von NAS-Ausfällen
  1. Super Bowl Lady Gaga singt unter einer Flagge aus Drohnen
  2. Lake Crest Intels Terminator-Chip mit Terabyte-Bandbreite
  3. Compute Card Intel plant Rechnermodul mit USB Type C

XPS 13 (9360) im Test: Wieder ein tolles Ultrabook von Dell
XPS 13 (9360) im Test
Wieder ein tolles Ultrabook von Dell
  1. Die Woche im Video Die Selbstzerstörungssequenz ist aktiviert
  2. XPS 13 Convertible im Hands on Dells 2-in-1 ist kompakter und kaum langsamer

  1. Re: bei aller freude...

    ckerazor | 18:23

  2. Re: Klingt komisch/unglaubwürdig

    hackfin | 18:22

  3. Re: Das massive Lobbying lohnt sich anscheinend.

    cicero | 18:21

  4. Re: Die Diskussion kann ich hier nicht...

    JackBauer2k | 18:20

  5. Re: Sehe hier nur Nachteile..

    cruse | 18:18


  1. 18:05

  2. 16:33

  3. 16:23

  4. 16:12

  5. 15:04

  6. 15:01

  7. 14:16

  8. 13:04


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel