Annotation of researchv10dc/man/man10/cdm.10, revision 1.1.1.1

1.1       root        1: .ds CD \s-2CDL\s0
                      2: .TH CDM 10.1 UCDS
                      3: .SH NAME
                      4: cdm \- expand circuit macros
                      5: .SH SYNOPSIS
                      6: .B cdm
                      7: [
                      8: .I options
                      9: ] [
                     10: .I files
                     11: ]
                     12: .SH DESCRIPTION
                     13: .PP
                     14: .I Cdm
                     15: reads a circuit described in
                     16: \*(CD
                     17: from the specified files.
                     18: Macro calls are expanded and
                     19: pin numbers are substituted for pin names.
                     20: The expanded
                     21: \*(CD
                     22: is printed on the standard output.
                     23: The error output is used for diagnostics.
                     24: Note that names in \*(CD are restricted in length
                     25: so that care should be taken to keep macro names short.
                     26: The options available are:
                     27: .TP 7
                     28: .B -f
                     29: If any pin has a number and a name then
                     30: .I cdm
                     31: will use the number and not consult any library about the name.
                     32: .TP 7
                     33: .BI -l file
                     34: If
                     35: .I file
                     36: contains a
                     37: .BR / ,
                     38: it is read as a library.
                     39: Otherwise,
                     40: .BI /usr/ucds/lib/lib/ file
                     41: is read.
                     42: If no library is specified then a standard library
                     43: is read.
                     44: .TP 7
                     45: .B -p
                     46: List macro calls and definitions on the error output.
                     47: .TP 7
                     48: .B -t
                     49: Use the library (if any) to construct the
                     50: .B \&.t
                     51: lines (type to package translation)
                     52: and the
                     53: .B \&.tt
                     54: lines (see
                     55: .IR wcheck (10.1)).
                     56: With this option, the "chips" file
                     57: is no longer needed.
                     58: .TP 7
                     59: .B \-v
                     60: Print pin names as well as pin numbers in the
                     61: \*(CD
                     62: output.
                     63: .SS "Macro Definitions"
                     64: A macro definition
                     65: corresponds to a file
                     66: containing
                     67: \*(CD.
                     68: The name of the file for a definition
                     69: .I d
                     70: is
                     71: .IB d .w\fR\|.\fP
                     72: Such
                     73: \*(CD
                     74: files may be produced using
                     75: .IR draw (10.1).
                     76: Macros may have signal names as parameters.
                     77: These parameters are identified by a pin name.
                     78: The (set of) formal signal names associated with
                     79: the macro pin is replaced when the macro is called
                     80: with actual signal names, unless the
                     81: formal signal name is global.
                     82: In this latter case the actual and formal signal names
                     83: must be the same.
                     84: .SS "Macro calls"
                     85: A chip of type
                     86: .I d
                     87: is a macro call if the file
                     88: .IB d .w
                     89: exists.
                     90: If no such file exists,
                     91: the chip is assumed
                     92: to be primitive (as in, say,
                     93: .BR 74S181 ),
                     94: and if the type is surrounded by
                     95: .B <>
                     96: brackets, the
                     97: chip is an input output connector.
                     98: If
                     99: .IB d .w
                    100: exists
                    101: then it is the definition of the macro
                    102: .I d\|.
                    103: Signal parameters of the macro
                    104: are drawn in the same way
                    105: as signals are connected to a chip.
                    106: The pin name is the macro parameter name and
                    107: the signal is the actual signal parameter.
                    108: The name of the `chip' is the macro call name.
                    109: A given macro can be called more than once,
                    110: different instances being generated by different macro call names.
                    111: Macros may not be called recursively.
                    112: .SS Names
                    113: Signal, chip and pin names consist of
                    114: letters, digits and the characters
                    115: .BR +-/$ .
                    116: Names of individual signals in a bundle or of chips in a group
                    117: may also be generated:
                    118: .B name[ac-f]
                    119: generates
                    120: .BR "namea namec named namee namef" ;
                    121: .and
                    122: .B name<i:j>
                    123: generates
                    124: .BI name i
                    125: \&...
                    126: .BI name j
                    127: where
                    128: .I i
                    129: and
                    130: .I j
                    131: are represented in decimal as strings, all the same length.
                    132: Thus,
                    133: .B BUS01
                    134: (and not
                    135: .BR BUS1 )
                    136: is in the set BUS<0:15>.
                    137: .LP
                    138: The set of generated names can be separated by an amount
                    139: .B k
                    140: by writing
                    141: .B name<i:k:k>
                    142: and multiple indexing is allowed:
                    143: .BR name<i:j><p:q> .
                    144: Mixing the two generation methods is allowed.
                    145: .BR BEWARE ,
                    146: the generated names are sorted alphabetically.
                    147: .PP
                    148: Signal and chip names have scope local to
                    149: a macro definition unless the name contains a
                    150: .BR / .
                    151: A name containing a
                    152: .B /
                    153: is available throughout a circuit.
                    154: Connector names are also available throughout a circuit.
                    155: Signal and chip names used as formal parameters in
                    156: a macro definition are replaced during macro expansion
                    157: with the sequence of macro call names separated
                    158: by
                    159: .B /
                    160: and ending with the actual parameter signal name.
                    161: .SS "Name Matching"
                    162: The names of pins, signals and chips may also be generated
                    163: from patterns.
                    164: A pin pattern searches all pin names for the chip type.
                    165: Signal and chip patterns
                    166: search all signal or chip names.
                    167: Patterns have the following form.
                    168: .nf
                    169:        \fL*\fR matches any sequence of characters
                    170:        \fL[...]\fR     matches any of the characters enclosed
                    171:        \fL[x-y]\fR     matches any character in the (ASCII) range \fLx\fR to \fLy\fR
                    172:        \fL?\fR matches a single character
                    173: .fi
                    174: .SS "Signal Expansion"
                    175: A signal bundle may be connected
                    176: to one or more chips (or macro)
                    177: without having to write each chip or signal
                    178: explicitly.
                    179: In general each such array is expanded by generating
                    180: the specified set of names.
                    181: These names are then sorted alphabetically.
                    182: The first signal is connected to the first pin of the first chip.
                    183: Subsequent signals are connected to successive pins.
                    184: If no more pins exists then the first pin on the next chip is used.
                    185: The signal bundle must always end on the last pin of a chip
                    186: and there must be no signals unattached at the end.
                    187: .SH SEE ALSO
                    188: .IR cdmglob (10.1)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.