Index: trunk/doc/examples/non-graphical/index.html =================================================================== --- trunk/doc/examples/non-graphical/index.html (revision 7483) +++ trunk/doc/examples/non-graphical/index.html (nonexistent) @@ -1,116 +0,0 @@ - -
- -- This is a proposal at this stage - any detail may change any time. This -feature is not yet implemented. -
-Sometimes a design is easier specified by text than drawing. Typical examples: -
-Non-graphical sheets are implemented in plugins and provide different -methods and syntax for specifying abstract components, abstract networks -and their relations. The cschem compiler can use this as an input on the same -level as a graphical sheet. That means, it can be an Nth sheet in -a multisheet project. For example draw the power and analog parts on graphical -sheets and have the 28 pin parallel bus connections to the CPU, ram, I/O chips -and connectors specified in one more more non-graphical sheet in the same -project. -
-Below are different methods and syntax to describe non-graphical sheets. - -
-tEDAx is very easy to parse, well specified, and is relatively easy to -read and write as human. -
-Here are a few small examples, all describing the same "7805 with 2 bypass -caps" circuit using different approaches: -
-These are not different sets of syntax, but they are all just different usage -and combination of the same few blocks that are all available. As a proper -declarative description, order of blocks or order of attributes/connections -within a block doesn't matter. -
-The verbose versions are perhaps more practical if there are a lot of attributes -to specify. The compact version is more practical for listing a lot of -connections and few attributes. -
-Another way of mixing different blocks is big32.tdx, -which is an imaginary CPU board with 2 SRAM chips, an I/O chip and an extension -port. It uses the verbose component description for the chips and capacitors, -also connects power and gnd there and then uses the compact, table-like -description for the address/data/control networks. It's also an example -of combining graphical and non-graphical sheets: U5 is a network of gates -that controls chip-select; it's better drawn for clarity. - -
-In some cases parts of the design can be specified using repetitive patterns. -An easy way to handle this is to write a script that generates a graphical -sheet or a non-graphical sheet using a declarative sytnax. -
-If that script is written in fawk, sch-rnd can run it without having to -generate and parse the declarative intermediate. This feature is limited -to fawk because: -
-A simple example script, r2r.fawk generates -5 bits of the classic R2R DAC. It can be configured by changing the values -in main(). -
-The script doesn't emit a netlist or declarative tEDAx non-graphical sheet. -The result can be observed in sch-rnd by loading only the fawk script -as a sheet and using the abstract model dialog. -
-(An alternative is implementing the cschem functions locally, as vararg -fawk functions and make them print to stdout using fawk_print(). Then the -script can be ran and debugged independently of cschem, using the example -libfawk command line interpreter.) -
-Functions provided by sch-rnd: -
function | description - |
---|---|
acomp_attr(name, key, val, ...); - | create a component by name, or add to existing component by that name; - add key=val pairs of attributes; this is a vararg function. - - |
anet_attr(name, key, val, ...); - | create a network by name, or add to existing network by that name; - add key=val pairs of attributes; this is a vararg function. - - |
aconn(netname, compname, termname, ...); - | create a network by netname, or extend existing network by that name; - connect terminal(s) addressed by (compname-termname); this is a vararg function. - - |
+Sometimes a design is easier specified by text than drawing. Typical examples: +
+Non-graphical sheets are implemented in plugins and provide different +methods and syntax for specifying abstract components, abstract networks +and their relations. The cschem compiler can use this as an input on the same +level as a graphical sheet. That means, it can be an Nth sheet in +a multisheet project. For example draw the power and analog parts on graphical +sheets and have the 28 pin parallel bus connections to the CPU, ram, I/O chips +and connectors specified in one more more non-graphical sheet in the same +project. +
+Below are different methods and syntax to describe non-graphical sheets. + +
+tEDAx is very easy to parse, well specified, and is relatively easy to +read and write as human. +
+Here are a few small examples, all describing the same "7805 with 2 bypass +caps" circuit using different approaches: +
+These are not different sets of syntax, but they are all just different usage +and combination of the same few blocks that are all available. As a proper +declarative description, order of blocks or order of attributes/connections +within a block doesn't matter. +
+The verbose versions are perhaps more practical if there are a lot of attributes +to specify. The compact version is more practical for listing a lot of +connections and few attributes. +
+Another way of mixing different blocks is big32.tdx, +which is an imaginary CPU board with 2 SRAM chips, an I/O chip and an extension +port. It uses the verbose component description for the chips and capacitors, +also connects power and gnd there and then uses the compact, table-like +description for the address/data/control networks. It's also an example +of combining graphical and non-graphical sheets: U5 is a network of gates +that controls chip-select; it's better drawn for clarity. + +
+In some cases parts of the design can be specified using repetitive patterns. +An easy way to handle this is to write a script that generates a graphical +sheet or a non-graphical sheet using a declarative sytnax. +
+If that script is written in fawk, sch-rnd can run it without having to +generate and parse the declarative intermediate. This feature is limited +to fawk because: +
+A simple example script, r2r.fawk generates +5 bits of the classic R2R DAC. It can be configured by changing the values +in main(). +
+The script doesn't emit a netlist or declarative tEDAx non-graphical sheet. +The result can be observed in sch-rnd by loading only the fawk script +as a sheet and using the abstract model dialog. +
+(An alternative is implementing the cschem functions locally, as vararg +fawk functions and make them print to stdout using fawk_print(). Then the +script can be ran and debugged independently of cschem, using the example +libfawk command line interpreter.) +
+Functions provided by sch-rnd: +
function | description + |
---|---|
acomp_attr(name, key, val, ...); + | create a component by name, or add to existing component by that name; + add key=val pairs of attributes; this is a vararg function. + + |
anet_attr(name, key, val, ...); + | create a network by name, or add to existing network by that name; + add key=val pairs of attributes; this is a vararg function. + + |
aconn(netname, compname, termname, ...); + | create a network by netname, or extend existing network by that name; + connect terminal(s) addressed by (compname-termname); this is a vararg function. + + |