Outline

®Introduction ® Logic Modules ® LCA CPE 528: Session #12 ® FLEX, Altera MAX ®Power Dissipation Department of Electrical and Computer Engineering University of Alabama in Huntsville

13/02/2003 UAH-CPE528 2

Introduction Actel ACT

® Basic internal structure ®Actel ACT basic logic cell – Logic Module ® PLB – Programmable Logic Blocks ® Actel ACT 1 uses just one type of ® PI – Programmable Interconnect Logic Module ® Types of basic logic cells ® Actel ACT 2 and 3 use two different types ® (1) based of Logic Modules ® (2) look-up table based, and ® (3)

13/02/2003 UAH-CPE528 3 13/02/2003 UAH-CPE528 4

•1 ACTEL Act 1 Logic Module Shannon Expansion Theorem

® (a) Organization of the basic logic cells. (b)The ACT 1 ® Expansion Logic Module. (c) An implementation using pass F = F · 1 = F · (A + A’)= F · A + F · A‘ transistors (without any buffering). (d) An example logic ® Example: expand F with respect to A macro. (Source: Actel.) F = A' · B + A · B · C' + A' · B' · C = A · (B · C') + A' · (B + B' · C) ® cofactor F wrt A = B · C‘, cofactor F wrt A’ = B + B' · C ® F with respect to B F = B · (A' + A · C') + B' · (A' · C) ® We can continue to expand a function until we reach the canonical form – a unique representation that uses only minterms ® minterm is a product term that contains all the variables of F

13/02/2003 UAH-CPE528 5 13/02/2003 UAH-CPE528 6

An Example Multiplexer Logic as Function Generators

® F = (A · B) + (B' · C) + D ®Logic functions of 2 variables = (A · B) + (B' · C) + [D ·(B + B’)] = B·(A+D) + B’·(C+D) = B·F2 + B’·F1 ® F2 = A + D = A + D·(A + A’) = A + A’·D = A·1 + A’·D ® F1 = C + D = C + D·(C + C’) = C + C’·D = C·1 + C’·D ® Implementation ® A0 = D, A1 = 1, SA = C (F1) ® B0 = D, B1 = 1, SB = A (F2) ® S0 = 0, S1 = B ® 10 functions of these 16 can be implemented using just one 2:1 multiplexer (See Table 5.1 of the textbook)

13/02/2003 UAH-CPE528 7 13/02/2003 UAH-CPE528 8

•2 Multiplexer Logic as Function Generators (cont’d) Multiplexer Logic as Function Generators (cont’d)

®Useful functions ® INV. The MUX acts as an inverter for one input only. ® BUF. The MUX just passes one of the MUX inputs directly to the output. ® AND. A two-input AND. ® OR. A two-input OR. ® AND1-1. A two-input AND gate with inverted input, equivalent to an NOR-11. ® NOR1-1. A two-input NOR gate with inverted Figure 5.3 The ACT1 logic module as a boolean function generator. input, equivalent to an AND-11. (a) A 2:1 MUX viewed as a logic wheel. (b) The ACT1 logic module viewed as two function wheels.

13/02/2003 UAH-CPE528 9 13/02/2003 UAH-CPE528 10

An Example ACT 2 and ACT 3 Logic Modules

® F = NAND(A, B) Figure 5.4 The ACT2 and ® ACT3 logic modules. F = (A · B)’ = A’ + B' = A’ + B’·(A’ + A) (a) The C-module. = A’ + B’· A = 1·A’ + B’·A (b) The ACT2 S-module. (c) The ACT3 S -module. ® Implementation (d) The equivalent circuit of the SE. ® Wheel 1 => 1 (A0 = 1, A1 = 1, SA = 1) (e) The SE configured as ® Wheel 2 => B’ (B0 = 1, B1 = 0, SB = B) a positive edge-triggered D flip-flop. ® MUX (1, B’, A) => S0 = A, S1 = 0 ® Note: We do not have to worry how to use Logic Modules to construct combinational logic functions – e.g., we use NAND2 gate symbol and software takes care of connecting the inputs in the right way to the Logic Module

13/02/2003 UAH-CPE528 11 13/02/2003 UAH-CPE528 12

•3 Timing Model and Critical Path Worst-case timing

® Exact delay values in Actel ® FPGAs can not be determined Max delays in CMOS occur when until interconnect delay is known ® operating under minimum voltage – ® maximum temperature i.e., place and route are done ® slow-slow process conditions (process variation which results ® Critical path delay between in slow p-channel and slow n-channel transistors) registers is: t + t + t PD SUD CO ® Electronic Equipment classes ® There is also a hold time for ® Commercial. VDD = 5 V ± 5 %, T A (ambient) = 0 to +70 °C. the flip-flops - tH ® Industrial. VDD = 5 V ± 10 %, T A (ambient) = –40 to +85 °C. ® The combinational logic delay tPD is dependent on the logic function ® Military: VDD = 5 V ± 10 %, T C (case) = –55 to +125 °C. (which may take more than one ® Military: Standard MIL-STD-883C Class B. LM) and the wiring delays ® Military extended: Unmanned spacecraft. ® The flip-flop output delay t can CO ® Tj – junction temperature => also be influenced by the number of gates it drives (fanout ) temperature of the transistors on the chip ® to calculate this we need power dissipated and thermal properties of the package

13/02/2003 UAH-CPE528 13 13/02/2003 UAH-CPE528 14

Xilinx LCA XC3000 CLB

® Xilinix LCA (Logic Cell Array) Configurable Logic Blocks (CLBs) ® bigger and more complex than the Actel cells => coarse-grain architecture ® XC3000 CLB inputs ® five logic inputs (A-E) ® common clock input (K) ® asynchronous direct-reset input (RD) ® enable clock (EC) ® XC3000 CLB outputs ® X, Y ® Using programmable MUXes connected to the SRAM programming cells we can independently connect each of the two CLB outputs to the outputs of flip-flops (QX, QY) or to the output of the combinational logic (F, G) Figure 5.6 The XilinxXC3000 CLB (configurable ).

13/02/2003 UAH-CPE528 15 13/02/2003 UAH-CPE528 16

•4 XC3000 CLB (cont’d) XC3000 CLB (cont’d)

® LUT – Look-Up Table ® Combinational block inputs/outputs ® 32-bit LUT stored in 32 bits of SRAM ® CLB inputs (A-E) ® flip-flop outputs (QX, QY) ® Suppose we need to implement the function F, ® outputs from the LUT (F, G) F = A·B·C·D·E ® Using LUT ® set the content of LUT cell number 31 to 1 ® use five of seven inputs with the entire 32-bit LUT ® clear the content of all other LUT cells (0 – 30) => CLB outputs F and G are identical ® apply the input variables as an address to the SRAM ® ® only when ABCDE = ‘11111’ the output F will be ‘1’ split the 32-bit LUT in half to implement two functions (outputs F and G) of four variables each ® CLB propagation delay is fixed, equal to LUT access ® we can choose four input variables (A-E, QX, QY) time and does not depend on the function implemented ® we have to choose two from the five CLB inputs (A-E) ® split the 32-bit LUT in half, using one of seven input variables as a select input for a 2:1 MUX that switches between F and G

13/02/2003 UAH-CPE528 17 13/02/2003 UAH-CPE528 18

XC4000 Logic Block XC4000 Logic Block

® Two four-input LUTs that feed a three-input LUT ® Special fast carry logic hard-wired between CLBs ® MUX control logic maps four control inputs C1-C4 into the four inputs: ® LUT input (H1) ® direct in (DIN) ® enable clock (EC) ® set/reset control for flip-flops (S/R) ® Control inputs C1-C4 can also be used to control the use of the F’ and G’ LUTs as 32 bits of SRAM

Figure 5.7 The XilinxXC4000 CLB (configurable logic block).

13/02/2003 UAH-CPE528 19 13/02/2003 UAH-CPE528 20

•5 XC5200 Logic Block Xilinx CLB Analysis

® Basic Cell is called a Logic Cell (LC) and is similar to, ® Using LUTs to implement combinational logic but simpler than, CLBs in other Xilinxfamilies ® Term CLB is used here to mean a group of 4 LCs (LC0-LC3) ® Disadvantage: an inverter is as slow as a five input NAND ® Advantage: simplifies timing

Figure 5.8 The Xilinx XC5200 LC (logic cell) and CLB (configurable logic block).

13/02/2003 UAH-CPE528 21 13/02/2003 UAH-CPE528 22

Altera FLEX (8000) Altera MAX

® Basic Cell is called a Logic Element (LE) and ® Two-level logic resembles the Xilinx XC5200 LC architecture circuit (sum of ® Altera FLEX uses the same SRAM programming technology as Xilinx products)

® Using regular structure ® vector of buffers ® vector of AND gates Figure 5.10 The Altera FLEX architecture. (a) Chip floorplan . ® OR gates (b) LAB (Logic Array Block). (c) Details of the LE (logic element). 13/02/2003 UAH-CPE528 23 13/02/2003 UAH-CPE528 24

•6 Altera MAX (cont’d) Altera MAX (cont’d)

® (a) Two-level logic ® Programmed EPROM transistor has no effect circuit (sum of on the product-term products) line ® (c) Programmable ® Unprogrammed Array Logic (PAL) EPROM acts as a pull- down tran. ® Horizontal line: product term line (bit line) ® Vertical line: word line

13/02/2003 UAH-CPE528 25 13/02/2003 UAH-CPE528 26

Registered PAL Logic Expanders

® A logic expander is an output line of the AND array that feeds back as an input to the array itself ® Logic expanders can help implement functions that require more product terms than are available in a simple PAL ® Consider implementing this function in in a three-wide OR array: F = A’ · C · D + B’ · C · D + A · B + B · C’ ® This can be rewritten as a “sum of (products of products): F = (A’ + B’) · C · D + (A + C’) · B F = (A · B)’ (C · D) + (A’ · C)’ · B ® Logic expanders can be used to form the expander terms (A · B)’ and (A’ · C)’ Figure 5.12 A registered PAL with I inputs, j product terms, and k macrocells. ® Logic expanders require an extra pass through the

13/02/2003 UAH-CPE528 27 13/02/2003AND array, increasing delayUAH-CPE528 28

•7 Logic Expander Implementation Logic Expanders (cont’d)

® Programmable inversion ® programming one input of the XOR gate at the macrocell output allows you to choose whether or not to invert the output ® this can reduce the required number of product terms

Figure 5.14 Use of programmed inversion to simplify logic. Figure 5.13 Expander logic and programmable inversion. (a) The function F = A·B’+ A· C’+ A ·D’+ A’ ·C· D requires four product terms to implement while (b) the complement F’ = A·B·C· D+ A’· D’+ A’· C’ requires only three product terms.

13/02/2003 UAH-CPE528 29 13/02/2003 UAH-CPE528 30

Altera MAX architecture Timing Model

® Macrocell Direct path through the logic array and register features: ® Wide, programmable AND array ® Narrow, fixed OR array ® Logic Expanders ® Programmable inversion

Figure 5.15 The Altera MAX architecture. (a) Organization of logic and interconnect. (b) A MAX family LAB (Logic Array Block). (c) A MAX family macrocell .

13/02/2003 UAH-CPE528 31 13/02/2003 UAH-CPE528 32

•8 Timing Model Timing Model

Using parallel expander Using a shared expander (two passes through the logic array)

13/02/2003 UAH-CPE528 33 13/02/2003 UAH-CPE528 34

Power Dissipation in Complex PLDs

® AND arrays consume static power ® AND arrays in any PLD built using EPROM or EEPROM transistors use a passive pull-up (a resistor or current source) ® Altera uses a switch called Turbo Bit to control the current in the programmable-AND array in each macrocell ® MAX 7000 static current ® 1.4 mA – 2.2 mA per macrocell in high-power mode

® 0.6 mA – 0.8 mA per macrocell in low-power mode ® MAX 9000 static current ® 0.6 mA – 0.8 mA per macrocell in high-power mode

® 0.3 mA per macrocell in low-power mode ® MAX 9000: 16 macrocells in LAB, 35 LABs => static power dissipation in low-power mode = 840mW

13/02/2003 UAH-CPE528 35

•9