FreeCalypso > hg > ueda-linux
diff ueda/doc/overview.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/overview.txt Mon Jul 20 00:24:37 2015 +0000 @@ -0,0 +1,117 @@ +Welcome to uEDA, an EDA suite for UNIX! +(for board level design) + +The uEDA project has been inspired by gEDA (http://geda.seul.org/) and intends +to do for the UNIX culture what gEDA has done for the GNU/Linux culture. + +First a disclaimer is in order. Different people write Free Software based on +different motivations. Like most Free Software written by Michael Sokolov, +uEDA is based on the "scratching a personal itch" development model. In other +words, I have written the software to satisfy my own internal need, and I +don't really care if you like it or not. Please keep this observation in mind +as you discover that it lacks some feature you need or want, or that its flow +is not to your liking. I have written it to satisfy *my* needs. I could have +written it for myself and never released it, but I believe in sharing and +letting others have what I have (though whether they like it or not is not my +concern). So there you have it. + +uEDA has been written by a hard-core UNIX programmer (as in real UNIX in 4 +capitals running on Big Iron, not the cheap modern crap), and is designed to +allow one to design hardware using not only a UNIX host environment, but also +the intellectual creation flow model associated with the UNIX culture, one that +revolves around the concepts of source code files, generated files and +Makefiles. I won't explain these concepts here; if they are foreign to you, +uEDA is not for you. + +Note my choice of words: "the intellectual creation flow model" of the UNIX +culture, rather than "the UNIX programming model". I fully acknowledge that +hardware engineering is very different from SW eng, and uEDA does not try to +"make hardware like software". However, the UNIX culture's intellectual +creation flow model has already been extended many times to various intellectual +products other than software. Consider for example an author writing a book in +troff. The troff source files take the place of C source code, PostScript or +other typesetter files for the print house take the place of the executable +binary, and a Makefile is used to drive the flow. The author edits the book +source files with vi and regenerates the generated files on each iteration by +running 'make'. It isn't software, but the intellectual creation flow is +virtually identical. uEDA applies the same model to hardware design. + +So what is the source code for hardware, and what is the final product that +should be generated by 'make all'? Well, the ultimate final product is the +physical board which you can hold in your hand, but the most "final" product +that can be made on a computer would be a set of gerber files for PCB +fabrication, a bill of materials (BOM) for the purchasing or other procurement +of parts, and a set of assembly instructions to be handed to the assembly line +workers who populate the parts on the board. The starting source code would +be the schematic design. + +The ultimate UNIX-model EDA suite would thus be one that can generate all final +manufacturing files from the schematic source code with a single 'make' command. +uEDA is almost there, except for the layout step. + +The problem is that even with the best EDA technology PCB layout still involves +considerable human effort, and is thus not something that can be done by a batch +program that works from stdin to stdout. Therefore, the PCB layout file is +subject to human editing and is not just an intermediate file between schematics +and gerbers like a .o file in the software compilation flow. + +The uEDA solution is to view the job of designing a board as two separate +intellectual creation jobs, each with its own UNIX-model Makefile-driven flow. +These two jobs are the design and the layout. uEDA addresses the design. The +uEDA suite does not really get involved in the layout, but is designed with the +assumption that the layout will be done with the free & open source PCB program +(http://pcb.sourceforge.net/). The two are connected by the "pre-layout" step +described in prelayout.txt. + +(Note that such separation of the design and layout jobs is additionally + supported by the fact that in many engineering companies these jobs are done + by different people.) + +In the design phase addressed by uEDA, the source code is the set of schematic +sources and the Master Component List (MCL), a human-edited text file documented +in mcldoc.txt. The products that can be generated from these sources with a +Makefile are: + +* Printable schematics (PostScript or PDF) for documentation; +* A set of "pre-layout materials" for handing to the PCB layout person; +* Bill of Materials (BOM) in different formats for part procurement, for + assembly and for quick reference. + +In the layout phase the .pcb that is both read and written by the PCB GUI is the +source code, and pcb can be invoked from the command line without the GUI to +generate gerbers, PostScript prints of the layout and other product files from +it; those generations can be codified in a Makefile, once again creating the +traditional UNIX flow. + +Design source code structure + +The source code for a board design in uEDA consists of 3 major parts: + +* Information about all components on the board; +* Electrical interconnect information: how these components are interconnected + with nets; +* Graphical information used to construct PostScript prints of the schematic + sheets. + +The core philosophy of uEDA is that these 3 kinds of information should be kept +as orthogonal as possible. Component information is stored in the Master +Component List (MCL) documented in mcldoc.txt, whereas the interconnect and +graphical schematic information is stored in the schematic sheets (.usch files) +documented in uschemlang.txt. Although the electrical interconnect and +graphical information are stored together, the uschem language is designed to +provide a high degree of orthogonality between the two. Schematic sheets can +be either graphical or non-graphical. + +Further reading: + +bom_model.txt Describes the uEDA approach to BOM handling +drc.txt Describes the means for helping ensure a match between the + actual electrical interconnect and the graphical representation +graphsyms.txt Information about graphical symbols used on schematic sheets +mcldoc.txt Master Component List document +netlisting.txt Describes uEDA's handling of netlist information +prelayout.txt Describes what I mean by "pre-layout" +psfeatures.txt Describes the features available in the PostScript prints of + schematic sheets made with uschem-print(1) +uschemlang.txt uschem language document +*.1 Man pages for all uEDA utilities