Gate Counting Methodology for APEX 20K Devices (R) September 1999, ver. 1.01 Introduction Application Note 110 Altera's APEXTM 20K device family offers an innovative combination of look-up table (LUT) logic, product-term logic, and embedded memory. Ranging from 162,000 to 2,500,000 maximum system gates, the revolutionary APEX 20K architecture offers System-on-a-ProgrammableChipTM integration, allowing designers to combine functions best suited for LUT, product-term logic, and memory into one device. The LUT architecture can be used to implement register-intensive data path and arithmetic functions. Product-term logic can be used for high fan-in combinatorial functions at high speeds. APEX 20K programmable logic devices (PLDs) are the first devices to combine these architectures to provide the performance, flexibility, and efficiency that designers require. This application note describes the gate counting method used for the APEX 20K device family and defines gate counting terminology. It shows how logic array and embedded array gates are calculated. APEX 20K gates are compared to gate array gates, using LSI Logic's LCA300K family of standard "sea-of-gates" gate arrays as a reference. Gate Count Specifications Tables 1 and 2 show the features, including gate count specifications, for APEX 20K devices. Table 1. APEX 20K Device Features Feature Note (1) EP20K60E EP20K100E EP20K100 EP20K160E EP20K200E EP20K200 EP20K300E Typical Gates 60,000 100,000 160,000 200,000 300,000 Maximum System Gates 162,000 263,000 404,000 526,000 728,000 2,560 4,160 6,400 8,320 11,520 Embedded System Blocks 16 26 40 52 72 Maximum RAM Bits 32,768 53,248 81,920 106,496 147,456 Maximum Macrocells 256 416 640 832 1,152 Maximum I/O Pins 204 252 316 382 408 Logic Elements (LEs) Altera Corporation A-AN-110-01.01 1 AN 110: Gate Counting Methodology for APEX 20K Devices Table 2. APEX 20K Device Features Feature Typical Gates Maximum System Gates Logic Elements Embedded System Blocks Maximum RAM Bits Maximum Macrocells Maximum I/O Pins Note (1) EP20K400E EP20K400 EP20K600E EP20K1000E EP20K1500E 400,000 600,000 1,000,000 1,500,000 1,052,000 1,537,000 1,770,000 2,500,000 16,640 24,320 38,400 54,720 104 152 160 228 212,992 311,296 327,680 466,944 1,664 2,432 2,560 3,648 502 624 716 858 Note to tables: (1) For designs that require IEEE Std. 1149.1 Joint Test Action Group (JTAG) boundary-scan testing, the built-in JTAG circuitry contributes up to 52,130 additional gates. Table 3 explains the terminology used to describe the APEX 20K device features. Table 3. APEX 20K Device Terminology (Part 1 of 2) Designation Description Logic Elements Logic elements are the basic logic building blocks that make up the logic array in the APEX 20K architecture. Each LE consists of a four-input LUT, a programmable flipflop, and dedicated signal paths for carry and cascade functions. Logic Array The logic array performs the same function as the sea-of-gates in a gate array; it is used to implement general logic such as counters, adders, state machines, and multiplexers. Logic Array Gates Logic array gates are the total number of usable gates available in the logic array of a device. Logic Array Blocks (LABs) The logic array consists of LABs. Each LAB contains 10 LEs and a local interconnect. The 10 LEs can be used to create medium-sized blocks of logic--such as 10-bit counters, address decoders, or state machines--or combined across LABs to create larger logic blocks. Embedded System Blocks Embedded system blocks are used to create RAM, ROM, first-in first-out (FIFO), (ESBs) dual-port RAM, and content-addressable memory (CAM) functions. ESBs can also implement complex logic functions such as digital signal processing (DSP), microcontroller, wide data-path manipulation, and data transformation functions. ESBs can implement logic as either LUTs or product terms. ESB Array Gates ESB array gates are the total number of gates available in the embedded array. Product Term A product term is a wide AND gate. These AND gates are combined into macrocells when the ESB implements product-term logic. 2 Altera Corporation AN 110: Gate Counting Methodology for APEX 20K Devices Table 3. APEX 20K Device Terminology (Part 2 of 2) Designation Description Maximum Macrocells Maximum macrocells is the number of available macrocells when all ESBs are used entirely for product-term logic. Maximum RAM Bits Maximum RAM bits is the number of bits available when all ESBs are used entirely for memory functions. Typical Gate Count Typical gate count is the capacity metric indicating the gate array size that can be implemented in an APEX 20K device. Typical gate count assumes that a design uses the logic array and the embedded array. It also assumes that portions of the embedded array are used for both memory and logic functions. Maximum System Gate Count Maximum system gate count is the number of gates when 100% of the ESBs are used as memory. This measurement approximates the gate counting method used by field-programmable gate array (FPGA) vendors when determining "system gates". Calculating Logic Array Gates Before calculating the total number of logic array gates, you must first determine the LE gate count. Two ways to calculate logic array gates are to compare LEs with standard gate arrays and to use empirical data for calculating the logic array gates. For example, the APEX 20K LE gate range can be determined by using the LSI LCA300K Data Book and comparing the implementation of various functions in LEs versus the LCA300K family of standard gate arrays. To find the gate range, calculate the number of gates for a simple and a complex function. A simple function determines the lower bound, and a complex function determines the higher bound of the range. One LUT and one register are used to implement each function. See Table 4. Table 4. Calculating LE Gates Using LCA300K Functions Implementation LSI APEX 20K Register LSI Total Gates Gates Two-input AND gate 1 Complex LCA300K Four-input XOR function gate 13 Simple LCA300K function Altera Corporation APEX 20K LUT D-type flipflop 7 8 D-type flipflop with clear, preset, and clock enable signals 8 21 3 AN 110: Gate Counting Methodology for APEX 20K Devices The LE gate range is the total number of LSI gates used for simple functions and the total number of LSI gates used for complex functions. In this case, eight gates are used for simple functions and 21 gates are used for complex functions. The APEX 20K LE gate equivalents are also calculated with empirical data. Altera compiled over 100 designs targeted towards four-input LUT technology, applying the same designs to LCA300K gate arrays using the Synopsys Design Compiler. The comparison between the LCA300K gate count usage and the LUT usage yields an average of 12 gates per LE. A device's logic array gate count can be determined by multiplying the number of gates per LE with its LE count. For example, an EP20K1000E device has 38,400 LEs; at 12 gates per LE, the EP20K1000E device has approximately 460,000 logic array gates. Calculating Embedded Array Gates The embedded array contains ESBs, which are extremely efficient for creating memory functions that can be configured on-the-fly. APEX 20K devices can implement up to 2 Kbits of memory in each ESB. In addition, designers can combine ESBs to achieve higher bit counts. APEX 20K ESBs have the capacity and speed to implement high-end memory blocks. Because ESBs are dedicated architectural elements, they do not require resource trade-offs. ESBs can also be used to implement logic functions as LUTs or with product-term logic. ESB Memory Gate Count Gate counting schemes for memory functions can vary depending on the type of RAM, vendor, and architecture. Because most memory functions use an average of four gates per memory bit, the APEX 20K family uses the same standard, allowing designers to easily compare different gatecounting schemes for different devices. The ESB array gate count can also be verified by using common LCA300K memory functions. Altera compiled various memory functions using the LSI memory compiler to determine gate counts and compare ESB implementations. 4 Altera Corporation AN 110: Gate Counting Methodology for APEX 20K Devices Table 5 shows the number of gates used by each memory function. Table 5. Calculating ESB Array Gates Using LCA300K Memory Functions Memory Function 128 x 8 single-port SRAM Gates Gates per Bit 4,620 4.5 128 x 16 single-port SRAM 7,980 3.9 128 x 32 single-port SRAM 14,700 3.6 128 x 16 dual-port SRAM 8,300 4.1 128 x 32 dual-port SRAM 14,910 3.6 The average number of gates per bit in Table 5 is 3.94, indicating that four gates per bit is a good metric for memory functions. For an APEX 20K device, the maximum number of ESB array gates can be determined by multiplying the number of ESBs in the device with the number of bits per ESB and the number of gates per bit. For example, the following equation shows how to calculate the maximum embedded system gates used for memory implementations for an EP20K1000E device: 160 ESBs x 2,048 bits per ESB x 4 gates per bit = 1,310,720 gates An EP20K1000E device has approximately 1,300,000 ESB array gates. ESBs can implement logic as product terms or LUTs. When implementing product-term functions, the ESB becomes 16 macrocells, each of which contain two product terms and one register. The ESB can also implement LUT logic when it is preprogrammed with a bit pattern. For example, the ESB can implement a 128 x 16 ROM, which has seven address inputs and 16 data outputs. When programmed as 128 x 16 ROM, the ESB can implement logic with seven inputs and 16 outputs, effectively becoming 16 seven-input LUTs with registered inputs and outputs. Altera Corporation 5 AN 110: Gate Counting Methodology for APEX 20K Devices ESB Product-Term Logic Gate Count The range of ESB gates implemented in product-term mode can be determined for simple and complex functions by adding the number of LCA300K gate equivalents for each ESB macrocell and ESB register. See Table 6. Table 6. Calculating Embedded System Product-Term Gates Using LCA300K Functions Implementation Simple LCA300K function 16 ESB Macrocells Two-input AND gate Complex LCA300K Two 16-input AND function gates plus twoinput XOR gates LSI Gates 16 ESB Registers LSI Total Gates 16 D-type flipflop 112 128 528 D-type flipflop 112 640 The product-term gate range is the total number of LSI gates used for simple functions and the total number of LSI gates used for complex functions. In this case, 128 gates are used for simple functions and 640 gates are used for complex functions. ESB Look-Up Table Logic Gate Count The range of ESB gates implemented in LUT logic can be determined for simple and complex functions by adding the number of ESB LUTs and ESB register gate equivalents. See Table 7. Table 7. Calculating Embedded System LUT Gates Using LCA300K Functions Implementation Simple LCA300K function 16 ESB 7-Input LUTs Two-input AND gate Complex LCA300K Seven-input XOR function gate 6 LSI Gates 16 288 23 ESB Registers LSI Total Gates D-type flipflop 161 177 D-type flipflop with clear signal 184 472 Altera Corporation AN 110: Gate Counting Methodology for APEX 20K Devices The gate count of an ESB is determined by the LUT logic gate count and the product-term logic gate count. An APEX 20K ESB can implement 128 to 640 gates of logic, depending on the function and the type of logic used for the function. For estimating device gate count, the ESB is able to implement 128 gates. For an APEX 20K device, the ESB array gate count can be determined by multiplying the number of ESBs with the number of gates per ESB. The following calculation shows how to determine the number of embedded array gates used as logic for an EP20K1000E device: 160 ESBs x 128 gates per ESB = 20,480 gates An EP20K1000E device has approximately 20,500 embedded array gates when the ESBs are used for logic functions Calculating System Gates A key factor in determining gate count is the amount of memory used in the design. To determine the maximum system gate count for an EP20K1000E device, add the LE gate count to the ESB gate count. If ESBs are being used to implement both logic and memory, the percentage of ESBs that implement each function must figure into the gate count computation. Table 8 shows the system gate calculation method for an EP20K1000E device in which all ESB gates are implemented as memory. Table 8. Calculating Maximum System Gate Count for an EP20K1000E Device Gates LE gates Gates x Percentage 460,800 x 100% ESB gates used as memory 1,310,720 x 100% ESB gates used as logic 20,480 x 0% Total Gates 460,800 1,310,720 0 To determine the maximum system gate count, the LE and ESB gate totals are added together. Conclusion Altera Corporation The APEX 20K gate counting methodology is based on comparisons with the LSI Logic LCA300K family and on empirical data. The APEX 20K architecture contains an embedded array, which implements a variety of memory and complex logic functions, and a logic array that implements general logic functions. The combination of embedded system and logic arrays provides high performance for integrated System-on-aProgrammable-Chip applications. 7 AN 110: Gate Counting Methodology for APEX 20K Devices Revision History The information contained in Application Note 110 (Gate Counting Methodology for APEX 20K Devices) version 1.01 supersedes information published in previous versions. Version 1.01 contains the following changes: Updated system gate count in "Introduction" on page 1 Added information on EP20K60E and EP20K1500E devices Updated Tables 1, 2, 3, and 8 Minor textual changes throughout the document (R) 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 http://www.altera.com Applications Hotline: (800) 800-EPLD Customer Marketing: (408) 544-7104 Literature Services: (888) 3-ALTERA lit_req@altera.com 8 Altera, APEX, APEX 20K, System-on-a-Programmable-Chip, EP20K60E, EP20K100, EP20K100E, EP20K160E, EP20K200, EP20K200E, EP20K300E, EP20K400, EP20K400E, EP20K600E, EP20K1000E, EP20K1500E, FLEX, FLEX 6000, and MegaLAB are trademarks and/or service marks of Altera Corporation in the United States and other countries. Altera acknowledges the trademarks of other organizations for their respective products or services mentioned in this document, specifically: LSI and LCA300K are registered trademarks of LSI Logic Corporation. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Copyright 1999 Altera Corporation. All rights reserved. Altera Corporation Printed on Recycled Paper.