Transcript for:
Designing Your Own Chip

in this video we are going to talk about how everyone can design a chip and uh we are going to talk about the process about the steps what you need to take if you would like to design and build your own ship correct P that's what we are going to talk that is correct so how does it work explain how is it possible anyone can design a chip so uh this is here's here's let's get jump right to slide 13 there and get to the interesting thing I started out knowing pretty much nothing and then made this thing which is a mixed signal design uh an a TOD uh converter so you design this yep I made this well okay I in I told the machine how to make this block here the digital side so I designed it like in verog or amaranth and then it's spat out that the stuff on the left here is analog and I made this by hand and how it's possible is basically Google was involved in getting the skywater 130 pdk the process on which these chips are made opened up and with that the whole world exploded and Google is now out of the picture but things have started and it's just it's just going so you can do this there's a tiny tape out run right now uh and and the thing is you do it at home there's no licensing there's no crazy anything in the way you can install everything on your computer or even use the VM and there it is the whole the the the the atoms are yours to play with so you mentioned really tiny tape out that's how this is basically called this what is it it's not process it's a what is it what's Tiny Tap tiny tiny tape out is this it it started out at the time that Google was uh doing the npws the multi project waer things where you basically that I think ah there you go okay so it was like a lottery you could design things using these open tools but were you going to get an an actual chip I don't know so the question was how do we get people to be able to do their chips easily a multi-project wafer is a wafer in which you get a small bit and can get your own chips so it's shared so it's cheaper but tiny tape out split that up this is one chip out of that multi-project wafer and each of these little squares is a project someone did a different project so tiny tape out ended up working with EAB to do this more regularly and more guaranteed it's not a lottery you got those tiles they're yours so this was pure digital back in the days of tiny Tapout one 12 three okay and it was Tiny tape out is something what give anyone possibility to manufacture their own chip for free that's well to to have a project in a chip not for free Al you have to pay something or if you want space on the actual chip then you start paying if you want de uh demo board it's a little more but uh 5 years ago it was $200,000 then it went and now you're in the hundreds of dollars to get both the chip and the demo board that you can see there so for okay hundreds of dollars and you can get your own chip on on your own demo board okay so at first you could only get one tile like this so one little square was yours and then with tiny tape out four and five things got better things got faster you got more IO but more importantly you got the opportunity to take a bigger slice I think this one down here on the left this 8 by two this crazy thing is mine uh and it's uh it's a Shaw 256 encoder it doesn't really matter but the point is you could make these digital designs and then oh I need more space so you get more space and so then finally with tiny T out 6 analog came into the picture and with analog you see these squ that are all full that that's machine filled squares because when you do a digital design let's say you only take a little bit of space well the system will fill up the rest with filler but Decap you know bypass capacitance and stuff like that whereas if you're doing analog design you'd have to do that if you wanted so these squares that look more empty or that are designed funny like this guy here that that's uh U's uh fetish for skulls but the point is you could do pretty much everything and down here uh the CC that's that's mine there so this is the tiny Tapout six run okay so I think now everyone understand that it's possible to design their own chips through this tiny tape out so how does it work this process like uh do we need to sign up for tiny tape out or we can just start designing a che what kind of tools we can use or do you have something like this in this slides and I would like to point out later we will actually do some practical example correct you will actually really show how this can be done I had these slides just to to to be able to show you kind of give you an overview idea uh but the short version is well the really short version is that if you get the the virtual machine and it basically has all the tools the tools are the open pdk the process that's being used to make the chips I yeah I would like to stop here because I remember from the very first video I I was not sure what exactly this means so can we talk a little bit about what this means yes so you're a Foundry you make these chips right and you have developed this process and it's a 130 nanometer process whatever okay so this was from a few years back which is actually good news for for analog because for reasons so you have this thing and in order for me to be able to give you something that you can make because it's so complicated you make one layer you make another there's mask there's injection of of charges and you know you're basically doping stuff and then masking and then etching and then so there's a ton of rules to obey those rules are the process the the process development kit encapsulates those rules as well as let's say stuff that you could use to simulate so all the spice models and all those things go in the pdk so it's this big package of all the rules the models and everything you need to be able to produce in in the end a GDs file and a GDs file is a drawing it's it's layers that are drawn and these drawings represent the holes that are going to be in various masks this is a hole like this a square that I need in metal metal two this is a square I need in dope in in this this is polysilicone whatever the point is it's like it's like Photoshop you know you have layers but each layer represents one step of that process so all you have to give them is this image file in some old format from the GDs and they'll do it if it's doable and for it to be doable you need to have followed all those rules and because it would be pretty much impossible for a human to hold all those rule rules in their head we have tools that integrate with those and tell you that square is way too small you you can't make that square it's physically impossible you can draw it but you can't make it so in skywater 130 it's called 130 but the minimum feature is like 150 150 nanometers so if you're making a transistor and you want it to have lots of current you're going to have a small Channel and the smallest one you you're going to be able to make is like 150 so uh okay so you get the pdk so Sky water that's the package of the rules that is The Foundry description of the technology what can be what anyone can use basically for example to create a transistor or something so basically they describe what they can do and maybe provide even some kind of libraries like this is a transistor and then absolutely when you're doing digital you've got uh you know a flip-flop or something you don't design that it's just a block that they perfected and it gets popped in so okay I understand now okay those are standard cells now in analog world you also have the equivalent of standard cells say I want uh an nfet so an N Channel Moss fet well it's uh it's got parameters basically you tell it okay I want this nfet the low voltage threshold uh nfet for 1 V8 and give it to me with this length and this width and this number of fingers or whatever and you just create it and it generates that magic will generate it based on the rules and and stuff that's inside of it based on the pdk and then you have this mosfet and so it's partially custom and it's partially standard cell mhm okay okay so I understand so basically you need to get this skyw waterer then you need to somehow Create Your Design then you generate some kind of layers and then what do you do you somehow upload it to Tiny tape out or there are some other companies who are managing this tiny tape out or how does it work okay so so I actually did this through uh a beta of the zero to Asic analog course and these are basically the steps okay you do schematic capture with xem so xem is is kind of like kead e schema or anything like that it's just you design circuits in it except that it's it's very well integrated with the skywater pdk so and it has all these functions because all those parameters the number of fingers or the length of the channel you can set that when you choose an nfet you say okay I want this and so it integrates well with that and it also integrates well with the models the NG spice stuff so you do capture then you check that your circuit actually makes sense before you do anything else because layout is so manual that you you don't want to you don't want to go back and forth and and you basically don't uh back annotate from the layout back to even though you could change things it gets really messy so you want to get it really solid and so you do that you do your schematic you do your simul ation then you do your layout and this is in another program called Magic you could use K layout or there are other things but magic is really good and quite in a good name for for something magic look it it really is okay the um the thing with magic is it lets you do layout yeah that's great but let's say I have two pieces of metal here two tracks going next to each other well they have a certain internal resistance they have capacitance across them they have capacitance with the substrate because the base of this wafer is a is a just a c of P right it's a sea of of of P doping so and it gets set to ground so you're above that so you have a capacitor there you have capacitors everywhere and Magic does magic because it takes these painted squares and it spits out a spice with all the capacitance and I actually spoke recently to uh Tim Edwards who maintains magic and he was like yeah yeah it it it'll give you the capacitance between a metal layer and the substrate and this is related to the size of the metal layer but also how far it is and everything and so when you do parasitic extraction what you're doing is extracting the circuit how you wired it up but also all those parasitics all that r that that c that's everywhere and then what you do is you did that simulation you did your layout this is uh down here your doing post layout simulation that is where you compare okay in real life well as close as we're going to get on a computer how good is this circuit okay there's a ton of capacitance that's a low pass so basically you create your schematic it's something what you would like to build but once you do the layout this will actually kind of add some extra components and extra things which you need to then maybe have a look if your schematic is still you should you really should and and so you do that and then if if it's just too terrible let's say you were going into some high frequency thing and you wanted you know this kind of reaction but all this extra capacitance is just eating you away well you're going to have to do something about that and depending on the problem you'll you'll change metal layers you'll shrink things you'll move things apart whatever it is but then you have to go back to layout do it again do it again Loop and that's why there's these little Loops here in this in this uh flowchart because you always end up going oh no the the big loop is oh I have to go all the way back to schematic capture because I did it so wrong that something is terrible but uh yeah and then let's say everything is all right I I've done my uh parasitic extractions I've tested everything as best I can the layout looks good we're ready to go well what do you do in essence um when you were doing digital you would export this digital stuff and and Tiny tape out would take it and recreate basically the the circuit because it's it's just the same thing going to come out of both processes it's deterministic right so well more or less but so um that's one thing tiny tape out would do all the work through GitHub actions once you posted once you we push the uh the changes in this case because tiny tape out because it's analog and you're free to make big mistakes uh you just send them the GDs they do some extra checks through GitHub actions or whatever but that's it you send them the GDs through again uh GitHub push and it just gets sucked in you you submitted your project you suck it in through the thing and it gets integrated into one of these squares now the reason this is possible now the reason it wasn't possible before is if you short out let's say I short out ground in VCC no one's project would be working that's right it would be terrible but now the the the little square are gated they're power gated so yeah if I if I enable my project and it's a short circuit a straight short between power and ground well bad things will happen but as long as it's not turned on there's nothing so we we're we're getting kind of a system in place if anything ever happens like that where it's like this one isn't easy to turn on you have warning don't okay so what do you have on these other slides before we move to the uh example how done because I'm very curious actually to see also how how it is how the process how process is done so I'm very curious to go quickly through this and then do the Practical stuff in essence uh there's not too much in the slides there's stuff about me I'm Pat Degan and I run psychogenic and I've got some YouTube videos that are I think interesting uh this all started because the zero to Asic course is how I got into all of this and that's basically these two guys or shad and Mattan I would like to point out I've already done videos with both of them and they are really good videos so I I would recommend everyone to watch these yeah they both say hi by the way thank you so this is the tiny T out site and in essence you can uh just go there and I mean there's tons of guides and and and resources but in essence you you end up going to apps. Tiny tapout.com when you have a GitHub repository and say this my repository and it gets sucked in and you get a little tile and then and the thing is that turnaround is really kind of slow right so I did my project for tiny Tapout 6 it was a big crunch while I was in Boston and well now I'm going to wait 7 months or something to know if it actually really works in real life so uh neat thing with tiny tape out is if you know nothing at all we we had uh at superon and in Berlin we did workshops people knew nothing they came in and they were on a physical tape out after 3 hours now if you really know nothing you're going to end up using WWE this this graphical interface to do pure digital of course uh with the digital stuff I did some some crazy things some uh this is a guitar tuner I did I did that Shaw encoder things like that um and then I came to this and so what I did was I was I was trying to learn how to use the tools so uh Stefan shippers who created xem did a video with Matt where he's basically doing this very sensitive comparator and so I followed along and I just made the same thing I his circuit was available I didn't want to take it I just made it one at a time to know well how do you get a component from the library stuff like that so I made the comparator which is uh this this blob here and then I added stuff around it to be able to calibrate it to be able to uh turn it on and off this here these four squares they're one tiny capacitor capacitance resist you get tons of mosfets in here easy you get resistors pretty easy capacitors you can get but they are tiny there's a there's a project where a quarter of the space in the next tape out a quarter of the space is taken up by a capacitor and it's 0.5 picofarads so you know I was worried about a couple of picofarads on the traces of my pcbs and this is less than that so okay capacitors they're very small and they're so small that uh I had a tendency when when NG spice when the spice doesn't converge when it has trouble I would just let R shunt you just add this option where you say shunt everything you know using 10 mega 10 me mega ohm or something and uh and and it then it converges cool well my system started misbehaving and it's because the capacitors were small so so small that 10 Meg was way too small a resistor it was draining through it so it's another world the point is U that so so mosfets yeah and inductors are just not not something you want to do they're uh first of all they take a lot of space but they're also very badly modeled you have no idea what uh what you're going to get so you use RC and mosfets and there's some diodes and uh transistors and a few extra things uh but I haven't tried those so basically what you just uh explained is how anyone can start is maybe have a look on existing project maybe go through the project project step by step build it by yourself and then uh people can extend these existing projects or then maybe start something exactly I um that that's one thing with this all these projects are by definition open source you you put them online and then they they get into the chip so when I started that comparator I didn't know I was going to make an ADC I kind of decided along the way because I had the comparator and then this yellow thing here that's an r2r deck I didn't make it that's Matt's design he was doing that and he was testing it and I was like I need a deck and so who put that in there okay now I need to block to control the deck and that's how I ended up with the digital side mhm so really nice because you have all these examples and as time goes on now tiny tape out 7 is in like 4 days or something the deadline but all these projects are ready and and now we're another level and another level and you can keep cross-pollinating the thing on the bottom right here is an op amp I just wanted to try a different layout for from someone else it has nothing to do with my my circuit I just put it there because let's try a different layouts and then compare them in real life see if they're different okay what do you have on the next slide uh next oh okay so I don't have this for you know seven nine months but I did some simulation okay and this is something that uh xcam is really good at simulating but also showing the results I find this really nice the way these graphs are live we can go see it in real life but the point is each purple line here in the graph in the middle is one voltage I was uh simulating in okay on the input the yellow is what the daak is doing it's calibrating at first and then it's searching it's saying okay the level the the voltage is lower than me okay so I'll go down so it sets the high bit first and then the next bit and then the next bit and so it does this search pattern and you can see it's it's a beautiful tree uh it it works quite well up to you know the the common mode rejection is pretty awful at the top there on the rails it it gets lost but everywhere else it's it's spot on and if you see the results here they may be hard to see but I did these tests and I knew what I expected I expected a perfect ADC to give me these results in white so hex 10 20 30 40 and instead I got hex 11 20 31 42 that's pretty good down at the end here in the high well then it messes up it's like f it just doesn't know what's going on but so this is the theoretical with and this is a so it's a mixed signal design with that big block right well I ended up doing this simulation in analog so I mean even a digital circuit under the hood is analog right yeah so this was done with parasitics in analog land and it took 16 hours but it worked it ended up working and then I figured out how to do I'm curious I would like to go a little bit deeper into this ADC how does it work exactly you you mentioned you have this comparator there is always there is only one comparator yeah and you I did a terrible job so how how do you set uh the level what you are comparing to yes okay let's go see in the in the actual schematic I mean the slides are nice but I'll just yeah so let me let me uh share this uh the VM actually give me a second okay you see this yes I can see it so this is the V machine with all the tools and everything installed which you need to actually create this chip that is correct and you can download Machine from somewhere yep it's on the tiny tape out GitHub it's created by actions uh this is another URI magic thing but the point is it has all the tools I can launch xcam which is the thing we'd use to uh enter schematics and this this is the skywater pdk everything that's available as you've not you can notice this is all fets and then this is all resistors and there's hardly anything else so uh that's xem there's also magic and there's also everything you need so let's look at um your schematic uh yeah this this is really cool that every you can actually download this virtual machine with everything install because sometimes just you know getting hello W takes ages I know H getting the pdk getting the right pdk and blah blah blah and and then all the tools I've done it I used to be kind of uh no no I want it on my machine for real it becomes this dependency nightmare they've taken care of it so it's great so this is the test bench I used for my um let's grow this for the analog section this is a symbol a not a pretty symbol that represents the whole analog section okay this is basically the same symbol except that it's parasitics so this is the parasitic extraction for it so the point of this is I can actually look at uh whatever the test run was but we can go inside so this is my analog block all that part on the bottom it isn't too much it's an r2r it's a uh a Mox and it's this thing I'm calling the calibrated comparator okay that's not what Stefan made what he made on the video was this uh no this so we could see that this is just well it's a differential amp and some stuff to and then this thing is basically where the calibration happens so you you tie one side to the other and it kind of cancels it out so you're keeping it okay let's back up a second this switch takes the output this thing uhhuh and it puts it on the cap okay that's that fat cap there that was on the right side okay so it it holds it there when you open the switch again it just that voltage just stays there and this voltage comes onto this adjust thing and this adjust thing is what sets this so you've got P fets up top and nfets down so it's like it's like an inverter basically but you're holding it wherever it is that the calibration wanted to hold it so once you've calibrated once you put that voltage on that uh capacitor and it's doing a good comparator job you can count on it so the question is what the the threshold is one voltage here what I'm comparing to and this is what I am comparing and so on one side sometimes I'm comparing uh the the uh let's see the input that's a terrible name okay and sometimes comparing this thresh V oh oh oh right right um that was because I wanted to be able to do it from internally or externally so one goes to an external pin so um so this is that comparator let's say it's calibrated it's comparing some input signal now this input signal comes from the uh oh it's the thresh okay so it comes from this MOX this MOX chooses from the external pin or the Dack and so what what I do internally is I say okay you're calibrated set the D to 127 High bit high so that's pretty much in the middle and then I output it through here and it goes to the threshold compares to the input is it higher or lower if it's uh higher I'll keep that bit set if it's lower I'll I'll clear that bit then I move to the next bit bit six set that high now we're at whichever voltage that tree we saw so let's open up how do you create this voltage you have like resistor Network or something right uh I've got the r2r hold on a second I want to go this is a small window what does it mean r2r I'm I have no IDE it's a resistor to it's a it's a deck that's basically a bunch of resistors with ratios oh so yes it's an r2r deck so um okay let's see whole system I'm starting to understand how it works yeah yeah yes so let me load all this data so you have like digital to analog converter which will generate known voltage and you compare the input to this nonn voltage and uh yes I uh invented this only of course to discover that it was invented a million times and I think it's called assar it's a a u assar ADC which is and I can't remember right now so here's the voltage on the deck I set it to half and then I look at the comparator so let's let's use a line here to see what we're doing so I look at the comparator and it says the target voltage here this this purple is lower than me at this point okay so I'll clear that bit then over here why am I having so much trouble over here the target voltage is higher than me so I'll keep this bit and then and you can see it at the bottom here the 80 and the 40 and the it's whether I'm keeping bits or throwing them away so at the end of the result here I go up down up down up down and I kind of Target the the where the voltage is and each run of these runs is is doing that for one of these purple lines it's going up down up down up down oh and it's kind of it it gets really close if you look on the right side here I have a closeup it gets really close within the number of bits that I had access to cuz it's only8 bits so um do did I did I oh forget this let's see the r2r I don't know if I even have the yes okay so this is the r2r deck it's just resistors the beautiful thing about using an r2r in this case is that well it's simple it's just a bunch of resistors chained together but more importantly you're doing an Asic uh you can't say I want a resistor that's onek at 1% you have no idea how it's going to come out and it'll change from Chip from wafer to wafer so there's lots of work involved in this in matching components and getting them to to values that are what you kind of expect but you don't expect ABS uh absolute values you try to go for ratios so this is perfect maybe all the resistors will be 20% greater but it doesn't matter because two times that and one time that it just comes out so you just need use some kind of like same resistor or something everywhere and then you will know if if it's uh if it's not exactly what the value you want it it doesn't matter because they are all relative same that's right now you can do it how did he do it let's see 35 okay so if you look at this resistor here it's got a length of 40 right this is the R2 or whatever oh no this is just the name so it's got a length of 40 this one has a length of 20 MH and so that one's two times as big but here's the thing this isn't actually now I know the best way to do this normally what you want because everything counts and that's kind of the thing here the course the the the zero a course it shows you the mechanics of making these things using xkm and stuff but the deep down stuff it goes really deep so the the resistor is a bit of poly silicone of a certain width and length and it has an internal resistance that we kind of estimate to be this great but you're connecting to it on the ends and so that counts because we're down here and everything counts so what you should do is have one resistor exactly one and then if you want two times the resistance put two of those because in theory two times longer is two times the resistance but in practice the smaller you get the more everything counts and those little connectors count and so whoops you you kind of start drifting from the 2x you wanted now you have instead of having a connector resistance connector you you really should have so two times that would be four connectors and two resistances but you only have two connectors so that's not good anyways so every time anytime you do anything in this the the transistors have parameters let's take a look at that so just take a random net so it has a length and a width okay that's great now this is the Stefan's comparator that I was doing basically following the video and oh here's another funny thing um I was doing this while watching a video right well some of them are just the wrong way around okay The Source in the drain you yeah but the thing is when you're actually in the chip at least with this technology they're perfectly symmetric so it doesn't really matter as long as you connect them the right way so I didn't even do it right but anyways so you have these things but you also have number of fingers and multiplicity multiplicity is just like having many in parallel you want these characteristics but you want more current to go through just add more in parallel and it does some work for you good the number of fingers is ex L the same width and length it'll be the same transistor in essence if you're only thinking of width and length but it has more gates instead of being one long thing it's like chopped and put next to itself so it has fingers like that and so if you look at just the math well it's kind of the same thing but it's not the same thing because you're changing gate resistance you're changing capacitance and stuff you're changing all these tiny tiny aspects that count this is one of the reasons I found this so interesting I'm mostly we'll see but you know I do digital more than anything else but this changes how I think about what I'm doing in in in ways that I still you know don't completely understand okay I think we can move to the next level so once you have this schematic I think now everyone understand you can create schematic from the library provide it through the sky water and you can uh adjust the parameters of the components which you can use from the library if you would like to do that okay so what is the next step you have this schematic and then so I have the schematic and uh well the next step is is the simulations so uh we can look at that okay let me take a piece of it instead of looking at this whole system because that's too much so let's see which pieces we have um the comparator okay how do you know all these commands well I'm just running xcam repeatedly on different files here so that's not too complicated but so this was the basic comparator we were looking at Stan thing now uh the first thing is when when you're here okay I have this comparator I want to start using it in test benches and stuff you would just go symbol um make a symbol from schematic uh make a symbol from schematic so that gives you you know something you can play with like this right now I create a test bench and the question is what is it that you want to look at and the short version is like everything here it gets really deep you have corners the the the the notion of the process has a standard deviation right so you can look at when the transistors are particularly fast or when they're particularly slow or when they're typical and which which one do you look at well you could look at everything but normally you look at what what would hurt your system right so that's one aspect of it the other is the spice itself so in xcam you create spice like this so what I did oh well for the Spice this comparator is the raw comparator it needs extra signals to calibrate and do things so instead of I just want to look at the comparator here I just imported these these things and they're not really anywhere in my layout at least at this stage but I need them internally I need this inverter here uh to to do something to to to to turn on the pass gate I need the pass gate to do the calibration you know stuff like that so that's one thing the other thing is so you might notice well look you want to do some spice where's VCC connected where where what's controlling the start okay so xcm has this system that is basically a stimuli editor what it does is it has unfortunately a uh its own little language but it's basically a way of creating you know in spice do you know there's voltage sources right you can have a DC Source or a signwave or stuff like that but you've got the pwl right which is an arbitrary waveform you can do whatever you want with that it's just at this time you're at this voltage at this time you're at this voltage it it's great but it's horrible ble to uh create so this basically you say okay I'm going to set these voltages set start to zero set start to one you know logic zero logic one and and and then you wait this amount of time set it to Zero D D du what that does is create a stimuli file this thing and we can look at it we don't usually have to look at it but we can where was I uh nope that's bad so it will create the signal which you would like to which you need yeah that's right so we were looking at the comparator okay this guy stimuli TB comparator sir so this spits out spice which is these these V and and okay so you don't really have to care about this I'm just showing you that you set these commands and you say set the signal High set the signal low and it'll just deal with that with you for you and it's uh much better than trying to do this in spice so so I have that and then I have my actual spice the thing that I care about and what I'm doing here I can't say that I actually remember but I'm including the the stimula because we need those voltage sources and then I'm doing a few runs where where ah I'm I'm uh I'm looking at this at different temperatures so I'm saying the temperature uh is a nominal 40° and 30° is one standard deviation away from that give me a a bunch of different temperatures and run a few times see how how much everything spreads out so once you have your spice and and all your stuff you just basically go sorry play you need to play no is that play button yeah so you say net list and then it's complaining because it doesn't know that I used the stimuli file simulate it launches uh NG spice and then now it's doing all these different runs and you can see the temperature vary here 19 65 53 15 minus 54 ouch uh so it's going and I I think I did 20 runs I can't remember once that is done so what I was doing in that spice was writing to a file all the results now I can just load these if you if you look in here this is just an xcam command to load the uh the the the data and finally there we go so the plus and the minus are represented in this top graph I set the plus to this I set the minus to that and this is the output of the comparator and you can see that these are a bunch of different runs M here's one think pretty true yeah so a different temperatures we're getting different results but they're all agreeing except maybe this guy here it's not so great so that must have been I don't know if it was hot or cold but it was extreme uh so I have my test bench I'm happy the circuit is good okay what do I do now layout that's right and so I don't want to um some people actually go into layout and they look at their circuit and they basically do everything by hand okay they choose every uh transistor by hand and you can do that and I mean these are experts so there's probably a reason this is not what I want to do so what ends oh I killed it so you can export uh a net list from this thing comparator so I got this out mhm I exported that and it's just this net list here so I'm going to not here we go I don't want to mess up my my system here so I'm just moving exactly thinking about it so if I start magic with a let's call it comparator magic sky I'll give it the same name so this file doesn't exist comparator stefan. magag but if I start magic with it uh yeah I used uh this shortcut called Magic Sky to be able to to get the sky technology here loaded I don't know if you can see that so magic has basically four tools that you always use this DRC box tells you in real time if you mess up this uh where how zoomed them am I okay I'm pretty zoomed in so this grid here should be at 50 50 nanometers so if I just take this Square here and ask it how big this box is yeah so 50 neter box right so let me paint this with metal one now oh see all this white stuff the DRC went up oh no we we messed it up so magic knows what the problem is is now I want to know so I can say DRC Y and then it tells me hey that metal uh box you made yeah you could paint it but there's no way I can fabricate that the area is smaller than uh Point than 830 micrometers squared so if I want to get rid of my DRC I either get rid of the that or I just paint a bigger box and we should be fine there we go DRC back to zero so DRC is tool one my mouse is tool two this box here that I move around is where stuff I do takes effect and this console down here is my very close friend where you can add commands and and do stuff so I'll just say paint metal too and it happens in the box now I customized it a bit so that uh lots of stuff works um in a way that I find more agreeable What's Happening Here but uh but that's the point so we wanted to uh lay out our comparator let me erase this and zoom out a bit oh I see I'm in caps lock okay let's import that magic has an import spice so you can go here and here's my spice that I SP I spat out from xcam and I'm just going to do this stuff is happening you will be out of your silicon I don't know if you see all these these messages coming up here I've got a bunch of DRC now and I've got something to S to show so it found those input and output pins that I put in the plus the minus all of that stuff and it has created a bunch of mosfets for me so these mosfets let's look at one they have the width and length as specified they have the number of fingers actually these are all multiplicity one fingers one but they have all those specifications this thing here this and this is the gate the red is poly so poly silicone basically resistor is it's contact but it's it's not very low resistance this is uh the gate these these blue things are the gate and Source uh connectors so here and here so which one is the gate which one is the source you get to choose now here's something that is really sad though uh so I have all these things and I can I can see that this is xm7 these are the components they're the components yeah and xm7 is is my my mosfet 7 there but what's it connected to who knows but you imported netl I was expecting there will be some wires yeah I know if this doesn't get done soon I'm going to do it some way of knowing what gets connected to what because magic is is very nice in terms of of being able to um script it and and do stuff I've added tons of commands and things but I haven't done that yet so short version is what you end up doing is looking at the schematic and coming in and placing your stuff accordingly and basically routing uh manual style so if I was to Route this I would say okay these two things are the gate I probably want to connect it on both ends and so I just start a square here let's say uh here to here and then paint it with metal one and you can paint with with this here if you find metal one like that and then from there you can you can basically copy anything that's around so this will be metal one okay and so now I have this and it tells me what's electrically connected so if I zoom out a bit you can see I'm connected to this and this electrically and so now you route everything now either we can do a little tour like that and and look at various things or we can start uh fresh but otherwise you know let's so basically we covered the basic steps or how this can be done so I think everyone understand how this can be done we had a look on more complicated example and now the example what we are going to do is something a little bit more simple I guess and yeah let's do something more simple and it will help us to understand the complete process right okay so um I will what do you want to do we can do something dumb like super dumb like an inverter uh or something a little more interesting like uh a pass gate I think an analog switch would be fun because it's got different kinds of fets and it has hierarchy to it we do like a pass gate and an inverter wrap that up and then just export it how are we doing on time uh we have maybe like 1 hour we'll we'll do it quick okay so what do you want to do oh what we can do in one hour let's okay we'll start with an inverter and if it goes well we we can do the whole pass gate and if it's complicated well we'll stick to that okay let's do in I think inverter is good enough to to show all the all the steps cool so um I'm going to save this as inverter give me a so how did you start new project I didn't say that I I just launched xcam okay here we go I just launched it without saying anything at all just hands off if you say nothing for example in in a directory in the project directory Robert I created an xcm directory with nothing in it I don't think there's anything here and just launched xcam okay so I want everything to be in this one place for my schematics and test benches and all that stuff so I'm just going to create a new file and unfortunately it's called Untitled and if you don't save as something you'll end up saving it called Untitled which is really annoying so inverter okay okay um and I say it's annoying but you know we Stefan and all these people it's right it's happening right now he he responds like that to uh to any kind of request so I should basically just talk to him or do it myself so I want to add uh we need a p fet and an nfet for an inverter right okay so here's uh I just did insert a a symbol I've got a few places to look this is the xem library it has fake stuff it has IO pins it has meta information it has voltage sources and and and spice kind of things okay these aren't real they're just useful so the first thing I need is um some input so an I pin right because I want to label these pins so here's a pen so we're going to have uh a VCC a vdd and an input and we're going to have one output okay so I added this pin uh we'll call this VCC I'll copy it over to the sharing is making my thing a little laggy I'm sorry so now I've copied it twice and Thrice so I'll call this uh a and this will be vsss so this is the you know our power now I want the output I could go in there and get uh the opin but whatever uh xcam is pretty nice with this I can just change this here live okay so whatever put that there now we've got our meta information what comes in what comes out we actually need some fets unlike the xcam stuff this comes from the actual pdk because it's pdk dependent so there's some stuff in here but basically what we're looking at is this stuff capacitors diodes like I was saying there's lots of fet choices lots of pfet choices resistors and that's it you don't really have much else here so we can go with uh classic or low voltage threshold let's use that so here's my n and I need a p as well and we'll match them p fet lvt and the p goes on top excuse me what okay is this good we could set uh the you know the width and length and all that that stuff um in essence no no no don't don't we don't need to do that there there's no point here yeah so these are the parameters which you can adjust I just would like to go through the steps as quickly as possible oh okay okay so the output is going to come out here the input goes to the gates here and so now you just wire it up like like you were in key CAD or whatever so the keys are a little different in theory but uh in practice I basically mapped everything to be exactly like kead and life is great now so let me readjust this screen BSS down here whoops I copied it okay now notice that um oh what is this oh yes okay how did this happen I'm not too sure why vdd is set there so I'm going to call this vdd okay because there are three and four terminal devices I um don't quite understand how I ended up that with that but the point is okay I I need a label for this guy well I'll just rewire it we want to go quick so I need to connect the body because mosfets are for terminal devices right so I want this oops oh come on forget that okay now finally these guys are connected and this is where we get this from okay that good yeah reasonable so I've got my file does it work let's find out uh what I need is a symbol from this well yeah let's do it right so I'll just create a symbol ploop yes I do and now that's done so let's uh do a test bench save oh t the inverter mhm so you C you create the test bench also in the schema think yes in the same place uh except that I just wanted I could have done these tests in that file it's simple enough that you could stick your Spice in there but this is how you normally do it I didn't look at the symbol it's not really too beautiful it's okay but that's okay don't worry okay so this is my inverter does it work let's uh well actually yeah we have a way to do this really simply I'm going to add some spice stuff so like I said this is going to be from uh the xcam library and the V stuff is at the bottom so let's just add a V and call it eight pardon no no it's okay I I I was SE last week so I I I still have some cough no problem okay um with spice you need to have something that is a zero net or a ground so rather than call it vsss I'm just going to call it ground stick that here and no no no what am I doing I want what do I want label label pin got this vdd make a copy bring it over and now the input and output what do we use we'll just use a let's use a sine wave H make it messy so I'm just copying this going to copy all of this o yeah I'm laggy I'm sorry virtual machine Zoom Etc so yeah forget the labels we'll just bring it down stick this to here and the output oh yeah not 1v8 so what would it be S around 0.9 uh 1 V at 10 mag do we need parenthesis I can't remember so I'm going to add a resistor here see I'm adding it from the uh from the XM Library because I don't care this isn't a real thing I just want to have a load uh on my thing to to to make simulation a little bit more certain I I'm very curious what's going to happen Okay let's call this something out oh and I should put a label on the other one click give it a name because otherwise it'll be node something something weird in okay all right so that looks like something that might work maybe you'll see we will see so let's look at the net list okay so I'll generate it and you can always look at it or edit it and so what I did was generate that net List It gave me my voltage sources it gave me this stuff now I could have made mistakes it's not doing any checks NG spice will tell us um oh and I don't have I don't have any spice that is uh important I have a net list but no spice so one thing that um really is required and kind of odd is this corner stuff it includes a bunch of things for you and just makes your life generally easier so you just copied this yeah I just copied I stole it from the the example that loads when you when you do nothing and what it is it's saying I'm using typical typical and it will include a bunch of Sky things for me and it'll just deal with a lots of things that I don't have to care about uh the final thing I need some spice so from the um xgem uh I think it's called code yeah code uh let's do the shown just because that way we can see what we're typing and and yeah so spice this blah blah you need to replace with something and let's see I put some examples on the side just to make sure that I wouldn't have to think about this too much uh doc wice what's this oh no it's on my mouth so right sorry about this uh yep that's not working out here right you want to do a bunch of uh a bunch of temperatures say we'll do that okay so I'm just yeah copying this stuff because some of it is incantation style I'll get rid of the Arun that's a problem uh so I'm slightly let's not do that Ram VCC we don't need this the temperature is this gsh in function damn it what have I done what have I done okay the the temperature will be uh varied if we we put this on and get the Delta so the control block here we're just going to run a few times get this okay so these are the parameters of the simulation yeah where this is actually the control of the simulation so I'm going to write a file called TB inverter doop uh do while let's say run smaller than uh 20 okay and we'll do a transient analysis of starting at zero of oh no that's so uh if you're familiar with spice you basically give it uh uh how fast are we going 10 Meg you give it a a smallest time step and a time to run so let's go for one millisecond see and then yeah this isn't the best best gooey for doing this stuff how do I end the while just end okay and and then I'll comment out quit zero so we can look at it and see okay do I need a DOT I do need a DOT so here's my spice home let's back up a bit okay now if I do the net list and look at it it will include my little control block here where I'm doing a run I'm doing an uh a DC operating Point analysis writing that oh I'm not writing all my stuff okay it's good to check we also need to write this data that so we do a transient analysis we write the data and I'm a little bit superstitious so I always end up going set a pen right because I'm not sure if it forgets and that's it so net list let's try the simulation see if it works now that quit zero that I commented out at the bottom it would have made this window disappear and not tell me that oh no something is terrible uh something is wrong error online okay that P fet that I was suspicious about I think it's weird so let's go in there get rid of this p fet and put one that I actually know so pet oh it's cuz I used the three didn't I the three is a three terminal device and uh it's supposed to make things easier but uh yeah I I'm not a big fan so let's just wire this up to this so that the body's at the right potential now we can back up I didn't do that right recent do the net list again so that way we take account of the change we just made Let's see if that helped yeah we we're running okay now the runs have happened we've got a bunch of rows in each of these transient analyses and they've all been written to this TB inverter raw file um I can get rid of this now xcm lets you see this stuff pretty easily by saying uh where do I oh graphs and things moved recently add waveform graph let's put it up here and also I need a way to load this data so graph add reload launcher now based on the name of my file here which was TB inverter it pre-filled this with TV inverter so that's great that's one reason to do that to write the file with the right name now if I load the waves well nothing happened but that's because we didn't tell the graph to do anything in particular so if the waves are loaded look at all that on the left side you can see all the signals that were saved so all we care about is in and out I'll add the in I'll add the out and wow that's pretty messy so let change this color to Red are we inverting or not I have no idea let's find out uh I am collecting too much data for this speed let's shrink this yeah because my computer is uh slow to respond right now and hello yeah I can hear you I can hear you no no I'm sorry it wasn't you I was talking to my computer here uh let's not collect this much data and let's but it was in think I could see it yeah but did you see how small it looked so uh 100 we don't need one millisecond boy 100 U let's redo that and it should actually run faster since we're oh no I changed the the step as well okay maybe 21s was a little bit excessive at this point reload this data okay now something is weird with our circuit because it's not acting too well the input is going up to 2 volts but the output is just floating around here so did I get my inverter wrong somehow okay this is okay I think it's my sine wave is okay right maybe it's too fast maybe make make it small or slower slower that's a good idea I'm also going to check oh no we know vdd is fine but I just want of 10 make just put there one make I don't know yeah okay uh let me just check vdd bdd yeah it's where it should be and the sine wave 10 Meg should not be too fast for this but one minut I said I'd do the quit huh look at that uh this is why Sim is good oh oh this onek no it's fine oh maybe yeah too high resistor too too low sorry too low yeah but you know no okay how about a Meg see if we get everything okay well oh I use the lvts right maybe they have something uh of interest and the smallest uh yeah there we go now we're inverting okay let's give it a little bit more granularity and a little less time so 10 Nanos and give me uh two 's and I want to quit because I don't want to keep closing that Boop net list simulate da and then reload did I do something wrong oh I I Shrunk the time look at those beautiful transitions Co so we can see that as it crosses over and it rises up pretty nicely wow I didn't know that uh that was that was way too low a load success we have an inverter or we could switch it out for non lvt and see but let's say we're done and we're happy with the system it's time to move on to layout so maybe it's good we just did the inverter okay uh so what I need now is a a that Spice in a format that is a subcircuit because you saw that spice it's just spice and voltage sources and stuff but I want to come in here and get a spice that is just a subcircuit so LVS net list top level is a subcircuit I checked that net list now I got that net list and let's see where are we we're in X skim here now in simulation we got this thing so if we look at it now way if we look at it now we can see it's a subcircuit cool the order of the pins is sometimes problematic but whatever so now in M we've got the stuff we played with but I'll just go magic sky that loads my sky stuff um what are we calling it inverter mag now we do that same thing file import spice get that Spice from where it was which is in xem simulation okay and we can zoom out now we have our two mosfets mhm i u and U and now we want to do what we want to do is look at um keep an eye on the schematic this guy so M2 is the P that goes up on the on top and M1 is that one so not too complicated uh what I do is I basically grab them and you can see we have a bunch of DRC errors and one of the questions is why and if you look at it well we've got DRC errors on the gates here and that's cu they're just too small those squares are too small but it won't matter once we uh start wiring things up so all you have to do is find a placement where you're happy now that's uh for me a bit of trial and error because if you get too close you start getting drc's everywhere so I just want it as close as possible before I get extra drc's so I'm at 12 that's good so what do we have we've got vdd this guy and you know by tradition and and just CZ I like it on top vsss this guy put him on the bottom well bottom is uh and a few of these programs you see the refresh is a little bit funny a is our input and it goes to both gates so I'm going to stick it here and Y is our output uh and I'll just put it there because it makes sense so wiring it up uh vsss needs to touch whatever it needs to touch in the schematic and uh it also wants to touch the the this guard ring and so same thing for vdd with this guy because that's what basically is touching on the body okay so how you wire well there's a few ways but uh in essence I like to start with uh squares just because I have more control and vdd and vsss we can be generous with uh you know and make squares like that so important things are Gates so what do I need to these two okay this will be where's my xcam this side we're going to mirror it like this where they're touching is going to be on the left and uh yeah on the right sorry and the two gates here so one of the sides goes to vsss and one of the sides so this is a very simple circuit to we're just going to bring this one up bring that one down have the gates come in from a and have the two ends here connect to Y okay so all we have to do is pardon let's do it let's do it so we make a square and now I need some metal one because that's where my connection is and then I can use the wiring tool now these things see that DRC went away and that's great I don't want this and I also want to connect it to this gate and we're going to be really lazy I think and justn connect one side of the gate whereas you should connect both so now that's connected and I can we it up here and if I look you can see the they're connected now right and then the two outputs go to the Y and so we have more space here I can give it a big Square now the advantage of a big square is that you have low resistance right the disadvantage is that you have high capacitance so it's all trade-offs hi so these pardon hi not for real capacitors real capacitor if you need real capacitors then it's still low yeah okay I'm not doing a very good job here but it's a job so how do you know it is connected in the Z uh Direction in The Zed oh uh how do I know it's this this squiggle well actually how I know is because when I select one of these metals and I go around see it selects all the gate yeah I know but how did you know you need to you need to draw on the layer one or what was it because okay so these blue things are V which is uh so light blue is the local interconnect it's like a a a very bad conductor okay it's on the bottom there on top of that you've got metal one and you can touch those with Vias through this vle this thing here on the right so wherever there's vle is like hey connect me to metal one please and so good so that's all I did I said okay here's I want this is the drain I want it connected to Y here and so I'll just put some metal one so if you would like to go from metal one to Metal 2 then you use different kind of via you use another kind of via so you've got Metal 2 here and you've got M2 contact now there are rules about how much space needs to be around the vas and da da da so really the easiest way to do that is to take a square here and then go in devices and via1 Via one is one to two so if I do that I get this and now I can connect to uh metal two but I'm going to undo this and notice how many undos I do one two three four five six seven eight that was the amount of undo so that's what that command did which is why it's nice to use so the two y's are connected uh we need the vsss connected to one of these sides and this body so let's do that like this I'll just give it a big plane oh I can't do that this Gate's going going to get in the way oh look at that and the gate is actually causing us problems here because it it's a DRC error right so we really do need to connect it so I guess I will so this will give us a a chance to escape I guess Let's Escape let's get out of here so I have to get down there and I have to get out so I'm going to paint this in metal and then go to Layer Two like I'm GNA grow this box okay grow it so exactly what I did there the V2 or V1 V one and it didn't want to because my box is too small again okay finally so I'll be able to get out of there with metal two and go to some ground so metal two pop just pipe this out and now here I want to come down no no no the crosshairs are really useful for knowing you know okay I should turn here whoop and we got rid of that DRC and we're going to have to do the same thing up top let's call it okay two gates so now all the gates are connected whoops okay and finally we can do vsss so let's get to here now I did it the hard way you can also use the wiring tool oop now I just went down a layer Boop it's just all about uh Mouse clicks and and stuff so let me get some vsss on this body o uh too close so you notice that those you get really sensitive to those little white uh those little white Sparkle things because they're like you're in trouble sir uh we have two DRC erors left I can't remember what what what is that I'm not too sure but I'm going to paint some V here and suddenly now the body's connected and so is this side whoops it looks like it looks like I'm connected to the gate too I am I'm not sure how and maybe we'll leave that error just to show it um okay the vdd also has to go here and I need to find my DRC error so this comes here so now that's connected oh no it's not connected yet need to add some Vias move this box here Vite pop and I think I created more DRC pop did I just add a DRC let's find the next one ah okay so this corner a little bit like pcbs you know uh it's not happy with the etching here but here it won't it just won't let you do it so we can grow this and it'll be fine it'll go away so let me do that Boop so that's one less Now where's the next one oh yes so I did do too much vle here I'm not sure if it's uh we can look at why exactly why the overlap is too small oh huh maybe I I need to grow it rather than shrink it so I'm going to add this and I'm going to add some metal one ah DRC Z okay now I think we have a problem though I had the impression that the gate was connected to this vsss and I'm not sure how that would have happened what is this what is this how did that appear well it's a good opportunity for erase M1 plop okay now of course this is paint these aren't objects right so if I erase metal one it's erasing all the metal one in that little square ites doesn't care about anything so you end up being able to do interesting shapes but also it's just paint so we have all our gates connected and vsss is connected to the body in that side and oh forgot vdd Need to Escape that and we'll be done so let's get out of here actually I should grow this Square boy like this oh come on I still haven't mastered the uh the commands to you know change the square shape too well it's tougher than it uh well it's tough for me to remember so let's go up Oh wrong wrong window let's go up a layer with V1 let's make a metal two square here metal two poop and now we can come down to metal one like this yeah so there we go so now the body and the that side The drainer Source or whichever that is is connected to vdd so I think we're done and boy I didn't save a single time during all that so oh I'll do it manual style so now it wants to write see it has this Sky 130 that's not the name of our file but when it imported those things it customized them so it creates these Sky blah blah blah Blas and fets and the blah blah blah Blas are all your particular settings so I'm just going to write that there's only one really uh there are two oh there's a p fet and an nfet and this is my file that I'm saving so normally you just say Auto write and it spits them all out if we look at the directory here we basically now have this Sky stuff in here and I still don't know how to move that to a separate directory it gets really noisy and anyways so we have our magic we have our layout great uh what do we do with this well this is a very small project but first off we want to look at the parasitics so there's uh there's a bunch of voodoo for that obviously I keep as soon as you're in that wiring mode if you stay there you make these mistakes that's how that other thing happened so uh the parasitics if I look in my home I I saved these these Voodoo commands here for parasitics it's all of this you have to say all of this to get the parasitics I didn't want to do that so I put it in this file and then when I launch magic um it just Imports that stuff so we can basically now say powera extract and it becomes a command magic is really easy to extend in that way so I'm going to do this BL BL uh do you want to delete it and lo yes I do goodbye yes yes okay now we have all this new stuff in here and if we look at inverter Parx compared to xkm the original spice we got there inverter so oh it's not much different there's not too much capacitance but this is our original two mosfets connected and now we have this and apparently oh I'm not looking at the right file I'm sorry do spice spice there we go this is the par the parasitic extraction so there's our two mosfets and now resistances resistances resistances and some capacitance we even have go up to a whole ftto farad uh between uh between a couple of these things okay so now this is basically the physical circuit this is not the theory this is the real circuit as close as we can get yeah this is the real thing this is all the tiny I mean these resistances some of them are really tiny some of them are not some of them don't matter some of them do can you simulate this yes okay so let's say we take our test bench and we go back to it and was I in the test bench here yes so let's add another this again so I'm going to copy all of this and we can compare the results yeah of course I didn't make it well I made it kind of horrible I don't know how different they will be so let's get rid of this oh no let's get I just want to get rid of this I don't need another voltage source I just need new names the in will be the same the out will be out par okay now this isn't quite right because this is just doing it with the same inverter again so instead what I need to do is some uh magic with xcam to say hey first of all let's get this this Parx spice and copy it over somewhere easy for X scam and then yeah I always forget this so I saved it now here we go this was for my mixer but we'll just adapt it now if I add these things I'm saying what was it called it was called inverter Parx and so we'll just get this it's called sim. spice I think it was just spice again like that okay now so this if that worked no I didn't get it right inverter per x. spice oh I put it in simulation didn't I so this is a good test if I control click on this it should load that so because this isn't a real device normally if you if you do a certain command here just to enter it you you go and see what's under the hood here there's nothing under the hood but uh a click will show us this so now we can run this uh is everything okay everything looks okay if I do netlist and simulate and we can make it worse if there's no difference here oh it's not happy job not started nesting of sub oh I'm still doing the LVS thing I think this pop net list simulate load these waves now nothing has happened because we didn't actually include that signal it would be called out PX and it is exactly the same so you want us to no no no we have that's good okay so that's there now yeah our our inverter is performing beautifully so good job now we're basically done so what would happen in real life is uh well one more thing because now I have an inverter but it has nothing to do with the shape of the tiny tape out chip we're going to make the chip needs to connect to the analog side somehow and it needs to basically know where that is so um there's there are files that we can uh that we can download here let's see so we have to somehow connect our circuit to the tiny tape out yeah so that's what this TT block thing is uh where's our stuff so if I go into here now I've got this def file whatever it is and it defines where the pins must be basically so uh to connect to within that whole MX thing the analog and the digital MX so if we launch magic yet again but this time with our uh here Robert mag now I have an empty project here I will do def read TT whatever it is and now it has read this file and suddenly look at that we have pins here these are the analog pins and then way up there so this is the square We have basically from here to so these not the um pins which are connecting the block which is available for us exactly so up at the top are the digital things and down at the bottom are the analog things where uh yeah let's see it's so I'm still looking how to change Magic's background from this gray because I can't see nothing anyways these are the analog pins so now this would be we could submit this as is to Tiny tape out and we'd get a project that does absolutely nothing but it would still be good we now we have to import our inverter here yeah so all I have to do now is sell Place instance because we created this cell and we have our inverter FP it's very very tiny this would be a sad project but if I can look inside here uh there's our inverter and all I have to do now is Connect into one of these pins out to one of those pins and vdd and vsss to power rails we could do it but let's say we did okay okay so the power rails are one of the where they are because you say on the top there are dig on the bottom analog so where are the power rails there are no power rails they're basically up to you you have to make them and I believe the rule is uh it has to be 95% or more of the length of the height there and between something and two micrometers so I've got my box here and it is 210 microns high and and nine wide so I'm just going to adjust it so you say box uh size 2 umum 210 pop okay so this is a good size for that box now I'm going to paint it with uh metal four and then you would call it VG ground or V power depending on which one you want so you set a label create a port we can do that but the point is you call it that and then you have another one for uh for V ground so you you get two rails and they're on metal for both and then um and then what will happen is you don't you're not allowed there's actually five metal layers you're not allowed to five because tiny tape out routes power there and every time it sees one of these rails it'll drop some vas for you and so okay so you don't connect it to any pins here it will be connected in the next you just give a right name V power V ground and then that's it uh it will come from the sky and just be delivered to you so but the important thing is that you have to connect these to your to your circuit okay okay that's it okay understand expect it so connect this to vdd that to vsss into one pin out to one pin document your thing and then oh and then right so GDs right yay. GDs so if we look in here we now have a yay. GSS a GDs and we can let's load it in a completely unrelated program so this file along with a left that you'd produce is what you stick in your repo push up and then you're done so this is our beautiful project it's this Square all those this the file what you upload to the G that's that's it and it's finished that's the whole thing we're done I mean you should document it my uh but uh I mean we went through the whole process all we made was an inverter but oh oh oh there's one thing we didn't do that you really should be doing because yeah we we got it but did we actually wire it up correctly so um if I go let I think this should work inverter make LV yes no rule to make Target okay yeah I forgot about that so LVS is layout versus schematic and the question is did we actually wire it up like the schematic I know what you mean if the all nights are connected correctly so when I'm doing uh when I'm doing a DRC in in kead in PCB new it checks the schematic and you know for for equivalence at least uh in this case we could have wired it up completely wrong no DRC errors but the circuit just doesn't work so what you do is you uh let me not do this but show you what the command would do here ah it would basically run this uh LVS net gen so there's a program called uh net gen which takes in one circuit so layout and the other circuit schematic and Maps them together and it's really pretty smart if you have a resistor that's uh 10K in your schematic and a series of little 101k resistors in there it'll jump you know merge them and say okay that's the same uh because source and drain are are symmetric well it figures it out so it does LVS and I'll I'll show you a good run with uh with my project let's say so what is this it is actually quite simple I I didn't know it's so simple it's when it's um it's I mean the process is simple I'm not saying the doing the design is simple no no no it well I it is surprisingly simple and uh and and I mean these tools really give you access to everything you need to know so we just did the whole thing I mean uh the LVS we can talk about but the point is it's not that complicated comes out and it says these match uniquely and okay I'm good and so you you post that up and now suddenly you know wait till the the the baby is born but you'll get a chip with with the circuit on it and the really neat thing is you get every single circuit so you're going to get my project too and and I'm going to play with like everybody's project basically when I get these chips okay so so before we finish because we only have very little time now uh show a little bit more be behind this so where or how would you upload it or do you need to register somewhere how you can get these boards how you get the can anyone get these boards with this uh silicons or and play with these circuits even if if they didn't design anything on the chip that kind of depends on how many we have left over so yes uh every time there's a tiny tape out run uh I'm I'm trying to I'll load this in this window here um every time we do a tiny Tapout run we get a certain number of chips and um that number doesn't necessarily equal the number of people who submitted a project so we could have some left over and in those cases you can get a chip that you you had nothing to do with uh some people reserve a spot and don't fill it or reserve a spot just to be sure to get a chip but uh in essence often you you can get one so let's see time tinyt tapout.com uh what was I going to do oh yes GitHub I'm I'm trying to do this in this window here but I never I've never used the browser here so I have no bookmarks tiny tape out so in tiny tape out you've got so many repositories but if we look for t7 which is the current run you have different templates so if you were going to do a digital design You' take this one uh there's an analog one here oop so this template uh is is mostly empty in the case of of the analog I mean there's some stuff but the point is your job is to change the docs so that you document your project and put in the GDs and left files that it requires so what you do is you Fork this or you you use this template it's a template uh I think I'm not logged in it say template project template okay good so you use this template you put in your files you push them and the the point is there are GitHub actions here that do all the things that you need to to to happen so that's it and then okay it gives you a green check mark you pass all the all the LVS all the all the checks all the DRC from there it's just app. tiny Tapout and that's it you sign in with GitHub and well I maybe you want me to share my actual window because with my browser uh it's up to you that's it if if you like you can you can share it but uh so you don't have to even register only what you need to have is your own GitHub account yeah that's it that I'll show you for real yeah give me two seconds uh Brave there we go okay so you see this right yes okay so I am currently logged in these are projects I have submitted if you look at the waoa that's my last one and it shows you basically okay I'm here I'm this blue box here and I have project number 265 and da da da when I submitted it uh I basically every time I made a change it would run the actions and when I was saying okay uh this is an update that I want to do I would just tell the system and it it it took the commit in question and said okay it's merged and then you know at some point we hit the deadline and I couldn't I couldn't merge new changes but the point is it's done anyone can uh go to app. tinytap out.com and and just sign in with their GitHub and say this is my repo and that's it if you there's costs involved uh for the tiles if you want the demo PCB uh I made those pcbs there and you can you can get that or just a chip or for schools and things like that you could have one demo board and all the projects on that one chip so then you're not paying you know the overhead you you just took multiple little tiles so there's a lot of options the point is uh I've done a few projects so far and it's it's really neat like this one was 8 by two tiles but most of them are small so but where did you order the board oh uh in here basically when you're when you're reserving your place even if you don't have a project ready you can reserve a spot and you say I wants and a PCB pardon how do you do that where do you do oh uh here we go let's let's show you okay so tiny tape out seven I want uh you know I want four tiles three tiles four tiles there we go and then here's the pricing for the tiles and the PCB and that's it I agree to this next go oh okay so you're basically doing that here and then after that it's done uh when it comes out it all gets shipped we're currently shipping tiny tape out four boards and so it gives you an idea of the turnaround time we're shipping four now so who is behind tiny tape out short version is Tiny tape out zero to as6 the course is mattv Tiny tape out is mattv and URI shaked URI is Walky it's all kind of interconnected everybody works together on many different things so um in essence yeah the important thing is to actually I I will I will show that because there are some links that I would like to show yeah and so and how the tiny tape out make this happen like uh met is somehow connected to who is going to manufacture it I have no idea yeah yeah yeah oh well that I will share the browser for so tiny tape out arranges these chips but who's making them well that's e fabulous so eous has a chip ignite which is basically for $10,000 or something like that you can get a chunk of wafer and put whatever you like in it and so tiny tape out takes a chunk of wafer and then chops it up into chips that each have all the projects so e fablous is the one arranging the shuttle and then skywater so and then skywat makes the chips so there's a a huge chain and it's really interesting because everyone's learning here the first npws through through uh tiny tape at well through the course and three fabulous uh didn't work for various reasons there were troubles at the beginning it was tough and so Matt when we were doing the zero to analog uh Asic course the beta uh he brought in Harold prle to kind of answer our questions because we're still we're doing stuff but everybody's like this is new and so Harold's like a super expert and he came in and basically consulted on that so there's there's Harold there's other universities there's uh Matt and Yuri and Tiny tape out there's eais and then there's skywater and Google was in the mix for a little while but no no longer they kind of moved out of that um because whatever and uh and so there's a a big chain of people and it's getting to the point where now it's kind of it's done these things are coming out and they're working so sorry for interrupting but be I wanted to add because uh it's not only the space for the for people but also there is circuit around this space which has to manage all the switching between these small specific cells and everything so this much bigger circuit which is used for debugging and accessing these uh small cells uh this was somehow created by someone before and this is just reused by uh tiny tape out originally it was the caravel Caravel was a like a pad frame with a little risk processor and you know stuff like that and so that has the pad ring and the logic analyzer and things like that and so tiny tape out was in the user project area and that kept on going for a little while then syo TNT did the MS so he's involved in that but it was still in Caravel now Caravel is gone we're using the open frame pad ring and so basically we're getting closer and closer to being our own chip but that's all developed by tiny Tapout basically all that surrounding stuff that chooses between the projects because there's a MX there uh now two kind of mxes really but one is digital and one is analog and you say hey I would like to talk to project number 265 it shoots all the io to the correct project uh Power gating turns on for if it's analog or something like that so all that infrastructure is basically what tiny tape out has done done on top of all the actions okay finally I understand everything because uh when I created the very first video with Matt it was still the Google and it was still the carousel exactly what you mention and all these things so yeah there were some changes and it's becoming kind of more straightforward because you just go through this tiny tape out directly to the uh other company forgot and then manufacture it so you don't need to like the seven months is the process how long it takes to manufacturer no I think it takes like three months or how I don't know how many it it depends how much money you have there's a thing called a hot lot where you basically say hey hey hey excuse me I I need to go to this step and then your chip basically goes through all the steps one after the other but in order to optimize the process there are hundreds and hundreds of steps so you're you go your wafer your project is right here it goes through you know injection of this or etching of that and then it goes on the stack and it sits there for a little while and then oh okay you've been you're doing step four and then it sits there for a while and that's why it end up because you are only paying $110,000 that's right yeah that's a good part of the reason because then you know someone else comes by and it's like I'm in a big rush and he bumps you over and then you're just waiting longer but in the end uh it's actually been going faster lately I'm not going to make any promises on on skywater eab's Park but uh things are starting to move along and Tiny tape out has started coming on a schedule tiny Tapout 7 is about to end a week later or something the the submissions will be open for tiny tape out 8 so the idea is to have multiple runs always going on going on going on and then because you're iterating you know I did a few projects where I did one thing and then I I've improved it and then you know did another submission but I'm still waiting still waiting so okay okay so I so basically tiny tape out will be waiting until they fill out all the sales or sell all the sales so they have enough money to they they don't need to it is hard set because it's related to when uh eais does the shuttles soe if it's like the last one was 100% full okay that chip was packed but if it's not packed it's going anyways because everybody who did submit submitt it so you know but then will they have enough money to cover the manufacturing expenses for the manufacturing that's the game but uh so far it's been working out and and you know with all these new capabilities and uh the awareness people are are playing and ideally what I'd like to see is is schools being involved you know classrooms and stuff because in that case it can cost them uh relatively little because they don't need 30 boards for 30 students and uh and they can basically have a bunch of tiles for each student everybody can do you know teams or or individuals have their little tile and play with uh even a smaller number of chips so uh but yeah uh so far it's it's been pretty fantastic I mean that last run I think it was the first time it was 100% full but if it's not full you know uh we put in tests of this or a heat of that a little Improvement you know stuff and Matt fills it up with with other things okay okay now I understand uh so uh would you like to also say something about yourself and you know what do you do and how I I have no idea like what do you do in your everyday job this is lots of it um basically uh my name is Pat Degan and I'm the co-founder of psychogenic uh psychogenic Tech Technologies and basically we do uh you know bread and butter PCB stuff is what you know Keeps the Lights On so iot and and you know everything from um design and architecture to prototyping because I have a little pick and place machine uh we do small runs for prototypes and things like that uh but my interest has been captured this past year or so by all of this stuff so I've been playing more and more with Matt and URI on Tiny tape out I those those demo boards and things that come out I mean I made those so uh in this world everybody's doing lots of different things and collaborating in lots of different areas and it's kind of interesting and that's basically what I've been doing oh and I'm doing uh talks you know I'm going to Portland for um tear down I did latchup uh there was you know so I do these conferences and that's basically to to spread the world because I think this is really cool and the fact that I said this in in my last video about this stuff it really is like the internet a few decades ago um now with everything being opened up uh you don't need anything to participate it used to be the barrier was hundreds of thousands of dollars plus the expertise plus all that software and the licensing and the general nightmare now we can play and when we can play we play together and when we play together it just explodes and this is why I think it's the best time to to get into this with tiny tape outs saying yeah the door's open you can actually have physical chips just think about what you could learn or what you could try out where it was impossible before so I I think what is happening is what happened to pcbs because like uh I don't know when I was starting with electronics 20 years ago making PCV is so expensive oh yeah do not four layers are you crazy now it's nothing like and also you know cheap there is future in the chip design because now every country would like to you know design their own chips because everyone is worried like what is inside of these chips in inside of our phones and so as you know like many countries are going to put lot of money into this uh there are huge of of cash in this it's crazy and there's a demand for people who are able to do it exactly cannot be met it's like we need some people I've worked with company here on on unrelated things they do really cool uh back scatter technology it's it's really neat stuff and it's one of the reasons I started playing with ASX they were taping out their own stuff and uh they were looking for analog engineer and it was almost impossible you pay LinkedIn big bucks you know to have worldwide coverage and you still can't find them so hey if you're curious come and play it'll either be fun or it'll launch a career because boy is it needed okay thank you so much B for uh preparing all these and uh if everyone is interested to learn more they can follow your videos on your channel and maybe they can even contact you and you know go and oh yeah everything I would like to invite everyone to come over even if you're not taping out right now there's a on Tiny tapout.com Discord is the Discord server and there's people with 20 and 30 years of expertise there just there to share what they know so if you're curious come on down or or you know watch my videos I have an Asic playlist and contact me reach out okay thank you so much Pat thanks a lot for having me man and uh that's everything thank you very much for watching this video by the way we are preparing some very interesting tutorials so if you don't want to miss them hit the Subscribe button if you want you can also check out our fedel online courses where you will find everything important from basic board design up to Advanced Hardware design and PC blay out the link is in the description that's all for this video thank you again don't forget to leave your comments and see you next time bye