Annotation of researchv10dc/man/man10/lde.10.5, revision 1.1

1.1     ! root        1: .TH LDE 10.5 UCDS
        !             2: .SH NAME
        !             3: lde \- logic design expression language format
        !             4: .SH DESCRIPTION
        !             5: .I Lde
        !             6: format contains six declaration areas that must appear
        !             7: in the following order:
        !             8: .TP
        !             9: .B .x
        !            10: an optional chip declaration area,
        !            11: .TP
        !            12: .B .tt
        !            13: an optional line for use by
        !            14: .I wcheck and/or
        !            15: .IR smoke ,
        !            16: .TP
        !            17: .B .i
        !            18: an input declaration area,
        !            19: .TP
        !            20: .B .o
        !            21: an output declaration area,
        !            22: .TP
        !            23: .B .f
        !            24: an optional field declaration area,
        !            25: .TP
        !            26: .B .e
        !            27: and an expression area.
        !            28: .PP
        !            29: The
        !            30: .I lde
        !            31: language is much like C.
        !            32: Identifiers may include
        !            33: .BR +-. .
        !            34: .I Lde
        !            35: does not
        !            36: use ';' to end a statement.
        !            37: Symbols must be declared before used.
        !            38: Declaration is by appearance in the
        !            39: .B .i
        !            40: or
        !            41: .B .o
        !            42: areas or appearance on the left of an
        !            43: .B =
        !            44: in the
        !            45: .B .f
        !            46: or
        !            47: .B .e
        !            48: areas.
        !            49: Since
        !            50: .I lde
        !            51: is an expression language, no flow control (such as
        !            52: .B if
        !            53: or
        !            54: .BR switch )
        !            55: is allowed.
        !            56: An expression selector is available;
        !            57: .I
        !            58: expra{[[exprb]:]exprc,[[exprd]:]expre,...}
        !            59: has the value of
        !            60: .I exprc
        !            61: if
        !            62: .I expra
        !            63: equals
        !            64: .IR exprb .
        !            65: If there is no
        !            66: .I exprb
        !            67: and there is a colon then
        !            68: .I exprc
        !            69: is the default case.
        !            70: If there is no
        !            71: .I exprb
        !            72: and no colon the the pre-incremented value of the prior
        !            73: value of
        !            74: .I exprb
        !            75: is used, the prior value of
        !            76: .I exprb
        !            77: is initialized to \-1.
        !            78: .PP
        !            79: The chip declaration area may contain two strings,
        !            80: .IR name and type .
        !            81: .PP
        !            82: The
        !            83: .B .i
        !            84: and
        !            85: .B .o
        !            86: areas contain
        !            87: .I
        !            88: identifier
        !            89: [ '=' or ':' 
        !            90: .I
        !            91: numeric_pinnumber
        !            92: ]
        !            93: (The ':' is used by 
        !            94: .I
        !            95: lde \-w
        !            96: as a mark for externals.)
        !            97: Some programs use the order of appearance of the
        !            98: identifiers.
        !            99: .PP
        !           100: The field declaration area contains constructions
        !           101: of the form
        !           102: .I n_id
        !           103: =
        !           104: .I o_id o_id ...
        !           105: where
        !           106: .I n_id
        !           107: is a new identifier for a multibit value the least significant
        !           108: bit of which is the first old identifier,
        !           109: .I o_id.
        !           110: .PP
        !           111: The expression area contains assignments of expressions to
        !           112: identifiers.
        !           113: Identifiers may be modified by a postpended single quote, "'",
        !           114: in which case a value of one has the meaning "don't_care" for the unmodified
        !           115: indentifier.
        !           116: .PP
        !           117: Numeric values may be passed from the command line, they appear as
        !           118: .BR $m .
        !           119: The (zero based)
        !           120: .RI m th
        !           121: occurence of
        !           122: .BI \- n
        !           123: one the command line substitutes the value
        !           124: .I n
        !           125: for the symbol
        !           126: .BR $m .
        !           127: .SH EXAMPLES
        !           128: .IP
        !           129: .ftCW
        !           130: .ps8
        !           131: .vs10
        !           132: .nf
        !           133:  /*
        !           134:   * bkrom
        !           135:   * classifies the location of the
        !           136:   * black king.
        !           137:   * 0-6 manhattan distance to center
        !           138:   * 7 orig square
        !           139:   * 8-11 k-side
        !           140:   * 12-15 q-side
        !           141:   */
        !           142:  .x
        !           143:        bkrom 74S287
        !           144:  .i
        !           145:        wkx0 wkx1 wkx2
        !           146:        wky0 wky1 wky2
        !           147:        GND1 GND2 GND3
        !           148:  .o
        !           149:        kb0 kb1 kb2 kb3
        !           150:  .f
        !           151:        kx = wkx0 wkx1 wkx2
        !           152:        ky = wky0 wky1 wky2
        !           153:        kb = kb0 kb1 kb2 kb3
        !           154:  .e
        !           155:        xd = (kx) { 3, 2, 1, 0, 0, 1, 2, 3 }
        !           156:        yd = (ky) { 3, 2, 1, 0, 0, 1, 2, 3 }
        !           157:        d = xd \+ yd
        !           158:        kb =
        !           159:                (ky == 6)?
        !           160:                        (kx) { 12, 13, d, d, d, d, 8, 9 }:
        !           161:                (ky == 7)?
        !           162:                        (kx) { 14, 15, d, d, 7, d, 10, 11 }:
        !           163:                d
        !           164:  /*
        !           165:   * By convention the output enable term for
        !           166:   * PAL's is 100 + the corresponding pin number.
        !           167:   * this example includes a .tt line for use by wcheck.
        !           168:   */
        !           169:  .x      Bpal    PAL16L8A
        !           170:  .tt   iiiiiiiiign222222n2v
        !           171:  .i
        !           172:        A0 :    1       A1 :    2       A2 :    3       A3 :    4
        !           173:        A4 :    5       A5 :    6       A6 :    7       A7 :    8
        !           174:        A8 :    9
        !           175:  .o
        !           176:        SE+ :   12      RNE+ :  13      TD+ :   14      TU+ :   15
        !           177:        SFSE :  16      Y5 :    17                      BRDY :  19
        !           178:  
        !           179:        e12 = 112       e13 = 113       e14 = 114       e15 = 115
        !           180:        e16 = 116       e17 = 117                       e19 = 119
        !           181:  
        !           182:  .f
        !           183:        cnt = A0 A1 A2 A3 A4
        !           184:        ardy = A5
        !           185:        crdy = A6
        !           186:        flushb- = A8
        !           187:        flusha- = A7
        !           188:  .e
        !           189:        tmp = ((cnt == 0) ? ardy ? 1 : 0 :
        !           190:                (cnt == 6) ? (crdy || !flushb-) ? 1 : 0 : 1 )
        !           191:  
        !           192:         /* shift enable + for major data path, also count enable */
        !           193:        SE+ = !tmp
        !           194:  
        !           195:         /* random number clock enable - */
        !           196:        RNE+ = !(!flusha- ? 0 : tmp )
        !           197:  
        !           198:         /* transfer down - for ireg */
        !           199:        TD+ = !((cnt == 0) && ardy)
        !           200:  
        !           201:         /* transfer up + (invert outside) for oreg<0:3> */
        !           202:        TU+ = !((cnt == 6) && crdy && flushb-)
        !           203:  
        !           204:         /* shift flush status enable */
        !           205:        SFSE = !(cnt == 3)
        !           206:  
        !           207:         /* ack- back to ardy  */
        !           208:        Y5 = !!((cnt == 0) && ardy)
        !           209:  
        !           210:         /* ready to A */
        !           211:        BRDY = !( (cnt == 0)? 1 : 0)
        !           212: 
        !           213:        e12 = 1         e13 = 1         e14 = 1         e15 = 1
        !           214:        e16 = 1         e17 = 1                         e19 = 1
        !           215:  /*
        !           216:   * An example using parameter passing and Don't_care
        !           217:   */
        !           218:  .x    dram    PAL16R6
        !           219:  .tt   iiiiiinnngin222222nv
        !           220:  .i
        !           221:        CK:1 OE-:11
        !           222:        dreq:2 stall:3 cerr:4 read:5 qword:6
        !           223:        rasefb=18 casxfb=17 casyfb=16 wefb=15
        !           224:        dsfb0=14 dsfb1=13
        !           225:  .o
        !           226:        rase:18 casx:17 casy:16 we:15
        !           227:        ds0:14
        !           228:        ds1:13
        !           229:  .f
        !           230:        DS = rase casx casy we ds1 ds0
        !           231:        DSfb = rasefb casxfb casyfb wefb dsfb1 dsfb0
        !           232:  .e
        !           233:        X.NCAS = 0100           /* don't care bits      */
        !           234:  
        !           235:        DC =    0200            /* don't care state     */
        !           236:        S.RAS =  040
        !           237:        S.CAS =  020
        !           238:        S.NCAS = 010
        !           239:        S.WE =   004
        !           240:  
        !           241:        /* low order 2 bits of state vector     */
        !           242:        A = $0  B = $1  C = $2  D = $3
        !           243:        
        !           244:         I0 = C         /* state assignement    */
        !           245:        D10 = S.RAS + A
        !           246:        D11 = S.RAS + S.CAS + X.NCAS + B
        !           247:        D12 = S.RAS + S.CAS + X.NCAS + A
        !           248:        D13 = S.RAS +         S.NCAS + B
        !           249:        D23 = S.RAS + B
        !           250:        D14 = S.RAS +         S.NCAS + D
        !           251:        D24 = S.RAS + D
        !           252:        D15 = S.RAS +         S.NCAS + C
        !           253:        D25 = B
        !           254:        D16 = A
        !           255:        D26 = D
        !           256:        D31 = S.RAS + S.CAS + X.NCAS        + D
        !           257:        D32 = S.RAS + S.CAS + X.NCAS + S.WE + A
        !           258:        D33 = S.RAS +         S.NCAS + S.WE + B
        !           259:        D43 = S.RAS + S.CAS + X.NCAS + S.WE + B
        !           260:        D34 = S.RAS +         S.NCAS + S.WE + D
        !           261:        D44 = S.RAS + S.CAS + X.NCAS + S.WE + D
        !           262:        D35 = S.RAS +         S.NCAS + S.WE + C
        !           263:        D36 = S.WE
        !           264:  
        !           265:        DS- = DSfb {
        !           266:                 I0: dreq ? D10 : I0,           /* idle state   */
        !           267:                D10: read ? D11 : D31,
        !           268:                D31: stall ? D31 : D32,
        !           269:                D32: qword ? (stall ? D32 : D33) : D36,
        !           270:                D33: stall ? D43 : D34,
        !           271:                D43: stall ? D43 : D34,
        !           272:                D34: stall ? D44 : D35,
        !           273:                D44: stall ? D44 : D35,
        !           274:                D35: D36,
        !           275:                D36: I0,
        !           276:                D11: stall ? D11 : D12,
        !           277:                D12: qword ? D13 : D16,
        !           278:                D13: cerr ? D23 : D14,
        !           279:                D23: D14,
        !           280:                D14: cerr ? D24 : D15,
        !           281:                D24: D15,
        !           282:                D15: cerr ? D25 : D16,
        !           283:                D25: D16,
        !           284:                D16: cerr ? D26 : I0,
        !           285:                D26: dreq ? D10 : I0,
        !           286:                : DC
        !           287:                }
        !           288:  
        !           289:        DS = 077 ^ DS-
        !           290:        DS' = (DS- == DC ) ? ~0 :
        !           291:                        ((DS- & X.NCAS) ? S.NCAS : 0)
        !           292: .ft
        !           293: .ps
        !           294: .vs
        !           295: .nf

unix.superglobalmegacorp.com

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