Tim Edwards | 7cbaaba | 2020-08-05 12:19:18 -0400 | [diff] [blame] | 1 | #----------------------------------------------------------------------- |
| 2 | # List of standard gate symbols with mapping to liberty file fields |
| 3 | # |
| 4 | # Y, X refer to logic output pins |
| 5 | # C, S, ... refer specifically to adder carry and sum output pins |
| 6 | # Q, QB refer specifically to flip-flop or latch output pins |
| 7 | # IQ, IQB refers to function entries for flops. "I" is literal. |
| 8 | # A, B, C, ... refer to input pins |
| 9 | # D, R, S, ... refer specifically to flip-flop input pins |
| 10 | # SD refers to scan data input pin for flip-flops |
| 11 | # CI refers specifically to full adder carry-in input |
| 12 | # Z refers to high-impedance state |
| 13 | # & means AND |
| 14 | # | means OR |
| 15 | # ! means NOT |
| 16 | # ( ) groups |
| 17 | # |
| 18 | # Symbol Liberty Liberty |
| 19 | # primitive file field |
| 20 | # name field value ... |
| 21 | #----------------------------------------------------------------------- |
| 22 | AND2 function Y=A&B |
| 23 | AND3 function Y=A&B&C |
| 24 | AND4 function Y=A&B&C&D |
| 25 | AND5 function Y=A&B&C&D&E |
| 26 | AND8 function Y=A&B&C&D&E&F&G&H |
| 27 | |
| 28 | AND2I function Y=!A&B |
| 29 | |
| 30 | AO21 function Y=(A&B)|C |
| 31 | AO22 function Y=(A&B)|(C&D) |
| 32 | |
| 33 | AOI21 function Y=!((A&B)|C) |
| 34 | AOI22 function Y=!((A&B)|(C&D)) |
| 35 | |
| 36 | NAND2 function Y=!(A&B) |
| 37 | NAND3 function Y=!(A&B&C) |
| 38 | NAND4 function Y=!(A&B&C&D) |
| 39 | NAND5 function Y=!(A&B&C&D&E) |
| 40 | NAND8 function Y=!(A&B&C&D&E&F&G&H) |
| 41 | |
| 42 | NAND2I function Y=!(!A&B) |
| 43 | |
| 44 | OR2 function Y=A|B |
| 45 | OR3 function Y=A|B|C |
| 46 | OR4 function Y=A|B|C|D |
| 47 | OR5 function Y=A|B|C|D|E |
| 48 | OR8 function Y=A|B|C|D|E|F|G|H |
| 49 | |
| 50 | OR2I function Y=!A|B |
| 51 | |
| 52 | OA21 function Y=(A|B)&C |
| 53 | OA22 function Y=(A|B)&(C|D) |
| 54 | |
| 55 | OAI21 function Y=!((A|B)&C) |
| 56 | OAI22 function Y=!((A|B)&(C|D)) |
| 57 | |
| 58 | NOR2 function Y=!(A|B) |
| 59 | NOR3 function Y=!(A|B|C) |
| 60 | NOR4 function Y=!(A|B|C|D) |
| 61 | NOR5 function Y=!(A|B|C|D|E) |
| 62 | NOR8 function Y=!(A|B|C|D|E|F|G|H) |
| 63 | |
| 64 | NOR2I function Y=!(!A|B) |
| 65 | |
| 66 | XOR2 function Y=(A&!B)|(!A&B) |
| 67 | |
| 68 | XNOR2 function Y=(A&B)|(!A&!B) |
| 69 | |
| 70 | INV function Y=!A |
| 71 | |
| 72 | BUF function Y=A |
| 73 | |
| 74 | TBUF function Y=A three_state E |
| 75 | |
| 76 | TBUFI function Y=A three_state !E |
| 77 | |
| 78 | MUX2 function Y=(A&C)|(B&!C) |
| 79 | |
| 80 | MUX2I function Y=!((A&!C)|(B&C)) |
| 81 | |
| 82 | MUX4 function Y=(A&!E&!F)|(B&!E&F)|(C&E&!F)|(D&E&F) |
| 83 | |
| 84 | MUX4I function Y=!((A&!E&!F)|(B&!E&F)|(C&E&!F)|(D&E&F)) |
| 85 | |
| 86 | HA function C=A&B function S=(A&!B)|(!A&B) |
| 87 | FA function C=(A&B)|(A&CI)|(B&CI) function S=(A&B&CI)|(!A&B&!CI)|(!A&!B&CI)|(A&B&CI) |
| 88 | |
| 89 | LATCH function Q=IQ enable E data_in D |
| 90 | LATCHI function Q=IQ enable !E data_in D |
| 91 | LATCHR function Q=IQ enable E data_in D clear !R |
| 92 | LATCHIR function Q=IQ enable !E data_in D clear !R |
| 93 | LATCHSR function Q=IQ enable E data_in D preset !S clear !R |
| 94 | LATCHISR function Q=IQ enable E data_in D preset !S clear !R |
| 95 | |
| 96 | LATCHQ function Q=IQ QB=IQB enable E data_in D |
| 97 | LATCHIQ function Q=IQ QB=IQB enable !E data_in D |
| 98 | LATCHRQ function Q=IQ QB=IQB enable E data_in D clear !R |
| 99 | LATCHIRQ function Q=IQ QB=IQB enable !E data_in D clear !R |
| 100 | LATCHSRQ function Q=IQ QB=IQB enable E data_in D preset !S clear !R |
Tim Edwards | 7ac1f03 | 2020-08-12 17:40:36 -0400 | [diff] [blame] | 101 | LATCHISRQ function Q=IQ QB=IQB enable !E data_in D preset !S clear !R |
Tim Edwards | 7cbaaba | 2020-08-05 12:19:18 -0400 | [diff] [blame] | 102 | |
| 103 | DFF function Q=IQ clocked_on C next_state D |
| 104 | DFFQ function Q=IQ function QB=IQB clocked_on C next_state D |
| 105 | DFFS function Q=IQ clocked_on C next_state D preset !S |
| 106 | DFFR function Q=IQ clocked_on C next_state D clear !R |
| 107 | DFFSR function Q=IQ clocked_on C next_state D preset !S clear !R |
| 108 | DFFSQ function Q=IQ function QB=IQB clocked_on C next_state D preset !S |
| 109 | DFFRQ function Q=IQ function QB=IQB clocked_on C next_state D clear !R |
| 110 | DFFSRQ function Q=IQ function QB=IQB clocked_on C next_state D clear !R preset !S |
| 111 | DFFI function Q=IQ clocked_on !C next_state D |
| 112 | DFFIQ function Q=IQ function QB=IQB clocked_on !C next_state D |
| 113 | DFFIS function Q=IQ clocked_on !C next_state D preset !S |
| 114 | DFFIR function Q=IQ clocked_on !C next_state D clear !R |
| 115 | DFFISR function Q=IQ clocked_on !C next_state D preset !S clear !R |
| 116 | DFFISQ function Q=IQ function QB=IQB clocked_on !C next_state D preset !S |
| 117 | DFFIRQ function Q=IQ function QB=IQB clocked_on !C next_state D clear !R |
| 118 | DFFISRQ function Q=IQ function QB=IQB clocked_on !C next_state D clear !R preset !S |
| 119 | |
| 120 | EDFF function Q=IQ clocked_on C next_state (D&E)|(IQ&!E) |
| 121 | EDFFQ function Q=IQ QB=IQB clocked_on C next_state (D&E)|(IQ&!E) |
| 122 | |
| 123 | SDFF function Q=IQ clocked_on C next_state (D&!E)|(SD&E) |
| 124 | SDFFQ function Q=IQ QB=IQB clocked_on C next_state (D&!E)|(SD&E) |