*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: lde.10 | Section: 10 | Source: UNIX v10 | File: lde.10.5
LDE(10.5) LDE(10.5) NAME lde - logic design expression language format DESCRIPTION Lde format contains six declaration areas that must appear in the fol- lowing order: .x an optional chip declaration area, .tt an optional line for use by wcheck and/or smoke, .i an input declaration area, .o an output declaration area, .f an optional field declaration area, .e and an expression area. The lde language is much like C. Identifiers may include +-.. Lde does not use ';' to end a statement. Symbols must be declared before used. Declaration is by appearance in the .i or .o areas or appearance on the left of an = in the .f or .e areas. Since lde is an expression language, no flow control (such as if or switch) is allowed. An ex- pression selector is available; expra{[[exprb]:]exprc,[[exprd]:]ex- pre,...} has the value of exprc if expra equals exprb. If there is no exprb and there is a colon then exprc is the default case. If there is no exprb and no colon the the pre-incremented value of the prior value of exprb is used, the prior value of exprb is initialized to -1. The chip declaration area may contain two strings, nameandtype. The .i and .o areas contain identifier [ '=' or ':' numeric_pinnumber ] (The ':' is used by lde -w as a mark for externals.) Some programs use the order of appearance of the identifiers. The field declaration area contains constructions of the form n_id = o_id o_id ... where n_id is a new identifier for a multibit value the least significant bit of which is the first old identifier, o_id. The expression area contains assignments of expressions to identifiers. Identifiers may be modified by a postpended single quote, "'", in which case a value of one has the meaning "don't_care" for the unmodified in- dentifier. Numeric values may be passed from the command line, they appear as $m. The (zero based) mth occurence of -n one the command line substitutes the value n for the symbol $m. EXAMPLES /* * bkrom * classifies the location of the * black king. * 0-6 manhattan distance to center * 7 orig square * 8-11 k-side * 12-15 q-side */ .x bkrom 74S287 .i wkx0 wkx1 wkx2 wky0 wky1 wky2 GND1 GND2 GND3 .o kb0 kb1 kb2 kb3 .f kx = wkx0 wkx1 wkx2 ky = wky0 wky1 wky2 kb = kb0 kb1 kb2 kb3 .e xd = (kx) { 3, 2, 1, 0, 0, 1, 2, 3 } yd = (ky) { 3, 2, 1, 0, 0, 1, 2, 3 } d = xd + yd kb = (ky == 6)? (kx) { 12, 13, d, d, d, d, 8, 9 }: (ky == 7)? (kx) { 14, 15, d, d, 7, d, 10, 11 }: d /* * By convention the output enable term for * PAL's is 100 + the corresponding pin number. * this example includes a .tt line for use by wcheck. */ .x Bpal PAL16L8A .tt iiiiiiiiign222222n2v .i A0 : 1 A1 : 2 A2 : 3 A3 : 4 A4 : 5 A5 : 6 A6 : 7 A7 : 8 A8 : 9 .o SE+ : 12 RNE+ : 13 TD+ : 14 TU+ : 15 SFSE : 16 Y5 : 17 BRDY : 19 e12 = 112 e13 = 113 e14 = 114 e15 = 115 e16 = 116 e17 = 117 e19 = 119 .f cnt = A0 A1 A2 A3 A4 ardy = A5 crdy = A6 flushb- = A8 flusha- = A7 .e tmp = ((cnt == 0) ? ardy ? 1 : 0 : (cnt == 6) ? (crdy || !flushb-) ? 1 : 0 : 1 ) /* shift enable + for major data path, also count enable */ SE+ = !tmp /* random number clock enable - */ RNE+ = !(!flusha- ? 0 : tmp ) /* transfer down - for ireg */ TD+ = !((cnt == 0) && ardy) /* transfer up + (invert outside) for oreg<0:3> */ TU+ = !((cnt == 6) && crdy && flushb-) /* shift flush status enable */ SFSE = !(cnt == 3) /* ack- back to ardy */ Y5 = !!((cnt == 0) && ardy) /* ready to A */ BRDY = !( (cnt == 0)? 1 : 0) e12 = 1 e13 = 1 e14 = 1 e15 = 1 e16 = 1 e17 = 1 e19 = 1 /* * An example using parameter passing and Don't_care */ .x dram PAL16R6 .tt iiiiiinnngin222222nv .i CK:1 OE-:11 dreq:2 stall:3 cerr:4 read:5 qword:6 rasefb=18 casxfb=17 casyfb=16 wefb=15 dsfb0=14 dsfb1=13 .o rase:18 casx:17 casy:16 we:15 ds0:14 ds1:13 .f DS = rase casx casy we ds1 ds0 DSfb = rasefb casxfb casyfb wefb dsfb1 dsfb0 .e X.NCAS = 0100 /* don't care bits */ DC = 0200 /* don't care state */ S.RAS = 040 S.CAS = 020 S.NCAS = 010 S.WE = 004 /* low order 2 bits of state vector */ A = $0 B = $1 C = $2 D = $3 I0 = C /* state assignement */ D10 = S.RAS + A D11 = S.RAS + S.CAS + X.NCAS + B D12 = S.RAS + S.CAS + X.NCAS + A D13 = S.RAS + S.NCAS + B D23 = S.RAS + B D14 = S.RAS + S.NCAS + D D24 = S.RAS + D D15 = S.RAS + S.NCAS + C D25 = B D16 = A D26 = D D31 = S.RAS + S.CAS + X.NCAS + D D32 = S.RAS + S.CAS + X.NCAS + S.WE + A D33 = S.RAS + S.NCAS + S.WE + B D43 = S.RAS + S.CAS + X.NCAS + S.WE + B D34 = S.RAS + S.NCAS + S.WE + D D44 = S.RAS + S.CAS + X.NCAS + S.WE + D D35 = S.RAS + S.NCAS + S.WE + C D36 = S.WE DS- = DSfb { I0: dreq ? D10 : I0, /* idle state */ D10: read ? D11 : D31, D31: stall ? D31 : D32, D32: qword ? (stall ? D32 : D33) : D36, D33: stall ? D43 : D34, D43: stall ? D43 : D34, D34: stall ? D44 : D35, D44: stall ? D44 : D35, D35: D36, D36: I0, D11: stall ? D11 : D12, D12: qword ? D13 : D16, D13: cerr ? D23 : D14, D23: D14, D14: cerr ? D24 : D15, D24: D15, D15: cerr ? D25 : D16, D25: D16, D16: cerr ? D26 : I0, D26: dreq ? D10 : I0, : DC } DS = 077 ^ DS- DS' = (DS- == DC ) ? ~0 : ((DS- & X.NCAS) ? S.NCAS : 0) UCDS LDE(10.5)

Navigation Options