Annotation of researchv10dc/man/man10/cdm.10, revision 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.