Abo
  • Services:

Die Auswertung wird beschleunigt

Ich bringe die Abende einer Woche damit zu, mehr über MyHDL zu lernen und meine Zähler zu verbessern. Ich will die Flanken an allen Pins gleichzeitig zählen können, aber dafür muss ich die Menge an verwendeten Logikbausteinen zum Zählen reduzieren. Ich finde heraus, dass 180 Counter in den FPGA passen würden, wenn ich die Extraregister für die Gray-Encodierung weglassen und die Zählergröße auf 10 Bits reduzieren würde. Aber mit 10 Bits kann ich nur bis 1023 zählen, betrug die Frequenz an einem Pin 1 MHz, würde der Zähler innerhalb einer Millisekunde überlaufen. Das ist zu schnell, um sie über den SoC auszulesen.

Stellenmarkt
  1. BWI GmbH, Nürnberg, Bonn, Köln, Strausberg, München
  2. BWI GmbH, Bonn, Meckenheim

So entscheide ich mich letztlich für ein hybrides Zählerdesign, bei dem 180 Zähler mit je 10 Bit Kapazität zur Anwendung kommen. Jeder Zähler wird vom Signal seines Pins getaktet und zählt direkt in Gray-Code. Ein Zähler, der direkt in Gray-Code zählt, ist nicht so schnell zu takten wie ein binärer Zähler, aber er erfordert weniger FPGA-Resourcen - wobei ich mir dabei nicht ganz sicher bin.

Da die 10-Bit-Zähler schnell überlaufen, füge ich eine periodisch aufgerufene Schaltung im FPGA ein, der jeden Zähler regelmäßig ausliest und bei einem Überlauf einen zugehörigen 32-Bit-Zähler im RAM entsprechend erhöht. Wenn die 180 Zähler jeweils bis 1023 zählen und dabei regelmäßig ausgelesen werden, wobei das Auslesen vom 50-Mhz-Takt vorgegeben wird, sollte ich jedes Signal mit einer maximalen Frequenz von 1024 * 50 /180 = 284 MHz pro Pin erfassen können. Vorausgesetzt, die Gray-Zähler packen das.

Tausende von Flanken werden gezählt

Das Ergebnis dieses Aufwandes ist in dieser Übersicht zu sehen, dabei wird die Anzahl der aufsteigenden Flanken an jedem Pin und dessen aktueller Zustand angezeigt.

  0  C4       0 ^  A4       0 ^  B5       0 ^  A5       0 ^  D5       0 ^
  5  C5       0 ^  B6       0 ^  A6       0 ^  F7       0 ^  E6   17.3k ^
 10  C7       0 ^  A7       0 ^  D6       0 ^  C6       0 ^  B8       0 ^
 15  A8       0 ^  C9       0 ^  A9       0 ^  B10      0 v  A10      0 ^
 20  E7  126.7M v  E8  126.7M v  E10      0 ^  C10  10.0M v  D8       0 v
 25  C8       0 ^  C11      0 ^  A11      0 v  F9       0 v  D9       0 v
 30  B12      0 v  A12      0 ^  C13      0 v  A13      0 ^  F10      0 v
 35  E11      0 ^  B14      0 ^  A14      0 v  D11      0 v  D12      0 ^
 40  E13      0 v  E12      0 ^  B15      0 v  B16      0 ^  F12      0 ^
 45  G11      0 v  D14      0 ^  D16      0 v  F13      0 ^  F14      0 v
 50  C15      0 v  C16      0 ^  E15      0 v  E16      0 ^  F15      0 v
 55  F16      0 ^  G14      0 v  G16      0 ^  H15      0 ^  H16      0 v
 60  G12      0 ^  H11      0 v  H13      0 v  H14      0 ^  J11      0 v
 65  J12      0 ^  J13      0 v  K14      0 ^  K12      0 v  K11      0 ^
 70  J14      0 v  J16      0 ^  K15      0 v  K16      0 ^  N14      0 ^
 75  N16      0 v  M15      0 v  M16      0 ^  L14      0 ^  L16      0 v
 80  P15      0 v  P16      0 ^  R15      0 v  R16      0 ^  R14      0 v
 85  T15      0 ^  T14      0 ^  T13      0 v  R12  17.3k ^  T12      0 ^
 90  L12      0 v  L13      0 ^  M13      0 v  M14      0 ^  T11      0 ^
 95  M12   1.8M v  M11 722.9k v  T10 210.2k ^  N12 104.0k v  P12 977.8k ^
