FreeCalypso > hg > ueda-linux
diff ueda/doc/bom_model.txt @ 0:cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 20 Jul 2015 00:24:37 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ueda/doc/bom_model.txt Mon Jul 20 00:24:37 2015 +0000 @@ -0,0 +1,131 @@ +Bill of Materials (BOM) handling in uEDA + +There are a number of reasons why one may want to have a BOM for a board design: + +* To have a list of all components outside of schematic drawing files +* To have a list of PCB land patterns for pre-layout (see prelayout.txt) +* For purchasing or other part procurement +* For handing to assemblers (those who populate the parts on the board) +* For quick reference + +Although one is often tempted to get away with keeping the "BOM" information in +his head, a formal BOM is a good thing to have. + +OK, so we are going to have a BOM. But what exactly is the BOM in precise +terms, and what is its format? uEDA provides several different facilities for +BOM handling. + +The MCL + +Whether or not you are interested in any of the other BOM formats, you have to +have the MCL. It is a critical part of the design source code in the uEDA flow +model. It's a human-created and human-edited text file described in great +detail in mcldoc.txt. + +Having a simple and intuitive text-based format, MCL can be readily viewed and +printed. As it contains the complete information about all components in the +design, i.e., all BOM information, it is in itself a type of BOM. It is in a +way "the ultimate BOM". There are, however, a few situations in which other +BOM formats are desirable. + +Procurement BOM + +You write the MCL for your design. For each component you enter all the +attributes that you may need for procurent: manufacturer, +manufacturer_part_number, vendor, vendor_part_number, etc. But now it's +actually time to order the parts. What quantity of what part numbers do you +order? All necessary information is in the MCL, but it isn't at all obvious +for filling out order forms. One really needs a distilled BOM for procurement. + +The ueda-mkbom utility generates a procurement-oriented BOM from the MCL. +First it reads the MCL and makes note of all components that have been reduced +to parts. (Components that haven't been reduced to parts are ignored, though +the user can request that a warning be issued. You need to reduce all +components to parts for this function to be useful, see mcldoc.txt for the +details.) All multiple instances of each part are tallied together. +Finally, output is emitted which is centered around parts with a quantity for +each, rather than around reference designators. (A list of refdes'ed components +using each part can optionally be emitted.) Each entry is given a heading and +usually some comment lines based on part attributes from the MCL which are +deemed relevant to the procurement BOM. See mcldoc.txt for the details. + +One can generate procurement BOMs for different population options, see below. + +The procurement BOM generated by ueda-mkbom is plain text formatted on the +assumption of 80 columns of fixed character spacing. It is thus suitable for +both online viewing and printing. + +Short BOM + +For purposes other than procurement of parts, component reference designators +do matter, and a BOM organised and sorted by the component refdes is the right +format. MCL is such a format, and oftentimes it serves quite well. + +Sometimes however, it is desirable to have a "short BOM" that is ordered by +the component refdes like the MCL, but follows a tabular format with one line +per component and with columns corresponding to a few attributes deemed most +useful. + +The ueda-shortbom utility generates such a "short BOM" with 4 columns: refdes, +manufacturer, part number and description. The manufacturer and description +columns are taken from the identically named MCL attributes; the part number +column is taken from the manufacturer_part_number= attribute if one is defined, +otherwise the device= attribute is used instead. If neither attribute is +defined, the string "unknown" is substituted. The same holds for the +manufacturer column. The description column is left blank if no description= +attribute is defined. + +The intent is that the MCL would be used directly only by the board designer +himself, who would of course be intimately familiar with the UNIX environment, +the workings of uEDA and its file formats, and the way his particular MCL is +structured, whereas the short BOM would be given to lab technicians and others +who are not UNIX-based intellectual creators. + +ueda-shortbom can generate plain text output that is directly usable for viewing +and printing in a fixed character spacing environment, but it usually ends up +needing more than 80 characters per line and thus a pain to work with. +ueda-shortbom can also produce output with columns separated by ASCII tab +characters irrespective of field widths; such output is useful for post- +processing. UNIX tbl(1) and troff(1) can be used to produce a very pretty +hard copy (PostScript) version of the short BOM. + +Assembly BOM + +An assembly BOM is exactly the same as the short BOM described above, but has +one difference: if a component is to be socketed, the information put in the +corresponding columns of the assembly BOM is that for the socket part, rather +than for the component to be pushed into the socket. The assembly BOM is thus +exactly what you need to give to those who will be stuffing parts on your board +and running it through the reflow oven. + +An assembly BOM is generated by the ueda-shortbom utility with the -a option. +Since one would need to generate different assembly BOMs for different +population options (assuming that the document is intended for those who will +follow it blindly), ueda-shortbom supports population options as well. +See the ueda-shortbom(1) man page for details. + +If your design uses no socketed parts and no population options, the short BOM +and the assembly BOM would be identical. + +Population options + +uEDA supports designs with population options, i.e., ones in which some +components may or may not be populated as a manufacturing option. They are +described in this document because the BOM is really the only part of the uEDA +flow for which population options matter. The PCB obviously has to have +footprints for all components that may ever be populated on it and the +schematics normally show the interconnections for all possible components as +well. The BOM is the only part that is made in multiple versions for different +population options. + +In order to support population options, each component in the design (i.e., in +the MCL) is assigned to a numbered population group. Population groups are +identified by integers and a component is assigned to a given population group +via the population_option= attribute in the MCL. Components without this +attribute are assigned to population group 0, the default. + +When generating a BOM for a given population option, specify the list of +population groups to be included (see ueda-mkbom(1) and ueda-shortbom(1)). +The default population option consists of population group 0, i.e., running +ueda-mkbom or ueda-shortbom without any options counts only those components +which do not have a population_option= attribute.