KiPart: Because Building Parts Sucks Donkeys!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

That looks fantastic, and I'll try it out!

👍︎︎ 1 👤︎︎ u/NF6X 📅︎︎ Aug 13 2015 🗫︎ replies
Captions
okay I can't count on you sticking around to see this whole video so here's the gist I'll demonstrate how to use spreadsheets to quickly enter part data which is stored into CSV files that are processed by the kite part utility to create kite head symbol libraries it's much faster less error-prone and delivers more consistent libraries than using the Kai CAD symbol editor which sucks donkeys at the end of this video you can see how to get this free open source program okay I'll with the show if you're doing an electronic design obviously you're going to need parts and each part in your design needs a footprint for the PCB and a symbol for the schematic the footprint is easy it's just copper in geometry and it's usually already done for you after all how many forty-four pinky QFP footprints could there be but there are thousands of different chips that use a 44 pinky QFP package and each one has its own arrangement of i/o pins so each one needs its the individual schematic symbol and with cod cad unless the part is popular with a hobbyist community you'll probably have to design the symbol yourself unfortunately designing schematic symbols and Chi CAD sucks donkeys let's see why as a test case I'm going to design the 16 T to 45 bi-directional transceiver chip which is this 48 pin chip here and I'm going to design that with Kai CAD and see how long it takes let me pull a timer over here start tied and start the symbol editor making a component 16 T - 45 first pin pen name one dir and it's kid number one orientation to the right it's an input that's all correct according to the datasheet so we put that there one pin down 47 more to go you now draw the boundary around the chip and we're done now here are the main disadvantages I see with the Chi ket symbol editor number one is all the manual operations and the dialogues that are popping in and out slow down the entry of pin data plus some of the pin information gets hidden so errors are hard to find for instance it can be hard to find if you have assigned the wrong type to a pin you have to open the pin up and take a look and finally it's hard to stay consistent across symbols to make all the symbols in your library kind of look the same and that can be really important if you're anal retentive now I want to talk about KY part which is a better way to define kaiketsu matic symbols first of all pin data will be entered using a spreadsheet which is fast because that's why spreadsheets exist the pin data will also be visible so the easier to spot errors the spreadsheet will store the pin data in a CSV file comma separated values this CSV file will be the input to the kuiper command line program type power will translate the CSV file into a cockade schematic library because kite part is a program it's fast it also does the same thing every time so the schematic symbols in and across the libraries it creates will all be consistent with each other okay now let's build the schematic symbol using type art start off by building up by creating a spreadsheet name it 16 T 245 then I'll go into my datasheet I'm gonna copy and paste my pin names and numbers from that directly and I've got my pin numbers and here my pin names and I'm just gonna cut these out and paste them side by side and we see we've already got probably got more pin names than we do numbers problem is caused by the bolt of supplies which have subscripts and they've been divided into two lines now to correct that then I have to get rid of these blanks okay now I'm going to label this column pinned and this column name put a name for the symbol that I want 16 to 245 and I need another field here called another column called type and which lists the pin types and I'm going to start off making every pin bi-directional because most of the pins in this case are bi-directional then I'll go on correct for the ones that aren't bi-directional this is an input this is the power pin and put and clip okay that's all I need to do for that and I need one more column which I'm going to call side and that's the side that the pins around and pins 1 through 24 going to be on the left-hand side and pins 48 through 25 are going to be in the right hand side ok and that's all I need now I can go ahead and say this is a CSV okay yep that's saved I'm going to open a command prompt where I saved that file and I'm going to convert it into a symbol library using the Chi Park command line tool type are 16 T 2:45 CSV I'm going to order of sort the pin names and numbers by the by the number of the pin so they're going to come out the right way around the boundary of the symbol I'm going to do fuzzy matching on the pipe on the fields in the CSV file so that things like bi-directional and and PWR will map to the correct pin types in KY can't and my output is going to be 16 ki 245 dot live and I'll overwrite it at that libraries actually in that directory and there you go now we're done so we have a symbol library for the 16 T 245 okay opened up the library that I created with CAI part just to look at what that part symbol looked like and as you can see you can draw a one-to-one correspondence between the pins and names that I have in the generated part symbol compared to the symbol in the PDF datasheet and they look the same now this is all well and good for a small pin count chip like the sixteen t45 it only has 48 pins but when you get up into larger chips that have 100 pins 256 pins even 2,000 pins you don't want to create just a single somatic symbol for you want to have different units within the symbol itself that that correspond to different functions that may be in that chip for example with an FPGA there are banks of inputs and outputs that are all connected to a dedicated power supply for each Bank and so you would want to have your FPGA divided up into symbol for a unit inside the symbol for each Bank and we can do that with tight part as well we can add a new column called unit and everything that has a 1 in front of it will be in unit number 1 and everything wasn't to in the front of his name will be in unit number two and everything that doesn't have a unit number is going to be grouped together into a common symbol and and that's where all the the power supply pins will go to the grounds and the and the power inputs and now we can save that again as a CSV file now let's create the schematic symbol for the updated CSV file and I'm going to add one extra input operation here I'm going to bump will come and pins together and I'll show you what that means once we look at the symbol okay so we're now we've regenerated the symbol and we can look at it using the symbol editor and this is the symbol the new symbol that's divided up into units this is unit a it's contains one 8-bit bi-directional transceiver that's contained within the 16 T q45 if you look at unit B I mean units see that's the second 8-bit transceiver and now if you look at unit B that's the common unit that contains the power and ground connections and the bundling has taken common pins and bundled them together into one connection so there's one VCC B can actually even though there are two on the chip and there's a one VCC a pin even though there are two connections on the chip and the ground pins have been also collapsed together so that you can make a single net connection to this to this pin and connect to both of the VCC B pins on the chip and that could be very handy when you have something like an FPGA which can sometimes they have hundreds of ground pins and you can collapse all those into a single ground pin on the schematic symbol and make your connection there and and and avoid a lot of manual labor connecting all the different round pins so designing the 16 T to 45 schematic symbol with the @ symbol editor took around 12 minutes and with CAI part and spreadsheet took around 4 minutes so about 1/3 is long and the big reason for the time difference is with CAI part and the spreadsheet you're not spending all your time clickity clickity clickity through dialogues like the pin dialogue and the simple out of there of Chi CAD but the other big speed advantages that I could cut and paste the pin numbers and names right out of the datasheet and that's not always going to be available to you for instance here's a microchip datasheet and I can select the pins and then in the names but when I try to right-click and copy those they won't let me because the datasheet is a copy protected in some way now I'm sure there's a good business reason for one microchip does that with a datasheet but that's not immediately clear to me what that might be so you just have to go in and and type all the information in my hand and I'd still rather type it in into its spreadsheet and have it all immediately visible and available to me along with whatever advantages they get from spreadsheet functions to get information rapidly replicated through there and I'd still rather do that and then then go through the head simulator there's dialogue menu for each pin now the place you really win big when using kite part is for those semiconductor manufacturers that provide all of their chip IO information in CSV files or in some text file format like Xilinx all of these I like 7-series FPGA design info for the i/o is included in these package files that they put on their website and I've downloaded the zip files for the vertex 7th Arctic 7 Kintex 7 a.m. for the Zink FPGAs and I've stored them locally and I can process all those into a single Xilinx library for the series seven parts and I can do that with this command type part and I have a special reader for the Xilinx 7 format that they use for their CSV files and I am going to sort the pins by the name and you'll see why when I show the symbol I'm bundling so that all the common ground pins in common power pins are all grouped together into single pins and I'm going to put it all onto a zomick's 7 library and I'm using the zip files for the context 7 the Arctic 7 the vertex 7 and the zinc and so with that command goes through and processes all those zip files and takes all the CSV out and there have it and now godets onyx 7 library with all 93 devices some of them with up to 2,000 pins stored in that zhiling 7 library so we can take a look at that ok I've loaded the Xilinx series 7 library into the cockhead symbol out of there as you can see there are a lot of devices in the library 93 to be exact let's pick one of the smaller devices like this Arctic 7 and the 324 pin package and take a look at that in more detail the first unit is just an i/o Bank and you can see how the pins have been arranged it's kind of alphabetical according to their names and their i/o numbers so you can see that they are arranged in numerical order but there's also an alphabetical component to this that's why the N and the P pins are arranged close to each other for the differential pairs this makes it very easy to lay out your differential pairs in your schematic you don't have to go searching around for different pin numbers in various places they're all right next to each other this was done automatically using type Hertz sorting by name option that I pointed out earlier also notice at the bottom here we have I can get to it a single power supply pin this actually is bundled a bundled pin that represents 5 or 6 physical pins on the actual device so all I need to do is make one connects on the schematic to apply power to all the pins for this i/o Bank and that's always handy and save some time now let's take a look at some of the other units that's another IO unit this is another i/o unit and this is where the main power goes into the chip for the ground the main ground pin auxiliary power block ramp power and internal core voltage power and the because of the bundling this one ground pin here actually represents over 45 physical pins on the FPGA chip and each of these other power input pins represents anywhere from 4 to 15 physical pins so by making 4 connections on your schematic to these pins you've probably connected close to 80 or 90 of the pins of the FPGA which again a big time-saver there and the rest of the units are IO IO and then there's all the configuration pins for the FPGA the JTAG pins the mode select pins and the analog to digital converter reference voltages and things like that and it's convenient to have all this in one place as well thanks for hanging in to the end of this video to recap what I've told you the Ticats damat gather there is slow error-prone and doesn't guarantee consistent simple libraries the combination of chi part and a spreadsheet is fast error resistant and guarantees consistent symbol libraries if you like what you've seen here's how to get kite part you can get it off github modify the source code to your heart's content it's just a Python program so it's easy to install using pip and you can read all the documentation over at read the docs org also check out Chi cost because calculating the cost of your project sucks donkey is even more than making schematic symbols you'll find it in the same places where you find kite part thanks for watching
Info
Channel: xesscorp
Views: 13,521
Rating: undefined out of 5
Keywords: KiCad, schematic symbol, schematic library, XESS
Id: hX4l8i4TSWY
Channel Id: undefined
Length: 23min 23sec (1403 seconds)
Published: Thu Aug 13 2015
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.