100  N11      0 ^  P11 210.2k ^  N9    3.4M ^  P9  719.6k v  L10 976.7k ^
105  M10      0 ^  R9   13.8M ^  T9   27.3M v  M9  545.1k v  N8  694.1k v
110  P8  807.9k ^  T8  494.4k ^  P7  133.3M ^  M7  133.3M ^  R7  180.8k ^
115  T7  713.9k v  P6  458.5k ^  T6  828.5k v  R5    2.0M v  T5       0 ^
120  N5    1.1M ^  P5    1.9M v  L8  959.5k ^  L7    1.1M v  P4  647.2k v
125  T4    1.2M v  M6   27.3M v  N6    1.6M v  T3    1.1M v  M4  996.0k v
130  M3       0 ^  M5    2.0M v  N4    1.8M v  R2       0 v  R1       0 v
135  P2       0 v  P1       0 v  N3       0 v  N1       0 v  M2       0 v
140  M1       0 v  L3       0 v  L1       0 v  K2       0 v  K1       0 v
145  J3       0 v  J1       0 v  H2       0 v  H1       0 v  G3       0 v
150  G1       0 v  F2       0 v  F1       0 v  K3       0 v  J4       0 v
155  J6       0 v  H5       0 v  H4       0 v  H3       0 v  L4       0 v
160  L5       0 v  E2       0 v  E1       0 v  K5       0 v  K6       0 v
165  C3       0 v  C2       0 v  D3       0 v  D1       0 v  C1       0 v
170  B1  128.4k ^  G6       0 v  G5       0 v  B2       0 v  A2       0 v
175  F4    6.8M ^  F3       0 v  E4  971.0k ^  E3       0 v  F6  115.4k v
180  F5    1.0M v  B3  972.3k ^  A3       0 ^

Wow! Da passiert jede Menge, obwohl der FPGA eigentlich nichts tut. Es gibt einiges Interessante zu entdecken.

Pin C10m in der Zeile mit der 20 am Anfang wird 20 Millionen Mal pro Sekunde geschaltet. Mit ein wenig Glück ist das der 10-MHz-Referenztakt des Kristallquarzes (U98). Pins E7 und E8 schalten mit einem Takt von 126 MHz. Laut dem FPGA-Datenblatt können diese Pins zur symmetrischen Digitalübertragung benutzt werden und dienen auch als globaler Taktgeber für den FPGA. Wahrscheinlich handelt es sich um ein weiteres Taktsignal von einem anderen Bauteil des Oszilloskops.

Die Pins M7 und R7 scheinen ebenfalls ein symmetrisches Taktsignal für den FPGA zu sein und mit 133 MHz zu takten. Diese Pins in Pin-Bank 2 scheinen auch häufig geschaltet zu werden.

Unangenehme Überraschung

Wo habe ich die 133 MHz schonmal gesehen? In der Ausgabe des Linux-Kernels, wenn er die Taktgeschwindigkeiten ausgibt:

CPU: MPLL on 800.000 MHz, cpu 400.000 MHz, mem 133.333 MHz

Was? Wollt ihr mich verar***en? Was haben die Ingenieure geraucht, als sie sich das ausgedacht haben?

Sie benutzen das Bussystem für den DDR-Speicher als Highspeed-Verbindung zwischen den SoC und den FPGA. Anscheinend haben sie den FPGA so programmiert, dass er als DDR2-Speicher fungiert. Ernsthaft: Es gibt am SoC ein Bussystem, das mit dem Flash-Speicher verbunden ist und als Erweiterungsbus konzipiert wurde. Dieser Erweiterungsbus unterstützt sogar DMA (Direct Memory Access). Damit kann ein Gerät auf dem Bus Daten direkt in den Speicher des SoC kopieren, ohne die CPU zu nutzen. Warum sollte jemand so etwas Närrisches tun und den DDR-Speicherbus als Erweiterungsbus nutzen? Aber offensichtlich haben sie es getan, und die ganzen Signalwechsel in den Pin-Bänken 2 und 3 sind die Pins des Speicherbusses. Das erklärt auch, warum die Aktivierung der Pull-up-Widerstände an den FPGA-Pins des Linux zum Absturz brachte. Die Widerstände nahmen Einfluss auf den Speicherbus und verfälschten die Daten im Speicher.

Das würde alles noch einmal komplizierter machen.

Auch wenn das erst einmal ein Showstopper ist, setze ich meine Analysen fort. Es sollte trotzdem möglich sein, die anderen Komponenten zum Laufen zu bekommen und ein elektrisches Signal über das Analog-Frontend einzulesen und über die Konfigurationsleitung zum SoC zu übertragen. Ein ordentliches Oszilloskop unter Linux lässt sich so allerdings nicht ohne Weiteres realisieren.

