Annotation of researchv10dc/man/man10/lde.10.5, revision 1.1.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.