Montag, 3. Juni 2019

OSICs - Open Source Integrated Circuits

In der sechsten Folge der Kurzschluss Junkies habe ich mit Basti und Chris über FPGA- und
ASIC-Entwicklungen gesprochen. In dieser Beitragsreihe möchte ich Open Source Software zur IC-Enticklung vorstellen und auf deren Fähigkeiten, bzw. Möglichkeiten eingehen.

Ein Beispiel, dass mit freier Software ein IC erstellt werden kann, ist die Realisierung eines auf einem RISC-V basierenden SoCs. Der verwendete Softcore ist der PicoRV32 in einem QFN-48 Package der mit ADCs, DACs und einer seriellen Schnittstelle (SPI) erweitert und bei efabless gefertigt wurde.
Die Toolchain die dafür hauptsächlich verwendet wurde heißt Qflow und verbindet Tools zur Synthese, Logikminimierung, Placement und Routing von Standardzellen-Logik. Die Firma efabless bietet die Möglichkeit eigene Designs zu realiserun und hostet eine Toolchain die selbst teilweise auf Qflow basiert.

Der Hauptentwickler von Qflow heißt Tim Edwards und dieser hat bei eeweb.com ein Interview gegeben in dem er seine Arbeit und Philosophie zur freien Software für den Chip Entwurf vorstellt und erklärt. Der Aufbau von Qflow ist auf opencircuitdesign.com in Detail beschrieben, dennoch möchte ich nachfolgend einen kurzen Abriss über die wichtigsten Elemente der eingebundenen Software geben.

Qflow nutzt zur Synthese yosys, eine offene Synthessuite für FPGAs und ASICS, die von Clifford Wolf entwickelt wurde. Diese synthetisiert Verilog Designs und bietet - bei vorhandener Bibliothek - nicht nur eine Logikminimierung an, sondern auch ein Mapping auf Standardzellen. Die Logikminimierung erfolgt mittels abc, einem Tool das bei der Universität von Berkley entwickelt wurde und auch eine Verifikation von Logikschaltungen zur Verfügung stellt. Die Stärke von yosys liegt in den implementierten Durchläufen zur Synthese und Verifikation. Diese können je nach Anforderung adaptiert werden um so die Optimierungdurchläufe auf mögliche Besonderheiten anzupassen. Solche Besonderheiten können zum Beispiel der Standardzellenbibliothek des Herstellers geschuldet sein.
Eine weitere Stärke ist die Möglichkeit yosys über Skripte bedienen zu können.

Die Platzierung erfolgt mit graywolf, einem Tool das mittels Simulated Annealing Standardzellen plaziert. graywolf ist ein Fork des mittlerweile kommerziellen Tools Timberwolf, das für eine Lizenz einen Preis von 50k USD ausruft und in Yale entwickelt wurde.

Qrouter schließlich verbindet die Standardzellen mittels dem Lee-Algorithmus und unterstütz bis zu sechs Metalllagen. Damit lassen sich, wie das Beispiel des RISC-V basierenden SoCs zeigt, recht komplexe und große Designs realiseren.
Abgerundet wird die Toolchain mit einem LVS-Checker (netgen) swoie einem Layout-Editor mit der Fähigkeit zum DRC (magic).

Die größten limitierenden Faktoren stellen letztlich die Bauteilbibliothek und die Zieltechnologie dar. Die Bauteilbibliothek insofern, als dass diese von den einzelnen Halbleiterherstellern i.d.R. gekauft werden muss und die Zieltechnologie dahingehend, dass es eine Sache ist, ein Design mit einer 120nm-Struktur oder größer zu realisieren oder 90nm und kleiner. Die Hauptschwierigkeit stellt hier die Abschätzung der Laufzeitverzögerungen dar. Wer sich aber einfach für Chip-Entwicklung, Algorithmen und DIY-Realisierungen mit offenen (beispielhaften) Bibliotheken interessiert, oder gar mit einem Start-Up/kleinem Unternehmen Chips realiseren möchte, bekommt mit diesen Projekten einen wunderbaren Einstieg und nützliche Software an die Hand mit der wirklich etwas realisiert werden kann. Dank Quelloffenheit können diese Programme sogar angepasst und erweitert werden.

Abschließend möchte ich erwähnen, dass diese Projekte nicht nur einen tiefgehenden Einblick in die Herausforderungen für CAE-Tools zur Realisierung von integrierten Schaltungen bietet, sondern auch exzellente Beispiele für gut implementierten und dokumentierten Code sind (überwiegend C und C++).

In weiteren Beiträgen möchte ich die erwähnten Algorithmen genauer vorstellen, sowie weitere freie Software für den Chip-Entwurf sowie eine freie, erweiterbare Suite für Xilinx FPGAs. Auch kleine Tutorials und Anleitungen zur Nutzung der Software sind angedacht.
Schreibt, kommentiert, diskutiert und abonniert den Podcast!

Links:

Dienstag, 21. Mai 2019

Knöpfchen mal in klein

