एक दो इनपुट LUT (लुकअप टेबल) को इस तरह उदारतापूर्वक प्रस्तुत किया जा सकता है:
LUT में SRAM का एक ब्लॉक होता है जो LUT के इनपुट द्वारा अनुक्रमित होता है। LUT का आउटपुट जो कुछ भी है वह SRAM में अनुक्रमित स्थान पर है।
हालाँकि हमें लगता है कि RAM आमतौर पर 8, 16, 32 या 64-बिट शब्दों में व्यवस्थित किया जा रहा है, FPGA के SRAM में 1 बिट गहराई है। उदाहरण के लिए एक 3 इनपुट LUT एक 8x1 SRAM (2 8 = 8) का उपयोग करता है
क्योंकि RAM अस्थिर है, चिप को चालू करने पर सामग्री को इनिशियलाइज़ करना पड़ता है। यह SRAM में कॉन्फ़िगरेशन मेमोरी की सामग्री को स्थानांतरित करके किया जाता है।
LUT का आउटपुट वह है जो आप चाहते हैं। दो-इनपुट और गेट के लिए,
Address In ([1:0]) Output
0 0 0
0 1 0
1 0 0
1 1 1
आपके दूसरे उदाहरण के लिए, केवल सत्य तालिका बदलती है:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 0
1 1 0
और अंत में, एक एक्स बी:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 1
1 1 0
इसलिए यह प्रत्येक मामले में समान LUT नहीं है, क्योंकि LUT आउटपुट को परिभाषित करता है। जाहिर है, एक LUT करने के लिए इनपुट की संख्या दो से अधिक हो सकती है।
LUT वास्तव में SRAM बिट्स और MUX के संयोजन का उपयोग करके कार्यान्वित किया जाता है:
यहाँ शीर्ष 0 1 0 0 0 1 1 1 के बिट्स इस LUT के लिए सत्य तालिका के आउटपुट को दर्शाता है । बाईं ओर MUX के तीन इनपुट, b, और c उपयुक्त आउटपुट मान का चयन करते हैं।