Im letzten Teil der Artikelserie wird es Christer Weinigel schließlich gelingen, die vom Oszilloskop gemessenen Signalwerte auszuwerten und darzustellen.

Christer Weinigel ist freiberuflicher Ingenieur in seinem eigenen Unternehmen (Weinigel Ingenjörsbyrå AB). Er entwickelt hardwarenahe Software, arbeitet mit Embedded Betriebssystemen und spielt deshalb auch öfters direkt mit Hardware.

Diese Artikelserie erschien zuerst in seinem Blog. Mit seiner Erlaubnis hat Golem.de seine Artikel ins Deutsche übersetzt und dabei einige Kürzungen und Ergänzungen vorgenommen, damit der Inhalt auch Einsteigern verständlich ist.

 Hello World
  1.  
  2. 1
  3. 2
  4. 3


Anzeige
Hardware-Angebote
  1. 469€ + Versand (Bestpreis!)
  2. und Assassins Creed Odyssey, Strange Brigade und Star Control Origins kostenlos dazu erhalten
  3. 164,90€ + Versand
  4. 119,90€

Lasse Bierstrom 26. Nov 2016

Einsynchronisieren ist quasi im hello World für FPGA's mit drin. Alles andere ist (bis...

Lasse Bierstrom 26. Nov 2016

Wenn es um Oszilloskope geht wird idR kräftig in der Trickkiste gerührt. Schneller...

x-beliebig 25. Nov 2016

wir haben die Erfahrung gemacht, dass es Softwareleute gibt, die durchaus meinen, man...

tunnelblick 25. Nov 2016

was vielen nicht klar ist: ein fpga ist inhärent echtzeitfähig.

tunnelblick 25. Nov 2016

das ist so nicht ganz richtig. die synthese verwandet hdl-code in eine netzliste. diese...


Folgen Sie uns
       


Octopath Traveler - Livestream

Im Livestream zu Octopath Traveler erklären wir den Alltag im JRPG von Square Enix und Nintendo und verfallen später in eine Diskussion über Motivationsphilosophien in Games und das Genre allgemein.

Octopath Traveler - Livestream Video aufrufen
Elektromobilität: Regierung bremst bei Anspruch auf private Ladesäulen
Elektromobilität
Regierung bremst bei Anspruch auf private Ladesäulen

Die Anschaffung eines Elektroautos scheitert häufig an der fehlenden Lademöglichkeit am heimischen Parkplatz. Doch die Bundesregierung will vorerst keinen eigenen Gesetzesentwurf für einen Anspruch von Wohnungseigentümern und Mietern vorlegen.
Ein Bericht von Friedhelm Greis

  1. TU Graz Der Roboter als E-Tankwart
  2. WLTP VW kann Elektro- und Hybridautos 2018 nicht mehr verkaufen
  3. Elektroautos Daimler-Betriebsrat will Akkuzellen aus Europa

Russische Agenten angeklagt: Mit Bitcoin und CCleaner gegen Hillary Clinton
Russische Agenten angeklagt
Mit Bitcoin und CCleaner gegen Hillary Clinton

Die US-Justiz hat zwölf russische Agenten wegen des Hacks im US-Präsidentschaftswahlkampf angeklagt. Die Anklageschrift nennt viele technische Details und erhebt auch Vorwürfe gegen das Enthüllungsportal Wikileaks.

  1. Fancy Bear Microsoft verhindert neue Phishing-Angriffe auf US-Politiker
  2. Nach Gipfeltreffen Trump glaubt Putin mehr als US-Geheimdiensten
  3. US Space Force Planlos im Weltraum

Matebook X Pro im Test: Huaweis zweites Notebook ist klasse
Matebook X Pro im Test
Huaweis zweites Notebook ist klasse

Mit dem Matebook X Pro veröffentlicht Huawei sein zweites Ultrabook. Das schlanke Gerät überzeugt durch ein gutes Display, flotte Hardware samt dedizierter Grafikeinheit, clevere Kühlung und sinnvolle Anschlüsse. Nur die eigenwillig positionierte Webcam halten wir für fragwürdig.
Ein Test von Marc Sauter

  1. Android Huawei stellt zwei neue Tablets mit 10-Zoll-Displays vor
  2. Smartphones Huawei will Ende 2019 Nummer 1 werden
  3. Handelskrieg Huawei-Chef kritisiert Rückständigkeit in den USA

    •  /