[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:20.72,Default,,0000,0000,0000,,{\i1}36C3 Vorspannmusik{\i0} Dialogue: 0,0:00:20.72,0:00:24.61,Default,,0000,0000,0000,,Chipforge: Ich weiß nicht, wer von euch\Ndas alles mitgekriegt hat. Letztes Jahr Dialogue: 0,0:00:24.61,0:00:28.60,Default,,0000,0000,0000,,waren wir hier zu dritt auf der Bühne,\Ngleicher Saal und haben unsere Dialogue: 0,0:00:28.60,0:00:34.15,Default,,0000,0000,0000,,LibreSilicon Technologie vorgestellt. Wir\Nhaben damals schon Testwafer dabeigehabt. Dialogue: 0,0:00:34.15,0:00:40.27,Default,,0000,0000,0000,,Sozusagen. Jetzt das Update. Vorneweg erst\Nmal ein Disclaimer. Weil ist 'ne heikle Dialogue: 0,0:00:40.27,0:00:47.17,Default,,0000,0000,0000,,Sache. Okay, das ist jetzt mal so im\NGroben der Überblick, was ich machen will. Dialogue: 0,0:00:47.17,0:00:50.38,Default,,0000,0000,0000,,Also nochmal einen kurzen Abriss zu\NLibreSilicon, wo unser Projekt gerade Dialogue: 0,0:00:50.38,0:00:54.22,Default,,0000,0000,0000,,steht. Und dann würde ich ganz gerne so\Nmit den Basics anfangen bei den Dialogue: 0,0:00:54.22,0:01:03.25,Default,,0000,0000,0000,,Standardzellen und mich so langsam\Nvorarbeiten. Okay, also das Update: Der Dialogue: 0,0:01:03.25,0:01:08.95,Default,,0000,0000,0000,,Leviathanch hat 2017 einen Lightning Talk\Ngehalten und hat gesagt "Wir brauchen Dialogue: 0,0:01:08.95,0:01:14.92,Default,,0000,0000,0000,,irgendwie eine freie Technologie." Ich\Nfand das richtig super. Hab mich sofort Dialogue: 0,0:01:14.92,0:01:21.49,Default,,0000,0000,0000,,bei ihm gemeldet. Und wir haben in 2018\Nwirklich angefangen, uns da Gedanken zu Dialogue: 0,0:01:21.49,0:01:26.95,Default,,0000,0000,0000,,machen, durchzuwurschteln und haben\Nangefangen, wirklich mit einem Micron. Dialogue: 0,0:01:26.95,0:01:33.61,Default,,0000,0000,0000,,Also mit einem "µ" Technologie zu machen.\NGrund für ein µ war, unsere Bewegung Dialogue: 0,0:01:33.61,0:01:38.17,Default,,0000,0000,0000,,dazu, dass es 5-Volt Toleranz - Also man\Nkann sozusagen Blüter freundlich damit Dialogue: 0,0:01:38.17,0:01:43.36,Default,,0000,0000,0000,,arbeiten, Maker freundlich. Das ist so die\NTechnologie, die noch dokumentiert worden Dialogue: 0,0:01:43.36,0:01:49.48,Default,,0000,0000,0000,,ist. So Ende 70er, Anfang 80er Jahre, wo\Nman sozusagen von vorne bis hinten, alles Dialogue: 0,0:01:49.48,0:01:55.15,Default,,0000,0000,0000,,irgendwo in der Literatur noch findet in\NLehrbüchern. Und so einordnungsmäßig: Das Dialogue: 0,0:01:55.15,0:02:03.64,Default,,0000,0000,0000,,ist dieses etwa so die Generation so vom\N486. Dann haben wir wie gesagt, letztes Dialogue: 0,0:02:03.64,0:02:10.48,Default,,0000,0000,0000,,Jahr hier auf der Bühne die Präsentationen\Ngemacht von unserem Testwafer. Was neu Dialogue: 0,0:02:10.48,0:02:17.14,Default,,0000,0000,0000,,hinzugekommen ist seitdem in 2019: Uns ist\Ndas Geld ausgegangen, um jetzt sozusagen Dialogue: 0,0:02:17.14,0:02:22.87,Default,,0000,0000,0000,,jetzt nochmal ein Jahr den Reinraum zu\Nmieten in Hongkong. Es kamen die Unruhen Dialogue: 0,0:02:22.87,0:02:28.21,Default,,0000,0000,0000,,in Hongkong dazu, und die Unruhen haben\Ndazu geführt, dass die Uni zugemacht Dialogue: 0,0:02:28.21,0:02:32.44,Default,,0000,0000,0000,,worden ist. Wir gesagt haben: "Wir beenden\Ndas Semester". Es findet kein Lehrbetrieb Dialogue: 0,0:02:32.44,0:02:36.70,Default,,0000,0000,0000,,mehr statt. Das heißt aber auch: Wir sind\Njetzt erst mal draußen aus dem Reinraum Dialogue: 0,0:02:36.70,0:02:42.37,Default,,0000,0000,0000,,und können sozusagen erst einmal Paperwork\Nmachen. Es ist ein bisschen ungünstig, Dialogue: 0,0:02:42.37,0:02:47.62,Default,,0000,0000,0000,,unbefriedigend. Deswegen gucken wir nach\NAlternativen. Wenn jemand sozusagen einen Dialogue: 0,0:02:47.62,0:02:53.41,Default,,0000,0000,0000,,Reinraum hat, Zugriff drauf, sagt" Wir\Nkönnen es mit einer Maschinenliste Dialogue: 0,0:02:53.41,0:03:00.52,Default,,0000,0000,0000,,abklären, ob das passt und wie weit wir da\Nkommen". Wir haben wegen der Dialogue: 0,0:03:00.52,0:03:06.64,Default,,0000,0000,0000,,Geldgeschichte, die meistens auch dranhing\Nschon lange eine Gofunding campaign laufen Dialogue: 0,0:03:06.64,0:03:13.00,Default,,0000,0000,0000,,mit bisher einer Einzahlung. Also es ist\Nnicht unbedingt so massentauglich, gebe Dialogue: 0,0:03:13.00,0:03:21.46,Default,,0000,0000,0000,,ich zu. Die Links dazu: Also erste\NLibreSilicon, das ist die Projektseite. Dialogue: 0,0:03:21.46,0:03:31.48,Default,,0000,0000,0000,,Dann haben wir bei GitHub die\NStandardzellen drinne. Da findet die Dialogue: 0,0:03:31.48,0:03:35.74,Default,,0000,0000,0000,,Hauptentwicklung statt - das Repository.\NUnd unten drunter ist nochmal so eine Dialogue: 0,0:03:35.74,0:03:40.96,Default,,0000,0000,0000,,Wikiseite. Da wollte ich eigentlich alles\Ndas, was ich heute auch so zum Besten Dialogue: 0,0:03:40.96,0:03:44.92,Default,,0000,0000,0000,,gebe, immer mal wieder dokumentieren, weil\Nich festgestellt habe: In der Ecke Dialogue: 0,0:03:44.92,0:03:56.29,Default,,0000,0000,0000,,existiert sehr, sehr viel Nachholbedarf.\NDa fehlt einfach das Wissen in der Masse. Dialogue: 0,0:03:56.29,0:04:04.18,Default,,0000,0000,0000,,Wenn jemand sozusagen jetzt damit\Nrumspielen möchte: "git clone" unter Dialogue: 0,0:04:04.18,0:04:11.74,Default,,0000,0000,0000,,diesem Repository. Können Sie sich\Nreinlegen und der Designflow für Chip Dialogue: 0,0:04:11.74,0:04:19.42,Default,,0000,0000,0000,,Design ist im Regelfall so: Einer fängt an\NCode zu schreiben, Verilog, VHDL oder Dialogue: 0,0:04:19.42,0:04:25.47,Default,,0000,0000,0000,,SpinalHDL. Wie auch immer, er testet das\Naus. Also er simuliert es mit einem Dialogue: 0,0:04:25.47,0:04:29.55,Default,,0000,0000,0000,,Simulator, dafür gibt's freie Tools - kein\NProblem. Und versucht es zu verifizieren. Dialogue: 0,0:04:29.55,0:04:37.23,Default,,0000,0000,0000,,Dafür gibts auch Ansätze. Und dann wird\Ndas Ding so etwas wie 'kompiliert'. Nennt Dialogue: 0,0:04:37.23,0:04:42.84,Default,,0000,0000,0000,,sich in dem Fall aber 'Synthese'. Dafür\Ngibt es das 'Yosys' Tool von Clifford. Das Dialogue: 0,0:04:42.84,0:04:46.59,Default,,0000,0000,0000,,kann nicht nur FPGAs. Wenn man ihnen die\Nrichtige Bibliothek gibt, dann kann es Dialogue: 0,0:04:46.59,0:04:54.54,Default,,0000,0000,0000,,auch ASICs. Was dabei herauskommt, ist\Neine Netzliste. Das heißt so, weil es Dialogue: 0,0:04:54.54,0:05:01.11,Default,,0000,0000,0000,,einfach haufenweise Komponenten enthält:\NUND-Gatter, ODER-Gatter, Flipflops alles Dialogue: 0,0:05:01.11,0:05:07.29,Default,,0000,0000,0000,,Mögliche, was mit dem Code beschrieben\Nworden ist und die Verbindungen dazu - Dialogue: 0,0:05:07.29,0:05:12.96,Default,,0000,0000,0000,,also die Drähte dazwischen. Die Zellen\Nnatürlich, die müssen wir uns erst Dialogue: 0,0:05:12.96,0:05:16.56,Default,,0000,0000,0000,,einfallen lassen. Das ist eigentlich das\NZiel von dem Talk, euch das Nahe zu Dialogue: 0,0:05:16.56,0:05:23.61,Default,,0000,0000,0000,,bringen. Die Zellen werden platziert im\NLayout. Dafür braucht man sozusagen auch Dialogue: 0,0:05:23.61,0:05:29.25,Default,,0000,0000,0000,,die Layoutinformation, welchen Layer sie\Nbenutzen, wie sie aufgebaut sind. Das muss Dialogue: 0,0:05:29.25,0:05:34.77,Default,,0000,0000,0000,,alles zusammengepackt werden, und am Ende\Nkommt ein GDS II file raus. GDS II ist ein Dialogue: 0,0:05:34.77,0:05:39.42,Default,,0000,0000,0000,,anderes Format. Muss man sich vergleichbar\Nvorstellen wie beim PCB Design. Also wenn Dialogue: 0,0:05:39.42,0:05:43.17,Default,,0000,0000,0000,,man ein Board macht das, was hinten als\N'gerber' file dann sozusagen in die Dialogue: 0,0:05:43.17,0:05:49.80,Default,,0000,0000,0000,,Herstellung geht. Das ist halt beim ASIC\Nein GDS II. Damit werden die Masken Dialogue: 0,0:05:49.80,0:05:59.03,Default,,0000,0000,0000,,gemacht und über die Standardzellen wollen\Nwir mal reden. Okay, die Ziele für so eine Dialogue: 0,0:05:59.03,0:06:03.74,Default,,0000,0000,0000,,Bibliothek. Wenn man sich ein bisschen\Numguckt, dann sieht man, vielleicht bei Dialogue: 0,0:06:03.74,0:06:09.38,Default,,0000,0000,0000,,GitHub oder woanders, sagen wir mal so,\NStudentenprojekte, die nachgewiesen Dialogue: 0,0:06:09.38,0:06:12.47,Default,,0000,0000,0000,,haben, was ein paar Zellen machen können,\Ndie in Design flow, mit irgendwelchen Dialogue: 0,0:06:12.47,0:06:18.38,Default,,0000,0000,0000,,kommerziellen Tools. Die Bibliotheken sind\Nrelativ begrenzt. Einfach, weil der Dialogue: 0,0:06:18.38,0:06:23.75,Default,,0000,0000,0000,,Aufwand dafür groß ist. Eine typische\NStudenten Bibliothek, die hat vielleicht Dialogue: 0,0:06:23.75,0:06:28.40,Default,,0000,0000,0000,,30, 40 Zellen. Das ist aber eine\NGrößenordnung, die ist absolut Dialogue: 0,0:06:28.40,0:06:35.81,Default,,0000,0000,0000,,unzureichend für ein richtiges Design. Da\Nsind Zellen drinnen, die man sich so als Dialogue: 0,0:06:35.81,0:06:39.14,Default,,0000,0000,0000,,Menschen vorstellen kann. Also die\Ntypischen Und-Oder-Gatter, vielleicht noch Dialogue: 0,0:06:39.14,0:06:44.27,Default,,0000,0000,0000,,ein XOR, vielleicht noch zwei, drei\NFlipflops, ein paar Ledges. Und das wars Dialogue: 0,0:06:44.27,0:06:53.06,Default,,0000,0000,0000,,im Ganzen. Aber Kombinatorik, also\NKomplexität kann viel, viel größer sein. Dialogue: 0,0:06:53.06,0:06:59.54,Default,,0000,0000,0000,,Kommerzielle Bibliotheken haben 150, 200\NZellen. Da sind dann auch schon andere Dialogue: 0,0:06:59.54,0:07:03.44,Default,,0000,0000,0000,,Funktionalitäten drin. Also Flipflops zum\NBeispiel gibt's dann auch mit der Scan- Dialogue: 0,0:07:03.44,0:07:08.60,Default,,0000,0000,0000,,Fähigkeit, dass man für Testen in Scan-\NPfaden lange Ketten zusammenhängen kann. Dialogue: 0,0:07:08.60,0:07:15.14,Default,,0000,0000,0000,,So etwas fehlt bei Standard-Zellen. Das\Nwürde ich ganz gerne anders lösen. Aber Dialogue: 0,0:07:15.14,0:07:22.16,Default,,0000,0000,0000,,egal. Ziele auch für uns: LibreSilicon,\Nwir wollen so wenig Energie wie möglich Dialogue: 0,0:07:22.16,0:07:27.26,Default,,0000,0000,0000,,dabei verbraten. Also wir geben uns Mühe\Nbeim Prozess schon mit der Isolierung, Dialogue: 0,0:07:27.26,0:07:33.50,Default,,0000,0000,0000,,dass wir keinen Leakage-Strom, also keinen\NLeck-Strom und beim Cell Design auch, Dialogue: 0,0:07:33.50,0:07:39.05,Default,,0000,0000,0000,,indem wir die Transistoren entsprechend\Ndimensionieren, dass wir wenig Energie Dialogue: 0,0:07:39.05,0:07:43.49,Default,,0000,0000,0000,,verbraten haben. Weil CMOS, also die\NTechnologie die wir anpeilen, die Dialogue: 0,0:07:43.49,0:07:48.74,Default,,0000,0000,0000,,verbraucht Energie beim Schalten. Also\Nnicht im statischen Zustand, wenn der Dialogue: 0,0:07:48.74,0:07:53.90,Default,,0000,0000,0000,,Clock zum Beispiel flat wäre, also fest\Nliegen würde, also auf 0 oder 1, würde das Dialogue: 0,0:07:53.90,0:08:04.62,Default,,0000,0000,0000,,Ding so gut wie... jetzt ist das Mikro\Nweg? Doch, da ist es! Okay, es würde so Dialogue: 0,0:08:04.62,0:08:08.07,Default,,0000,0000,0000,,gut wie gar keinen Strom gebrauchen. Erst\Nin dem Augenblick, wenn eine Takt-Flanke Dialogue: 0,0:08:08.07,0:08:12.84,Default,,0000,0000,0000,,kommt und jetzt die Speicherzellen innen\Ndrin umschalten, also ihren Zustand Dialogue: 0,0:08:12.84,0:08:18.57,Default,,0000,0000,0000,,wechseln. Dann gibt es einen Moment, wo\Ndie Gatetransistoren beide durchschalten. Dialogue: 0,0:08:18.57,0:08:25.71,Default,,0000,0000,0000,,Und dann wird Strom verbraucht, oder\NEnergie. So, wir wollen auch schnelle Dialogue: 0,0:08:25.71,0:08:29.31,Default,,0000,0000,0000,,Zellen haben, so schnell wie geht. Das ist\Nein bisschen konträr zu der Forderung Dialogue: 0,0:08:29.31,0:08:34.98,Default,,0000,0000,0000,,vorhin, weniger Energie. Aber wir können\Ndie Transistoren ziemlich klein machen und Dialogue: 0,0:08:34.98,0:08:38.70,Default,,0000,0000,0000,,sozusagen den bestmöglichen Kompromiss\Ndafür finden. Und wir wollen auch, dass Dialogue: 0,0:08:38.70,0:08:44.94,Default,,0000,0000,0000,,die Zellen klein werden, weil nach\NHerstellung bezahlt man einen Chip nicht Dialogue: 0,0:08:44.94,0:08:50.58,Default,,0000,0000,0000,,nach dem, was drauf ist und wieviel Gatter\Nich drauf habe oder welche Funktionalität. Dialogue: 0,0:08:50.58,0:08:55.65,Default,,0000,0000,0000,,Sondern ich bezahle rein nach Fläche. Das\Nheißt also, wenn ich eine Zellbibliothek Dialogue: 0,0:08:55.65,0:08:59.07,Default,,0000,0000,0000,,habe, die klein ist, wenn ich sozusagen\Ndas ganze Design klein halten kann, Dialogue: 0,0:08:59.07,0:09:06.72,Default,,0000,0000,0000,,bezahle ich auch weniger dafür. Das sind\Njetzt so Standardzellen, das hier ist so Dialogue: 0,0:09:06.72,0:09:09.78,Default,,0000,0000,0000,,eine ganz typische, wir haben vielleicht\Nden einen oder anderen in der Uni schon Dialogue: 0,0:09:09.78,0:09:14.25,Default,,0000,0000,0000,,gehabt, ein NAND-Gatter mit zwei\NEingängen. Ich hab mal links das Symbol, Dialogue: 0,0:09:14.25,0:09:22.20,Default,,0000,0000,0000,,rechts dazu die Tabelle. Wenn man sich das\Nankuckt, beim NAND ist ganz typisch: Dialogue: 0,0:09:22.20,0:09:27.18,Default,,0000,0000,0000,,Solange wie beide Eingänge nicht\Ngleichzeitig 1 sind, ist der Ausgang immer Dialogue: 0,0:09:27.18,0:09:32.82,Default,,0000,0000,0000,,auf 1. Erst in dem Augenblick, wenn beide\NEingänge auf 1 schalten, dann geht der Dialogue: 0,0:09:32.82,0:09:38.01,Default,,0000,0000,0000,,Ausgang auf 0. Das ist sozusagen die\Ninvertierte UND-Funktion, also NAND. Unten Dialogue: 0,0:09:38.01,0:09:45.27,Default,,0000,0000,0000,,drunter noch die Formel in der üblichen\NNotation, wie es dann praktisch gemacht Dialogue: 0,0:09:45.27,0:09:51.96,Default,,0000,0000,0000,,wird. Und so sieht das aus. Für die Grafik\Nmuss ich mich ein bisschen entschuldigen. Dialogue: 0,0:09:51.96,0:09:58.38,Default,,0000,0000,0000,,Die habe ich mir generieren lassen, und da\Nsind noch ein paar Artefakte drin. Die Dialogue: 0,0:09:58.38,0:10:01.41,Default,,0000,0000,0000,,Leitungen hier. Aber im Prinzip sieht\Nman's ja. Man sieht die Transistoren Dialogue: 0,0:10:01.41,0:10:07.32,Default,,0000,0000,0000,,unten, die beiden n-Kanal, dass die in\Neiner Reihe sind. Man sieht die oben Dialogue: 0,0:10:07.32,0:10:17.99,Default,,0000,0000,0000,,p-Kanal parallel. NOR, das ist mehr oder\Nweniger invers dazu. Links wieder das Dialogue: 0,0:10:17.99,0:10:23.93,Default,,0000,0000,0000,,Symbol, das amerikanische, rechts die\NTabelle und das wieder ganz typisch: Wenn Dialogue: 0,0:10:23.93,0:10:29.90,Default,,0000,0000,0000,,beide Eingänge 0 sind, kommt hinten eine 1\Nraus. Sobald aber ein Eingang eine 1 hat, Dialogue: 0,0:10:29.90,0:10:41.66,Default,,0000,0000,0000,,ist es hinten eine 0. Und die Notation\Ndazu. Und auch die Transistoren. Da sieht Dialogue: 0,0:10:41.66,0:10:45.95,Default,,0000,0000,0000,,man sozusagen, man kann es sich so\Ngespiegelt vorstellen: Wir haben unten die Dialogue: 0,0:10:45.95,0:10:50.63,Default,,0000,0000,0000,,n-Kanal Transistoren, die sind jetzt in\Ndem Fall parallel, und wir haben oben die Dialogue: 0,0:10:50.63,0:10:59.30,Default,,0000,0000,0000,,p-Kanal, die sind in Reihe. Das ist ein\NXOR, Exclusiv-Oder. Da habe ich auch die Dialogue: 0,0:10:59.30,0:11:04.10,Default,,0000,0000,0000,,Tabelle hingemacht. Die beiden Eingänge\Nmüssen sich unterscheiden, damit hinten Dialogue: 0,0:11:04.10,0:11:10.40,Default,,0000,0000,0000,,eine 1 rauskommt. Ansonsten ist es eine 0.\NDafür habe ich jetzt keine Implementierung Dialogue: 0,0:11:10.40,0:11:18.05,Default,,0000,0000,0000,,dabei, weil dafür gibt es irgendwo so\Nfünf, sechs, sieben Varianten, welche ich Dialogue: 0,0:11:18.05,0:11:22.19,Default,,0000,0000,0000,,sozusagen in die Standard-Bibliothek rein\Nnehmen werde. Hab ich noch nicht letztlich Dialogue: 0,0:11:22.19,0:11:30.41,Default,,0000,0000,0000,,ausgeknobelt. Da werde ich mich später mal\Ndrum kümmern. Das ist die inverse Funktion Dialogue: 0,0:11:30.41,0:11:35.51,Default,,0000,0000,0000,,dazu. Das wird auch gern als XNOR\Nbezeichnet. Ich bezeichne es halt kürzer Dialogue: 0,0:11:35.51,0:11:40.91,Default,,0000,0000,0000,,mit Äquivalenz-Gatter. Muss man sich\Nvorstellen, wie ein XOR, allerdings Dialogue: 0,0:11:40.91,0:11:45.62,Default,,0000,0000,0000,,wirklich invertiert dazu. Das heißt also,\Nwenn beide Eingänge unterschiedlich sind, Dialogue: 0,0:11:45.62,0:11:52.67,Default,,0000,0000,0000,,dann habe ich die 0. Ansonsten, wenn sie\Ngleich sind, kommt die 1 raus. Dafür gibt Dialogue: 0,0:11:52.67,0:11:55.94,Default,,0000,0000,0000,,es auch wieder die gleiche Anzahl der\NImplementierungen, einfach weil man es Dialogue: 0,0:11:55.94,0:12:01.25,Default,,0000,0000,0000,,wieder symmetrisch gegenüber dem XOR\Nmachen kann. So, jetzt wird es ein Dialogue: 0,0:12:01.25,0:12:05.63,Default,,0000,0000,0000,,bisschen blutiger. Das sind jetzt ein paar\NBeispiele, die man sich auch noch Dialogue: 0,0:12:05.63,0:12:10.94,Default,,0000,0000,0000,,vorstellen kann an Zellen. Nicht nur das,\Nwas sonst nur in Lehrbüchern drin ist. Das Dialogue: 0,0:12:10.94,0:12:18.09,Default,,0000,0000,0000,,sind sogenannte Komplex-Gatter, und wenn\Nman sich das oben anguckt, man sieht Dialogue: 0,0:12:18.09,0:12:22.47,Default,,0000,0000,0000,,sozusagen erst vorne dran eine kleine\NFunktion, ein UND oder ein OR, und danach Dialogue: 0,0:12:22.47,0:12:26.46,Default,,0000,0000,0000,,noch eine andere, wieder mit dem nächsten\NEingang. Das kann man beliebig lang Dialogue: 0,0:12:26.46,0:12:30.24,Default,,0000,0000,0000,,treiben, denn unten die Variante, dass man\Nsozusagen paarweise das zusammenfasst, Dialogue: 0,0:12:30.24,0:12:37.29,Default,,0000,0000,0000,,kann man auch beliebig weit treiben. Man\Nkann dieses Prinzip, dass man Transistoren Dialogue: 0,0:12:37.29,0:12:42.12,Default,,0000,0000,0000,,so miteinander verkettet, dass genau diese\NFunktion rauskommt, aber die Transistor- Dialogue: 0,0:12:42.12,0:12:46.29,Default,,0000,0000,0000,,Anordnung drinnen einfach und\Nübersichtlich kann man sehr weit treiben. Dialogue: 0,0:12:46.29,0:12:53.91,Default,,0000,0000,0000,,Und das möchte ich in der Standard-\NBibliothek auch machen. Kommen wir später Dialogue: 0,0:12:53.91,0:12:59.94,Default,,0000,0000,0000,,zu, dazu muss ich mich was erklären dazu,\Nwie weit man gehen kann. Das ist jetzt ein Dialogue: 0,0:12:59.94,0:13:08.34,Default,,0000,0000,0000,,Beispiel für ein NAND mit vier Eingängen.\NIch weiß nicht, ob ihr euch noch daran Dialogue: 0,0:13:08.34,0:13:12.18,Default,,0000,0000,0000,,erinnert, and das NAND mit zwei Eingängen,\Nda hatten wir unten die Transistoren in Dialogue: 0,0:13:12.18,0:13:18.66,Default,,0000,0000,0000,,Reihe, oben die in parallel. Oh, das\Nist ein AND, stimmt. Ich habe da den Dialogue: 0,0:13:18.66,0:13:22.86,Default,,0000,0000,0000,,Buffer übersehen, hinten. Okay, und ganz\Nrechts, da müssen wir hingucken. Da ist Dialogue: 0,0:13:22.86,0:13:29.43,Default,,0000,0000,0000,,nochmal ein kleiner Inverter hinten dran.\NDer invertiert ist, also habe ich kein Dialogue: 0,0:13:29.43,0:13:36.18,Default,,0000,0000,0000,,NAND sondern ein AND. Fangen wir mit dem\NBuffer an zu erklären. Das ist ein Dialogue: 0,0:13:36.18,0:13:41.40,Default,,0000,0000,0000,,wichtiger Punkt. Also eine Design-\NEntscheidung, die ich in der Standard- Dialogue: 0,0:13:41.40,0:13:48.03,Default,,0000,0000,0000,,Zellenbibliothek getroffen habe. Wenn wir\Nuns vorstellen, dass über jeden Transistor Dialogue: 0,0:13:48.03,0:13:52.08,Default,,0000,0000,0000,,von den vier in der langen Kette zwischen\NDrain und Source, also den beiden Dialogue: 0,0:13:52.08,0:13:57.99,Default,,0000,0000,0000,,Enden hier. Ich gehe mal kurz rüber. Also\Ndem unteren Ende und dem da oben drüber, Dialogue: 0,0:13:57.99,0:14:03.60,Default,,0000,0000,0000,,Drain und Source, wenn da drüben ein\NSpannungsabfall ist, also sozusagen immer Dialogue: 0,0:14:03.60,0:14:07.65,Default,,0000,0000,0000,,eine kleine Differenz. Der Transistor\Nschaltet völlig durch. Trotzdem sind diese Dialogue: 0,0:14:07.65,0:14:10.41,Default,,0000,0000,0000,,beiden Pole nicht auf dem gleichen\NPotenzial. Da gibt es immer eine kleine Dialogue: 0,0:14:10.41,0:14:13.98,Default,,0000,0000,0000,,Differenz. Wenn ich das jetzt aber viermal\Nmache, alle vier hintereinander Dialogue: 0,0:14:13.98,0:14:19.50,Default,,0000,0000,0000,,durchgeschaltet werden, addiert sich das\Ntrotzdem auf. Das kann dazu führen, dass Dialogue: 0,0:14:19.50,0:14:24.99,Default,,0000,0000,0000,,dieser Ausgangspegel, der jetzt in dieser\Nlangen Leitung da rauskommt, nicht mehr Dialogue: 0,0:14:24.99,0:14:28.36,Default,,0000,0000,0000,,Rail-to-Rail ist, also nicht mehr wirklich\Nan die Betriebsspannung herangeht, sondern Dialogue: 0,0:14:28.36,0:14:36.79,Default,,0000,0000,0000,,wirklich eine deutliche Differenz dazu\Naufweist. Um diese nicht mehr zu Rail-to- Dialogue: 0,0:14:36.79,0:14:40.90,Default,,0000,0000,0000,,Rail-Fähigkeit ein bisschen rauszunehmen,\Nich will ja danach eigentlich eine Leitung Dialogue: 0,0:14:40.90,0:14:47.65,Default,,0000,0000,0000,,treiben, fange ich an, mir den Ausgangs-\NPegel sozusagen wieder schön zu Dialogue: 0,0:14:47.65,0:14:51.37,Default,,0000,0000,0000,,invertieren. Also einfach wieder einen\NInverter hinten dran, weil dann nach dem Dialogue: 0,0:14:51.37,0:14:56.92,Default,,0000,0000,0000,,Inverter habe ich sozusagen wieder\Ndeutliche, klarere Pegel. Und eine Dialogue: 0,0:14:56.92,0:15:00.19,Default,,0000,0000,0000,,Designentscheidung, die ich getroffen\Nhabe, in der Standard-Bibliothek ist, ich Dialogue: 0,0:15:00.19,0:15:06.34,Default,,0000,0000,0000,,konfiguriere ab wieviel Transistoren in\Neiner Reihe ich sozusagen dieses Recovery Dialogue: 0,0:15:06.34,0:15:10.90,Default,,0000,0000,0000,,hinten machen muss. Also wieder buffern\Nmuss. Meine Faustregel, mit der ich im Dialogue: 0,0:15:10.90,0:15:17.32,Default,,0000,0000,0000,,Augenblick arbeite, sind vier\NTransistoren. Das ist aber im Tool, was Dialogue: 0,0:15:17.32,0:15:21.28,Default,,0000,0000,0000,,ich schreibe, konfigurierbar. Also, ich\Nkann mir auch was vorstellen wo es nur mit Dialogue: 0,0:15:21.28,0:15:25.15,Default,,0000,0000,0000,,dreien oder mit zweien schon gemacht wird,\Nwenn es notwendig wird. Weil: vier Dialogue: 0,0:15:25.15,0:15:29.74,Default,,0000,0000,0000,,Transistoren ist für einen Mikron ganz super.\NWenn wir aber Technologien benutzen, die Dialogue: 0,0:15:29.74,0:15:34.87,Default,,0000,0000,0000,,deutlich kleiner werden, dann haben wir\Nein Schwellspannungsproblem. Diese Dialogue: 0,0:15:34.87,0:15:41.98,Default,,0000,0000,0000,,Spannung vorne an den Transistoren, also\Nam Gate zum Source. Das gibt's so eine Dialogue: 0,0:15:41.98,0:15:45.31,Default,,0000,0000,0000,,gewisse Schwellspannung, ab der der\NTransistor eingentlich schaltet. Das Dialogue: 0,0:15:45.31,0:15:52.87,Default,,0000,0000,0000,,addiert sich auch auf. Wir kriegen also\Nsozusagen auch wieder addierende Pegel. Es Dialogue: 0,0:15:52.87,0:15:59.53,Default,,0000,0000,0000,,ist einfach unangenehm. Wir müssen das\Nbegrenzen, und dafür habe ich auch noch Dialogue: 0,0:15:59.53,0:16:07.54,Default,,0000,0000,0000,,einen zweiten Parameter drinne. Bis wie\Nviele Transistoren ich sozusagen in dieser Dialogue: 0,0:16:07.54,0:16:12.94,Default,,0000,0000,0000,,Kette erlaube. Also ein Buffer hinten, ab\Nwann ich sozusagen den Inverter dranmache. Dialogue: 0,0:16:12.94,0:16:23.95,Default,,0000,0000,0000,,Und das zweite ist, wie viel ich in einer\NReihe erlaube. Also nochmal kurz Dialogue: 0,0:16:23.95,0:16:27.73,Default,,0000,0000,0000,,zusammenrechnen, also bei zwei Stack-\NTransistoren - also die in einer Reihe, Dialogue: 0,0:16:27.73,0:16:31.15,Default,,0000,0000,0000,,nennen sich "stacked" im Englischen, ich\Nweiß gar nicht, wie man das ins Deutsche Dialogue: 0,0:16:31.15,0:16:37.27,Default,,0000,0000,0000,,übersetzen sollte. Wir sagen es gestapelt\Noder sowas. Wo man zwei Transistoren hat, Dialogue: 0,0:16:37.27,0:16:41.77,Default,,0000,0000,0000,,wegen der Schwellspannung vorne. Wenn\Ndiese Betriebsspannung so klein ist und Dialogue: 0,0:16:41.77,0:16:45.16,Default,,0000,0000,0000,,die Schwellspannung zu groß dafür, dass\Nman gar nicht mehr die Pegel erreicht zum Dialogue: 0,0:16:45.16,0:16:50.50,Default,,0000,0000,0000,,Ein und Ausschalten. Dann hat man den\NEffekt, dass die Bibliothek viel zu klein Dialogue: 0,0:16:50.50,0:16:52.72,Default,,0000,0000,0000,,wird. Da sind wir wieder in der\NGrößenordnung von diesen Dialogue: 0,0:16:52.72,0:16:59.11,Default,,0000,0000,0000,,Studentenbibliotheken mit 30 Zellen oder\Nso. Wenn man drei erlaubt, drei Dialogue: 0,0:16:59.11,0:17:05.92,Default,,0000,0000,0000,,Transistorenstapel, dann ist man so bei\NBibliotheken, die jetzt mit diesen ganzen Dialogue: 0,0:17:05.92,0:17:11.77,Default,,0000,0000,0000,,winzigen Nodes mit 14 Nanometer oder sowas\Nauftauchen. Die können nicht mehr vier Dialogue: 0,0:17:11.77,0:17:17.83,Default,,0000,0000,0000,,Transistoren. Vier Transistoren, aber wenn\Nwir das können, haben wir plötzlich eine Dialogue: 0,0:17:17.83,0:17:23.56,Default,,0000,0000,0000,,riesige Komplexität an Komplexgattern, die\Nmöglich sind. Das geht laut 'nem Paper. Dialogue: 0,0:17:23.56,0:17:26.98,Default,,0000,0000,0000,,Ich habe es noch nicht ausprobiert. Ich\Nbin noch nicht so weit. Da, sagt einer -- Dialogue: 0,0:17:26.98,0:17:33.31,Default,,0000,0000,0000,,oder behauptet einer, es geht bis zu\N4000. Meine Anzahl kommen wir noch dazu, Dialogue: 0,0:17:33.31,0:17:38.47,Default,,0000,0000,0000,,die ich bisher erreicht habe. Also Buffer-\Nlimit bei größer gleich drei Transistoren. Dialogue: 0,0:17:38.47,0:17:45.58,Default,,0000,0000,0000,,Gut, das ist so eine Annahme. Okay. Aber\Nwie kommen wir eigentlich zu diesen ganzen Dialogue: 0,0:17:45.58,0:17:51.55,Default,,0000,0000,0000,,Komplexgattern. Wir hätten die vier\NBeispiele drinnen. Wir kommen von einem Dialogue: 0,0:17:51.55,0:17:58.33,Default,,0000,0000,0000,,Komplexgatter zum nächsten, indem man\Neinen Trick anwendet, und zwar, indem wir Dialogue: 0,0:17:58.33,0:18:02.56,Default,,0000,0000,0000,,sagen: Wir können ja noch zu dem Netzwerk,\Nwas wir haben. Also dem Pull-Up, das waren Dialogue: 0,0:18:02.56,0:18:06.70,Default,,0000,0000,0000,,die Oberen oder Pull-Up-Netzwerk, dem\Nunteren, noch zusätzlich Transistor Dialogue: 0,0:18:06.70,0:18:13.27,Default,,0000,0000,0000,,hinzufügen. Einen in Serie, seriell, also\Nin Reihe. Wir müssen nur dafür sorgen, Dialogue: 0,0:18:13.27,0:18:18.40,Default,,0000,0000,0000,,dass wir logisch äquivalent in dem\Nkomplementären Netzwerk, dazu einen Dialogue: 0,0:18:18.40,0:18:24.34,Default,,0000,0000,0000,,parallel machen. Das geht halt bei CMOS\Nschön. Und dafür habe ich mir ein Tool Dialogue: 0,0:18:24.34,0:18:30.52,Default,,0000,0000,0000,,geschrieben, was immer noch ein bisschen\Nbuggy läuft. Auch schon mal ganz gut. Dialogue: 0,0:18:30.52,0:18:36.40,Default,,0000,0000,0000,,Also, wie gesagt, seriell einen\Nhinzufügen, parallel im anderen Netzwerk. Dialogue: 0,0:18:36.40,0:18:41.92,Default,,0000,0000,0000,,Wenn ich einen Pull-Up mache, seriell\Nerweiter, muss ich einen Pull-Down im Dialogue: 0,0:18:41.92,0:18:49.54,Default,,0000,0000,0000,,Komplementären machen und vice versa.\NOkay, weil es sozusagen eine Sache ist, Dialogue: 0,0:18:49.54,0:18:54.58,Default,,0000,0000,0000,,die keiner noch so richtig durchexerziert\Nhat, habe ich angefangen mit Paperwork. Dialogue: 0,0:18:54.58,0:19:00.31,Default,,0000,0000,0000,,Also ich hab gesagt: "Okay, ich nehme mal\Ndas einfachste CMOS Netzwerk, was ich mir Dialogue: 0,0:19:00.31,0:19:03.43,Default,,0000,0000,0000,,vorstellen kann, dass es ganz links mit\Nden zwei Transistoren das ist ein Dialogue: 0,0:19:03.43,0:19:08.23,Default,,0000,0000,0000,,Inverter". Und dann habe ich gesagt, mit\Ndiesem Inverter, mit diesem Prinzip kann Dialogue: 0,0:19:08.23,0:19:15.34,Default,,0000,0000,0000,,ich sozusagen erweitern zu einem, NOR\Nzwei, also NOR mit zwei Eingängen. Aber Dialogue: 0,0:19:15.34,0:19:19.96,Default,,0000,0000,0000,,jetzt ein bisschen hinguckt, sieht man da\Nlinks da. Von wegen Inverter er Dialogue: 0,0:19:19.96,0:19:24.58,Default,,0000,0000,0000,,A-Transistor hat plötzlich ein\NBrüderchen an der Seite gekriegt, A1 in Dialogue: 0,0:19:24.58,0:19:29.14,Default,,0000,0000,0000,,parallel und oben hat sozusagen eine Serie\Nbekommen. Auch wieder A1. Sieht ein Dialogue: 0,0:19:29.14,0:19:34.18,Default,,0000,0000,0000,,bisschen komisch aus, weil ich mir in den\NNamensregeln zwischendurch mal geändert Dialogue: 0,0:19:34.18,0:19:40.93,Default,,0000,0000,0000,,habe. Aber das wär so die Idee. Das\NGleiche hat man auch für NAND gemacht. Dialogue: 0,0:19:40.93,0:19:46.48,Default,,0000,0000,0000,,Wieder den Inverter hergenommen, hab\Ngesagt "Okay, jetzt erweitere ich das Dialogue: 0,0:19:46.48,0:19:51.04,Default,,0000,0000,0000,,andere Netzwerk, weil ich sozusagen das\NPull down Netzwerk wieder seriell Dialogue: 0,0:19:51.04,0:19:58.51,Default,,0000,0000,0000,,erweitert, Pull up in parallel. Eine ganze\NWeile hochgetrieben. Also sozusagen von Dialogue: 0,0:19:58.51,0:20:03.10,Default,,0000,0000,0000,,NAND2, NOR2 das wiedererweitert und so\Nweiter und da bin ich zu Sunarzelle Dialogue: 0,0:20:03.10,0:20:12.40,Default,,0000,0000,0000,,vorbeigekommen. Ein paar Leute haben mich\Nim Club um nur solche Sachen zeichnen Dialogue: 0,0:20:12.40,0:20:15.61,Default,,0000,0000,0000,,sehen, habe mich schon ein bisschen\Nmeschugge gehalten, war aber ein bisschen Dialogue: 0,0:20:15.61,0:20:23.35,Default,,0000,0000,0000,,sowieso Sodoku, das beruhigt und es kommt\Nauch so etwas raus. Es sind sozusagen Dialogue: 0,0:20:23.35,0:20:32.17,Default,,0000,0000,0000,,jetzt vier Beispiele, die ich gescannt\Nhabe. Die sind alle, Teile davon sind noch Dialogue: 0,0:20:32.17,0:20:38.21,Default,,0000,0000,0000,,gar nicht eingetragen worden ins make-\Nfile, ebenfalls beim Paperwork ist im Dialogue: 0,0:20:38.21,0:20:41.87,Default,,0000,0000,0000,,Augenblick so. Ich habe zwei dicke Dialogue: 0,0:20:41.87,0:20:49.43,Default,,0000,0000,0000,,Aktenordner voll mit Papier. Nur diese\NAbleitung, so geschätzt, würde mal sagen Dialogue: 0,0:20:49.43,0:20:55.31,Default,,0000,0000,0000,,so 500, 600 Zellen. Alles nur\NKomplexgatter und alle mit diesem Limit Dialogue: 0,0:20:55.31,0:21:01.85,Default,,0000,0000,0000,,vier Transistoren gestacked. Ja, ich habe\Ndas Gefühl, ich bin noch ganz, ganz weit Dialogue: 0,0:21:01.85,0:21:08.03,Default,,0000,0000,0000,,weg von complied, also von vollständig,\Nweil die Zellen im Augenblick noch dazu Dialogue: 0,0:21:08.03,0:21:15.41,Default,,0000,0000,0000,,tendieren, so lange Bäume zu bilden. Also\Nalternierend bei dem mehr gesehen hat. Dialogue: 0,0:21:15.41,0:21:20.72,Default,,0000,0000,0000,,Also sieht man ja: AND, OR, AND, OR. Nur\Nim Namen sieht man ein bisschen von der Dialogue: 0,0:21:20.72,0:21:23.72,Default,,0000,0000,0000,,Funktion und rechts oben diese\NBleistiftzeichnung sieht man auch die Dialogue: 0,0:21:23.72,0:21:29.54,Default,,0000,0000,0000,,Funktion. Also ich habe sozusagen\Nerweitert, habe immer geguckt, wie sieht Dialogue: 0,0:21:29.54,0:21:36.05,Default,,0000,0000,0000,,die Funktion aus. Es war jedenfalls\NArbeit, okay. Und das ist dann so ein Dialogue: 0,0:21:36.05,0:21:40.43,Default,,0000,0000,0000,,Zwischending. Wir sagen, das ist schon ein\Nbisschen fülliger, weil man dann auch mal Dialogue: 0,0:21:40.43,0:21:52.49,Default,,0000,0000,0000,,zwei OR-Funktionen nebeneinander hat oder\Nzwei AND. Okay. Und diese ganze Arbeit, Dialogue: 0,0:21:52.49,0:22:00.89,Default,,0000,0000,0000,,die ich mir erst einmal mit Papier gemacht\Nhabe, wollte ich ja irgendwie auch meinem Dialogue: 0,0:22:00.89,0:22:07.19,Default,,0000,0000,0000,,Tool beibringen. Hab gesagt: "Okay,\Nbrauche ein Tool, ich hab jetzt erst mal Dialogue: 0,0:22:07.19,0:22:34.40,Default,,0000,0000,0000,,das hier zum Vorführen. Kriege ich es\Nhin? Nein. Jetzt mal das hier zumachen. Dialogue: 0,0:22:34.40,0:22:36.98,Default,,0000,0000,0000,,Da\Nhat er mir jetzt die Manuel Pages Dialogue: 0,0:22:36.98,0:22:58.52,Default,,0000,0000,0000,,gebastelt dafür. Und ich guck mir jetzt\Nmal mit euch die zusammen an! Warum nicht? Dialogue: 0,0:22:58.52,0:23:30.04,Default,,0000,0000,0000,,Vertippt? Wahrscheinlich. Es sieht genauso\Naus. Dialogue: 0,0:23:30.04,0:23:35.68,Default,,0000,0000,0000,,So jetzt mit der klassischen\NVariante. Also. Das ist jetzt mit Klicki- Dialogue: 0,0:23:35.68,0:23:39.79,Default,,0000,0000,0000,,bunti. Das ist jetzt die Manual Page dazu. Ich\Nhabe das Tool "Popcorn" genannt, einfach Dialogue: 0,0:23:39.79,0:23:45.67,Default,,0000,0000,0000,,weil gefühlt die Zellen einfach\Nwirklich hacken. Man schüttet den Mais Dialogue: 0,0:23:45.67,0:23:48.94,Default,,0000,0000,0000,,irgendwo in Topf rein, gibt ein bisschen\NWärme dazu, und dann macht das Blub-Blub- Dialogue: 0,0:23:48.94,0:23:58.78,Default,,0000,0000,0000,,Blub, dann kommen die ganzen Zellen raus.\NDas war mein Hintergedanke dazu. Ja. Ihr Dialogue: 0,0:23:58.78,0:24:03.19,Default,,0000,0000,0000,,könnt es euch angucken, ist im Github\Ndrinne. Da ist es auch ein bisschen Dialogue: 0,0:24:03.19,0:24:09.79,Default,,0000,0000,0000,,beschrieben, wie es funktioniert. Hier ist\Ndieses Bufferlimit drinne. Das kann ich Dialogue: 0,0:24:09.79,0:24:13.09,Default,,0000,0000,0000,,als Parameter übergeben. Ich kann den\NZellennamen übergeben, der dabei Dialogue: 0,0:24:13.09,0:24:17.98,Default,,0000,0000,0000,,rauskommen soll, weil, das weiß ich ja\Ninzwischen, mein Paperarbeit gemacht habe. Dialogue: 0,0:24:17.98,0:24:25.30,Default,,0000,0000,0000,,Ich kann das noch mit String richtig lang\Nbeschreiben für die Doku. Hier sind Dialogue: 0,0:24:25.30,0:24:28.66,Default,,0000,0000,0000,,Formate, die ich ganz gerne später mal\Nhätte, die noch nicht alle funktionieren. Dialogue: 0,0:24:28.66,0:24:34.42,Default,,0000,0000,0000,,Helpscreen. Was haben wir hier? Hier haben\Nwir die Nummern der gestackten Dialogue: 0,0:24:34.42,0:24:40.06,Default,,0000,0000,0000,,Transistoren, limitierend. Und hier sind\Ndie Methoden, die man sozusagen drauf Dialogue: 0,0:24:40.06,0:24:46.51,Default,,0000,0000,0000,,werfen kann. Ich hatte ja erklärt, man\Nkann einen Transistor seriell machen dazu, Dialogue: 0,0:24:46.51,0:24:53.89,Default,,0000,0000,0000,,einen anderen parallel erweitern. Das war\Neine kurze Vereinfachung, weil je nachdem Dialogue: 0,0:24:53.89,0:24:57.97,Default,,0000,0000,0000,,bei welcher Zelle ich gerade bin, muss ich\Nauch die Namensregeln anpassen. Also ob Dialogue: 0,0:24:57.97,0:25:02.62,Default,,0000,0000,0000,,ich jetzt nur den Buchstaben, also den\Nnächsten Buchstaben im Alphabet nehme, Dialogue: 0,0:25:02.62,0:25:06.94,Default,,0000,0000,0000,,weil ich jetzt ein neues Gatter aufgemacht\Nhabe oder neue Funktionalität. Oder ob ich Dialogue: 0,0:25:06.94,0:25:10.39,Default,,0000,0000,0000,,sozusagen jetzt Eingänge nur\Ndurchnummeriere. Deswegen kommen hier Dialogue: 0,0:25:10.39,0:25:14.35,Default,,0000,0000,0000,,jetzt solche Methoden raus, wie NAND und\NNOR, dass sozusagen mit durchnummerieren Dialogue: 0,0:25:14.35,0:25:20.89,Default,,0000,0000,0000,,und AOE-OAE, das ist dann sozusagen mit\Neinem neuen Buchstaben. Hier sind noch Dialogue: 0,0:25:20.89,0:25:24.91,Default,,0000,0000,0000,,zwei Methoden drin, die lassen heute mal\Ngroßzügig weg: Pull-up, Pull-Down. Die Dialogue: 0,0:25:24.91,0:25:31.59,Default,,0000,0000,0000,,funktionieren auch nicht. Brauche ich aber\Nin ein paar Exotengatter. Mit dem Gatter Dialogue: 0,0:25:31.59,0:25:49.64,Default,,0000,0000,0000,,komme ich jetzt nicht weiter, muss etwas\Nanderes machen. Also Prinzip, wie gesagt, Dialogue: 0,0:25:49.64,0:25:55.88,Default,,0000,0000,0000,,mit dem Tool ... Mäuschen ... so. Ich\Nnehme mir ein Zell-File her, also eine Dialogue: 0,0:25:55.88,0:25:59.84,Default,,0000,0000,0000,,Zellbeschreibung, schicke das durchs\NPopcorn durch und kriege hinten wieder Dialogue: 0,0:25:59.84,0:26:05.78,Default,,0000,0000,0000,,eine erweiterte Zellschreibung rein. Ich\Nkann auch mal ... Moment, das ist das Dialogue: 0,0:26:05.78,0:26:18.89,Default,,0000,0000,0000,,Falsche. So eine Zellbeschreibung hier\Nrüber nehmen. Da ist sie. Das geht Dialogue: 0,0:26:18.89,0:26:23.42,Default,,0000,0000,0000,,irgendwie los, dass ich Kommentare erlaube,\Ndass ich ein .cell habe, wie ich das Ding Dialogue: 0,0:26:23.42,0:26:29.93,Default,,0000,0000,0000,,dann nenne. Ich hab ein .inputs drin,\Nwo ich sozusagen die ganzen Dialogue: 0,0:26:29.93,0:26:35.36,Default,,0000,0000,0000,,Eingangssignale auflisten kann. Outputs\Näquivalent. Clocks sogar, wenn ich Dialogue: 0,0:26:35.36,0:26:40.82,Default,,0000,0000,0000,,Latches, Flipflops habe, brauche ich auch\NClocks. Ich hab sogar da, damit ich weiß, Dialogue: 0,0:26:40.82,0:26:45.56,Default,,0000,0000,0000,,wenn es zuende ist ein .end dabei. Und ich\Nhabe sozusagen die ganzen Transistoren Dialogue: 0,0:26:45.56,0:26:50.66,Default,,0000,0000,0000,,eigentlich hier, so als Circuits dabei, wo\Nich sage: "Welchen Typ von Transistor hab Dialogue: 0,0:26:50.66,0:26:55.40,Default,,0000,0000,0000,,ich? Einen PMOS, einen NMOS?" Ich sage,\Nwie der Knoten heißt, der am git Dialogue: 0,0:26:55.40,0:27:01.52,Default,,0000,0000,0000,,angeschlossen ist. Drain, Source, Balk und\Nso weiter. Hier habe ich die Nummer Dialogue: 0,0:27:01.52,0:27:05.84,Default,,0000,0000,0000,,drinne, der wievielte Transistor das schon\Nbeim Stacken ist. Also wenn ich es Dialogue: 0,0:27:05.84,0:27:09.44,Default,,0000,0000,0000,,generiere, kriege ich sozusagen frei Haus\Ngeliefert, deswegen gleich mit Dialogue: 0,0:27:09.44,0:27:17.39,Default,,0000,0000,0000,,reingeschrieben. Ich hab mir zum Scematic\Nmalen, das ich auch schön ein Schaltbild Dialogue: 0,0:27:17.39,0:27:20.78,Default,,0000,0000,0000,,davon bekomme, auch gleich die Koordinaten\Nreingeschrieben, weil es sehe ich ja auch, Dialogue: 0,0:27:20.78,0:27:24.62,Default,,0000,0000,0000,,wenn ich es seriell mache, muss ich\Nsozusagen nur die x-Achse ändern, wenn ich Dialogue: 0,0:27:24.62,0:27:27.95,Default,,0000,0000,0000,,parallel machen muss, muss ich noch die\Ny-Achse ändern. Das war sozusagen ein Dialogue: 0,0:27:27.95,0:27:34.73,Default,,0000,0000,0000,,Beifang. Size ist so eine Geschichte. Da\Nwill ich die Größe vom Transistor mit Dialogue: 0,0:27:34.73,0:27:40.88,Default,,0000,0000,0000,,reinschreiben. Da gibt es eine Methode,\Ndass man die Transistoren so Dialogue: 0,0:27:40.88,0:27:47.03,Default,,0000,0000,0000,,dimensioniert, dass halt den Kompromiss\Nzwischen Schnell- und Power-sparen, also Dialogue: 0,0:27:47.03,0:27:51.73,Default,,0000,0000,0000,,Energie-sparen machen. Gibts so eine\NMethode, die nennt sich Logical Effort. Dialogue: 0,0:27:51.73,0:27:58.36,Default,,0000,0000,0000,,Das ist aber noch nicht so richtig\Nimplementiert. Wenn die Zelle Dialogue: 0,0:27:58.36,0:28:02.20,Default,,0000,0000,0000,,funktioniert, wenn sie okay ist, dann gehe\Nich einmal drüber und rechne mir das aus. Dialogue: 0,0:28:02.20,0:28:11.11,Default,,0000,0000,0000,,On-the-fly wird ein bisschen schwierig.\NSo, aber haben wir nicht nur komplexe Dialogue: 0,0:28:11.11,0:28:20.08,Default,,0000,0000,0000,,Gatter, wir haben ja auch Latches, also\NSpeicherzellen, die ... Okay, da muss ich Dialogue: 0,0:28:20.08,0:28:28.09,Default,,0000,0000,0000,,vielleicht nochmal sagen zur Benamung: im\NDeutschen werden solche Zellen auch gerne Dialogue: 0,0:28:28.09,0:28:35.20,Default,,0000,0000,0000,,Flipflops genannt. Das halte ich aber\Nsozusagen für inkorrekt. Wir haben hier Dialogue: 0,0:28:35.20,0:28:42.64,Default,,0000,0000,0000,,Zellen, die zwar speichern, die aber Takt-\NZustands-gesteuert sind, so wie es früher Dialogue: 0,0:28:42.64,0:28:46.48,Default,,0000,0000,0000,,mal hieß: richtig, klares Deutsch: Takt-\NZustandsgesteuert. Die Amerikaner sagen Dialogue: 0,0:28:46.48,0:28:51.13,Default,,0000,0000,0000,,dazu Latch. Das heißt also, wenn wir zum\NBeispiel einen High-Pegel haben, am Clock Dialogue: 0,0:28:51.13,0:28:55.30,Default,,0000,0000,0000,,oder einen Low-Pegel, dann ist das Ding\Ntransparent. Und wenn dann aber der andere Dialogue: 0,0:28:55.30,0:28:59.77,Default,,0000,0000,0000,,Pegel angelegt wird, dann speichert er den\NWert der vorher sozusagen während Dialogue: 0,0:28:59.77,0:29:07.69,Default,,0000,0000,0000,,dieser transparenten Phase angelegen\Nhat. Es gibt im Gegensatz dazu gibt es Dialogue: 0,0:29:07.69,0:29:13.87,Default,,0000,0000,0000,,Flipflops, die sind sozusagen nicht Takt-\NZustands-gesteuert, sondern Takt-Flanken- Dialogue: 0,0:29:13.87,0:29:18.82,Default,,0000,0000,0000,,gesteuert. In dem Augenblick, wo wirklich\Ndie Flanke wird, da wird der Wert rein Dialogue: 0,0:29:18.82,0:29:23.80,Default,,0000,0000,0000,,gelatcht. Im Prinzip ist es so, dass\NFlipflops nur zwei Latches hintereinander Dialogue: 0,0:29:23.80,0:29:30.52,Default,,0000,0000,0000,,sind. Also wenn ich z.B. vorne als erste\NStufe ein Low-aktives Latch habe und Dialogue: 0,0:29:30.52,0:29:34.60,Default,,0000,0000,0000,,danach ein High aktives Latch, erreiche\Nich, dass bei einem Clock, der jetzt in Dialogue: 0,0:29:34.60,0:29:39.34,Default,,0000,0000,0000,,einer Low-Phase ist, vorne, das\Ntransparent ist. Das würde dann beim Dialogue: 0,0:29:39.34,0:29:44.92,Default,,0000,0000,0000,,Taktflankenwechsel, also bei der\Nsteigenden Flanke, zu machen, und hinten Dialogue: 0,0:29:44.92,0:29:48.82,Default,,0000,0000,0000,,wäre es dafür transparent. Das ist\Nsozusagen genau dieser Umschaltpunkt, die Dialogue: 0,0:29:48.82,0:29:53.20,Default,,0000,0000,0000,,Flanke. Dann haben wir zum Beispiel ein\NposEdge, also eine steigende Flanke für Dialogue: 0,0:29:53.20,0:30:00.07,Default,,0000,0000,0000,,ein Flip-Flop. Aber wie gesagt: Latches\Nsind für mich Takt-Zustands-gesteuert und Dialogue: 0,0:30:00.07,0:30:06.14,Default,,0000,0000,0000,,Flipflops sind Takt-Flanken-gesteuert. Das\Nhier ist jetzt ein Latch. Ich weiß nicht, Dialogue: 0,0:30:06.14,0:30:14.00,Default,,0000,0000,0000,,ob jemand irgendwie von euch ein bisschen\Ndamit klarkommt. Wir haben hier links zwei Dialogue: 0,0:30:14.00,0:30:19.34,Default,,0000,0000,0000,,Inverter. Also da ganz vorne, kommt ein\NSignal rein, das hab ich mit X benannt. Dialogue: 0,0:30:19.34,0:30:24.47,Default,,0000,0000,0000,,Das ist mein Clock, den invertiere ich\Neinmal, kriege also ein 180 Grad Dialogue: 0,0:30:24.47,0:30:29.42,Default,,0000,0000,0000,,phasengedrehtes Signal, und dann\Ninvertiere ich den nochmal. Dann komme ich Dialogue: 0,0:30:29.42,0:30:36.14,Default,,0000,0000,0000,,auf um 360 Grad phasengedrehtes Signal.\NWarum? 360 ist eigentlich das gleiche, wie Dialogue: 0,0:30:36.14,0:30:41.57,Default,,0000,0000,0000,,vorne dran. Aber ich habe den Effekt. Ich\Nhabe meinen Takt, also die ganzen Signale, Dialogue: 0,0:30:41.57,0:30:46.07,Default,,0000,0000,0000,,die Transistoren, die dahinter von dem\Nabhängig sind, erst einmal so etwas wie Dialogue: 0,0:30:46.07,0:30:49.85,Default,,0000,0000,0000,,gepuffert. Ich habe sozusagen im Netzwerk,\Nwas von draußen reinkommt, nicht mehr so Dialogue: 0,0:30:49.85,0:30:54.14,Default,,0000,0000,0000,,eine große Last, und ich habe damit den\NEffekt, dass sie sozusagen einen Dialogue: 0,0:30:54.14,0:30:59.03,Default,,0000,0000,0000,,zweiphasigen Takt erreicht habe. Und\Ndiesen benutze ich denn bei den Dialogue: 0,0:30:59.03,0:31:03.20,Default,,0000,0000,0000,,Transistoren hintendran zum Schalten. Und\Nwenn man sich das jetzt ein bisschen Dialogue: 0,0:31:03.20,0:31:13.16,Default,,0000,0000,0000,,anguckt. Hier diese Stufe da oben. Das ist\Nein Inverter, der kann aber Tristate Dialogue: 0,0:31:13.16,0:31:18.74,Default,,0000,0000,0000,,erreichen. Das heißt also, wenn die\NTaktsignale, die Clock unten und oben, die Dialogue: 0,0:31:18.74,0:31:25.73,Default,,0000,0000,0000,,Transistoren, wenn die gerade ungünstig\Nstehen, dann ist es dieser Stufe egal, was Dialogue: 0,0:31:25.73,0:31:30.14,Default,,0000,0000,0000,,vorne an dem D-Eingang, am Daten-Eingang\Nfür ein Signal anliegt. Er lässt es Dialogue: 0,0:31:30.14,0:31:35.24,Default,,0000,0000,0000,,nicht durch, invertiert nicht. Treibe\Nsozusagen ... wie soll ich es sagen .... Dialogue: 0,0:31:35.24,0:31:41.81,Default,,0000,0000,0000,,Wenn der Clock richtig liegt, treibe ich\Ndas rein und hab aber von hinten die Dialogue: 0,0:31:41.81,0:31:46.49,Default,,0000,0000,0000,,Rückführung drinne, die genau so einen\NTristate-fähigen Inverter hat, der aber Dialogue: 0,0:31:46.49,0:31:51.29,Default,,0000,0000,0000,,gegenphasig arbeitet. Das heißt also, die\Nbeiden, also der linke Inverter und der Dialogue: 0,0:31:51.29,0:31:55.76,Default,,0000,0000,0000,,rechte Inverter treiben gleichzeitig einen\NKnoten, nämlich der von dem Inverter in Dialogue: 0,0:31:55.76,0:32:01.49,Default,,0000,0000,0000,,der Mitte und hinter diesen Inverter in\Nder Mitte da hab ich den Daten-Ausgang. Dialogue: 0,0:32:01.49,0:32:12.75,Default,,0000,0000,0000,,Das ist die kleinste, stabilste Latch-\NSchaltung, die ich so kenne. Das ist jetzt Dialogue: 0,0:32:12.75,0:32:18.12,Default,,0000,0000,0000,,sozusagen das Gleiche nochmal für Low-\Naktiv deswegen, deswegen da "Latch" mit Dialogue: 0,0:32:18.12,0:32:24.90,Default,,0000,0000,0000,,dem "N" hintendran. Da hab ich sozusagen\Ngenau die gleiche Schaltung. Sieht genauso Dialogue: 0,0:32:24.90,0:32:29.67,Default,,0000,0000,0000,,aus, nur dass jetzt die Clock-Signale\Nandersherum angeschlossen sind gegenüber Dialogue: 0,0:32:29.67,0:32:34.17,Default,,0000,0000,0000,,dem davor. So, um es ein bisschen\Nkomplizierter zu machen, habe ich jetzt Dialogue: 0,0:32:34.17,0:32:38.73,Default,,0000,0000,0000,,mal ein Beispiel dabei. Da hab ich ein\NLatch, was High-aktiv ist, also mit Dialogue: 0,0:32:38.73,0:32:45.18,Default,,0000,0000,0000,,positiver Flanke, ja positiven Level\Narbeitet, was ein Clock-enable hat: Ich Dialogue: 0,0:32:45.18,0:32:50.02,Default,,0000,0000,0000,,kann also den Clock zulassen oder\Nunterdrücken, und was noch nen asynchronen Dialogue: 0,0:32:50.02,0:32:54.99,Default,,0000,0000,0000,,Reset drinnen hat. Und das Ganze ist, die\NFunktion ist so optimiert, dass ich Dialogue: 0,0:32:54.99,0:32:59.01,Default,,0000,0000,0000,,wirklich die minimale Anzahl von\NTransistoren erreiche dabei. Ich hätte Dialogue: 0,0:32:59.01,0:33:01.62,Default,,0000,0000,0000,,jetzt sagen können, ich nehme den Reset-\NEingang, der muss jetzt eine andere Dialogue: 0,0:33:01.62,0:33:06.27,Default,,0000,0000,0000,,Polarität haben. Hätte ich dafür wieder\Neinen Inverter gebraucht, habe ich aber Dialogue: 0,0:33:06.27,0:33:12.78,Default,,0000,0000,0000,,nicht. Also mein Reset ist da oben\N{\i1}Entschuldigung{\i0} mit P3 irgendwo so rechts Dialogue: 0,0:33:12.78,0:33:17.82,Default,,0000,0000,0000,,oben in der Ecke. Er ist in dem Fall\Nwirklich High-Aktiv. Wenn ich einen Set- Dialogue: 0,0:33:17.82,0:33:23.49,Default,,0000,0000,0000,,Eingang nehme, das Gegenteil dazu, dann\Nhätte ich ihn Low-Aktiv und das Clock- Dialogue: 0,0:33:23.49,0:33:26.94,Default,,0000,0000,0000,,Enable-Signal, was ich vorne dran habe,\Ndas richtet sich auch darum wieder, ob ich Dialogue: 0,0:33:26.94,0:33:33.18,Default,,0000,0000,0000,,jetzt ein High-aktives oder ein Low-\Naktives Clock Signal haben möchte. Moment, Dialogue: 0,0:33:33.18,0:33:39.06,Default,,0000,0000,0000,,das war zurück. Okay, das ist noch ein\NPunkt, der ist offen. Zu viele Baustellen. Dialogue: 0,0:33:39.06,0:33:42.33,Default,,0000,0000,0000,,Also Ich will eigentlich von einem\NScematic so wie ihr das gerade gesehen Dialogue: 0,0:33:42.33,0:33:49.02,Default,,0000,0000,0000,,habt für den Latch, auch wieder zu meiner\NZellbeschreibung kommen. Ich habe für das Dialogue: 0,0:33:49.02,0:33:53.94,Default,,0000,0000,0000,,Scematic allerdings ein OpenSource-Tool\Nbenutzt, was eigentlich aus dem PCB- Dialogue: 0,0:33:53.94,0:34:01.05,Default,,0000,0000,0000,,Bereich kommt, GNU-EDA. So aus der Ecke.\NUnd dafür gibt es die Möglichkeit, auch Dialogue: 0,0:34:01.05,0:34:04.56,Default,,0000,0000,0000,,Netzlistern, also auch einen Exporter zu\Nschreiben. Ich habe mir die Mühe noch Dialogue: 0,0:34:04.56,0:34:08.73,Default,,0000,0000,0000,,nicht gemacht. Aber das werde ich machen\Nauf alle Fälle für alle Zellen, die ich Dialogue: 0,0:34:08.73,0:34:12.39,Default,,0000,0000,0000,,sozusagen händisch machen muss, also die\Nnicht durch Popcorn generiert worden sind. Dialogue: 0,0:34:12.39,0:34:25.20,Default,,0000,0000,0000,,Okay. Popcorn, Popcorn. Wenn wir jetzt\Nhier mal ganz schnell das da machen. Also, Dialogue: 0,0:34:25.20,0:34:32.70,Default,,0000,0000,0000,,wenn wir mal in den Katalog reingucken. Da\Nsind jetzt hier. Oh, da ist schon was Dialogue: 0,0:34:32.70,0:34:43.83,Default,,0000,0000,0000,,drin. Machen wir mal leer. Okay, da haben\Nwir so ein paar Makefiles drinnen. Also Dialogue: 0,0:34:43.83,0:34:47.10,Default,,0000,0000,0000,,Katalog ist ein Verzeichnis wo ich die\Nganzen Zellbeschreibungen drinnen sammle. Dialogue: 0,0:34:47.10,0:34:53.04,Default,,0000,0000,0000,,Ich hab ein GNUmakefilel, das ist mein\Ngroßes, da sind die Hauptfunktionalitäten Dialogue: 0,0:34:53.04,0:34:58.47,Default,,0000,0000,0000,,drin. Und ich hab dann so ein paar drinnen\Nmit stacked2, stacked3 und so weiter, die Dialogue: 0,0:34:58.47,0:35:01.98,Default,,0000,0000,0000,,betreffen die Anzahl der gestackten\NTransistoren, also der gestapelten Dialogue: 0,0:35:01.98,0:35:03.96,Default,,0000,0000,0000,,Transistoren die ich zulasse. Alle Zellen, Dialogue: 0,0:35:03.96,0:35:08.16,Default,,0000,0000,0000,,die ich z.B. maximal drei gestackte\NTransistoren haben, wären in dem Makefile Dialogue: 0,0:35:08.16,0:35:12.66,Default,,0000,0000,0000,,mit dem stacked3 drinnen. Es hat den\NVorteil, wenn ich jetzt in der Dialogue: 0,0:35:12.66,0:35:15.72,Default,,0000,0000,0000,,Konfiguration, dazu kommen wir hoffentlich\Nnoch, wenn mir die Zeit nicht wegläuft, Dialogue: 0,0:35:15.72,0:35:21.52,Default,,0000,0000,0000,,angebe, ich habe so und so viel als Limit\Nfür meinen Transistor, dass er mir das Dialogue: 0,0:35:21.52,0:35:24.18,Default,,0000,0000,0000,,entsprechende Makefile als höchstes\NMakefile nimmt, alle anderen wären Dialogue: 0,0:35:24.18,0:35:34.71,Default,,0000,0000,0000,,sozusagen inkludiert. OK. "make catalog" .\NKann man sich sozusagenen Katalog machen. Dialogue: 0,0:35:34.71,0:35:40.86,Default,,0000,0000,0000,,Zieht man Popcorn mal ran. Machen wir das\Nmal schnell. So weit läuft er leider noch Dialogue: 0,0:35:40.86,0:35:51.51,Default,,0000,0000,0000,,nicht. So und da bricht das schon ab. Das\Nist in dem Fall deshalb, weil meine Zellen Dialogue: 0,0:35:51.51,0:35:55.11,Default,,0000,0000,0000,,noch nicht durchgängig sind. Ich habe\Nleider in meinem Makefile Zellen drin, die Dialogue: 0,0:35:55.11,0:36:00.09,Default,,0000,0000,0000,,er noch nicht generieren kann. Da habe ich\Nnoch die Paperwork, muss ich wirklich mal Dialogue: 0,0:36:00.09,0:36:05.52,Default,,0000,0000,0000,,von vorne bis hinten alles durch. Aber im\NAugenblick ist für mich wichtiger, dass es Dialogue: 0,0:36:05.52,0:36:08.85,Default,,0000,0000,0000,,läuft, als es jetzt an der Stelle erst mal\Nvorstellen. Aber es würde genauso Dialogue: 0,0:36:08.85,0:36:12.06,Default,,0000,0000,0000,,ablaufen. Ich habe sozusagen die ganzen\NAbleitungen im Makefile drinnen. Ich sage Dialogue: 0,0:36:12.06,0:36:16.62,Default,,0000,0000,0000,,"make catalog" und er generiert mir alle\NZellen. Alle kombinatorischen Zellen so. Dialogue: 0,0:36:16.62,0:36:26.28,Default,,0000,0000,0000,,Und wie gesagt, dass also die Warnung ist\Nernst gemeint. Wenn jemand beabsichtigt, Dialogue: 0,0:36:26.28,0:36:30.75,Default,,0000,0000,0000,,selber mal so eine Zellbibliothek zu\Nmachen oder zu generieren, er sollte Dialogue: 0,0:36:30.75,0:36:35.97,Default,,0000,0000,0000,,wissen, was er tut, weil der Effekt auf\Neure Schaltung oder auf dem Chip ist Dialogue: 0,0:36:35.97,0:36:42.81,Default,,0000,0000,0000,,einfach mal desaströs, wenn das schief\Ngeht. OK. Makefiles bei mir haben immer Dialogue: 0,0:36:42.81,0:36:46.71,Default,,0000,0000,0000,,die Möglichkeiten einen Helpscreen\Ndrinnen. Kann ich auch mal schnell Dialogue: 0,0:36:46.71,0:36:52.92,Default,,0000,0000,0000,,vorführen. Also wenn ich jetzt sage\N"make", dann krieg ich bei mir einen Dialogue: 0,0:36:52.92,0:37:00.39,Default,,0000,0000,0000,,Helpscreen. In dem Fall ist es jetzt das\NGlobale, also ich hab eine Möglichkeiten, Dialogue: 0,0:37:00.39,0:37:04.41,Default,,0000,0000,0000,,eine Distribution zu machen. Da so am Ende\Nalles rein wenn es fertig ist. "make Dialogue: 0,0:37:04.41,0:37:07.83,Default,,0000,0000,0000,,tools" hatte ich ja schon mal gemacht,\N"make catalog" auch schon. Ich kann aber Dialogue: 0,0:37:07.83,0:37:11.46,Default,,0000,0000,0000,,auch die Dokumentation dafür generieren.\NAlso für die ganzen Zellen, die ich oder Dialogue: 0,0:37:11.46,0:37:15.93,Default,,0000,0000,0000,,die Popcorn generiert und ich selber auch\Nhändisch gemalt habe. Dafür gibt es dann Dialogue: 0,0:37:15.93,0:37:21.54,Default,,0000,0000,0000,,sozusagen ein Datenblatt, wo dann drin\Nsteht, wie das Schaltbild aussieht, wie Dialogue: 0,0:37:21.54,0:37:26.37,Default,,0000,0000,0000,,das Scematic aussieht. Welche Files ich\Nalle dazu gefunden habe, oder das Tool Dialogue: 0,0:37:26.37,0:37:31.41,Default,,0000,0000,0000,,dazu gefunden hat, also Layoutfiles,\NSimulationsfiles und so weiter. Das soll Dialogue: 0,0:37:31.41,0:37:43.59,Default,,0000,0000,0000,,alles rein. Okay, jetzt wird's nochmal ein\Nbisschen blutig. Es gibt Mosis-Rules. Dialogue: 0,0:37:43.59,0:37:49.14,Default,,0000,0000,0000,,Mosis ist ein amerikanisches\NUniversitätsprogramm, vergleichbar mit dem Dialogue: 0,0:37:49.14,0:37:55.53,Default,,0000,0000,0000,,europäischen Europractice. Die bieten so\Nein Service an für Universitäten, dass man Dialogue: 0,0:37:55.53,0:37:59.58,Default,,0000,0000,0000,,sagen kann, ich hab hier einen Chip, und\Nich möchte irgendwie 20 oder 30 Exemplare Dialogue: 0,0:37:59.58,0:38:03.57,Default,,0000,0000,0000,,dafür haben, dann machen die so ein Multi-\NProject-Wafer wo sozusagen mehrere Dialogue: 0,0:38:03.57,0:38:08.13,Default,,0000,0000,0000,,Projekte drauf sind. Schieben dann mal so\Nein Schiffchen mit 20 30 Wafern durch die Dialogue: 0,0:38:08.13,0:38:15.03,Default,,0000,0000,0000,,Fab und das wars. Aber die haben auch mal\Ndefiniert Designrules. Also fürs Layout Dialogue: 0,0:38:15.03,0:38:21.24,Default,,0000,0000,0000,,die Abstände definiert, die\NGrößenordnungen für Metal, für Poly, für Dialogue: 0,0:38:21.24,0:38:26.88,Default,,0000,0000,0000,,alles mögliche, und diese Rules sind so\Ngemacht, dass sie auf möglichst viele Dialogue: 0,0:38:26.88,0:38:30.72,Default,,0000,0000,0000,,Technologien von ihren Klienten oder den\NFabs die da hinten dranhängen auch Dialogue: 0,0:38:30.72,0:38:37.74,Default,,0000,0000,0000,,funktionieren. Das ist so der kleinste\Ngemeinsame Nenner. Hat aber den Vorteil, Dialogue: 0,0:38:37.74,0:38:42.15,Default,,0000,0000,0000,,dass sie wirklich recht robust sind, wenn\Nman danach designed. Dann hat man Dialogue: 0,0:38:42.15,0:38:43.29,Default,,0000,0000,0000,,vielleicht nicht irgendwie das allerletzte Dialogue: 0,0:38:43.29,0:38:47.25,Default,,0000,0000,0000,,rausgekitzelt aus der Technologie, die\Nvielleicht eine Fab anbietet oder Dialogue: 0,0:38:47.25,0:38:52.20,Default,,0000,0000,0000,,irgendwelche Spezialitäten nicht benutzt.\NAber man kann sozusagen damit gut Dialogue: 0,0:38:52.20,0:38:58.47,Default,,0000,0000,0000,,arbeiten. Und diese Rules sind als PDF zum\Nrunterladen, kann man sich angucken. Gut Dialogue: 0,0:38:58.47,0:39:05.22,Default,,0000,0000,0000,,gemacht, okay. Die machen also die Rules\Ndafür, die sind so in drei Stufen Dialogue: 0,0:39:05.22,0:39:12.00,Default,,0000,0000,0000,,definiert. SCMOS wie scalable CMOS. Das\Nist so, ja CMOS, die haben, angefangen mit Dialogue: 0,0:39:12.00,0:39:18.90,Default,,0000,0000,0000,,zwei, drei Mikrons oder sowas. Dann gab es\Ndieses Sub-Mikron. Da so über den Daumen Dialogue: 0,0:39:18.90,0:39:26.46,Default,,0000,0000,0000,,hätte ich gesagt, alles so kleiner gleich\N0,8 µ. Noch ein Stückchen kleiner ist Dialogue: 0,0:39:26.46,0:39:31.56,Default,,0000,0000,0000,,dann Deep-sub-micron. Also alles wo dann\Nirgendwie schon ganz komische Effekte dazu Dialogue: 0,0:39:31.56,0:39:37.65,Default,,0000,0000,0000,,kommen, also 0,35 oder so etwas. Also 0,35µ\Nmuss man umrechnen, das sind 350 Dialogue: 0,0:39:37.65,0:39:43.47,Default,,0000,0000,0000,,Nanometer. Klingt für heutzutage riesig,\Naber es ist so. Ich habe jetzt noch bei Dialogue: 0,0:39:43.47,0:39:48.78,Default,,0000,0000,0000,,diesen Rules, die benutze ich ja in meinem\NTool, noch eine vierte Möglichkeit Dialogue: 0,0:39:48.78,0:39:55.38,Default,,0000,0000,0000,,eingebaut, wo ich sage, ich möchte es ganz\Ngerne, dass die Leute in der Lage sind, Dialogue: 0,0:39:55.38,0:40:00.75,Default,,0000,0000,0000,,ein extra Rulefile rein zu laden, also mit\Ndiesen ganzen Angaben, was von diesen drei Dialogue: 0,0:40:00.75,0:40:07.86,Default,,0000,0000,0000,,Schemen die da im PDF sind, abweicht. Da\Nwollte ich auch noch jetzt mal kurz Dialogue: 0,0:40:07.86,0:40:30.52,Default,,0000,0000,0000,,zeigen, wie dieses aussieht. Schreiben\Nsollte man können. Das ist erst mal der Header. Dialogue: 0,0:40:30.52,0:40:38.65,Default,,0000,0000,0000,,Das ist in Sceme geschrieben. Also nicht\Nerschrecken. Da sind die ganzen Rules, die Dialogue: 0,0:40:38.65,0:40:45.98,Default,,0000,0000,0000,,es so gibt drinnen mit den Nummern, so wie\Nsie im PDF sind. Da habe ich mir einen Dialogue: 0,0:40:45.98,0:40:53.41,Default,,0000,0000,0000,,kleinen Vektor definiert, wo ich die vier\NWerte reinschreibe. Und das ist jetzt. Dialogue: 0,0:40:53.41,0:40:58.42,Default,,0000,0000,0000,,Moment, wo geht's los. Das ist mal so ein\Nbisschen so ein Anfang. Also dass ich auch Dialogue: 0,0:40:58.42,0:41:03.04,Default,,0000,0000,0000,,ASCII-Art reingemacht hat, um Rules zu\Nerklären, um welche Abstände es geht. In Dialogue: 0,0:41:03.04,0:41:06.64,Default,,0000,0000,0000,,dem Fall haben wir die Rule 1.1, und die\Nsagt von wegen bei einem nwell, die kann Dialogue: 0,0:41:06.64,0:41:13.12,Default,,0000,0000,0000,,halt eine bestimmte Breite, Länge haben,\Nund die muss halt irgendwie eingehalten Dialogue: 0,0:41:13.12,0:41:18.67,Default,,0000,0000,0000,,werden. Da steht ja Minimum nwell pwell\NRule. Und so zieht sich das halt irgendwie Dialogue: 0,0:41:18.67,0:41:22.87,Default,,0000,0000,0000,,das ganze Dokument runter. Tabelle dazu,\Ndie sozusagen einen von den vier Werten Dialogue: 0,0:41:22.87,0:41:27.55,Default,,0000,0000,0000,,herauspickt. Je nachdem, mit welchem\NParameter ich reinkomme. Nächste Rule, Dialogue: 0,0:41:27.55,0:41:32.92,Default,,0000,0000,0000,,1.2, da ist dann bei der nwell oder pwell\Nder Abstand dazwischen einzuhalten und so Dialogue: 0,0:41:32.92,0:41:40.06,Default,,0000,0000,0000,,weiter. Die Rules benutze ich für das\NLayouttool. Ok, und jetzt wollen wir Dialogue: 0,0:41:40.06,0:41:48.31,Default,,0000,0000,0000,,hier raus. Ahm Ups. Also die Rules sind\Nalle in Lambda definiert, das ist noch ein Dialogue: 0,0:41:48.31,0:41:53.98,Default,,0000,0000,0000,,wichtiger Punkt. Oh, fünf Minuten, ok.\NLambda meint die Hälfte der Featuresize, Dialogue: 0,0:41:53.98,0:41:57.94,Default,,0000,0000,0000,,also wenn jemand sagt, eine Technologie\Nmit einem Mikron, dann ist das ein Mikron Dialogue: 0,0:41:57.94,0:42:07.21,Default,,0000,0000,0000,,die Featuresize. Lambda meint also\Nsozusagen die Hälfte davon. Und in der Dialogue: 0,0:42:07.21,0:42:11.62,Default,,0000,0000,0000,,Größenordnung sind all diese Regeln\Nangegeben. Die geben also sozusagen nicht Dialogue: 0,0:42:11.62,0:42:15.45,Default,,0000,0000,0000,,absolute Werte an, von wegen, wenn ich\Njetzt 0.8µ hab, müssen das so und so Dialogue: 0,0:42:15.45,0:42:19.74,Default,,0000,0000,0000,,viele Mykrometer sein, sondern sie geben\Ndas in Lambda an und sagen: drei Lambda, Dialogue: 0,0:42:19.74,0:42:23.95,Default,,0000,0000,0000,,zwei Lambda sind mehr oder weniger alles\Nganze Integerwerte. Und es hat halt den Dialogue: 0,0:42:23.95,0:42:27.64,Default,,0000,0000,0000,,Vorteil, dass man über mehrere\NGenerationen hinweg runterskalieren kann, Dialogue: 0,0:42:27.64,0:42:31.88,Default,,0000,0000,0000,,so wie es da in dem Punkt auch kam. Von\Nwegen erst mal scaleable CMOS, dann gehts Dialogue: 0,0:42:31.88,0:42:38.06,Default,,0000,0000,0000,,ins Submikron und dann Deep-Submikron. Das\Nfunktioniert, aber irgendwann funkioniert Dialogue: 0,0:42:38.06,0:42:40.70,Default,,0000,0000,0000,,es nicht mehr, deswegen haben sie die\Nneuen Stufen eingeführt, in denen Dialogue: 0,0:42:40.70,0:42:45.77,Default,,0000,0000,0000,,sozusagen die Regeln wieder ein bisschen\Nbreiter sind. Okay, jetzt haben wir hier Dialogue: 0,0:42:45.77,0:42:52.13,Default,,0000,0000,0000,,so eine Zelle. Ist auch ein Punkt, den ich\Nerklären muss. Das ist eine 6-Track-Zelle. Dialogue: 0,0:42:52.13,0:42:55.70,Default,,0000,0000,0000,,Wenn man sich da die blauen Streifen\Nvorstellt, die so horizontal drüber Dialogue: 0,0:42:55.70,0:43:01.13,Default,,0000,0000,0000,,laufen, das ist Metal, also Metall eins.\NDas habe ich einmal ganz unten, da ist es Dialogue: 0,0:43:01.13,0:43:06.68,Default,,0000,0000,0000,,grau und einmal ganz oben. VDD. Also\NBetriebsspannung. Die Dinger haben laut Dialogue: 0,0:43:06.68,0:43:12.53,Default,,0000,0000,0000,,Mosis-Rules, sieht man an den Kästchen\Nauch, eine Breite von 4 Lambda. Das ist Dialogue: 0,0:43:12.53,0:43:17.57,Default,,0000,0000,0000,,sozusagen der Minimalabstand für das\NMetall, und in den Mosis-Rules steht, auch Dialogue: 0,0:43:17.57,0:43:21.59,Default,,0000,0000,0000,,drinnen, wie groß der Abstand zum nächsten\NMetal sein muss, also zu dem gleichen Dialogue: 0,0:43:21.59,0:43:26.24,Default,,0000,0000,0000,,wieder Metall. Das sind auch wieder 4\NLambda, wenn man sich das so vorstellt, Dialogue: 0,0:43:26.24,0:43:30.29,Default,,0000,0000,0000,,vier Lambda, die Leitung selber, vier\NLambda Lücke, nächste Metall - dann kommt Dialogue: 0,0:43:30.29,0:43:36.98,Default,,0000,0000,0000,,man auf ein Raster als von 8 Lambda, und\Ndieses Raster wird auch beim Routing Dialogue: 0,0:43:36.98,0:43:41.96,Default,,0000,0000,0000,,benutzt. Also wenn man über die Zellen\Nhinweg routen will, weil sich das halt so Dialogue: 0,0:43:41.96,0:43:44.38,Default,,0000,0000,0000,,schön durchzieht, also nicht nur Metal\Neins und dann zwei und drei und so weiter. Dialogue: 0,0:43:44.38,0:43:51.68,Default,,0000,0000,0000,,Und das nennen die halt so Tracks, und es\Nhat sich eingebürgert in der Branche, dass Dialogue: 0,0:43:51.68,0:43:56.96,Default,,0000,0000,0000,,die Zellhöhe, also wie hoch so eine Zelle\Nist, in Anzahl dieser Tracks angegeben Dialogue: 0,0:43:56.96,0:44:01.13,Default,,0000,0000,0000,,wird. Das hier ist also ein Beispiel für\N6-Track, das ist so eine kleine Zelle. Dialogue: 0,0:44:01.13,0:44:05.90,Default,,0000,0000,0000,,Funktioniert bei diesem NAND immer noch\Nganz gut. Wenn ich jetzt aber so eine Dialogue: 0,0:44:05.90,0:44:10.64,Default,,0000,0000,0000,,Monster Komplexzellen hatte, wie am Anfang\Nirgendwie mal gezeigt, dann funktioniert Dialogue: 0,0:44:10.64,0:44:15.44,Default,,0000,0000,0000,,das nicht mehr. Dann muss es größer\Nwerden. Okay, das wäre jetzt mal mit Dialogue: 0,0:44:15.44,0:44:20.12,Default,,0000,0000,0000,,sieben Tracks. Man sieht das Raster wird\Nschon ein bisschen kleiner, und das Dialogue: 0,0:44:20.12,0:44:24.62,Default,,0000,0000,0000,,gleiche hier nochmal mit zehn. Jetzt hat\Nman schon den Effekt: Für das NAND2 ist Dialogue: 0,0:44:24.62,0:44:29.39,Default,,0000,0000,0000,,zehn Tracks schon ziemlich groß, nämlich\Nziemlich viel Luft in der Mitte. Für die Dialogue: 0,0:44:29.39,0:44:32.75,Default,,0000,0000,0000,,Komplexgatter, die irgendwie reinkommen,\Nda wird es vielleicht doch schon wieder Dialogue: 0,0:44:32.75,0:44:36.17,Default,,0000,0000,0000,,ein bisschen knapper. Also man muss\Nsozusagen an der Stelle immer die Balance Dialogue: 0,0:44:36.17,0:44:40.16,Default,,0000,0000,0000,,finden. Wie groß macht man die Zellen -\NMan will sie ja nicht zu groß machen, wenn Dialogue: 0,0:44:40.16,0:44:47.37,Default,,0000,0000,0000,,man sich den Platz verschenkt - Aber man\Nwill auch Funktionalität drin haben. Okay, Dialogue: 0,0:44:47.37,0:44:56.64,Default,,0000,0000,0000,,so wie sollte man eigentlich mit dem Ding\Nrum spielen? Ich habe... wo ist es... Da. Dialogue: 0,0:44:56.64,0:45:07.79,Default,,0000,0000,0000,,Also wenn ich das jetzt hier mache. Im\NTemplates hab ich ein toml-File drinnen. Dialogue: 0,0:45:07.79,0:45:12.68,Default,,0000,0000,0000,,Und das ist dazu gedacht, die\NKonfiguration zu machen. Also dass ich Dialogue: 0,0:45:12.68,0:45:16.58,Default,,0000,0000,0000,,wirklich die Werte reinschreiben kann. Da\Nsieht man wieder das Limit vier. Also Dialogue: 0,0:45:16.58,0:45:21.83,Default,,0000,0000,0000,,wieviel Transistoren ich stacken möchte,\Nkann ich angeben. Buffern, ab wann ich Dialogue: 0,0:45:21.83,0:45:25.61,Default,,0000,0000,0000,,sozusagen mit dem Buffer hinten anfangen\Nmöchte. In dem Fall ist auch erst mal vier Dialogue: 0,0:45:25.61,0:45:29.69,Default,,0000,0000,0000,,drinnen. Bei den Zellen ist es so, dass\Nsie sagen, wie hoch das ist. Mein Dialogue: 0,0:45:29.69,0:45:41.36,Default,,0000,0000,0000,,Beispielfile, was ich habe. Ich sage 11\NTracks. Ups. Jetzt ist was weg. Dann Dialogue: 0,0:45:41.36,0:45:46.88,Default,,0000,0000,0000,,Terminals, also auf welcher Ebene mache\Nich die Übergabe zum Routing? Also was ist Dialogue: 0,0:45:46.88,0:45:50.78,Default,,0000,0000,0000,,sozusagen für die Zelle die Ein- und\NAusgänge? Wo soll der Router ran gehen? In Dialogue: 0,0:45:50.78,0:45:58.76,Default,,0000,0000,0000,,dem Fall sage ich, es soll bitte schön auf\NMetal II sein. Ja, Connectivity, Dialogue: 0,0:45:58.76,0:46:01.73,Default,,0000,0000,0000,,Restricted. Es gibt auch solche Sachen, wo\Nman sagt, man darf an die Zelle nur Dialogue: 0,0:46:01.73,0:46:06.02,Default,,0000,0000,0000,,waagerecht ran, oder man darf nur\Nsenkrecht ran. Oder man lässt es sozusagen Dialogue: 0,0:46:06.02,0:46:09.80,Default,,0000,0000,0000,,offen. Ich habe gesagt erst mal für mein\NBeispiel unrestricted. Also ich habe keine Dialogue: 0,0:46:09.80,0:46:15.77,Default,,0000,0000,0000,,Vorgaben gemacht, ob nur waagerecht oder\Nnur senkrecht. Dann kommen hier noch so Dialogue: 0,0:46:15.77,0:46:20.96,Default,,0000,0000,0000,,Transistorgeschichten rein. Der\NTransistor, Featursize, meistens als 'L' Dialogue: 0,0:46:20.96,0:46:25.79,Default,,0000,0000,0000,,bezeichnet, ist sozusagen die Länge und\Ndie Weite dazu, also wie breit der Kanal Dialogue: 0,0:46:25.79,0:46:29.18,Default,,0000,0000,0000,,ist, also nicht, wie lang, sondern wie\Nbreit. Und dieses Verhältnis dazwischen Dialogue: 0,0:46:29.18,0:46:33.95,Default,,0000,0000,0000,,wird immer gern als Ratio angegeben. Und\Nlaut Mosis-Rules ist das Kleinste, was wir Dialogue: 0,0:46:33.95,0:46:39.68,Default,,0000,0000,0000,,sozusagen nutzen können dafür 1,5. Das\Nheißt also, wenn ich eine Featursize habe Dialogue: 0,0:46:39.68,0:46:48.05,Default,,0000,0000,0000,,von einem Mikron, ist mein L das Lambda 2\Nund die Weite ist dazu 3. Jetzt kommt noch Dialogue: 0,0:46:48.05,0:46:52.97,Default,,0000,0000,0000,,ein Punkt Gamma dazu. Ok, versuchen wir\Nganz schnell zu erklären. Die Dialogue: 0,0:46:52.97,0:46:57.92,Default,,0000,0000,0000,,Ladungsträgerbeweglichkeit für P-Kanal und\NN-Kanal-Transistoren ist unterschiedlich. Dialogue: 0,0:46:57.92,0:47:03.89,Default,,0000,0000,0000,,Bei N-Kanal bewegen sich die Elektronen.\NUnd bei P-Kanal bewegt sich ja sozusagen Dialogue: 0,0:47:03.89,0:47:07.76,Default,,0000,0000,0000,,gar nichts. Und dann wandern die Löcher\Nmit, wenn sich die Elektronen drüber Dialogue: 0,0:47:07.76,0:47:12.89,Default,,0000,0000,0000,,bewegen. Ganz grob ausgedrückt. Um das\Naber auszugleichen in der Geschwindigkeit, Dialogue: 0,0:47:12.89,0:47:19.22,Default,,0000,0000,0000,,man will ja eigentlich sozusagen, dass\NP-Kanal und N-Kanal etwa gleich sind, weil Dialogue: 0,0:47:19.22,0:47:22.23,Default,,0000,0000,0000,,man sonst unterschiedliche\NVerzögerungszeiten hat für Schaltvorgänge, Dialogue: 0,0:47:22.23,0:47:27.24,Default,,0000,0000,0000,,fängt man damit an, den\NP-Kanaltransistor größer zu machen. Und Dialogue: 0,0:47:27.24,0:47:31.80,Default,,0000,0000,0000,,wie viel im Verhältnis zu dem N-Kanal er\Ngrößer wird, das wird ganz gerne als Gamma Dialogue: 0,0:47:31.80,0:47:36.24,Default,,0000,0000,0000,,angegeben. Ich habe hier erst einmal zwei\Nreingeschrieben. Das ist so ein üblicher Dialogue: 0,0:47:36.24,0:47:41.13,Default,,0000,0000,0000,,Schätzwert, ist nicht ideal, ist nicht\Nausbalanciert, ist nicht perfekt. Das Dialogue: 0,0:47:41.13,0:47:47.94,Default,,0000,0000,0000,,hängt nämlich davon ab, wie gut P-Kanal\Nund N-Kanal dotiert sind und so weiter. Es Dialogue: 0,0:47:47.94,0:47:53.40,Default,,0000,0000,0000,,geht auch bis zu drei. Wenn ich zum\NBeispiel irgendwas haben möchte, was Dialogue: 0,0:47:53.40,0:47:59.52,Default,,0000,0000,0000,,Seitenkanalangriffen standhält, sozusagen\Nden Peak nicht sieht, dann sollte man den Dialogue: 0,0:47:59.52,0:48:07.89,Default,,0000,0000,0000,,Wert ausbalancieren. Ok. Sizing ist die\NGeschichte, ja. Wir werden immer knapper Dialogue: 0,0:48:07.89,0:48:18.57,Default,,0000,0000,0000,,hier. Ja, ok. Also da will ich hin {\i1}zeigt\Nzur Präsentation{\i0} Bin ich noch ein Dialogue: 0,0:48:18.57,0:48:21.72,Default,,0000,0000,0000,,bisschen weg von. Irgendwann, also von\Nwegen... ihr nehmt das TOML-File her... Dialogue: 0,0:48:21.72,0:48:27.51,Default,,0000,0000,0000,,Beispiel... konfiguriert euch das, passt\Neuch das an, wie er es braucht. Ihr drückt Dialogue: 0,0:48:27.51,0:48:31.65,Default,,0000,0000,0000,,einfach "make dist", also wie\N"distribution". Ihr kriegt den ganzen Sack Dialogue: 0,0:48:31.65,0:48:35.49,Default,,0000,0000,0000,,voll, kann eine ganze Weile dauern. Aber\Nihr kriegt danach Schematics, ihr kriegt Dialogue: 0,0:48:35.49,0:48:40.11,Default,,0000,0000,0000,,Layouts, kriegt die Dokumentation und habt\Nsozusagen wirklich was "ready to use" für Dialogue: 0,0:48:40.11,0:48:46.77,Default,,0000,0000,0000,,yosys oder für die ganzen anderen Tools,\Nist alles dabei. Und das Ganze soll Open Dialogue: 0,0:48:46.77,0:48:51.66,Default,,0000,0000,0000,,Source sein. Steht ja jetzt schon bei\NGitHub So, jetzt Q & A. Dialogue: 0,0:48:51.66,0:48:54.90,Default,,0000,0000,0000,,Herald: Dann bitte ich jetzt einmal um\Neinen herzlichen Applaus für Chipforge. Dialogue: 0,0:48:54.90,0:49:00.50,Default,,0000,0000,0000,,{\i1}Applaus{\i0} Dialogue: 0,0:49:00.50,0:49:03.40,Default,,0000,0000,0000,,H: Und wir beginnen mit der Fragerunde.\NWir haben drei Mikrofone hier im Saal. Wer Dialogue: 0,0:49:03.40,0:49:09.16,Default,,0000,0000,0000,,eine Frage hat, einfach zum Mikrofon\Ngehen. Es gibt schon eine Frage aus dem Dialogue: 0,0:49:09.16,0:49:18.25,Default,,0000,0000,0000,,Internet.\NSignal Angel: Hallo. Die Frage aus dem Dialogue: 0,0:49:18.25,0:49:22.60,Default,,0000,0000,0000,,Internet lautet: Wie viel würde es kosten,\Neinen Quadratmillimeter Platz auf so einem Dialogue: 0,0:49:22.60,0:49:28.45,Default,,0000,0000,0000,,Die zu kaufen? Für irgendeinen Knoten, wo\Ndu den Preis gerade weißt. Wie lange wird Dialogue: 0,0:49:28.45,0:49:35.11,Default,,0000,0000,0000,,es dauern?\NC: Okay. Also unser Background ist ja, wir Dialogue: 0,0:49:35.11,0:49:39.16,Default,,0000,0000,0000,,wollen eigentlich ein freies Silizium\Nmachen, also wirklich auch diesen Prozess Dialogue: 0,0:49:39.16,0:49:45.58,Default,,0000,0000,0000,,freilegen. Das ist das, was Leviathan in\NHongkong da vorantreibt. Da ist es so, Dialogue: 0,0:49:45.58,0:49:51.76,Default,,0000,0000,0000,,dieser Quadratmillimeter wäre einfach zu\Nhaben. Also die Wafer-Kosten wären Dialogue: 0,0:49:51.76,0:49:56.11,Default,,0000,0000,0000,,irgendwie so bei 100 Hongkong-Dollar, wenn\Nich das richtig glaub ich in Erinnerung Dialogue: 0,0:49:56.11,0:50:01.63,Default,,0000,0000,0000,,habe, also durch 10, wären das irgendwie\N10 Dollar für einen Wafer, 4 Zoll, relativ Dialogue: 0,0:50:01.63,0:50:08.14,Default,,0000,0000,0000,,klein, und es würden noch die Maskenkosten\Ndazu kommen. Da müsste ich jetzt lügen. Es Dialogue: 0,0:50:08.14,0:50:11.29,Default,,0000,0000,0000,,sind aber auch irgendwie nur ein paar\NTausend oder so. Fünf oder sechs Tausend, Dialogue: 0,0:50:11.29,0:50:16.36,Default,,0000,0000,0000,,so in der Größenordnung. Vielleicht 10.000\NDollar. Der Rest ist eigene Manpower im Dialogue: 0,0:50:16.36,0:50:19.51,Default,,0000,0000,0000,,Labor.\NSA: Danke. Dialogue: 0,0:50:19.51,0:50:23.08,Default,,0000,0000,0000,,C: Und du kannst dir so viele Chips\Ndavon machen wie du lustig bist, wenn wir Dialogue: 0,0:50:23.08,0:50:26.53,Default,,0000,0000,0000,,so weit sind. Also wir würden ganz gerne\Nzurück ins Labor, aber dafür brauchen wir Dialogue: 0,0:50:26.53,0:50:31.75,Default,,0000,0000,0000,,halt die Gebühr für den Reinraum.\NH: Danke für die Antwort. Die nächste Dialogue: 0,0:50:31.75,0:50:34.96,Default,,0000,0000,0000,,Frage. Mikrofon 2, bitte!\NMikrofon 2: So wie das jetzt aussieht, Dialogue: 0,0:50:34.96,0:50:39.01,Default,,0000,0000,0000,,könnt ihr ja die Layouts für eure\NStandardzellen oder wollt ihr zumindest Dialogue: 0,0:50:39.01,0:50:41.91,Default,,0000,0000,0000,,mal, automatisch generieren lassen zu\Ngewissen Graden. Dialogue: 0,0:50:41.91,0:50:43.75,Default,,0000,0000,0000,,C: Ja\NM: Könnt ihr das dann auch direkt einem Dialogue: 0,0:50:43.75,0:50:47.71,Default,,0000,0000,0000,,Tool beibringen, dass es aus einer\Nsynthetisierten Netzliste schon direkt Dialogue: 0,0:50:47.71,0:50:53.20,Default,,0000,0000,0000,,versucht so, ich sage mal, Makro-Zellen zu\Nsynthetisieren. Das wird irgendwann nicht Dialogue: 0,0:50:53.20,0:50:56.89,Default,,0000,0000,0000,,mehr gehen, aber für kleinere könnte ich\Nmir das vorstellen. Kannst du da was dazu Dialogue: 0,0:50:56.89,0:51:01.72,Default,,0000,0000,0000,,sagen?\NC: Ja. Der Weg wäre ein bisschen Dialogue: 0,0:51:01.72,0:51:06.94,Default,,0000,0000,0000,,umständlich. Eigentlich ist es so, die\NTools wie yosys, also die sozusagen, die Dialogue: 0,0:51:06.94,0:51:11.23,Default,,0000,0000,0000,,Synthese machen, die sind ja immer extrem\Ndavon abhängig, wie gut die Bibliothek Dialogue: 0,0:51:11.23,0:51:15.37,Default,,0000,0000,0000,,ist, die yosys zur Verfügung steht. Und\Nwenn wir aber eine Bibliothek haben, die Dialogue: 0,0:51:15.37,0:51:20.29,Default,,0000,0000,0000,,relativ begrenzt und klein ist, dann kann\Nyosys nur entsprechend Ergebnisse liefern. Dialogue: 0,0:51:20.29,0:51:24.46,Default,,0000,0000,0000,,Wenn wir allerdings in der Lage sind, hier\Nmit diesem Popcorn und so weiter die Dialogue: 0,0:51:24.46,0:51:28.42,Default,,0000,0000,0000,,Bibliothek zu liefern, die wirklich mehr\Noder weniger allumfassend ist, dann hat Dialogue: 0,0:51:28.42,0:51:33.01,Default,,0000,0000,0000,,yosys auch viel viel viel mehr\NMöglichkeiten zu optimieren, sozusagen in Dialogue: 0,0:51:33.01,0:51:39.13,Default,,0000,0000,0000,,Richtung Delay, in Richtung\NEnergieaufnahme und so weiter. Also wir Dialogue: 0,0:51:39.13,0:51:42.31,Default,,0000,0000,0000,,geben sozusagen dem Tool dann viel, viel\Nmehr Möglichkeiten. Es kann natürlich Dialogue: 0,0:51:42.31,0:51:46.30,Default,,0000,0000,0000,,sein, dass es denn ein bisschen länger\Nbraucht, einfach weil es sozusagen den Dialogue: 0,0:51:46.30,0:51:51.46,Default,,0000,0000,0000,,ganzen Suchraum durchgehen muss. Aber die\NErgebnisse sind einfach mal besser. Dialogue: 0,0:51:51.46,0:51:55.56,Default,,0000,0000,0000,,H: Okay. Als nächstes am Mikrofon 1,\Nbitte! Dialogue: 0,0:51:55.56,0:52:01.93,Default,,0000,0000,0000,,Mikrofon 1: Okay, also das sieht ja schon\Nmal ganz gut aus, aber hast du schon Dialogue: 0,0:52:01.93,0:52:06.79,Default,,0000,0000,0000,,Transmission-Gates, Analog-Multiplexer und\NSchmidt-Trigger angeguckt oder machst du Dialogue: 0,0:52:06.79,0:52:10.63,Default,,0000,0000,0000,,die dann von Hand?\NC: Okay, also die Sachen generiere ich Dialogue: 0,0:52:10.63,0:52:17.02,Default,,0000,0000,0000,,nicht mit dem Popcorn. Die Multiplexer\Nmache ich händisch. Ja, Multiplexe sind Dialogue: 0,0:52:17.02,0:52:22.18,Default,,0000,0000,0000,,auch wieder in verschiedenen Stack-Zellen\Ndrinnen. Multiplexer, also diese Dialogue: 0,0:52:22.18,0:52:25.33,Default,,0000,0000,0000,,Transmission-Gates in den Multiplexern,\Ndie haben aber einen ganz hässlichen Dialogue: 0,0:52:25.33,0:52:29.59,Default,,0000,0000,0000,,Nachteil. Die gehen wieder in meine Bilanz\Nrein mit den Anzahl gestackten Dialogue: 0,0:52:29.59,0:52:34.45,Default,,0000,0000,0000,,Transistoren. Weil sie ja sozusagen nur\Ndiesen Pfad drinnen haben und kein, wie Dialogue: 0,0:52:34.45,0:52:42.31,Default,,0000,0000,0000,,soll ich sagen, Renewing, oder Refresh vom\NPegel machen. Also das Zeug mache ich auf Dialogue: 0,0:52:42.31,0:52:47.05,Default,,0000,0000,0000,,alle Fälle von Hand, ja. Und Schmidt-\NTrigger werden für mich in die Dialogue: 0,0:52:47.05,0:52:51.10,Default,,0000,0000,0000,,Standardzellenbibliothek nicht reinkommen.\NDie kommen in die IO Zellen, weil da Dialogue: 0,0:52:51.10,0:52:56.32,Default,,0000,0000,0000,,brauche ich sie.\NH: Alles klar. Dann war noch eine Frage am Dialogue: 0,0:52:56.32,0:53:00.67,Default,,0000,0000,0000,,Mikrofon 2.\NMikrofon2: Jo, servus! Die Frage ist, weil Dialogue: 0,0:53:00.67,0:53:04.99,Default,,0000,0000,0000,,du ja gemeint hast, ihr wollt schon auch\Nbisschen so den Prozess öffnen, Dialogue: 0,0:53:04.99,0:53:08.53,Default,,0000,0000,0000,,opensourcen. Wenn man jetzt ein bisschen\Nvom Hintergrund, von der Chemie her Dialogue: 0,0:53:08.53,0:53:14.17,Default,,0000,0000,0000,,bisschen weiß, was da an Chemikalien in\Ndie Hand zu nehmen ist. Für wie Dialogue: 0,0:53:14.17,0:53:20.17,Default,,0000,0000,0000,,realistisch hältst du es, dass Hobbyisten\Nsowas sicher handhaben können? Und wie Dialogue: 0,0:53:20.17,0:53:23.41,Default,,0000,0000,0000,,sind eure Pläne in die Richtung? Wie wollt\Nihr das handhaben? Also, wie wollt ihr es Dialogue: 0,0:53:23.41,0:53:26.53,Default,,0000,0000,0000,,den Leuten näher bringen, ohne sie dabei\Numzubringen, um es mal etwas überspitzt zu Dialogue: 0,0:53:26.53,0:53:29.71,Default,,0000,0000,0000,,sagen.\NC: Ja, das ist ein berechtigter Einwand. Dialogue: 0,0:53:29.71,0:53:35.41,Default,,0000,0000,0000,,Man sollte wissen, was man tut. Man kann\Nsich damit mit Chemikalien auch mal ganz Dialogue: 0,0:53:35.41,0:53:41.29,Default,,0000,0000,0000,,schnell seine Klamotten durchbrennen. Wie\Nauch immer, hat David schon ausprobiert. Dialogue: 0,0:53:41.29,0:53:48.10,Default,,0000,0000,0000,,Nein, also es gibt Leute, die machen so\Nwas in der Küche, die Jerry Elzwood. Ich Dialogue: 0,0:53:48.10,0:53:50.32,Default,,0000,0000,0000,,hoffe, ich habe es so richtig\Nausgesprochen. Und die gute Frau mit dem Dialogue: 0,0:53:50.32,0:53:56.74,Default,,0000,0000,0000,,C64 Hack und sowas. Gibt es bei YouTube-\NVideos wie die sozusagen so'n Furnace, Dialogue: 0,0:53:56.74,0:54:01.63,Default,,0000,0000,0000,,also so ein Ofen mit Silizium und sowas in\NIhrer Küche macht und die spielt da mit Dialogue: 0,0:54:01.63,0:54:06.34,Default,,0000,0000,0000,,dampfender Floursäure oder irgendie sowas.\NSieht nicht gesund aus, aber Sie macht es. Dialogue: 0,0:54:06.34,0:54:10.15,Default,,0000,0000,0000,,Angucken. Einfach YouTube gucken. Die Dialogue: 0,0:54:10.15,0:54:12.76,Default,,0000,0000,0000,,Videos gibt's.\NMikrofon 2: Ich kenne sie. Ich kann als Dialogue: 0,0:54:12.76,0:54:15.13,Default,,0000,0000,0000,,Chemiker dazu sagen: In Deutschland steht\Nda dafür die Polizei vor der Tür. Dialogue: 0,0:54:15.13,0:54:21.28,Default,,0000,0000,0000,,{\i1}Chipsforge kichert{\i0}\NH: Alles klar. Dann haben wir noch ein Dialogue: 0,0:54:21.28,0:54:26.44,Default,,0000,0000,0000,,paar Fragen am Mikrofon Drei.\NMikrofon 3: Ja, also du hast ja schön Dialogue: 0,0:54:26.44,0:54:31.00,Default,,0000,0000,0000,,gezeigt, was du alles für Standardzellen\Nimplementierst. Wie sieht das aus mit dem Dialogue: 0,0:54:31.00,0:54:35.20,Default,,0000,0000,0000,,Timing und der Simulation für die ganze\NSynthese und dann das place and route, ist Dialogue: 0,0:54:35.20,0:54:40.72,Default,,0000,0000,0000,,ja auch eine wichtige Rolle.\NC: Der Punkt kam jetzt ein bisschen in den Dialogue: 0,0:54:40.72,0:54:47.89,Default,,0000,0000,0000,,letzten Minuten zu kurz. Wenn wir das\NLayout haben, dann machen wir mit diesem Dialogue: 0,0:54:47.89,0:54:52.33,Default,,0000,0000,0000,,Magic, also mit diesem Layout-Tool, das\Nwir benutzten, eine Parameter-Extraktion. Dialogue: 0,0:54:52.33,0:54:56.41,Default,,0000,0000,0000,,Wir bekommen also aus diesem Layout wieder\Nein Spice-Modell zurück mit den Dialogue: 0,0:54:56.41,0:55:00.64,Default,,0000,0000,0000,,parasitären Werten, also für Kapazität,\Nfür Widerstand und so weiter. Das Dialogue: 0,0:55:00.64,0:55:04.93,Default,,0000,0000,0000,,simulieren wir und ich habe für die\NLatches und so sowas habe ich in meiner Dialogue: 0,0:55:04.93,0:55:08.22,Default,,0000,0000,0000,,Spice-Simulation, in meiner Testbench,\Nrudimentär solche Sachen schon Dialogue: 0,0:55:08.22,0:55:12.96,Default,,0000,0000,0000,,implementiert. Dass ich wirklich sage bei\N20 prozent von der Flanke mess ich bis zu Dialogue: 0,0:55:12.96,0:55:16.23,Default,,0000,0000,0000,,80 prozent an der Flanke oder sowas. Also\Ndass ich wirklich dieses Timing Dialogue: 0,0:55:16.23,0:55:22.89,Default,,0000,0000,0000,,automatisch im Spice ausmesse.\NH: Ja, die nächste Frage an Mikrofon 3 Dialogue: 0,0:55:22.89,0:55:29.40,Default,,0000,0000,0000,,Mikrofon 3: Dankeschön! Habt ihr schon\NSimulationsmodelle von euren Transistoren, Dialogue: 0,0:55:29.40,0:55:33.69,Default,,0000,0000,0000,,die ihr dann in Spice nutzen könnt? Weil\Ndas es ja tatsächlich bisher das war ja Dialogue: 0,0:55:33.69,0:55:39.90,Default,,0000,0000,0000,,recht viel für viele Technologien deswegen\Nauch zum Beispiel dem Mosis-Standard Ding. Dialogue: 0,0:55:39.90,0:55:44.52,Default,,0000,0000,0000,,Aber gibts schon Ergebnisse von\NSimulationensparametern, von den Dialogue: 0,0:55:44.52,0:55:49.83,Default,,0000,0000,0000,,Transistoren, die dann gefertigt werden?\NC: Also ist es so. Die Modelle z.B. für Dialogue: 0,0:55:49.83,0:55:54.48,Default,,0000,0000,0000,,den Transistor BSIM3, BSIM4 und so weiter.\NDie sind ja standardisiert. Es geht nur Dialogue: 0,0:55:54.48,0:55:58.50,Default,,0000,0000,0000,,noch darum, welche Werte jetzt, da in\Ndieses Modell reingefüttert werden. Also Dialogue: 0,0:55:58.50,0:56:04.53,Default,,0000,0000,0000,,für die Kapazitäten am Gate und so weiter.\NDie Größe ist klar, aber wie die Dotierung Dialogue: 0,0:56:04.53,0:56:09.27,Default,,0000,0000,0000,,aussieht. Diese Sachen, also diese Werte,\Ndie wir da rein füttern müssen, die hängen Dialogue: 0,0:56:09.27,0:56:12.90,Default,,0000,0000,0000,,eigentlich alle an unserem Testwafer dran,\Nalso den wir vor einem Jahr vorgestellt Dialogue: 0,0:56:12.90,0:56:15.99,Default,,0000,0000,0000,,haben. Da haben wir nämlich exakt diese\NStrukturen drauf, um solche Sachen Dialogue: 0,0:56:15.99,0:56:21.16,Default,,0000,0000,0000,,auszumessen. Das heißt also, wenn wir den\NWafer sozusagen bis zum Ende prozessiert Dialogue: 0,0:56:21.16,0:56:24.21,Default,,0000,0000,0000,,haben und jetzt vielleicht auch im\Nnächsten Reinraum dann nochmal gemacht Dialogue: 0,0:56:24.21,0:56:27.68,Default,,0000,0000,0000,,haben, dann haben wir wirklich diese Werte\Nda. Dann können wir die in Spice Dialogue: 0,0:56:27.68,0:56:31.14,Default,,0000,0000,0000,,reinfüttern. Das ist eine relativ einfache\NSache, und dann haben wir auch die Dialogue: 0,0:56:31.14,0:56:33.00,Default,,0000,0000,0000,,korrekten Werte dafür.\NM3: Gut, Dankeschön. Dialogue: 0,0:56:33.00,0:56:37.20,Default,,0000,0000,0000,,H: Und noch eine Frage an Mikrofon 3,\Nbitte. Dialogue: 0,0:56:37.20,0:56:41.76,Default,,0000,0000,0000,,M3: Ich würde gerne wissen: Wie groß ist\Ndenn so ein Transistor und sind die nicht Dialogue: 0,0:56:41.76,0:56:47.79,Default,,0000,0000,0000,,ziemlich langsam dann?\NC: OK, wir machen ja ... also fangen erst Dialogue: 0,0:56:47.79,0:56:54.18,Default,,0000,0000,0000,,mal an mit einem Mikron. Ein Mikron, das\Nheißt also diese Featuresize oder die Dialogue: 0,0:56:54.18,0:57:01.94,Default,,0000,0000,0000,,Länge vom Kanal zwischen Drain und Source\Nist ein Mykro. Das heißt also 2 hoch minus Dialogue: 0,0:57:01.94,0:57:11.34,Default,,0000,0000,0000,,sechs Meter. Ja? Doch. Milli - Tausend.\NJa. Dazu, wie gesagt das Ratio, also diese Dialogue: 0,0:57:11.34,0:57:17.25,Default,,0000,0000,0000,,Weite dazu, wäre dann sozusagen den 1,5\NMikron. Also das ist die Transistorgröße Dialogue: 0,0:57:17.25,0:57:23.64,Default,,0000,0000,0000,,... ist relativ groß. Wir haben aber vom\NEquipment in Hongkong, oder hatten die Dialogue: 0,0:57:23.64,0:57:29.28,Default,,0000,0000,0000,,Möglichkeit, also das, wie wir uns das\Nangeguckt ... das Equipment ging runter Dialogue: 0,0:57:29.28,0:57:33.24,Default,,0000,0000,0000,,bis 500 Nanometer. Das heißt also, wenn\Nunsere Technologie funktioniert, können Dialogue: 0,0:57:33.24,0:57:38.61,Default,,0000,0000,0000,,wir relativ einfach sozusagen den 0,7 oder\N0,8 mikron Node auslassen und gleich nach Dialogue: 0,0:57:38.61,0:57:43.56,Default,,0000,0000,0000,,0,5 gehen. Das gab das Equipment her, also\Ndie Maschinen, Fotolitografie, die dazu Dialogue: 0,0:57:43.56,0:57:48.15,Default,,0000,0000,0000,,hängen. Wenn wir sozusagen Equipment\Nhätten, Zugriff darauf, was noch kleiner Dialogue: 0,0:57:48.15,0:57:50.85,Default,,0000,0000,0000,,geht, dann müssten wir vielleicht mal\Nwieder ein bisschen experimentieren, also Dialogue: 0,0:57:50.85,0:57:57.03,Default,,0000,0000,0000,,wieder Testwafer dafür machen. Aber dann\Nkönnen wir sozusagen auch runterskalieren. Dialogue: 0,0:57:57.03,0:58:00.60,Default,,0000,0000,0000,,Aber wir sind da noch, muss ich auch\Nzugeben, wir sind da noch in einem Dialogue: 0,0:58:00.60,0:58:06.45,Default,,0000,0000,0000,,Bereich, der optisch sichtbar ist. Also\NAB-Limit, das ist so bei 240, 250 Dialogue: 0,0:58:06.45,0:58:10.83,Default,,0000,0000,0000,,Nanometern, also die Wellenlänge vom\NLicht, was man optisch noch sehen kann. Dialogue: 0,0:58:10.83,0:58:15.90,Default,,0000,0000,0000,,Das heißt also, unsere Transistoren sieht\Nman noch im optischen Mikroskop. Das, was Dialogue: 0,0:58:15.90,0:58:19.83,Default,,0000,0000,0000,,sozusagen jetzt irgendwie so die aktuellen\NProzessoren sind, die irgendwie, weiß ich Dialogue: 0,0:58:19.83,0:58:24.21,Default,,0000,0000,0000,,nicht, bei 14, 20 Nanometern oder sowas\Nsind. Die sind optisch nicht mehr Dialogue: 0,0:58:24.21,0:58:29.52,Default,,0000,0000,0000,,sichtbar. Aber optisch sichtbar heißt auch\Nfür uns, man kann sozusagen wirklich mit Dialogue: 0,0:58:29.52,0:58:33.12,Default,,0000,0000,0000,,einer Kamera, USB-Kamera oder sowas wie\Nandere Leute schon gemacht haben durchs Dialogue: 0,0:58:33.12,0:58:38.52,Default,,0000,0000,0000,,Mikroskop durchfotografieren, den ganzen\NChip aufnehmen und ein Reverse Engineering Dialogue: 0,0:58:38.52,0:58:41.82,Default,,0000,0000,0000,,draufmachen, das heißt, also auch\Nnachträglich feststellen, ob eine Dialogue: 0,0:58:41.82,0:58:47.01,Default,,0000,0000,0000,,Manipulation an unserem Chip stattgefunden\Nhat. Das betrachten wir in dem Fall Dialogue: 0,0:58:47.01,0:58:49.86,Default,,0000,0000,0000,,sozusagen als Sicherheitsfeature, das man\Nnoch sehen kann. Dialogue: 0,0:58:49.86,0:58:53.43,Default,,0000,0000,0000,,H: Dann gibt es noch eine letzte Frage aus\Ndem Internet. Dialogue: 0,0:58:53.43,0:58:59.34,Default,,0000,0000,0000,,SA: Die Frage aus dem Internet lautet, ob\Nihr mal versucht hat, Standardzellen für Dialogue: 0,0:58:59.34,0:59:03.18,Default,,0000,0000,0000,,die Transistoren eines kommerziellen\NFertigers damit zu erzeugen und ob das Dialogue: 0,0:59:03.18,0:59:07.44,Default,,0000,0000,0000,,funktioniert und was dagegen spricht.\NC: Es würde funktionieren. Theoretisch ja. Dialogue: 0,0:59:07.44,0:59:16.41,Default,,0000,0000,0000,,Was dagegen spricht, ist ein gewisses NDA.\NDie Hersteller geben sozusagen ungern die Dialogue: 0,0:59:16.41,0:59:22.35,Default,,0000,0000,0000,,Informationen raus. Wir müssten sozusagen\Nein NDA unterschreiben, um von denen die Dialogue: 0,0:59:22.35,0:59:27.78,Default,,0000,0000,0000,,physikalischen Angaben zu den ganzen\NLayern zu bekommen. Welche physikalischen Dialogue: 0,0:59:27.78,0:59:32.47,Default,,0000,0000,0000,,Eigenschaften haben und so weiter. Also\Ndie sogenannte PDK, vielleicht habt ihr da Dialogue: 0,0:59:32.47,0:59:37.68,Default,,0000,0000,0000,,mal was von gehört. Das steht aber unter\N'nem NDA. Die Zellen, die wir danach Dialogue: 0,0:59:37.68,0:59:42.72,Default,,0000,0000,0000,,generieren, die würden sozusagen auch\Nautomatisch wieder unter Verschluss Dialogue: 0,0:59:42.72,0:59:47.79,Default,,0000,0000,0000,,bleiben müssen. Es würde gehen. Also man\Nkönnte, also sagen wir mal andersrum, ein Dialogue: 0,0:59:47.79,0:59:52.47,Default,,0000,0000,0000,,kommerzieller Hersteller könnte am Ende\Ndiese Tools, die wir hier schreiben, Dialogue: 0,0:59:52.47,0:59:58.08,Default,,0000,0000,0000,,benutzen, um sich seine eigenen Zellen zu\Ngenerieren. Ja. In die Richtung geht's. Dialogue: 0,0:59:58.08,1:00:05.61,Default,,0000,0000,0000,,Aber es ist machbar.\NH: Wenn ich keine weiteren Fragen mehr Dialogue: 0,1:00:05.61,1:00:10.77,Default,,0000,0000,0000,,sehe, dann bitte ich nochmal um eine\Nherzliche Runde Applaus für Chipforge. Dialogue: 0,1:00:10.77,1:00:13.32,Default,,0000,0000,0000,,{\i1}Applaus{\i0} Dialogue: 0,1:00:13.32,1:00:28.93,Default,,0000,0000,0000,,{\i1}36C3 Outro{\i0} Dialogue: 0,1:00:28.93,1:00:39.16,Default,,0000,0000,0000,,Untertitel erstellt von c3subtitles.de\Nim Jahr 2020. Mach mit und hilf uns!