Es wird ein Evalboard geben, auf Basis des STM8L151 Mikrocontrollers.
Geplant ist später die Firmware mittels dem UART Bootloader von ST hoch zu laden. Es wird also kein zusätzlicher Programmer benötigt. Nichts desto trotz sind die Signale SWIM und NRST, sowie 3V3 und GND Lötpads geführt. Man weiß ja nie ;)

Das Board wird follgende Schnittstellen haben:
  • Cap-Touch (16 Button)
  • RGB OneWire LED
  • UART mittels micro USB
  • IR-UART
  • 3Dig 7Seg (Diskret)
Der Schaltplan sowie das Layout sind bereits fertig. Bei den Cap-Touch-Tasten muss darauf geachtet werden, welcher Typ des STM8L151 verwendet wird. Abhängig vom Typ ändert sich die Density Angabe und es können mehr oder weniger Tasten realisiert werden. Das findet man am schnellsten im UM1606 von ST auf Seite 54. Vermutlich wird das restliche Die für den Flash benötigt, da ST eine Cap-Touch Hardwareunit hat. WICHTIG: Sollte nachträglich mehr Flash benötigt werden muss dass vorher bei der Tastenzuweisung berücksichtigt werden.


Als Knöpfchen sollen SK6812 LEDs verwendet werden. Diese LED ist ähnlich der WS2812, die SK6812 ist aber reflow-tauglich, zumindest laut Datenblatt.
Der IR-UART kann rein theoretisch auch zum Firmwaredownload verwendet werden. Dies wollen wir auf jeden Fall auch überprüfen.

Da eine 7-Segment Anzeige kostspielig ist, wurde eine "diskrete" 7Seg Anzeige realisiert. Wir werden sehen, wie gut diese ablesbar ist. Sollte es zu schlecht sein, wurde ein "Heissklebe- bzw. Silikonrahmen" in das Layout integriert. Evtl, ist es möglich dieses Stück FBG als Maske zu nutzen.

Ein weiteres Feature ist, dass die Anzeige nicht einfach ein flacher Teil der FBG ist, sondern als "Aufsteller" an die FBG stirnseitig angelötet werden kann. Mal sehen wie gut das Alles so funktioniert.


Kurzschluss Junkies [0x0c]: Knöpfchen in klein

Feedback:

Danke für den Wera-Flaschenöffner von einem anonymen Spender.
Herzi, viel Spaß mit dem MP1 Evalboard von ST.

Kleine Vorstellung von Chris:

Realschule -> Azubi -> Fachabitur -> Studium -> Entwickler mit Leib und Seele
Hier der versprochene Steam Link und der Code: SB5HW-HQAA

Geschenke Geschenke:

Basti hat einen Echo Dot bekommen für seinen Alexa Skill: Was würde Rolf Sagen?

Aus Fehlern lernen:

Heißt ab sofort: Common-Sense-Tipps:
Wenn mehrere Spannungen zur Versorgung eines Boards verwendet werden, dann sollte das Board diese Spannungen an allen Eingängen abkönnen. Beispielsweise können Transzorb-Dioden eingesetzt werden, die sollten aber nicht dauerhaft belastet werden, sonst werden sie warm und gehen kaputt. Gedacht sind die für einen Spannungspuls und nicht für Dauerhafte Überspannung. Ein 'Feldversuch' hat gezeigt, dass auch ein Raspberry Pi zwei Wochen mit 12V laufen könnte.

Nerds halt:

Verpackungsmaterial ist sehr Interessant. Vor Allem das Material auf dem fremde Leiterplatten gebohrt werden. Das wird zum Beispiel als Schutz beim Versand von Lötpasten Schablonen verwendet.

Pick and Place:

Wir haben unsere erste Platine bestückt. Die Lösung der Probleme vom vorherigen Versuch war den Kompressor mit genug Druck zu betreiben. So hatte die Maschine konstanten Arbeitsdruck. Außerdem haben sich die Gurtabschnitte im Feeder verklemmt. Ab sofort werden nur noch Rollen geordert.

Wieder neues Projekt:

Chris hatte schon erzählt, dass er 50 STM8L Mikrocontroller gefunden hat. Basti hatte die Idee daraus ein Evalboard auf Basis des Knöpfchenspiels zu entwickeln. Dieser werden wir evtl. auch verlosen, verkaufen oder ähnliches. Ein Blogpost dazu folgt. Es wird das Knöpfchenspiel in klein mit einer IR-UART Kommunikation und diversen Extras.

Zur Info:

Chris baut sich einen Home-Server auf. Dieser solle eine doppelter Redundanz der Daten bsitzen und hat daher 4 Festplatten. Dabei läuft ein Dauerversuch, der WD Red mit Seagate Ironwolf vergleicht. Chris setzt aber auf die allseits bekannte Mediamax und WD Green. Wenn die erste Platte ausfällt, haben wir einen Verlierer gefunden.

Chip der Woche:

Diesmal kein neuer, aber Basti kann jetzt endlich Gehen, Radfahren und Laufen unterscheiden, da das PC-Interface Board für den LSM6DSOX angekommen ist. Jetzt hat er eine Lösung, kennt aber das Problem noch nicht.