Patent US5521835A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5521835A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for programming an FPLD using a library-based technology mapping algorithm

Assignee: Xilinx Inc
•
Filing: 1994-11-23
•
Granted: 1996-05-28
•
Expires: 2014-11-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for programming a programmable logic device (FPLD) to implement a circuit design using a library of elements made up of general logic functions and an invert function. The general logic functions represent groups of the 2 2 .spsp.n specific logic functions which can be stored in an n-input lookup table addressing 2 n data signals. The specific logic functions of each group differ by one or more inverted input signals and/or an inverted output signal. The method includes the step of technology mapping the circuit design using the library of elements. The general logic functions are assigned a finite value and the invert function is assigned a zero cost (or a very small cost). A subcircuit of the circuit design having n input signals (or less) and one output will always match one logic element from this library.

Inventors

  • 👤 Stephen M. Trimberger

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 21:58
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/34

Claims Analysis

Total Claims: 9
Claim 1
Independent Claim 96 words
A library for use in programing a logic device, said library comprising: a set of general logic functions for generating an output signal x as a function of n input signals, each of said general logic functions representing a group of specific logic functions which differ from each other by inversion of an input or output signal, and each general logic function differing from another general logic function such that one general logic function can not be made the same as another general logic function only by inversion of one or more input or output signals.
Claim 2
Dependent Claim 96 words
A library for use in programing a logic device, said library comprising: a set of general logic functions for generating an output signal x as a function of n input signals, each of said general logic functions representing a group of specific logic functions which differ from each other by inversion of an input or output signal, and each general logic function differing from another general logic function such that one general logic function can not be made the same as another general logic function only by inversion of one or more input or output signals.
Claim 3
Dependent Claim 32 words
A library as in claim 1 in which each of said general logic functions represents specific logic functions which further differ from each other by swapping of one or more input signals.
Claim 4
Dependent Claim 2007 words
A library as in claim 1 wherein n equals four and said library consists of the general logic functions: TABLE 4 ______________________________________ x0 = 0; x1 = a*b*c*d; x2 = b*c*d; x3 = a*!b*c*d + !a*b*c*d; x4 = b*c*d + a*c*d; x5 = c*d; x6 = a*b*!c*d + a*!b*c*d + !a*b*c*d; x7 = b*c*d + a*c*d + a*b*d; x8 = a*b*!c*d + !a*!b*c*d; x9 = !a*!b*c*d + a*b*d; x10 = !a*c*d + a*b*d; x11 = a*b*!c*d + !b*c*d + !a*c*d; x12 = a*b*d + c*d; x13 = b*!c*d + !b*c*d; X14 = b*!c*d + !b*c*d + a*c*d; X15 = c*d + b*d; x16 = a*!b*!c*d + !a*b*!c*d + !a*!b*c*d + a*b*c*d; x17 = a*!b*!c*d + b*c*d + !a*c*d + !a*b*d; x18 = a*!b*d + !a*b*d + c*d; x19 = a*!c*d + !b*c*d + !a*b*d; x20 = c*d + b*d + a*d; x21 = d; x22 = a*b*c*!d + a*b*!c*d + a*!b*c*d + !a*b*c*d; x23 = b*c*d + a*c*d + a*b*d + a*b*c; x24 = a*b*c*!d + a*b*!c*d + !a*!b*c*d; x25 = !a*!b*c*d + a*b*d + a*b*c; x26 = a*b*c*!d + a*b*!c*d + !a*c*d; x27 = !a*c*d + a*b*d + a*b*c; x28 = a*b*c*!d + a*b*!c*d + !b*c*d + !a*c*d; x29 = a*b*d + a*b*c + c*d; x30 = a*b*c*!d + !a*b*!c*d + !b*c*d; x31 = !a*b*!c*d + !b*c*d + a*b*c; x32 = !a*b*d + a*b*c + c*d; x33 = a*b*c*!d + b*!c*d + !b*c*d; x34 = b*!c*d + !b*c*d + a*b*c; x35 = a*b*c*!d + b*!c*d + !b*c*d + !a*c*d; x36 = a*b*c + c*d + b*d; x37 = a*b*c*!d + a*!b*!c*d + !a*b*!c*d + !a*!b*c*d; x38 = a*!b*!c*d + !a*b*!c*d + !a*!b*c*d + a*b*c; x39 = a*b*c*!d + a*!b*!c*d + !a*c*d + !a*b*d; x40 = a*!b*!c*d + !a*c*d + !a*b*d + a*b*c; x41 = a*b*c*!d + !b*c*d + a*!b*d + !a*b*d; x42 = a*!b*d + !a*b*d + a*b*c + c*d; x43 = a*b*c*!d + a*!c*d + !b*c*d + !a*b*d; x44 = a*b*c + c*d + b*d + a*d; x45 = a*b*c*!d + !a*!b*!c*d; x46 = !a*!b*!c*d + a;b*c; x47 = a*b*c*!d + !a*!b*!c*d + !a*b*c*d; x48 = !a*!b*!c*d + b*c*d + a*b*c; x49 = a*b*c*!d + !a*! b*!c*d + a*!b*c*d + !a*b*c*d; x50 = !a*!b*!c*d + b*c*d + a*c*d + a*b*c; x51 = !a*!b*d + a*b*c; x52 = b*c*d + !a*!b*d + a*b*c; x53 = !a*!b*d + a;b*c + c*d; x54 = a*b*c*!d + !a*!b*!c*d + a*b*!c*d + a*!b*c*d + !a*b*c*d; x55 = !a*!b*!c*d + b*c*d + a*c*d + a*b*d + a*b*c; x56 = a*b*c*!d + a*b*!c*d + !a*!b*d; x57 = !a*!b*d + a*b*d + a*b*c; x58 = a*b*c*!d + a*b*!c*d + !a*c*d + !a*!b*d; x59 = b*c*d + !a*!b*d + a*b*d + a*b*c; x60 = a*b*c*!d + a*b*!c*d + !b*c*d + !a*c*d + !a*!b*d; x61 = !a*!b*d + a*b*d + a*b*c + c*d; x62 = a*b!c*!d + !a*!c*d + !a*!b*d; x63 = !a*!c*d + !a*!b*d + a*b*c; x64 = a*b*!c*!d + !a*d; x65 = a*b*c + !a*d; x66 = a*b*c*!d + !a*!c*d + !b*c*d; x67 = !a*!c*d + !b*c*d + a*b*c; x68 = a*b*c*!d + !b*c*d + !a*d; x69 = a*b*c + c*d + !a*d; x70 = a*b*c*!d + b*!c*d + !a*!c*d + !b*c*d; x71 = b*!c*d + !a*!c*d + !b*c*d + a*b*c; x72 = a*b*c*!d + b*!c*d + !b*c*d + !a*d; x73 = a*b*c + c*d + b*d + !a*d; x74 = a*b*c*!d + !b*!c*d + !a*!c*d + !a*!b*d; x75 = !b*!c*d + !a*!c*d + !a*!b*d + a*b*c; x76 = a*b*c*!d + !b*!c*d + !a*d; x77 = !b*!c*d + a*b*c + !a*d; x78 = a*b*c*!d + !b*d + !a*d; x79 = a*b*c + !b*d + !a*d; x80 = a*b*c*!d + !c*d + !b*d + !a*d; x81 = b*c*!d + b*!c*d + !b*c*d; x82 = b*c*!d + b*!c*d + !b*c*d + a*c*d; x83 = c*d + b*d + b*c; x84 = b*c*!d + a*!c*d + a*!b*d + !a*b*c; x85 = a*d + b*c; x86 = !a*!b*c*d + b*c*!d + a*!c*d; x87 = !a*!b*c*d + b*c*!d + a*!c*d + a*b*d; x88 = b*c*!d + a*!c*d + !a*c*d; x89 = a*!c*d + !a*c*d + b*c; x90 = b*c*!d + a*!c*d + !b*c*d + !a*c*d; x91 = c*d + a*d + b*c; x92 = a*!b*!c*d + !a*b*!c*d + !a*!b*c*d + b*c*!d; x93 = a*!b*!c*d + !a*b*!c*d + !a*!b*c*d + b*c*!d + a*b*c; x94 = a*!b*!c*d + b*c*!d + !a*c*d + !a*b*d; x95 = a*!b*!c*d + !a*c*d + !a*b*d + b*c; x96 = !a*b*!c*d + b*c*!d + !b*c*d + a*!b*d; x97 = !a*b*!c*d + b*c*!d + !b*c*d + a*c*d + a*!b*d; x98 = b*c*!d + !b*c*d + a*!b*d + !a*b*d; x99 = a*!b*d + !a*b*d + c*d + b*c; x100 = b*c*!d + b*!c*d + a*!c*d + !b*c*d; x101 = b*c*!d + b*!c*d + !b*c*d + a*d; x102 = b*c*!d + a*!c*d + !b*c*d + !a*b*d; x103 = b*c*!d + !b*!c*d; x104 = b*c*!d + !b*!c*d + a*b*c; x105 = !b*!c*d + b*c; x106 = b*c*!d + !b*!c*d + a*c*d; x107 = b*c*!d + !b*!c*d + a*!b*d + !a*b*c; x108 = !b*!c*d + a*c*d + b*c; x109 = !b*d + b*c; x110 = b*c*!d + !b*!c*d + a*!c*d + a*!b*d; x111 = b*c*!d + !b*!c*d + a*d; x112 = b*c*!d + !b*!c*d + a*!c*d + a*!b*d + !a*b*c; x113 = !b*!c*d + a*d + b*c; x114 = b*c*!d + a*!c*d + !a*!b*d; x115 = b*c*!d + !b*!c*d + !a*!b*d + a*b*d; x116 = !b*! c*d + a*!c*d + !a*c*d + b*c; x117 = b*c*!d + a*!c*d + !b*d; x118 = b*c*!d + !b*d + a*d; x119 = b*c*!d + a*!c*d + !a*c*d + !b*d; x120 = b*c*!d + !c*d + !b*d; X121 = a*!b*c*!d + !a*b*c*!d + a*!b*!c*d + !a*b*!c*d; x122 = a*!b*c*!d + !a*b*c*!d + a*!b*!c*d + !a*b*!c*d + a*b*c*d; x123 = a*!b*c*!d + !a*b*c*!d + a*!b*!c*d + !a*b*!c*d + !a*b*c*d; x124 = a*!b*c*!d + a*!b*!c*d + b*c*d + !a*b*d + !a*b*c; x125 = a*!b*d + !a*b*d + a*!b*c + !a*b*c; x126 = b*c*d + a*!b*d + !a*b*d + a*!b*c + !a*b*c; x127 = a*! b*c*!d + !a*b*c*!d + a*!b*!c*d + !a*b*!c*d + !a*!b*c*d + a*b*c*d; x128 = a*!b*c*!d + a*!b*!c*d + b*c*d + !a*c*d + !a*b*d + !a*b*c; x129 = a*!b*d + !a*b*d + a*!b*c + !a*b*c + c*d; x130 = a*!b*c*!d + b*!c*d + a*!c*d + !a*b*c; x131 = a*!b*c*!d + a*!c*d + !a*b*c + b*d; x132 = b*!c*d + a*!c*d + a*!b*c + !a*b*c; x133 = a*!b*c*!d + !a*b*c*!d + !a*!b*c*d + b*!c*d + a*!c*d; x134 = a*!b*c*!d + !a*b*c*!d + !a*!b*c*d + b*!c*d + a*!c*d + a*b*d; x135 = a*!b*c*!d + b*!c*d + a*!c*d + !a*c*d + !a*b*c; x136 = a*! b*c*!d + a*!c*d + !a*c*d + !a*b*c + b*d; x137 = b*!c*d + a*!c*d + !b*c*d + a*!b*c + !a*b*c; x138 = a*!b*c*!d + !a*b*c*!d + !a*!b*!c*d + a*b*!c*d; x139 = a*!b*c*!d + !a*b*c*!d + !a*!b*!c*d + a*b*d; x140 = a*!b*c*!d + !a*!b*!c*d + a*b*d + !a*b*c; x141 = !a*!b*!c*d + a*b*!c*d + a*!b*c + !a*b*c; x142 = !a*!b*!c*d + a*b*d + a*!b*c + !a*b*c; x143 = !a*!b*d + a*b*d + a*!b*c + !a*b*c; x144 = a*!b*c*!d + !a*b*c*!d + b*!c*d + !a*!c*d; x145 = a*!b*c*!d + !a*b*c*!d + !a*!c*d + a*b*d; x146 = a*!b*c*!d + b*! c*d + !a*!c*d + !a*b*c; x147 = a*!b*c*!d + !a*!c*d + !a*b*c + b*d; x148 = !a*b*c*!d + b*!c*d + !a*!c*d + a*!b*c; x149 = !a*b*c*!d + !a*!c*d + a*b*d + a*!b*c; x150 = b*!c*d + !a*!c*d + a*!b*c + !a*b*c; x151 = !a*!c*d + a*!b*c + !a*b*c + b*d; x152 = a*!b*c*!d + !a*b*c*!d + b*!c*d + !a*!b*d + a*b*d; x153 = !a*b*c*!d + !a*!c*d + !b*c*d + a*b*d + a*!b*c; x154 = a*!b*c*!d + !a*b*c*!d + !c*d; x155 = a*!b*c*!d + !a*b*c*!d + a*b*d + !c*d; x156 = a*!b*c*!d + !a*b*c + !c*d; x157 = a*!b*c + ! a*b*c + !c*d; x158 = a*!b*c*!d + !a*b*c*!d + !a*!b*d + a*b*d + !c*d; x159 = a*c*!d + b*!c*d + a*!b*d + !a*b*c; x160 = !a*!b*c*d + b*c*!d + a*c*!d + b*!c*d + a*!c*d; x161 = !a*!b*c*d + b*c*!d + a*c*!d + b*!c*d + a*!c*d + a*b*d; x162 = a*c*!d + b*!c*d + a*!c*d + !a*c*d + !a*b*c; x163 = a*c*!d + b*!c*d + a*!c*d + !b*c*d + !a*b*c; x164 = b*c*!d + a*c*!d + b*!c*d + !a*!c*d; x165 = b*c*!d + a*c*!d + !a*!c*d + a*b*d; x166 = b*c*!d + b*!c*d + !a*!c*d + a*!b*c; x167 = b*c*!d + b*!c*d + !a*! c*d + a*c; x168 = a*c*!d + b*!c*d + !a*!c*d + a*!b*c + !a*b*c; x169 = b*c*!d + a*c*!d + b*!c*d + !a*!c*d + !b*c*d; x170 = b*c*!d + a*c*!d + !b!c*d + !a*!c*d; x171 = b*c*!d + a*c*!d + !b*!c*d + !a*!c*d + a*b*c; x172 = a*c*!d + !b*!c*d + !a*!c*d + !a*b*c; x173 = a*c*!d + !b*!c*d + !a*!c*d + b*c; x174 = a*c*!d + !a*!c*d + a*!b*d + !a*b*c; x175 = b*c*!d + a*c*!d + !b*!c*d + !a*!c*d + !a*!b*d + a*b*c; x176 = b*c*!d + a*c*!d + !c*d; x177 = b*c*!d + a*c*!d + a*b*d + !c*d; x178 = a*c*!d + !a*b*c + !c*d; x179 = b*c*!d + a*c*!d + !a*!b*d + !c*d; x180 = c*!d + !c*d; x181 = a*b*!c*!d + a*!b*c*!d + !a*b*c*!d + a*!b*!c*d + !a*b*!c*d + !a*!b*c*d; x182 = a*b*!c*!d + a*!b*c*!d + !a*b*c*!d + a*!b*!c*d + !a*b*!c*d + !a*!b*c*d + a*b*c*d; x183 = a*b*!c*!d + a*!b*c*!d + a*!b*!c*d + !a*c*d + !a*b*d + !a*b*c; x184 = a*b*!c*!d +a*!b*c*!d + a*!b*!c*d + b*c*d + !a*c*d + !a*b*d + !a*b*c; x185 = a*b*!c*!d + !b*c*d + a*!b*d + !a*b*d + a*!b*c + !a*b*c; x186 = b*!c*d + a*!c*d + !b*c*d + a*b*!c + a*!b*c + !a*b*c; x187 = a*b*!c*!d + a*!b*c*!d + !a*b*c*!d + !a*!b*!c*d + a*b*c*d; x188 = a*b*!c*!d + a*!b*c*!d + !a*!b*!c*d + b*c*d + !a*b*c; x189 = a*b*!c*!d + !a*!b*!c*d + a*!b*c + !a*b*c; x190 = a*b*!c*!d + !a*!b*!c*d + b*c*d + a*!b*c + !a*b*c; x191 = a*b*!c*!d + a*!b*c*!d + !a*b*c*!d + a*b*c*d + !a*!b*d; x192 = a*b*!c*!d + a*!b*c*!d + b*c*d + !a*!b*d + a*b*c; x193 = a*b*!c*!d + !a*!b*d + a*!b*c + !a*b*c; x194 = !a*!b*!c*d + a*b*!c + a*!b*c + !a*b*c; x195 = !a*!b*!c*d + b*c*d + a*b*!c + a*!b*c + !a*b*c; x196 = a*!b*c*!d + !a*b*c*!d + !a*!b*d + a*b*!c; x197 = a*!b*c*!d + !a*b*c*!d + !a*!b*d + a*b*d + a*b*!c; x198 = a*!b*c*!d + !a*!b*d + a*b*!c + !a*b*c; x199 = a*!b*c*!d + b*c!d + !a*!b*d + a*b*!c + !a*b*c; x200 = !a*!b*d + a*b*!c + a*!b*c + !a*b*c; x201 = a*b*!c*!d + a*!b*c*!d + !a*b*c*!d + a*b*c*d + !a*!c*d + !a*!b*d; x202 = a*b*!c*!d + !a*b*c*!d + !a*!c*d + !b*c*d + a*!b*c; x203 = a*b*!c*!d + !a*b*c*!d + !a*!c*d + !b*c*d + a*c*d + a*!b*c; x204 = !a*b*c*! d + !a*!c*d + !b*c*d + a*b*!c + a*!b*c; x205 = a*b*!c*!d + a*!b*c*!d + !a*b*c*!d + a*b*c*d + !b*!c*d + !a*!c*d + !a*!b*d; x206 = a*b*!d + b*!c*d + a*!c*d + !b*c*d + a*!b*c + !a*b*c; x207 = a*b*!d + !a*!b*d + a*!b*c + !a*b*c; x208 = !a*!b*!c*d + b*c*!d + a*b*!c + a*!b*c + !a*b*c; x209 = b*c*!d + a*c*!d + !a*!b*d + a*b*!c; x210 = a*c*!d + !a*!b*d + a*b*!c + !a*b*c; x211 = b*c*!d + a*b*!d + !a*!c*d + !b*c*d + a*!b*c; x212 = b*c*!d + a*c*!d + a*b*!d + !b*!c*d + !a*!c*d + !a*!b*d; x213 = a*b*!c*!d + !a*!b*c*!d + !b*!c*d + a*c*d + a*b*d; x214 = !a*!b*c*!d + a*b*!d + !b*!c*d + !a*!c*d + a*b*c; x215 = !a*!b*c*!d + a*b*!d + !b*!c*d + b*c*d + !a*b*d; x216 = !a*!b*c*!d + a*b*!d + !b*!c*d + a*!b*d + !a*b*d; x217 = !a*c*!d + a*b*!d + a*!c*d + !a*!b*d; x218 = !a*c*!d + a*b*!d + !a*!c*d + a*!b*d; x219 = a*b*!c*!d + a*b*c*d + !b*c*!d + !a*c*!d + !b*!c*d + !a*!c*d; x220 = b*!c*!d + !b*c*!d + !b*!c*d + b*c*d; x221 = a*!b*!c*!d + !a*b*!c*!d + ! a*!b*c*!d + a*b*c*!d + !a*!b*!c*d + a*b*!c*d + a*!b*c*d + !a*b*c*d; ______________________________________ wherein "a", "b", "c" and "d" are said four input signals, "!" denotes an invert operation, "+"denotes an OR operation, and "*" denotes an AND operation.
Claim 5
Dependent Claim 19 words
A library according to claim 1 wherein said general logic functions represent all 2 2 .spsp.n specific logic functions.
Claim 6
Dependent Claim 22 words
A library according to claim 1 wherein said general logic functions represent a subset of said 2 2 .spsp.n specific logic functions.
Claim 7
Dependent Claim 19 words
A library according to claim 1 wherein said general logic functions include logic functions of more than n inputs.
Claim 8
Dependent Claim 94 words
A library for use in programming a logic device, said library comprising: a set of general logic functions for generating an output signal x as a function of n input signals, each of said general logic functions representing a group of specific logic functions which differ from each other by inversion of an input signal, and each general logic function differing from another general logic function such that one general .logic function can not be made the same as another general logic function only by inversion of one or more input or output signals.
Claim 9
Dependent Claim 94 words
A library for use in programming a logic device, said library comprising: a set of general logic functions for generating an output signal x as a function of n input signals, each of said general logic functions representing a group of specific logic functions which differ from each other by inversion of an input signal, and each general logic function differing from another general logic function such that one general .logic function can not be made the same as another general logic function only by inversion of one or more input or output signals.

References Cited (Backward Citations)

US4377849A Cited
US4931671A Cited
US5075576A Cited
US5222029A Cited
US5226148A Cited
US5210870A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-05-28 1999-11-27 2000-05-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-05-28 2003-11-27 2004-05-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-05-28 2007-11-27 2008-05-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag