Return to Video

36C3 - LibreSilicon's Standard Cell Library (de)

  • 0:00 - 0:21
    36C3 Vorspannmusik
  • 0:21 - 0:25
    Chipforge: Ich weiß nicht, wer von euch
    das alles mitgekriegt hat. Letztes Jahr
  • 0:25 - 0:29
    waren wir hier zu dritt auf der Bühne,
    gleicher Saal und haben unsere
  • 0:29 - 0:34
    LibreSilicon Technologie vorgestellt. Wir
    haben damals schon Testwafer dabeigehabt.
  • 0:34 - 0:40
    Sozusagen. Jetzt das Update. Vorneweg erst
    mal ein Disclaimer. Weil ist 'ne heikle
  • 0:40 - 0:47
    Sache. Okay, das ist jetzt mal so im
    Groben der Überblick, was ich machen will.
  • 0:47 - 0:50
    Also nochmal einen kurzen Abriss zu
    LibreSilicon, wo unser Projekt gerade
  • 0:50 - 0:54
    steht. Und dann würde ich ganz gerne so
    mit den Basics anfangen bei den
  • 0:54 - 1:03
    Standardzellen und mich so langsam
    vorarbeiten. Okay, also das Update: Der
  • 1:03 - 1:09
    Leviathanch hat 2017 einen Lightning Talk
    gehalten und hat gesagt "Wir brauchen
  • 1:09 - 1:15
    irgendwie eine freie Technologie." Ich
    fand das richtig super. Hab mich sofort
  • 1:15 - 1:21
    bei ihm gemeldet. Und wir haben in 2018
    wirklich angefangen, uns da Gedanken zu
  • 1:21 - 1:27
    machen, durchzuwurschteln und haben
    angefangen, wirklich mit einem Micron.
  • 1:27 - 1:34
    Also mit einem "µ" Technologie zu machen.
    Grund für ein µ war, unsere Bewegung
  • 1:34 - 1:38
    dazu, dass es 5-Volt Toleranz - Also man
    kann sozusagen Blüter freundlich damit
  • 1:38 - 1:43
    arbeiten, Maker freundlich. Das ist so die
    Technologie, die noch dokumentiert worden
  • 1:43 - 1:49
    ist. So Ende 70er, Anfang 80er Jahre, wo
    man sozusagen von vorne bis hinten, alles
  • 1:49 - 1:55
    irgendwo in der Literatur noch findet in
    Lehrbüchern. Und so einordnungsmäßig: Das
  • 1:55 - 2:04
    ist dieses etwa so die Generation so vom
    486. Dann haben wir wie gesagt, letztes
  • 2:04 - 2:10
    Jahr hier auf der Bühne die Präsentationen
    gemacht von unserem Testwafer. Was neu
  • 2:10 - 2:17
    hinzugekommen ist seitdem in 2019: Uns ist
    das Geld ausgegangen, um jetzt sozusagen
  • 2:17 - 2:23
    jetzt nochmal ein Jahr den Reinraum zu
    mieten in Hongkong. Es kamen die Unruhen
  • 2:23 - 2:28
    in Hongkong dazu, und die Unruhen haben
    dazu geführt, dass die Uni zugemacht
  • 2:28 - 2:32
    worden ist. Wir gesagt haben: "Wir beenden
    das Semester". Es findet kein Lehrbetrieb
  • 2:32 - 2:37
    mehr statt. Das heißt aber auch: Wir sind
    jetzt erst mal draußen aus dem Reinraum
  • 2:37 - 2:42
    und können sozusagen erst einmal Paperwork
    machen. Es ist ein bisschen ungünstig,
  • 2:42 - 2:48
    unbefriedigend. Deswegen gucken wir nach
    Alternativen. Wenn jemand sozusagen einen
  • 2:48 - 2:53
    Reinraum hat, Zugriff drauf, sagt" Wir
    können es mit einer Maschinenliste
  • 2:53 - 3:01
    abklären, ob das passt und wie weit wir da
    kommen". Wir haben wegen der
  • 3:01 - 3:07
    Geldgeschichte, die meistens auch dranhing
    schon lange eine Gofunding campaign laufen
  • 3:07 - 3:13
    mit bisher einer Einzahlung. Also es ist
    nicht unbedingt so massentauglich, gebe
  • 3:13 - 3:21
    ich zu. Die Links dazu: Also erste
    LibreSilicon, das ist die Projektseite.
  • 3:21 - 3:31
    Dann haben wir bei GitHub die
    Standardzellen drinne. Da findet die
  • 3:31 - 3:36
    Hauptentwicklung statt - das Repository.
    Und unten drunter ist nochmal so eine
  • 3:36 - 3:41
    Wikiseite. Da wollte ich eigentlich alles
    das, was ich heute auch so zum Besten
  • 3:41 - 3:45
    gebe, immer mal wieder dokumentieren, weil
    ich festgestellt habe: In der Ecke
  • 3:45 - 3:56
    existiert sehr, sehr viel Nachholbedarf.
    Da fehlt einfach das Wissen in der Masse.
  • 3:56 - 4:04
    Wenn jemand sozusagen jetzt damit
    rumspielen möchte: "git clone" unter
  • 4:04 - 4:12
    diesem Repository. Können Sie sich
    reinlegen und der Designflow für Chip
  • 4:12 - 4:19
    Design ist im Regelfall so: Einer fängt an
    Code zu schreiben, Verilog, VHDL oder
  • 4:19 - 4:25
    SpinalHDL. Wie auch immer, er testet das
    aus. Also er simuliert es mit einem
  • 4:25 - 4:30
    Simulator, dafür gibt's freie Tools - kein
    Problem. Und versucht es zu verifizieren.
  • 4:30 - 4:37
    Dafür gibts auch Ansätze. Und dann wird
    das Ding so etwas wie 'kompiliert'. Nennt
  • 4:37 - 4:43
    sich in dem Fall aber 'Synthese'. Dafür
    gibt es das 'Yosys' Tool von Clifford. Das
  • 4:43 - 4:47
    kann nicht nur FPGAs. Wenn man ihnen die
    richtige Bibliothek gibt, dann kann es
  • 4:47 - 4:55
    auch ASICs. Was dabei herauskommt, ist
    eine Netzliste. Das heißt so, weil es
  • 4:55 - 5:01
    einfach haufenweise Komponenten enthält:
    UND-Gatter, ODER-Gatter, Flipflops alles
  • 5:01 - 5:07
    Mögliche, was mit dem Code beschrieben
    worden ist und die Verbindungen dazu -
  • 5:07 - 5:13
    also die Drähte dazwischen. Die Zellen
    natürlich, die müssen wir uns erst
  • 5:13 - 5:17
    einfallen lassen. Das ist eigentlich das
    Ziel von dem Talk, euch das Nahe zu
  • 5:17 - 5:24
    bringen. Die Zellen werden platziert im
    Layout. Dafür braucht man sozusagen auch
  • 5:24 - 5:29
    die Layoutinformation, welchen Layer sie
    benutzen, wie sie aufgebaut sind. Das muss
  • 5:29 - 5:35
    alles zusammengepackt werden, und am Ende
    kommt ein GDS II file raus. GDS II ist ein
  • 5:35 - 5:39
    anderes Format. Muss man sich vergleichbar
    vorstellen wie beim PCB Design. Also wenn
  • 5:39 - 5:43
    man ein Board macht das, was hinten als
    'gerber' file dann sozusagen in die
  • 5:43 - 5:50
    Herstellung geht. Das ist halt beim ASIC
    ein GDS II. Damit werden die Masken
  • 5:50 - 5:59
    gemacht und über die Standardzellen wollen
    wir mal reden. Okay, die Ziele für so eine
  • 5:59 - 6:04
    Bibliothek. Wenn man sich ein bisschen
    umguckt, dann sieht man, vielleicht bei
  • 6:04 - 6:09
    GitHub oder woanders, sagen wir mal so,
    Studentenprojekte, die nachgewiesen
  • 6:09 - 6:12
    haben, was ein paar Zellen machen können,
    die in Design flow, mit irgendwelchen
  • 6:12 - 6:18
    kommerziellen Tools. Die Bibliotheken sind
    relativ begrenzt. Einfach, weil der
  • 6:18 - 6:24
    Aufwand dafür groß ist. Eine typische
    Studenten Bibliothek, die hat vielleicht
  • 6:24 - 6:28
    30, 40 Zellen. Das ist aber eine
    Größenordnung, die ist absolut
  • 6:28 - 6:36
    unzureichend für ein richtiges Design. Da
    sind Zellen drinnen, die man sich so als
  • 6:36 - 6:39
    Menschen vorstellen kann. Also die
    typischen Und-Oder-Gatter, vielleicht noch
  • 6:39 - 6:44
    ein XOR, vielleicht noch zwei, drei
    Flipflops, ein paar Ledges. Und das wars
  • 6:44 - 6:53
    im Ganzen. Aber Kombinatorik, also
    Komplexität kann viel, viel größer sein.
  • 6:53 - 7:00
    Kommerzielle Bibliotheken haben 150, 200
    Zellen. Da sind dann auch schon andere
  • 7:00 - 7:03
    Funktionalitäten drin. Also Flipflops zum
    Beispiel gibt's dann auch mit der Scan-
  • 7:03 - 7:09
    Fähigkeit, dass man für Testen in Scan-
    Pfaden lange Ketten zusammenhängen kann.
  • 7:09 - 7:15
    So etwas fehlt bei Standard-Zellen. Das
    würde ich ganz gerne anders lösen. Aber
  • 7:15 - 7:22
    egal. Ziele auch für uns: LibreSilicon,
    wir wollen so wenig Energie wie möglich
  • 7:22 - 7:27
    dabei verbraten. Also wir geben uns Mühe
    beim Prozess schon mit der Isolierung,
  • 7:27 - 7:34
    dass wir keinen Leakage-Strom, also keinen
    Leck-Strom und beim Cell Design auch,
  • 7:34 - 7:39
    indem wir die Transistoren entsprechend
    dimensionieren, dass wir wenig Energie
  • 7:39 - 7:43
    verbraten haben. Weil CMOS, also die
    Technologie die wir anpeilen, die
  • 7:43 - 7:49
    verbraucht Energie beim Schalten. Also
    nicht im statischen Zustand, wenn der
  • 7:49 - 7:54
    Clock zum Beispiel flat wäre, also fest
    liegen würde, also auf 0 oder 1, würde das
  • 7:54 - 8:05
    Ding so gut wie... jetzt ist das Mikro
    weg? Doch, da ist es! Okay, es würde so
  • 8:05 - 8:08
    gut wie gar keinen Strom gebrauchen. Erst
    in dem Augenblick, wenn eine Takt-Flanke
  • 8:08 - 8:13
    kommt und jetzt die Speicherzellen innen
    drin umschalten, also ihren Zustand
  • 8:13 - 8:19
    wechseln. Dann gibt es einen Moment, wo
    die Gatetransistoren beide durchschalten.
  • 8:19 - 8:26
    Und dann wird Strom verbraucht, oder
    Energie. So, wir wollen auch schnelle
  • 8:26 - 8:29
    Zellen haben, so schnell wie geht. Das ist
    ein bisschen konträr zu der Forderung
  • 8:29 - 8:35
    vorhin, weniger Energie. Aber wir können
    die Transistoren ziemlich klein machen und
  • 8:35 - 8:39
    sozusagen den bestmöglichen Kompromiss
    dafür finden. Und wir wollen auch, dass
  • 8:39 - 8:45
    die Zellen klein werden, weil nach
    Herstellung bezahlt man einen Chip nicht
  • 8:45 - 8:51
    nach dem, was drauf ist und wieviel Gatter
    ich drauf habe oder welche Funktionalität.
  • 8:51 - 8:56
    Sondern ich bezahle rein nach Fläche. Das
    heißt also, wenn ich eine Zellbibliothek
  • 8:56 - 8:59
    habe, die klein ist, wenn ich sozusagen
    das ganze Design klein halten kann,
  • 8:59 - 9:07
    bezahle ich auch weniger dafür. Das sind
    jetzt so Standardzellen, das hier ist so
  • 9:07 - 9:10
    eine ganz typische, wir haben vielleicht
    den einen oder anderen in der Uni schon
  • 9:10 - 9:14
    gehabt, ein NAND-Gatter mit zwei
    Eingängen. Ich hab mal links das Symbol,
  • 9:14 - 9:22
    rechts dazu die Tabelle. Wenn man sich das
    ankuckt, beim NAND ist ganz typisch:
  • 9:22 - 9:27
    Solange wie beide Eingänge nicht
    gleichzeitig 1 sind, ist der Ausgang immer
  • 9:27 - 9:33
    auf 1. Erst in dem Augenblick, wenn beide
    Eingänge auf 1 schalten, dann geht der
  • 9:33 - 9:38
    Ausgang auf 0. Das ist sozusagen die
    invertierte UND-Funktion, also NAND. Unten
  • 9:38 - 9:45
    drunter noch die Formel in der üblichen
    Notation, wie es dann praktisch gemacht
  • 9:45 - 9:52
    wird. Und so sieht das aus. Für die Grafik
    muss ich mich ein bisschen entschuldigen.
  • 9:52 - 9:58
    Die habe ich mir generieren lassen, und da
    sind noch ein paar Artefakte drin. Die
  • 9:58 - 10:01
    Leitungen hier. Aber im Prinzip sieht
    man's ja. Man sieht die Transistoren
  • 10:01 - 10:07
    unten, die beiden n-Kanal, dass die in
    einer Reihe sind. Man sieht die oben
  • 10:07 - 10:18
    p-Kanal parallel. NOR, das ist mehr oder
    weniger invers dazu. Links wieder das
  • 10:18 - 10:24
    Symbol, das amerikanische, rechts die
    Tabelle und das wieder ganz typisch: Wenn
  • 10:24 - 10:30
    beide Eingänge 0 sind, kommt hinten eine 1
    raus. Sobald aber ein Eingang eine 1 hat,
  • 10:30 - 10:42
    ist es hinten eine 0. Und die Notation
    dazu. Und auch die Transistoren. Da sieht
  • 10:42 - 10:46
    man sozusagen, man kann es sich so
    gespiegelt vorstellen: Wir haben unten die
  • 10:46 - 10:51
    n-Kanal Transistoren, die sind jetzt in
    dem Fall parallel, und wir haben oben die
  • 10:51 - 10:59
    p-Kanal, die sind in Reihe. Das ist ein
    XOR, Exclusiv-Oder. Da habe ich auch die
  • 10:59 - 11:04
    Tabelle hingemacht. Die beiden Eingänge
    müssen sich unterscheiden, damit hinten
  • 11:04 - 11:10
    eine 1 rauskommt. Ansonsten ist es eine 0.
    Dafür habe ich jetzt keine Implementierung
  • 11:10 - 11:18
    dabei, weil dafür gibt es irgendwo so
    fünf, sechs, sieben Varianten, welche ich
  • 11:18 - 11:22
    sozusagen in die Standard-Bibliothek rein
    nehmen werde. Hab ich noch nicht letztlich
  • 11:22 - 11:30
    ausgeknobelt. Da werde ich mich später mal
    drum kümmern. Das ist die inverse Funktion
  • 11:30 - 11:36
    dazu. Das wird auch gern als XNOR
    bezeichnet. Ich bezeichne es halt kürzer
  • 11:36 - 11:41
    mit Äquivalenz-Gatter. Muss man sich
    vorstellen, wie ein XOR, allerdings
  • 11:41 - 11:46
    wirklich invertiert dazu. Das heißt also,
    wenn beide Eingänge unterschiedlich sind,
  • 11:46 - 11:53
    dann habe ich die 0. Ansonsten, wenn sie
    gleich sind, kommt die 1 raus. Dafür gibt
  • 11:53 - 11:56
    es auch wieder die gleiche Anzahl der
    Implementierungen, einfach weil man es
  • 11:56 - 12:01
    wieder symmetrisch gegenüber dem XOR
    machen kann. So, jetzt wird es ein
  • 12:01 - 12:06
    bisschen blutiger. Das sind jetzt ein paar
    Beispiele, die man sich auch noch
  • 12:06 - 12:11
    vorstellen kann an Zellen. Nicht nur das,
    was sonst nur in Lehrbüchern drin ist. Das
  • 12:11 - 12:18
    sind sogenannte Komplex-Gatter, und wenn
    man sich das oben anguckt, man sieht
  • 12:18 - 12:22
    sozusagen erst vorne dran eine kleine
    Funktion, ein UND oder ein OR, und danach
  • 12:22 - 12:26
    noch eine andere, wieder mit dem nächsten
    Eingang. Das kann man beliebig lang
  • 12:26 - 12:30
    treiben, denn unten die Variante, dass man
    sozusagen paarweise das zusammenfasst,
  • 12:30 - 12:37
    kann man auch beliebig weit treiben. Man
    kann dieses Prinzip, dass man Transistoren
  • 12:37 - 12:42
    so miteinander verkettet, dass genau diese
    Funktion rauskommt, aber die Transistor-
  • 12:42 - 12:46
    Anordnung drinnen einfach und
    übersichtlich kann man sehr weit treiben.
  • 12:46 - 12:54
    Und das möchte ich in der Standard-
    Bibliothek auch machen. Kommen wir später
  • 12:54 - 13:00
    zu, dazu muss ich mich was erklären dazu,
    wie weit man gehen kann. Das ist jetzt ein
  • 13:00 - 13:08
    Beispiel für ein NAND mit vier Eingängen.
    Ich weiß nicht, ob ihr euch noch daran
  • 13:08 - 13:12
    erinnert, and das NAND mit zwei Eingängen,
    da hatten wir unten die Transistoren in
  • 13:12 - 13:19
    Reihe, oben die in parallel. Oh, das
    ist ein AND, stimmt. Ich habe da den
  • 13:19 - 13:23
    Buffer übersehen, hinten. Okay, und ganz
    rechts, da müssen wir hingucken. Da ist
  • 13:23 - 13:29
    nochmal ein kleiner Inverter hinten dran.
    Der invertiert ist, also habe ich kein
  • 13:29 - 13:36
    NAND sondern ein AND. Fangen wir mit dem
    Buffer an zu erklären. Das ist ein
  • 13:36 - 13:41
    wichtiger Punkt. Also eine Design-
    Entscheidung, die ich in der Standard-
  • 13:41 - 13:48
    Zellenbibliothek getroffen habe. Wenn wir
    uns vorstellen, dass über jeden Transistor
  • 13:48 - 13:52
    von den vier in der langen Kette zwischen
    Drain und Source, also den beiden
  • 13:52 - 13:58
    Enden hier. Ich gehe mal kurz rüber. Also
    dem unteren Ende und dem da oben drüber,
  • 13:58 - 14:04
    Drain und Source, wenn da drüben ein
    Spannungsabfall ist, also sozusagen immer
  • 14:04 - 14:08
    eine kleine Differenz. Der Transistor
    schaltet völlig durch. Trotzdem sind diese
  • 14:08 - 14:10
    beiden Pole nicht auf dem gleichen
    Potenzial. Da gibt es immer eine kleine
  • 14:10 - 14:14
    Differenz. Wenn ich das jetzt aber viermal
    mache, alle vier hintereinander
  • 14:14 - 14:20
    durchgeschaltet werden, addiert sich das
    trotzdem auf. Das kann dazu führen, dass
  • 14:20 - 14:25
    dieser Ausgangspegel, der jetzt in dieser
    langen Leitung da rauskommt, nicht mehr
  • 14:25 - 14:28
    Rail-to-Rail ist, also nicht mehr wirklich
    an die Betriebsspannung herangeht, sondern
  • 14:28 - 14:37
    wirklich eine deutliche Differenz dazu
    aufweist. Um diese nicht mehr zu Rail-to-
  • 14:37 - 14:41
    Rail-Fähigkeit ein bisschen rauszunehmen,
    ich will ja danach eigentlich eine Leitung
  • 14:41 - 14:48
    treiben, fange ich an, mir den Ausgangs-
    Pegel sozusagen wieder schön zu
  • 14:48 - 14:51
    invertieren. Also einfach wieder einen
    Inverter hinten dran, weil dann nach dem
  • 14:51 - 14:57
    Inverter habe ich sozusagen wieder
    deutliche, klarere Pegel. Und eine
  • 14:57 - 15:00
    Designentscheidung, die ich getroffen
    habe, in der Standard-Bibliothek ist, ich
  • 15:00 - 15:06
    konfiguriere ab wieviel Transistoren in
    einer Reihe ich sozusagen dieses Recovery
  • 15:06 - 15:11
    hinten machen muss. Also wieder buffern
    muss. Meine Faustregel, mit der ich im
  • 15:11 - 15:17
    Augenblick arbeite, sind vier
    Transistoren. Das ist aber im Tool, was
  • 15:17 - 15:21
    ich schreibe, konfigurierbar. Also, ich
    kann mir auch was vorstellen wo es nur mit
  • 15:21 - 15:25
    dreien oder mit zweien schon gemacht wird,
    wenn es notwendig wird. Weil: vier
  • 15:25 - 15:30
    Transistoren ist für einen Mikron ganz super.
    Wenn wir aber Technologien benutzen, die
  • 15:30 - 15:35
    deutlich kleiner werden, dann haben wir
    ein Schwellspannungsproblem. Diese
  • 15:35 - 15:42
    Spannung vorne an den Transistoren, also
    am Gate zum Source. Das gibt's so eine
  • 15:42 - 15:45
    gewisse Schwellspannung, ab der der
    Transistor eingentlich schaltet. Das
  • 15:45 - 15:53
    addiert sich auch auf. Wir kriegen also
    sozusagen auch wieder addierende Pegel. Es
  • 15:53 - 16:00
    ist einfach unangenehm. Wir müssen das
    begrenzen, und dafür habe ich auch noch
  • 16:00 - 16:08
    einen zweiten Parameter drinne. Bis wie
    viele Transistoren ich sozusagen in dieser
  • 16:08 - 16:13
    Kette erlaube. Also ein Buffer hinten, ab
    wann ich sozusagen den Inverter dranmache.
  • 16:13 - 16:24
    Und das zweite ist, wie viel ich in einer
    Reihe erlaube. Also nochmal kurz
  • 16:24 - 16:28
    zusammenrechnen, also bei zwei Stack-
    Transistoren - also die in einer Reihe,
  • 16:28 - 16:31
    nennen sich "stacked" im Englischen, ich
    weiß gar nicht, wie man das ins Deutsche
  • 16:31 - 16:37
    übersetzen sollte. Wir sagen es gestapelt
    oder sowas. Wo man zwei Transistoren hat,
  • 16:37 - 16:42
    wegen der Schwellspannung vorne. Wenn
    diese Betriebsspannung so klein ist und
  • 16:42 - 16:45
    die Schwellspannung zu groß dafür, dass
    man gar nicht mehr die Pegel erreicht zum
  • 16:45 - 16:50
    Ein und Ausschalten. Dann hat man den
    Effekt, dass die Bibliothek viel zu klein
  • 16:50 - 16:53
    wird. Da sind wir wieder in der
    Größenordnung von diesen
  • 16:53 - 16:59
    Studentenbibliotheken mit 30 Zellen oder
    so. Wenn man drei erlaubt, drei
  • 16:59 - 17:06
    Transistorenstapel, dann ist man so bei
    Bibliotheken, die jetzt mit diesen ganzen
  • 17:06 - 17:12
    winzigen Nodes mit 14 Nanometer oder sowas
    auftauchen. Die können nicht mehr vier
  • 17:12 - 17:18
    Transistoren. Vier Transistoren, aber wenn
    wir das können, haben wir plötzlich eine
  • 17:18 - 17:24
    riesige Komplexität an Komplexgattern, die
    möglich sind. Das geht laut 'nem Paper.
  • 17:24 - 17:27
    Ich habe es noch nicht ausprobiert. Ich
    bin noch nicht so weit. Da, sagt einer --
  • 17:27 - 17:33
    oder behauptet einer, es geht bis zu
    4000. Meine Anzahl kommen wir noch dazu,
  • 17:33 - 17:38
    die ich bisher erreicht habe. Also Buffer-
    limit bei größer gleich drei Transistoren.
  • 17:38 - 17:46
    Gut, das ist so eine Annahme. Okay. Aber
    wie kommen wir eigentlich zu diesen ganzen
  • 17:46 - 17:52
    Komplexgattern. Wir hätten die vier
    Beispiele drinnen. Wir kommen von einem
  • 17:52 - 17:58
    Komplexgatter zum nächsten, indem man
    einen Trick anwendet, und zwar, indem wir
  • 17:58 - 18:03
    sagen: Wir können ja noch zu dem Netzwerk,
    was wir haben. Also dem Pull-Up, das waren
  • 18:03 - 18:07
    die Oberen oder Pull-Up-Netzwerk, dem
    unteren, noch zusätzlich Transistor
  • 18:07 - 18:13
    hinzufügen. Einen in Serie, seriell, also
    in Reihe. Wir müssen nur dafür sorgen,
  • 18:13 - 18:18
    dass wir logisch äquivalent in dem
    komplementären Netzwerk, dazu einen
  • 18:18 - 18:24
    parallel machen. Das geht halt bei CMOS
    schön. Und dafür habe ich mir ein Tool
  • 18:24 - 18:31
    geschrieben, was immer noch ein bisschen
    buggy läuft. Auch schon mal ganz gut.
  • 18:31 - 18:36
    Also, wie gesagt, seriell einen
    hinzufügen, parallel im anderen Netzwerk.
  • 18:36 - 18:42
    Wenn ich einen Pull-Up mache, seriell
    erweiter, muss ich einen Pull-Down im
  • 18:42 - 18:50
    Komplementären machen und vice versa.
    Okay, weil es sozusagen eine Sache ist,
  • 18:50 - 18:55
    die keiner noch so richtig durchexerziert
    hat, habe ich angefangen mit Paperwork.
  • 18:55 - 19:00
    Also ich hab gesagt: "Okay, ich nehme mal
    das einfachste CMOS Netzwerk, was ich mir
  • 19:00 - 19:03
    vorstellen kann, dass es ganz links mit
    den zwei Transistoren das ist ein
  • 19:03 - 19:08
    Inverter". Und dann habe ich gesagt, mit
    diesem Inverter, mit diesem Prinzip kann
  • 19:08 - 19:15
    ich sozusagen erweitern zu einem, NOR
    zwei, also NOR mit zwei Eingängen. Aber
  • 19:15 - 19:20
    jetzt ein bisschen hinguckt, sieht man da
    links da. Von wegen Inverter er
  • 19:20 - 19:25
    A-Transistor hat plötzlich ein
    Brüderchen an der Seite gekriegt, A1 in
  • 19:25 - 19:29
    parallel und oben hat sozusagen eine Serie
    bekommen. Auch wieder A1. Sieht ein
  • 19:29 - 19:34
    bisschen komisch aus, weil ich mir in den
    Namensregeln zwischendurch mal geändert
  • 19:34 - 19:41
    habe. Aber das wär so die Idee. Das
    Gleiche hat man auch für NAND gemacht.
  • 19:41 - 19:46
    Wieder den Inverter hergenommen, hab
    gesagt "Okay, jetzt erweitere ich das
  • 19:46 - 19:51
    andere Netzwerk, weil ich sozusagen das
    Pull down Netzwerk wieder seriell
  • 19:51 - 19:59
    erweitert, Pull up in parallel. Eine ganze
    Weile hochgetrieben. Also sozusagen von
  • 19:59 - 20:03
    NAND2, NOR2 das wiedererweitert und so
    weiter und da bin ich zu Sunarzelle
  • 20:03 - 20:12
    vorbeigekommen. Ein paar Leute haben mich
    im Club um nur solche Sachen zeichnen
  • 20:12 - 20:16
    sehen, habe mich schon ein bisschen
    meschugge gehalten, war aber ein bisschen
  • 20:16 - 20:23
    sowieso Sodoku, das beruhigt und es kommt
    auch so etwas raus. Es sind sozusagen
  • 20:23 - 20:32
    jetzt vier Beispiele, die ich gescannt
    habe. Die sind alle, Teile davon sind noch
  • 20:32 - 20:38
    gar nicht eingetragen worden ins make-
    file, ebenfalls beim Paperwork ist im
  • 20:38 - 20:42
    Augenblick so. Ich habe zwei dicke
  • 20:42 - 20:49
    Aktenordner voll mit Papier. Nur diese
    Ableitung, so geschätzt, würde mal sagen
  • 20:49 - 20:55
    so 500, 600 Zellen. Alles nur
    Komplexgatter und alle mit diesem Limit
  • 20:55 - 21:02
    vier Transistoren gestacked. Ja, ich habe
    das Gefühl, ich bin noch ganz, ganz weit
  • 21:02 - 21:08
    weg von complied, also von vollständig,
    weil die Zellen im Augenblick noch dazu
  • 21:08 - 21:15
    tendieren, so lange Bäume zu bilden. Also
    alternierend bei dem mehr gesehen hat.
  • 21:15 - 21:21
    Also sieht man ja: AND, OR, AND, OR. Nur
    im Namen sieht man ein bisschen von der
  • 21:21 - 21:24
    Funktion und rechts oben diese
    Bleistiftzeichnung sieht man auch die
  • 21:24 - 21:30
    Funktion. Also ich habe sozusagen
    erweitert, habe immer geguckt, wie sieht
  • 21:30 - 21:36
    die Funktion aus. Es war jedenfalls
    Arbeit, okay. Und das ist dann so ein
  • 21:36 - 21:40
    Zwischending. Wir sagen, das ist schon ein
    bisschen fülliger, weil man dann auch mal
  • 21:40 - 21:52
    zwei OR-Funktionen nebeneinander hat oder
    zwei AND. Okay. Und diese ganze Arbeit,
  • 21:52 - 22:01
    die ich mir erst einmal mit Papier gemacht
    habe, wollte ich ja irgendwie auch meinem
  • 22:01 - 22:07
    Tool beibringen. Hab gesagt: "Okay,
    brauche ein Tool, ich hab jetzt erst mal
  • 22:07 - 22:34
    das hier zum Vorführen. Kriege ich es
    hin? Nein. Jetzt mal das hier zumachen.
  • 22:34 - 22:37
    Da
    hat er mir jetzt die Manuel Pages
  • 22:37 - 22:59
    gebastelt dafür. Und ich guck mir jetzt
    mal mit euch die zusammen an! Warum nicht?
  • 22:59 - 23:30
    Vertippt? Wahrscheinlich. Es sieht genauso
    aus.
  • 23:30 - 23:36
    So jetzt mit der klassischen
    Variante. Also. Das ist jetzt mit Klicki-
  • 23:36 - 23:40
    bunti. Das ist jetzt die Manual Page dazu. Ich
    habe das Tool "Popcorn" genannt, einfach
  • 23:40 - 23:46
    weil gefühlt die Zellen einfach
    wirklich hacken. Man schüttet den Mais
  • 23:46 - 23:49
    irgendwo in Topf rein, gibt ein bisschen
    Wärme dazu, und dann macht das Blub-Blub-
  • 23:49 - 23:59
    Blub, dann kommen die ganzen Zellen raus.
    Das war mein Hintergedanke dazu. Ja. Ihr
  • 23:59 - 24:03
    könnt es euch angucken, ist im Github
    drinne. Da ist es auch ein bisschen
  • 24:03 - 24:10
    beschrieben, wie es funktioniert. Hier ist
    dieses Bufferlimit drinne. Das kann ich
  • 24:10 - 24:13
    als Parameter übergeben. Ich kann den
    Zellennamen übergeben, der dabei
  • 24:13 - 24:18
    rauskommen soll, weil, das weiß ich ja
    inzwischen, mein Paperarbeit gemacht habe.
  • 24:18 - 24:25
    Ich kann das noch mit String richtig lang
    beschreiben für die Doku. Hier sind
  • 24:25 - 24:29
    Formate, die ich ganz gerne später mal
    hätte, die noch nicht alle funktionieren.
  • 24:29 - 24:34
    Helpscreen. Was haben wir hier? Hier haben
    wir die Nummern der gestackten
  • 24:34 - 24:40
    Transistoren, limitierend. Und hier sind
    die Methoden, die man sozusagen drauf
  • 24:40 - 24:47
    werfen kann. Ich hatte ja erklärt, man
    kann einen Transistor seriell machen dazu,
  • 24:47 - 24:54
    einen anderen parallel erweitern. Das war
    eine kurze Vereinfachung, weil je nachdem
  • 24:54 - 24:58
    bei welcher Zelle ich gerade bin, muss ich
    auch die Namensregeln anpassen. Also ob
  • 24:58 - 25:03
    ich jetzt nur den Buchstaben, also den
    nächsten Buchstaben im Alphabet nehme,
  • 25:03 - 25:07
    weil ich jetzt ein neues Gatter aufgemacht
    habe oder neue Funktionalität. Oder ob ich
  • 25:07 - 25:10
    sozusagen jetzt Eingänge nur
    durchnummeriere. Deswegen kommen hier
  • 25:10 - 25:14
    jetzt solche Methoden raus, wie NAND und
    NOR, dass sozusagen mit durchnummerieren
  • 25:14 - 25:21
    und AOE-OAE, das ist dann sozusagen mit
    einem neuen Buchstaben. Hier sind noch
  • 25:21 - 25:25
    zwei Methoden drin, die lassen heute mal
    großzügig weg: Pull-up, Pull-Down. Die
  • 25:25 - 25:32
    funktionieren auch nicht. Brauche ich aber
    in ein paar Exotengatter. Mit dem Gatter
  • 25:32 - 25:50
    komme ich jetzt nicht weiter, muss etwas
    anderes machen. Also Prinzip, wie gesagt,
  • 25:50 - 25:56
    mit dem Tool ... Mäuschen ... so. Ich
    nehme mir ein Zell-File her, also eine
  • 25:56 - 26:00
    Zellbeschreibung, schicke das durchs
    Popcorn durch und kriege hinten wieder
  • 26:00 - 26:06
    eine erweiterte Zellschreibung rein. Ich
    kann auch mal ... Moment, das ist das
  • 26:06 - 26:19
    Falsche. So eine Zellbeschreibung hier
    rüber nehmen. Da ist sie. Das geht
  • 26:19 - 26:23
    irgendwie los, dass ich Kommentare erlaube,
    dass ich ein .cell habe, wie ich das Ding
  • 26:23 - 26:30
    dann nenne. Ich hab ein .inputs drin,
    wo ich sozusagen die ganzen
  • 26:30 - 26:35
    Eingangssignale auflisten kann. Outputs
    äquivalent. Clocks sogar, wenn ich
  • 26:35 - 26:41
    Latches, Flipflops habe, brauche ich auch
    Clocks. Ich hab sogar da, damit ich weiß,
  • 26:41 - 26:46
    wenn es zuende ist ein .end dabei. Und ich
    habe sozusagen die ganzen Transistoren
  • 26:46 - 26:51
    eigentlich hier, so als Circuits dabei, wo
    ich sage: "Welchen Typ von Transistor hab
  • 26:51 - 26:55
    ich? Einen PMOS, einen NMOS?" Ich sage,
    wie der Knoten heißt, der am git
  • 26:55 - 27:02
    angeschlossen ist. Drain, Source, Balk und
    so weiter. Hier habe ich die Nummer
  • 27:02 - 27:06
    drinne, der wievielte Transistor das schon
    beim Stacken ist. Also wenn ich es
  • 27:06 - 27:09
    generiere, kriege ich sozusagen frei Haus
    geliefert, deswegen gleich mit
  • 27:09 - 27:17
    reingeschrieben. Ich hab mir zum Scematic
    malen, das ich auch schön ein Schaltbild
  • 27:17 - 27:21
    davon bekomme, auch gleich die Koordinaten
    reingeschrieben, weil es sehe ich ja auch,
  • 27:21 - 27:25
    wenn ich es seriell mache, muss ich
    sozusagen nur die x-Achse ändern, wenn ich
  • 27:25 - 27:28
    parallel machen muss, muss ich noch die
    y-Achse ändern. Das war sozusagen ein
  • 27:28 - 27:35
    Beifang. Size ist so eine Geschichte. Da
    will ich die Größe vom Transistor mit
  • 27:35 - 27:41
    reinschreiben. Da gibt es eine Methode,
    dass man die Transistoren so
  • 27:41 - 27:47
    dimensioniert, dass halt den Kompromiss
    zwischen Schnell- und Power-sparen, also
  • 27:47 - 27:52
    Energie-sparen machen. Gibts so eine
    Methode, die nennt sich Logical Effort.
  • 27:52 - 27:58
    Das ist aber noch nicht so richtig
    implementiert. Wenn die Zelle
  • 27:58 - 28:02
    funktioniert, wenn sie okay ist, dann gehe
    ich einmal drüber und rechne mir das aus.
  • 28:02 - 28:11
    On-the-fly wird ein bisschen schwierig.
    So, aber haben wir nicht nur komplexe
  • 28:11 - 28:20
    Gatter, wir haben ja auch Latches, also
    Speicherzellen, die ... Okay, da muss ich
  • 28:20 - 28:28
    vielleicht nochmal sagen zur Benamung: im
    Deutschen werden solche Zellen auch gerne
  • 28:28 - 28:35
    Flipflops genannt. Das halte ich aber
    sozusagen für inkorrekt. Wir haben hier
  • 28:35 - 28:43
    Zellen, die zwar speichern, die aber Takt-
    Zustands-gesteuert sind, so wie es früher
  • 28:43 - 28:46
    mal hieß: richtig, klares Deutsch: Takt-
    Zustandsgesteuert. Die Amerikaner sagen
  • 28:46 - 28:51
    dazu Latch. Das heißt also, wenn wir zum
    Beispiel einen High-Pegel haben, am Clock
  • 28:51 - 28:55
    oder einen Low-Pegel, dann ist das Ding
    transparent. Und wenn dann aber der andere
  • 28:55 - 29:00
    Pegel angelegt wird, dann speichert er den
    Wert der vorher sozusagen während
  • 29:00 - 29:08
    dieser transparenten Phase angelegen
    hat. Es gibt im Gegensatz dazu gibt es
  • 29:08 - 29:14
    Flipflops, die sind sozusagen nicht Takt-
    Zustands-gesteuert, sondern Takt-Flanken-
  • 29:14 - 29:19
    gesteuert. In dem Augenblick, wo wirklich
    die Flanke wird, da wird der Wert rein
  • 29:19 - 29:24
    gelatcht. Im Prinzip ist es so, dass
    Flipflops nur zwei Latches hintereinander
  • 29:24 - 29:31
    sind. Also wenn ich z.B. vorne als erste
    Stufe ein Low-aktives Latch habe und
  • 29:31 - 29:35
    danach ein High aktives Latch, erreiche
    ich, dass bei einem Clock, der jetzt in
  • 29:35 - 29:39
    einer Low-Phase ist, vorne, das
    transparent ist. Das würde dann beim
  • 29:39 - 29:45
    Taktflankenwechsel, also bei der
    steigenden Flanke, zu machen, und hinten
  • 29:45 - 29:49
    wäre es dafür transparent. Das ist
    sozusagen genau dieser Umschaltpunkt, die
  • 29:49 - 29:53
    Flanke. Dann haben wir zum Beispiel ein
    posEdge, also eine steigende Flanke für
  • 29:53 - 30:00
    ein Flip-Flop. Aber wie gesagt: Latches
    sind für mich Takt-Zustands-gesteuert und
  • 30:00 - 30:06
    Flipflops sind Takt-Flanken-gesteuert. Das
    hier ist jetzt ein Latch. Ich weiß nicht,
  • 30:06 - 30:14
    ob jemand irgendwie von euch ein bisschen
    damit klarkommt. Wir haben hier links zwei
  • 30:14 - 30:19
    Inverter. Also da ganz vorne, kommt ein
    Signal rein, das hab ich mit X benannt.
  • 30:19 - 30:24
    Das ist mein Clock, den invertiere ich
    einmal, kriege also ein 180 Grad
  • 30:24 - 30:29
    phasengedrehtes Signal, und dann
    invertiere ich den nochmal. Dann komme ich
  • 30:29 - 30:36
    auf um 360 Grad phasengedrehtes Signal.
    Warum? 360 ist eigentlich das gleiche, wie
  • 30:36 - 30:42
    vorne dran. Aber ich habe den Effekt. Ich
    habe meinen Takt, also die ganzen Signale,
  • 30:42 - 30:46
    die Transistoren, die dahinter von dem
    abhängig sind, erst einmal so etwas wie
  • 30:46 - 30:50
    gepuffert. Ich habe sozusagen im Netzwerk,
    was von draußen reinkommt, nicht mehr so
  • 30:50 - 30:54
    eine große Last, und ich habe damit den
    Effekt, dass sie sozusagen einen
  • 30:54 - 30:59
    zweiphasigen Takt erreicht habe. Und
    diesen benutze ich denn bei den
  • 30:59 - 31:03
    Transistoren hintendran zum Schalten. Und
    wenn man sich das jetzt ein bisschen
  • 31:03 - 31:13
    anguckt. Hier diese Stufe da oben. Das ist
    ein Inverter, der kann aber Tristate
  • 31:13 - 31:19
    erreichen. Das heißt also, wenn die
    Taktsignale, die Clock unten und oben, die
  • 31:19 - 31:26
    Transistoren, wenn die gerade ungünstig
    stehen, dann ist es dieser Stufe egal, was
  • 31:26 - 31:30
    vorne an dem D-Eingang, am Daten-Eingang
    für ein Signal anliegt. Er lässt es
  • 31:30 - 31:35
    nicht durch, invertiert nicht. Treibe
    sozusagen ... wie soll ich es sagen ....
  • 31:35 - 31:42
    Wenn der Clock richtig liegt, treibe ich
    das rein und hab aber von hinten die
  • 31:42 - 31:46
    Rückführung drinne, die genau so einen
    Tristate-fähigen Inverter hat, der aber
  • 31:46 - 31:51
    gegenphasig arbeitet. Das heißt also, die
    beiden, also der linke Inverter und der
  • 31:51 - 31:56
    rechte Inverter treiben gleichzeitig einen
    Knoten, nämlich der von dem Inverter in
  • 31:56 - 32:01
    der Mitte und hinter diesen Inverter in
    der Mitte da hab ich den Daten-Ausgang.
  • 32:01 - 32:13
    Das ist die kleinste, stabilste Latch-
    Schaltung, die ich so kenne. Das ist jetzt
  • 32:13 - 32:18
    sozusagen das Gleiche nochmal für Low-
    aktiv deswegen, deswegen da "Latch" mit
  • 32:18 - 32:25
    dem "N" hintendran. Da hab ich sozusagen
    genau die gleiche Schaltung. Sieht genauso
  • 32:25 - 32:30
    aus, nur dass jetzt die Clock-Signale
    andersherum angeschlossen sind gegenüber
  • 32:30 - 32:34
    dem davor. So, um es ein bisschen
    komplizierter zu machen, habe ich jetzt
  • 32:34 - 32:39
    mal ein Beispiel dabei. Da hab ich ein
    Latch, was High-aktiv ist, also mit
  • 32:39 - 32:45
    positiver Flanke, ja positiven Level
    arbeitet, was ein Clock-enable hat: Ich
  • 32:45 - 32:50
    kann also den Clock zulassen oder
    unterdrücken, und was noch nen asynchronen
  • 32:50 - 32:55
    Reset drinnen hat. Und das Ganze ist, die
    Funktion ist so optimiert, dass ich
  • 32:55 - 32:59
    wirklich die minimale Anzahl von
    Transistoren erreiche dabei. Ich hätte
  • 32:59 - 33:02
    jetzt sagen können, ich nehme den Reset-
    Eingang, der muss jetzt eine andere
  • 33:02 - 33:06
    Polarität haben. Hätte ich dafür wieder
    einen Inverter gebraucht, habe ich aber
  • 33:06 - 33:13
    nicht. Also mein Reset ist da oben
    Entschuldigung mit P3 irgendwo so rechts
  • 33:13 - 33:18
    oben in der Ecke. Er ist in dem Fall
    wirklich High-Aktiv. Wenn ich einen Set-
  • 33:18 - 33:23
    Eingang nehme, das Gegenteil dazu, dann
    hätte ich ihn Low-Aktiv und das Clock-
  • 33:23 - 33:27
    Enable-Signal, was ich vorne dran habe,
    das richtet sich auch darum wieder, ob ich
  • 33:27 - 33:33
    jetzt ein High-aktives oder ein Low-
    aktives Clock Signal haben möchte. Moment,
  • 33:33 - 33:39
    das war zurück. Okay, das ist noch ein
    Punkt, der ist offen. Zu viele Baustellen.
  • 33:39 - 33:42
    Also Ich will eigentlich von einem
    Scematic so wie ihr das gerade gesehen
  • 33:42 - 33:49
    habt für den Latch, auch wieder zu meiner
    Zellbeschreibung kommen. Ich habe für das
  • 33:49 - 33:54
    Scematic allerdings ein OpenSource-Tool
    benutzt, was eigentlich aus dem PCB-
  • 33:54 - 34:01
    Bereich kommt, GNU-EDA. So aus der Ecke.
    Und dafür gibt es die Möglichkeit, auch
  • 34:01 - 34:05
    Netzlistern, also auch einen Exporter zu
    schreiben. Ich habe mir die Mühe noch
  • 34:05 - 34:09
    nicht gemacht. Aber das werde ich machen
    auf alle Fälle für alle Zellen, die ich
  • 34:09 - 34:12
    sozusagen händisch machen muss, also die
    nicht durch Popcorn generiert worden sind.
  • 34:12 - 34:25
    Okay. Popcorn, Popcorn. Wenn wir jetzt
    hier mal ganz schnell das da machen. Also,
  • 34:25 - 34:33
    wenn wir mal in den Katalog reingucken. Da
    sind jetzt hier. Oh, da ist schon was
  • 34:33 - 34:44
    drin. Machen wir mal leer. Okay, da haben
    wir so ein paar Makefiles drinnen. Also
  • 34:44 - 34:47
    Katalog ist ein Verzeichnis wo ich die
    ganzen Zellbeschreibungen drinnen sammle.
  • 34:47 - 34:53
    Ich hab ein GNUmakefilel, das ist mein
    großes, da sind die Hauptfunktionalitäten
  • 34:53 - 34:58
    drin. Und ich hab dann so ein paar drinnen
    mit stacked2, stacked3 und so weiter, die
  • 34:58 - 35:02
    betreffen die Anzahl der gestackten
    Transistoren, also der gestapelten
  • 35:02 - 35:04
    Transistoren die ich zulasse. Alle Zellen,
  • 35:04 - 35:08
    die ich z.B. maximal drei gestackte
    Transistoren haben, wären in dem Makefile
  • 35:08 - 35:13
    mit dem stacked3 drinnen. Es hat den
    Vorteil, wenn ich jetzt in der
  • 35:13 - 35:16
    Konfiguration, dazu kommen wir hoffentlich
    noch, wenn mir die Zeit nicht wegläuft,
  • 35:16 - 35:22
    angebe, ich habe so und so viel als Limit
    für meinen Transistor, dass er mir das
  • 35:22 - 35:24
    entsprechende Makefile als höchstes
    Makefile nimmt, alle anderen wären
  • 35:24 - 35:35
    sozusagen inkludiert. OK. "make catalog" .
    Kann man sich sozusagenen Katalog machen.
  • 35:35 - 35:41
    Zieht man Popcorn mal ran. Machen wir das
    mal schnell. So weit läuft er leider noch
  • 35:41 - 35:52
    nicht. So und da bricht das schon ab. Das
    ist in dem Fall deshalb, weil meine Zellen
  • 35:52 - 35:55
    noch nicht durchgängig sind. Ich habe
    leider in meinem Makefile Zellen drin, die
  • 35:55 - 36:00
    er noch nicht generieren kann. Da habe ich
    noch die Paperwork, muss ich wirklich mal
  • 36:00 - 36:06
    von vorne bis hinten alles durch. Aber im
    Augenblick ist für mich wichtiger, dass es
  • 36:06 - 36:09
    läuft, als es jetzt an der Stelle erst mal
    vorstellen. Aber es würde genauso
  • 36:09 - 36:12
    ablaufen. Ich habe sozusagen die ganzen
    Ableitungen im Makefile drinnen. Ich sage
  • 36:12 - 36:17
    "make catalog" und er generiert mir alle
    Zellen. Alle kombinatorischen Zellen so.
  • 36:17 - 36:26
    Und wie gesagt, dass also die Warnung ist
    ernst gemeint. Wenn jemand beabsichtigt,
  • 36:26 - 36:31
    selber mal so eine Zellbibliothek zu
    machen oder zu generieren, er sollte
  • 36:31 - 36:36
    wissen, was er tut, weil der Effekt auf
    eure Schaltung oder auf dem Chip ist
  • 36:36 - 36:43
    einfach mal desaströs, wenn das schief
    geht. OK. Makefiles bei mir haben immer
  • 36:43 - 36:47
    die Möglichkeiten einen Helpscreen
    drinnen. Kann ich auch mal schnell
  • 36:47 - 36:53
    vorführen. Also wenn ich jetzt sage
    "make", dann krieg ich bei mir einen
  • 36:53 - 37:00
    Helpscreen. In dem Fall ist es jetzt das
    Globale, also ich hab eine Möglichkeiten,
  • 37:00 - 37:04
    eine Distribution zu machen. Da so am Ende
    alles rein wenn es fertig ist. "make
  • 37:04 - 37:08
    tools" hatte ich ja schon mal gemacht,
    "make catalog" auch schon. Ich kann aber
  • 37:08 - 37:11
    auch die Dokumentation dafür generieren.
    Also für die ganzen Zellen, die ich oder
  • 37:11 - 37:16
    die Popcorn generiert und ich selber auch
    händisch gemalt habe. Dafür gibt es dann
  • 37:16 - 37:22
    sozusagen ein Datenblatt, wo dann drin
    steht, wie das Schaltbild aussieht, wie
  • 37:22 - 37:26
    das Scematic aussieht. Welche Files ich
    alle dazu gefunden habe, oder das Tool
  • 37:26 - 37:31
    dazu gefunden hat, also Layoutfiles,
    Simulationsfiles und so weiter. Das soll
  • 37:31 - 37:44
    alles rein. Okay, jetzt wird's nochmal ein
    bisschen blutig. Es gibt Mosis-Rules.
  • 37:44 - 37:49
    Mosis ist ein amerikanisches
    Universitätsprogramm, vergleichbar mit dem
  • 37:49 - 37:56
    europäischen Europractice. Die bieten so
    ein Service an für Universitäten, dass man
  • 37:56 - 38:00
    sagen kann, ich hab hier einen Chip, und
    ich möchte irgendwie 20 oder 30 Exemplare
  • 38:00 - 38:04
    dafür haben, dann machen die so ein Multi-
    Project-Wafer wo sozusagen mehrere
  • 38:04 - 38:08
    Projekte drauf sind. Schieben dann mal so
    ein Schiffchen mit 20 30 Wafern durch die
  • 38:08 - 38:15
    Fab und das wars. Aber die haben auch mal
    definiert Designrules. Also fürs Layout
  • 38:15 - 38:21
    die Abstände definiert, die
    Größenordnungen für Metal, für Poly, für
  • 38:21 - 38:27
    alles mögliche, und diese Rules sind so
    gemacht, dass sie auf möglichst viele
  • 38:27 - 38:31
    Technologien von ihren Klienten oder den
    Fabs die da hinten dranhängen auch
  • 38:31 - 38:38
    funktionieren. Das ist so der kleinste
    gemeinsame Nenner. Hat aber den Vorteil,
  • 38:38 - 38:42
    dass sie wirklich recht robust sind, wenn
    man danach designed. Dann hat man
  • 38:42 - 38:43
    vielleicht nicht irgendwie das allerletzte
  • 38:43 - 38:47
    rausgekitzelt aus der Technologie, die
    vielleicht eine Fab anbietet oder
  • 38:47 - 38:52
    irgendwelche Spezialitäten nicht benutzt.
    Aber man kann sozusagen damit gut
  • 38:52 - 38:58
    arbeiten. Und diese Rules sind als PDF zum
    runterladen, kann man sich angucken. Gut
  • 38:58 - 39:05
    gemacht, okay. Die machen also die Rules
    dafür, die sind so in drei Stufen
  • 39:05 - 39:12
    definiert. SCMOS wie scalable CMOS. Das
    ist so, ja CMOS, die haben, angefangen mit
  • 39:12 - 39:19
    zwei, drei Mikrons oder sowas. Dann gab es
    dieses Sub-Mikron. Da so über den Daumen
  • 39:19 - 39:26
    hätte ich gesagt, alles so kleiner gleich
    0,8 µ. Noch ein Stückchen kleiner ist
  • 39:26 - 39:32
    dann Deep-sub-micron. Also alles wo dann
    irgendwie schon ganz komische Effekte dazu
  • 39:32 - 39:38
    kommen, also 0,35 oder so etwas. Also 0,35µ
    muss man umrechnen, das sind 350
  • 39:38 - 39:43
    Nanometer. Klingt für heutzutage riesig,
    aber es ist so. Ich habe jetzt noch bei
  • 39:43 - 39:49
    diesen Rules, die benutze ich ja in meinem
    Tool, noch eine vierte Möglichkeit
  • 39:49 - 39:55
    eingebaut, wo ich sage, ich möchte es ganz
    gerne, dass die Leute in der Lage sind,
  • 39:55 - 40:01
    ein extra Rulefile rein zu laden, also mit
    diesen ganzen Angaben, was von diesen drei
  • 40:01 - 40:08
    Schemen die da im PDF sind, abweicht. Da
    wollte ich auch noch jetzt mal kurz
  • 40:08 - 40:31
    zeigen, wie dieses aussieht. Schreiben
    sollte man können. Das ist erst mal der Header.
  • 40:31 - 40:39
    Das ist in Sceme geschrieben. Also nicht
    erschrecken. Da sind die ganzen Rules, die
  • 40:39 - 40:46
    es so gibt drinnen mit den Nummern, so wie
    sie im PDF sind. Da habe ich mir einen
  • 40:46 - 40:53
    kleinen Vektor definiert, wo ich die vier
    Werte reinschreibe. Und das ist jetzt.
  • 40:53 - 40:58
    Moment, wo geht's los. Das ist mal so ein
    bisschen so ein Anfang. Also dass ich auch
  • 40:58 - 41:03
    ASCII-Art reingemacht hat, um Rules zu
    erklären, um welche Abstände es geht. In
  • 41:03 - 41:07
    dem Fall haben wir die Rule 1.1, und die
    sagt von wegen bei einem nwell, die kann
  • 41:07 - 41:13
    halt eine bestimmte Breite, Länge haben,
    und die muss halt irgendwie eingehalten
  • 41:13 - 41:19
    werden. Da steht ja Minimum nwell pwell
    Rule. Und so zieht sich das halt irgendwie
  • 41:19 - 41:23
    das ganze Dokument runter. Tabelle dazu,
    die sozusagen einen von den vier Werten
  • 41:23 - 41:28
    herauspickt. Je nachdem, mit welchem
    Parameter ich reinkomme. Nächste Rule,
  • 41:28 - 41:33
    1.2, da ist dann bei der nwell oder pwell
    der Abstand dazwischen einzuhalten und so
  • 41:33 - 41:40
    weiter. Die Rules benutze ich für das
    Layouttool. Ok, und jetzt wollen wir
  • 41:40 - 41:48
    hier raus. Ahm Ups. Also die Rules sind
    alle in Lambda definiert, das ist noch ein
  • 41:48 - 41:54
    wichtiger Punkt. Oh, fünf Minuten, ok.
    Lambda meint die Hälfte der Featuresize,
  • 41:54 - 41:58
    also wenn jemand sagt, eine Technologie
    mit einem Mikron, dann ist das ein Mikron
  • 41:58 - 42:07
    die Featuresize. Lambda meint also
    sozusagen die Hälfte davon. Und in der
  • 42:07 - 42:12
    Größenordnung sind all diese Regeln
    angegeben. Die geben also sozusagen nicht
  • 42:12 - 42:15
    absolute Werte an, von wegen, wenn ich
    jetzt 0.8µ hab, müssen das so und so
  • 42:15 - 42:20
    viele Mykrometer sein, sondern sie geben
    das in Lambda an und sagen: drei Lambda,
  • 42:20 - 42:24
    zwei Lambda sind mehr oder weniger alles
    ganze Integerwerte. Und es hat halt den
  • 42:24 - 42:28
    Vorteil, dass man über mehrere
    Generationen hinweg runterskalieren kann,
  • 42:28 - 42:32
    so wie es da in dem Punkt auch kam. Von
    wegen erst mal scaleable CMOS, dann gehts
  • 42:32 - 42:38
    ins Submikron und dann Deep-Submikron. Das
    funktioniert, aber irgendwann funkioniert
  • 42:38 - 42:41
    es nicht mehr, deswegen haben sie die
    neuen Stufen eingeführt, in denen
  • 42:41 - 42:46
    sozusagen die Regeln wieder ein bisschen
    breiter sind. Okay, jetzt haben wir hier
  • 42:46 - 42:52
    so eine Zelle. Ist auch ein Punkt, den ich
    erklären muss. Das ist eine 6-Track-Zelle.
  • 42:52 - 42:56
    Wenn man sich da die blauen Streifen
    vorstellt, die so horizontal drüber
  • 42:56 - 43:01
    laufen, das ist Metal, also Metall eins.
    Das habe ich einmal ganz unten, da ist es
  • 43:01 - 43:07
    grau und einmal ganz oben. VDD. Also
    Betriebsspannung. Die Dinger haben laut
  • 43:07 - 43:13
    Mosis-Rules, sieht man an den Kästchen
    auch, eine Breite von 4 Lambda. Das ist
  • 43:13 - 43:18
    sozusagen der Minimalabstand für das
    Metall, und in den Mosis-Rules steht, auch
  • 43:18 - 43:22
    drinnen, wie groß der Abstand zum nächsten
    Metal sein muss, also zu dem gleichen
  • 43:22 - 43:26
    wieder Metall. Das sind auch wieder 4
    Lambda, wenn man sich das so vorstellt,
  • 43:26 - 43:30
    vier Lambda, die Leitung selber, vier
    Lambda Lücke, nächste Metall - dann kommt
  • 43:30 - 43:37
    man auf ein Raster als von 8 Lambda, und
    dieses Raster wird auch beim Routing
  • 43:37 - 43:42
    benutzt. Also wenn man über die Zellen
    hinweg routen will, weil sich das halt so
  • 43:42 - 43:44
    schön durchzieht, also nicht nur Metal
    eins und dann zwei und drei und so weiter.
  • 43:44 - 43:52
    Und das nennen die halt so Tracks, und es
    hat sich eingebürgert in der Branche, dass
  • 43:52 - 43:57
    die Zellhöhe, also wie hoch so eine Zelle
    ist, in Anzahl dieser Tracks angegeben
  • 43:57 - 44:01
    wird. Das hier ist also ein Beispiel für
    6-Track, das ist so eine kleine Zelle.
  • 44:01 - 44:06
    Funktioniert bei diesem NAND immer noch
    ganz gut. Wenn ich jetzt aber so eine
  • 44:06 - 44:11
    Monster Komplexzellen hatte, wie am Anfang
    irgendwie mal gezeigt, dann funktioniert
  • 44:11 - 44:15
    das nicht mehr. Dann muss es größer
    werden. Okay, das wäre jetzt mal mit
  • 44:15 - 44:20
    sieben Tracks. Man sieht das Raster wird
    schon ein bisschen kleiner, und das
  • 44:20 - 44:25
    gleiche hier nochmal mit zehn. Jetzt hat
    man schon den Effekt: Für das NAND2 ist
  • 44:25 - 44:29
    zehn Tracks schon ziemlich groß, nämlich
    ziemlich viel Luft in der Mitte. Für die
  • 44:29 - 44:33
    Komplexgatter, die irgendwie reinkommen,
    da wird es vielleicht doch schon wieder
  • 44:33 - 44:36
    ein bisschen knapper. Also man muss
    sozusagen an der Stelle immer die Balance
  • 44:36 - 44:40
    finden. Wie groß macht man die Zellen -
    Man will sie ja nicht zu groß machen, wenn
  • 44:40 - 44:47
    man sich den Platz verschenkt - Aber man
    will auch Funktionalität drin haben. Okay,
  • 44:47 - 44:57
    so wie sollte man eigentlich mit dem Ding
    rum spielen? Ich habe... wo ist es... Da.
  • 44:57 - 45:08
    Also wenn ich das jetzt hier mache. Im
    Templates hab ich ein toml-File drinnen.
  • 45:08 - 45:13
    Und das ist dazu gedacht, die
    Konfiguration zu machen. Also dass ich
  • 45:13 - 45:17
    wirklich die Werte reinschreiben kann. Da
    sieht man wieder das Limit vier. Also
  • 45:17 - 45:22
    wieviel Transistoren ich stacken möchte,
    kann ich angeben. Buffern, ab wann ich
  • 45:22 - 45:26
    sozusagen mit dem Buffer hinten anfangen
    möchte. In dem Fall ist auch erst mal vier
  • 45:26 - 45:30
    drinnen. Bei den Zellen ist es so, dass
    sie sagen, wie hoch das ist. Mein
  • 45:30 - 45:41
    Beispielfile, was ich habe. Ich sage 11
    Tracks. Ups. Jetzt ist was weg. Dann
  • 45:41 - 45:47
    Terminals, also auf welcher Ebene mache
    ich die Übergabe zum Routing? Also was ist
  • 45:47 - 45:51
    sozusagen für die Zelle die Ein- und
    Ausgänge? Wo soll der Router ran gehen? In
  • 45:51 - 45:59
    dem Fall sage ich, es soll bitte schön auf
    Metal II sein. Ja, Connectivity,
  • 45:59 - 46:02
    Restricted. Es gibt auch solche Sachen, wo
    man sagt, man darf an die Zelle nur
  • 46:02 - 46:06
    waagerecht ran, oder man darf nur
    senkrecht ran. Oder man lässt es sozusagen
  • 46:06 - 46:10
    offen. Ich habe gesagt erst mal für mein
    Beispiel unrestricted. Also ich habe keine
  • 46:10 - 46:16
    Vorgaben gemacht, ob nur waagerecht oder
    nur senkrecht. Dann kommen hier noch so
  • 46:16 - 46:21
    Transistorgeschichten rein. Der
    Transistor, Featursize, meistens als 'L'
  • 46:21 - 46:26
    bezeichnet, ist sozusagen die Länge und
    die Weite dazu, also wie breit der Kanal
  • 46:26 - 46:29
    ist, also nicht, wie lang, sondern wie
    breit. Und dieses Verhältnis dazwischen
  • 46:29 - 46:34
    wird immer gern als Ratio angegeben. Und
    laut Mosis-Rules ist das Kleinste, was wir
  • 46:34 - 46:40
    sozusagen nutzen können dafür 1,5. Das
    heißt also, wenn ich eine Featursize habe
  • 46:40 - 46:48
    von einem Mikron, ist mein L das Lambda 2
    und die Weite ist dazu 3. Jetzt kommt noch
  • 46:48 - 46:53
    ein Punkt Gamma dazu. Ok, versuchen wir
    ganz schnell zu erklären. Die
  • 46:53 - 46:58
    Ladungsträgerbeweglichkeit für P-Kanal und
    N-Kanal-Transistoren ist unterschiedlich.
  • 46:58 - 47:04
    Bei N-Kanal bewegen sich die Elektronen.
    Und bei P-Kanal bewegt sich ja sozusagen
  • 47:04 - 47:08
    gar nichts. Und dann wandern die Löcher
    mit, wenn sich die Elektronen drüber
  • 47:08 - 47:13
    bewegen. Ganz grob ausgedrückt. Um das
    aber auszugleichen in der Geschwindigkeit,
  • 47:13 - 47:19
    man will ja eigentlich sozusagen, dass
    P-Kanal und N-Kanal etwa gleich sind, weil
  • 47:19 - 47:22
    man sonst unterschiedliche
    Verzögerungszeiten hat für Schaltvorgänge,
  • 47:22 - 47:27
    fängt man damit an, den
    P-Kanaltransistor größer zu machen. Und
  • 47:27 - 47:32
    wie viel im Verhältnis zu dem N-Kanal er
    größer wird, das wird ganz gerne als Gamma
  • 47:32 - 47:36
    angegeben. Ich habe hier erst einmal zwei
    reingeschrieben. Das ist so ein üblicher
  • 47:36 - 47:41
    Schätzwert, ist nicht ideal, ist nicht
    ausbalanciert, ist nicht perfekt. Das
  • 47:41 - 47:48
    hängt nämlich davon ab, wie gut P-Kanal
    und N-Kanal dotiert sind und so weiter. Es
  • 47:48 - 47:53
    geht auch bis zu drei. Wenn ich zum
    Beispiel irgendwas haben möchte, was
  • 47:53 - 48:00
    Seitenkanalangriffen standhält, sozusagen
    den Peak nicht sieht, dann sollte man den
  • 48:00 - 48:08
    Wert ausbalancieren. Ok. Sizing ist die
    Geschichte, ja. Wir werden immer knapper
  • 48:08 - 48:19
    hier. Ja, ok. Also da will ich hin zeigt
    zur Präsentation
    Bin ich noch ein
  • 48:19 - 48:22
    bisschen weg von. Irgendwann, also von
    wegen... ihr nehmt das TOML-File her...
  • 48:22 - 48:28
    Beispiel... konfiguriert euch das, passt
    euch das an, wie er es braucht. Ihr drückt
  • 48:28 - 48:32
    einfach "make dist", also wie
    "distribution". Ihr kriegt den ganzen Sack
  • 48:32 - 48:35
    voll, kann eine ganze Weile dauern. Aber
    ihr kriegt danach Schematics, ihr kriegt
  • 48:35 - 48:40
    Layouts, kriegt die Dokumentation und habt
    sozusagen wirklich was "ready to use" für
  • 48:40 - 48:47
    yosys oder für die ganzen anderen Tools,
    ist alles dabei. Und das Ganze soll Open
  • 48:47 - 48:52
    Source sein. Steht ja jetzt schon bei
    GitHub So, jetzt Q & A.
  • 48:52 - 48:55
    Herald: Dann bitte ich jetzt einmal um
    einen herzlichen Applaus für Chipforge.
  • 48:55 - 49:00
    Applaus
  • 49:00 - 49:03
    H: Und wir beginnen mit der Fragerunde.
    Wir haben drei Mikrofone hier im Saal. Wer
  • 49:03 - 49:09
    eine Frage hat, einfach zum Mikrofon
    gehen. Es gibt schon eine Frage aus dem
  • 49:09 - 49:18
    Internet.
    Signal Angel: Hallo. Die Frage aus dem
  • 49:18 - 49:23
    Internet lautet: Wie viel würde es kosten,
    einen Quadratmillimeter Platz auf so einem
  • 49:23 - 49:28
    Die zu kaufen? Für irgendeinen Knoten, wo
    du den Preis gerade weißt. Wie lange wird
  • 49:28 - 49:35
    es dauern?
    C: Okay. Also unser Background ist ja, wir
  • 49:35 - 49:39
    wollen eigentlich ein freies Silizium
    machen, also wirklich auch diesen Prozess
  • 49:39 - 49:46
    freilegen. Das ist das, was Leviathan in
    Hongkong da vorantreibt. Da ist es so,
  • 49:46 - 49:52
    dieser Quadratmillimeter wäre einfach zu
    haben. Also die Wafer-Kosten wären
  • 49:52 - 49:56
    irgendwie so bei 100 Hongkong-Dollar, wenn
    ich das richtig glaub ich in Erinnerung
  • 49:56 - 50:02
    habe, also durch 10, wären das irgendwie
    10 Dollar für einen Wafer, 4 Zoll, relativ
  • 50:02 - 50:08
    klein, und es würden noch die Maskenkosten
    dazu kommen. Da müsste ich jetzt lügen. Es
  • 50:08 - 50:11
    sind aber auch irgendwie nur ein paar
    Tausend oder so. Fünf oder sechs Tausend,
  • 50:11 - 50:16
    so in der Größenordnung. Vielleicht 10.000
    Dollar. Der Rest ist eigene Manpower im
  • 50:16 - 50:20
    Labor.
    SA: Danke.
  • 50:20 - 50:23
    C: Und du kannst dir so viele Chips
    davon machen wie du lustig bist, wenn wir
  • 50:23 - 50:27
    so weit sind. Also wir würden ganz gerne
    zurück ins Labor, aber dafür brauchen wir
  • 50:27 - 50:32
    halt die Gebühr für den Reinraum.
    H: Danke für die Antwort. Die nächste
  • 50:32 - 50:35
    Frage. Mikrofon 2, bitte!
    Mikrofon 2: So wie das jetzt aussieht,
  • 50:35 - 50:39
    könnt ihr ja die Layouts für eure
    Standardzellen oder wollt ihr zumindest
  • 50:39 - 50:42
    mal, automatisch generieren lassen zu
    gewissen Graden.
  • 50:42 - 50:44
    C: Ja
    M: Könnt ihr das dann auch direkt einem
  • 50:44 - 50:48
    Tool beibringen, dass es aus einer
    synthetisierten Netzliste schon direkt
  • 50:48 - 50:53
    versucht so, ich sage mal, Makro-Zellen zu
    synthetisieren. Das wird irgendwann nicht
  • 50:53 - 50:57
    mehr gehen, aber für kleinere könnte ich
    mir das vorstellen. Kannst du da was dazu
  • 50:57 - 51:02
    sagen?
    C: Ja. Der Weg wäre ein bisschen
  • 51:02 - 51:07
    umständlich. Eigentlich ist es so, die
    Tools wie yosys, also die sozusagen, die
  • 51:07 - 51:11
    Synthese machen, die sind ja immer extrem
    davon abhängig, wie gut die Bibliothek
  • 51:11 - 51:15
    ist, die yosys zur Verfügung steht. Und
    wenn wir aber eine Bibliothek haben, die
  • 51:15 - 51:20
    relativ begrenzt und klein ist, dann kann
    yosys nur entsprechend Ergebnisse liefern.
  • 51:20 - 51:24
    Wenn wir allerdings in der Lage sind, hier
    mit diesem Popcorn und so weiter die
  • 51:24 - 51:28
    Bibliothek zu liefern, die wirklich mehr
    oder weniger allumfassend ist, dann hat
  • 51:28 - 51:33
    yosys auch viel viel viel mehr
    Möglichkeiten zu optimieren, sozusagen in
  • 51:33 - 51:39
    Richtung Delay, in Richtung
    Energieaufnahme und so weiter. Also wir
  • 51:39 - 51:42
    geben sozusagen dem Tool dann viel, viel
    mehr Möglichkeiten. Es kann natürlich
  • 51:42 - 51:46
    sein, dass es denn ein bisschen länger
    braucht, einfach weil es sozusagen den
  • 51:46 - 51:51
    ganzen Suchraum durchgehen muss. Aber die
    Ergebnisse sind einfach mal besser.
  • 51:51 - 51:56
    H: Okay. Als nächstes am Mikrofon 1,
    bitte!
  • 51:56 - 52:02
    Mikrofon 1: Okay, also das sieht ja schon
    mal ganz gut aus, aber hast du schon
  • 52:02 - 52:07
    Transmission-Gates, Analog-Multiplexer und
    Schmidt-Trigger angeguckt oder machst du
  • 52:07 - 52:11
    die dann von Hand?
    C: Okay, also die Sachen generiere ich
  • 52:11 - 52:17
    nicht mit dem Popcorn. Die Multiplexer
    mache ich händisch. Ja, Multiplexe sind
  • 52:17 - 52:22
    auch wieder in verschiedenen Stack-Zellen
    drinnen. Multiplexer, also diese
  • 52:22 - 52:25
    Transmission-Gates in den Multiplexern,
    die haben aber einen ganz hässlichen
  • 52:25 - 52:30
    Nachteil. Die gehen wieder in meine Bilanz
    rein mit den Anzahl gestackten
  • 52:30 - 52:34
    Transistoren. Weil sie ja sozusagen nur
    diesen Pfad drinnen haben und kein, wie
  • 52:34 - 52:42
    soll ich sagen, Renewing, oder Refresh vom
    Pegel machen. Also das Zeug mache ich auf
  • 52:42 - 52:47
    alle Fälle von Hand, ja. Und Schmidt-
    Trigger werden für mich in die
  • 52:47 - 52:51
    Standardzellenbibliothek nicht reinkommen.
    Die kommen in die IO Zellen, weil da
  • 52:51 - 52:56
    brauche ich sie.
    H: Alles klar. Dann war noch eine Frage am
  • 52:56 - 53:01
    Mikrofon 2.
    Mikrofon2: Jo, servus! Die Frage ist, weil
  • 53:01 - 53:05
    du ja gemeint hast, ihr wollt schon auch
    bisschen so den Prozess öffnen,
  • 53:05 - 53:09
    opensourcen. Wenn man jetzt ein bisschen
    vom Hintergrund, von der Chemie her
  • 53:09 - 53:14
    bisschen weiß, was da an Chemikalien in
    die Hand zu nehmen ist. Für wie
  • 53:14 - 53:20
    realistisch hältst du es, dass Hobbyisten
    sowas sicher handhaben können? Und wie
  • 53:20 - 53:23
    sind eure Pläne in die Richtung? Wie wollt
    ihr das handhaben? Also, wie wollt ihr es
  • 53:23 - 53:27
    den Leuten näher bringen, ohne sie dabei
    umzubringen, um es mal etwas überspitzt zu
  • 53:27 - 53:30
    sagen.
    C: Ja, das ist ein berechtigter Einwand.
  • 53:30 - 53:35
    Man sollte wissen, was man tut. Man kann
    sich damit mit Chemikalien auch mal ganz
  • 53:35 - 53:41
    schnell seine Klamotten durchbrennen. Wie
    auch immer, hat David schon ausprobiert.
  • 53:41 - 53:48
    Nein, also es gibt Leute, die machen so
    was in der Küche, die Jerry Elzwood. Ich
  • 53:48 - 53:50
    hoffe, ich habe es so richtig
    ausgesprochen. Und die gute Frau mit dem
  • 53:50 - 53:57
    C64 Hack und sowas. Gibt es bei YouTube-
    Videos wie die sozusagen so'n Furnace,
  • 53:57 - 54:02
    also so ein Ofen mit Silizium und sowas in
    Ihrer Küche macht und die spielt da mit
  • 54:02 - 54:06
    dampfender Floursäure oder irgendie sowas.
    Sieht nicht gesund aus, aber Sie macht es.
  • 54:06 - 54:10
    Angucken. Einfach YouTube gucken. Die
  • 54:10 - 54:13
    Videos gibt's.
    Mikrofon 2: Ich kenne sie. Ich kann als
  • 54:13 - 54:15
    Chemiker dazu sagen: In Deutschland steht
    da dafür die Polizei vor der Tür.
  • 54:15 - 54:21
    Chipsforge kichert
    H: Alles klar. Dann haben wir noch ein
  • 54:21 - 54:26
    paar Fragen am Mikrofon Drei.
    Mikrofon 3: Ja, also du hast ja schön
  • 54:26 - 54:31
    gezeigt, was du alles für Standardzellen
    implementierst. Wie sieht das aus mit dem
  • 54:31 - 54:35
    Timing und der Simulation für die ganze
    Synthese und dann das place and route, ist
  • 54:35 - 54:41
    ja auch eine wichtige Rolle.
    C: Der Punkt kam jetzt ein bisschen in den
  • 54:41 - 54:48
    letzten Minuten zu kurz. Wenn wir das
    Layout haben, dann machen wir mit diesem
  • 54:48 - 54:52
    Magic, also mit diesem Layout-Tool, das
    wir benutzten, eine Parameter-Extraktion.
  • 54:52 - 54:56
    Wir bekommen also aus diesem Layout wieder
    ein Spice-Modell zurück mit den
  • 54:56 - 55:01
    parasitären Werten, also für Kapazität,
    für Widerstand und so weiter. Das
  • 55:01 - 55:05
    simulieren wir und ich habe für die
    Latches und so sowas habe ich in meiner
  • 55:05 - 55:08
    Spice-Simulation, in meiner Testbench,
    rudimentär solche Sachen schon
  • 55:08 - 55:13
    implementiert. Dass ich wirklich sage bei
    20 prozent von der Flanke mess ich bis zu
  • 55:13 - 55:16
    80 prozent an der Flanke oder sowas. Also
    dass ich wirklich dieses Timing
  • 55:16 - 55:23
    automatisch im Spice ausmesse.
    H: Ja, die nächste Frage an Mikrofon 3
  • 55:23 - 55:29
    Mikrofon 3: Dankeschön! Habt ihr schon
    Simulationsmodelle von euren Transistoren,
  • 55:29 - 55:34
    die ihr dann in Spice nutzen könnt? Weil
    das es ja tatsächlich bisher das war ja
  • 55:34 - 55:40
    recht viel für viele Technologien deswegen
    auch zum Beispiel dem Mosis-Standard Ding.
  • 55:40 - 55:45
    Aber gibts schon Ergebnisse von
    Simulationensparametern, von den
  • 55:45 - 55:50
    Transistoren, die dann gefertigt werden?
    C: Also ist es so. Die Modelle z.B. für
  • 55:50 - 55:54
    den Transistor BSIM3, BSIM4 und so weiter.
    Die sind ja standardisiert. Es geht nur
  • 55:54 - 55:58
    noch darum, welche Werte jetzt, da in
    dieses Modell reingefüttert werden. Also
  • 55:58 - 56:05
    für die Kapazitäten am Gate und so weiter.
    Die Größe ist klar, aber wie die Dotierung
  • 56:05 - 56:09
    aussieht. Diese Sachen, also diese Werte,
    die wir da rein füttern müssen, die hängen
  • 56:09 - 56:13
    eigentlich alle an unserem Testwafer dran,
    also den wir vor einem Jahr vorgestellt
  • 56:13 - 56:16
    haben. Da haben wir nämlich exakt diese
    Strukturen drauf, um solche Sachen
  • 56:16 - 56:21
    auszumessen. Das heißt also, wenn wir den
    Wafer sozusagen bis zum Ende prozessiert
  • 56:21 - 56:24
    haben und jetzt vielleicht auch im
    nächsten Reinraum dann nochmal gemacht
  • 56:24 - 56:28
    haben, dann haben wir wirklich diese Werte
    da. Dann können wir die in Spice
  • 56:28 - 56:31
    reinfüttern. Das ist eine relativ einfache
    Sache, und dann haben wir auch die
  • 56:31 - 56:33
    korrekten Werte dafür.
    M3: Gut, Dankeschön.
  • 56:33 - 56:37
    H: Und noch eine Frage an Mikrofon 3,
    bitte.
  • 56:37 - 56:42
    M3: Ich würde gerne wissen: Wie groß ist
    denn so ein Transistor und sind die nicht
  • 56:42 - 56:48
    ziemlich langsam dann?
    C: OK, wir machen ja ... also fangen erst
  • 56:48 - 56:54
    mal an mit einem Mikron. Ein Mikron, das
    heißt also diese Featuresize oder die
  • 56:54 - 57:02
    Länge vom Kanal zwischen Drain und Source
    ist ein Mykro. Das heißt also 2 hoch minus
  • 57:02 - 57:11
    sechs Meter. Ja? Doch. Milli - Tausend.
    Ja. Dazu, wie gesagt das Ratio, also diese
  • 57:11 - 57:17
    Weite dazu, wäre dann sozusagen den 1,5
    Mikron. Also das ist die Transistorgröße
  • 57:17 - 57:24
    ... ist relativ groß. Wir haben aber vom
    Equipment in Hongkong, oder hatten die
  • 57:24 - 57:29
    Möglichkeit, also das, wie wir uns das
    angeguckt ... das Equipment ging runter
  • 57:29 - 57:33
    bis 500 Nanometer. Das heißt also, wenn
    unsere Technologie funktioniert, können
  • 57:33 - 57:39
    wir relativ einfach sozusagen den 0,7 oder
    0,8 mikron Node auslassen und gleich nach
  • 57:39 - 57:44
    0,5 gehen. Das gab das Equipment her, also
    die Maschinen, Fotolitografie, die dazu
  • 57:44 - 57:48
    hängen. Wenn wir sozusagen Equipment
    hätten, Zugriff darauf, was noch kleiner
  • 57:48 - 57:51
    geht, dann müssten wir vielleicht mal
    wieder ein bisschen experimentieren, also
  • 57:51 - 57:57
    wieder Testwafer dafür machen. Aber dann
    können wir sozusagen auch runterskalieren.
  • 57:57 - 58:01
    Aber wir sind da noch, muss ich auch
    zugeben, wir sind da noch in einem
  • 58:01 - 58:06
    Bereich, der optisch sichtbar ist. Also
    AB-Limit, das ist so bei 240, 250
  • 58:06 - 58:11
    Nanometern, also die Wellenlänge vom
    Licht, was man optisch noch sehen kann.
  • 58:11 - 58:16
    Das heißt also, unsere Transistoren sieht
    man noch im optischen Mikroskop. Das, was
  • 58:16 - 58:20
    sozusagen jetzt irgendwie so die aktuellen
    Prozessoren sind, die irgendwie, weiß ich
  • 58:20 - 58:24
    nicht, bei 14, 20 Nanometern oder sowas
    sind. Die sind optisch nicht mehr
  • 58:24 - 58:30
    sichtbar. Aber optisch sichtbar heißt auch
    für uns, man kann sozusagen wirklich mit
  • 58:30 - 58:33
    einer Kamera, USB-Kamera oder sowas wie
    andere Leute schon gemacht haben durchs
  • 58:33 - 58:39
    Mikroskop durchfotografieren, den ganzen
    Chip aufnehmen und ein Reverse Engineering
  • 58:39 - 58:42
    draufmachen, das heißt, also auch
    nachträglich feststellen, ob eine
  • 58:42 - 58:47
    Manipulation an unserem Chip stattgefunden
    hat. Das betrachten wir in dem Fall
  • 58:47 - 58:50
    sozusagen als Sicherheitsfeature, das man
    noch sehen kann.
  • 58:50 - 58:53
    H: Dann gibt es noch eine letzte Frage aus
    dem Internet.
  • 58:53 - 58:59
    SA: Die Frage aus dem Internet lautet, ob
    ihr mal versucht hat, Standardzellen für
  • 58:59 - 59:03
    die Transistoren eines kommerziellen
    Fertigers damit zu erzeugen und ob das
  • 59:03 - 59:07
    funktioniert und was dagegen spricht.
    C: Es würde funktionieren. Theoretisch ja.
  • 59:07 - 59:16
    Was dagegen spricht, ist ein gewisses NDA.
    Die Hersteller geben sozusagen ungern die
  • 59:16 - 59:22
    Informationen raus. Wir müssten sozusagen
    ein NDA unterschreiben, um von denen die
  • 59:22 - 59:28
    physikalischen Angaben zu den ganzen
    Layern zu bekommen. Welche physikalischen
  • 59:28 - 59:32
    Eigenschaften haben und so weiter. Also
    die sogenannte PDK, vielleicht habt ihr da
  • 59:32 - 59:38
    mal was von gehört. Das steht aber unter
    'nem NDA. Die Zellen, die wir danach
  • 59:38 - 59:43
    generieren, die würden sozusagen auch
    automatisch wieder unter Verschluss
  • 59:43 - 59:48
    bleiben müssen. Es würde gehen. Also man
    könnte, also sagen wir mal andersrum, ein
  • 59:48 - 59:52
    kommerzieller Hersteller könnte am Ende
    diese Tools, die wir hier schreiben,
  • 59:52 - 59:58
    benutzen, um sich seine eigenen Zellen zu
    generieren. Ja. In die Richtung geht's.
  • 59:58 - 60:06
    Aber es ist machbar.
    H: Wenn ich keine weiteren Fragen mehr
  • 60:06 - 60:11
    sehe, dann bitte ich nochmal um eine
    herzliche Runde Applaus für Chipforge.
  • 60:11 - 60:13
    Applaus
  • 60:13 - 60:29
    36C3 Outro
  • 60:29 - 60:39
    Untertitel erstellt von c3subtitles.de
    im Jahr 2020. Mach mit und hilf uns!
Title:
36C3 - LibreSilicon's Standard Cell Library (de)
Description:

more » « less
Video Language:
German
Duration:
01:00:40

German subtitles

Revisions