
CONFIGURABLE LOGIC Eric Prebys P116B - Winter 2020 P116B - Configurable Logic Need for Configurable Logic • As you’ve seen in lab, even very simple operations get pretty complex when using discrete components • The technology allows for much higher density, so we have two options, but the details depend on the application • We have two options • Design and fabricate Application Specific Integrated Circuits (ASICs) • The bar has been significantly lowered, but still fairly expensive and complicated, particularly if only a small number of parts are needed • Use some sort of general purpose high density component that can be configured for our needs • “Configurable logic” devices began to appear in the early 1970s • Any electrical design you do will very likely involve them P116B - Winter 2020 P116B - Configurable Logic RAM as Configurable Logic • An Am x n-bit RAM chip can function as an arbitrary m->n truth table [A → A ] m−1 0 [D → D ] m−1 0 Example: If I want to encode the expression D = A ⋅ A ⋅ A 0 0 1 2 I would fill every 8th memory location (starting with READ 0) with an odd number, and the rest with even numbers. • This is known as a “Look-up Table” (LUT) P116B - Winter 2020 P116B - Configurable Logic LUTs (cont’d) • Advantages • Can implement literally any combinatorial truth table • Disadvantages • Slow and expensive for large tables • Configuration volatile and could take a long time to load simple things • No feedback or flip-flops • Can’t directly implement synchronous logic • Modern applications • As we’ll see soon, the basic logical operations in FPGAs are implemented using small LUTs P116B - Winter 2020 P116B - Configurable Logic Generic Logic Equations • Consider a general truth table A B C Q 0 0 0 0 0 0 1 1 OR these options Use ANDs to specify 0 1 0 0 together any combinations 0 1 1 1 that result in Q=1 1 0 0 1 1 0 1 0 Q = A⋅B ⋅C 1 1 0 0 1 1 1 0 +A⋅B⋅C +A⋅B ⋅C P116B - Winter 2020 P116B - Configurable Logic Programmable Array Logic (PAL*) • Developed in 1978 by Monolithic Memories • Each input and its inverse are fed into a matrix of AND gates that are ORed together for each output • Original chips had all internal connections initially set. • Unwanted connections were burned out in the configuration process, much like ROMs • In fact, the same machines were used to burn both *”PAL” is technically proprietary. Generic term is “PLD”. P116B - Winter 2020 P116B - Configurable Logic Advanced PAL Features • Features that have been added to PALs include • Feedback lines from output to input • Output Flip-flops • Tri-state outputs = P116B - Winter 2020 P116B - Configurable Logic Configurable Output Blocks • Advanced PALs have configurable output blocks that can selectively be configured to be • Combinatorial • Latched (D flip-flop) • Tri-state P116B - Winter 2020 P116B - Configurable Logic Configuring PALs • Original PALs could only be “burned” once. If you needed to change something, you needed to throw them out and program new ones • A later variant allowed PALs to be erased with UV light, and then reprogrammed • Later Generic Array Logic (GAL) chips offered increased functionality, and also the ability to be electrically erased and reprogrammed. P116B - Winter 2020 P116B - Configurable Logic PAL Configuration • In most cases, it’s complicated to determine the gate level configuration of the PAL, so several Hardware Description Languages (HDLs) were developed for the purpose • PALASM – written in FORTRAN by John Birkner (1980) • Compiler for Universal Programmable Logic (CUPL) - Assisted Technology (1983) • Advanced Boolean Expressian Language (ABEL) – Data I/O (1983) • Compilers would produce a “JEDEC” “fuse map” to configure PAL • The functionality of these languages has been absorbed into modern HDLs, such as VHDL or Verilog • Although Xilinx still supports ABEL for internal “components” P116B - Winter 2020 P116B - Configurable Logic ABEL Programming Language • Combinatorial Example: Full adder P116B - Winter 2020 P116B - Configurable Logic Easy Way • ABEL has advanced features allowing • Math • Truth Tables • State Machines • Text vectors • etc P116B - Winter 2020 P116B - Configurable Logic PAL Programmers • Example: Data I/O P116B - Winter 2020 P116B - Configurable Logic Field Programmable Gate Arrays (FPGAs) • Field programmable gate arrays expanded on the capabilities of PALs by replacing the logic array with an array of “configurable logic blocks” (COBs), connected via on-chip routing highways. • Additional features • Low-slew internal clock lines • Versatile I/O blocks • Onboard timers • Onboard RAM P116B - Winter 2020 P116B - Configurable Logic Major FPGA Manufacturers • Altera (1983) – the first commercial FPGAs (1983). Altera FPGAs were “burned”, but could be erased with UV light • Xilinx (1985) – compared to Altera, Xilinx had more functionality, but was not as fast. Needed to be dynamically configured at power up. Still the industry leader (36% compared to 31% for Altera) • Actel (late 80s) – biggest competitor to Xilinx and Altera, but still only 10% of the market • We will focus on Xilinx chips in this course P116B - Winter 2020 P116B - Configurable Logic Structure of an FPGA Device CLB = “Configurable Logic Block” P116B - Winter 2020 P116B - Configurable Logic Configurable Logic Blocks (CLBs) • The basic building block of FPGAs are look up tables (LUTs) feeding data latches • Of course things have gotten a bit more complex… P116B - Winter 2020 P116B - Configurable Logic Xilinx Series 7 CLBs -> “Slice” P116B - Winter 2020 P116B - Configurable Logic Connections to Internal Busses R Spartan-II FPGA Family: Functional Description 3-State Lines CLB CLB CLB CLB DS001_07_090600 Figure 7: BUFT Connections to Dedicated Horizontal Bus Lines Clock Distribution networks. The DLL monitors the input clock and the distributed clock, and automatically adjusts a clock delay The Spartan-II family provides high-speed, low-skew clock element. Additional delay is introduced such that clock distribution through the primary global routing resources edges reach internal flip-flops exactly one clock period after described above. A typical clock distribution net is shown in they arrive at the input. This closed-loop system effectively Figure 8. eliminates clock-distribution delay by ensuring that clock Four global buffers are provided, two at the top center of the edges arrive at internal flip-flops in synchronism with clock device and two at the bottom center. These drive the four edges arriving at the input. primary global nets that in turn drive any clock pin. In addition to eliminating clock-distribution delay, the DLL Four dedicated clock pads are provided, one adjacent to provides advanced control of multiple clock domains. The each of the global buffers. The input to the global buffer is DLL provides four quadrature phases of the source clock, selected either from these pads or from signals in the can double the clock, or divide the clock by 1.5, 2, 2.5, 3, 4, general purpose routing. Global clock pins do not have the 5, 8, or 16. It has six outputs. option for internal, weak pull-up resistors. The DLL also operates as a clock mirror. By driving the output from a DLL off-chip and then back on again, the DLL Global GCLKPAD3 GCLKPAD2 can be used to deskew a board level clock among multiple Clock Rows GCLKBUF3 GCLKBUF2 Global Clock Column Spartan-II devices. In order to guarantee that the system clock is operating correctly prior to the FPGA starting up after configuration, the DLL can delay the completion of the configuration process until after it has achieved lock. Global Clock Boundary Scan Spine Spartan-II devices support all the mandatory boundary- scan instructions specified in the IEEE standard 1149.1. A Test Access Port (TAP) and registers are provided that implement the EXTEST, SAMPLE/PRELOAD, and BYPASS instructions. The TAP also supports two USERCODE GCLKBUF1 GCLKBUF0 instructions and internal scan chains. GCLKPAD1 GCLKPAD0 The TAP uses dedicated package pins that always operate DS001_08_060100 using LVTTL. For TDO to operate using LVTTL, the V Figure 8: Global Clock Distribution Network CCO for Bank 2 must be 3.3V. Otherwise, TDO switches rail-to-rail between ground and VCCO. TDI, TMS, and TCK Delay-Locked Loop (DLL) have a default internal weak pull-up resistor, and TDO has Associated with each global clock input buffer is a fully no default resistor. Bitstream options allow setting any of digital Delay-Locked Loop (DLL) that can eliminate skew the four TAP pins to have an internal pull-up, pull-down, or between the clock input pad and internal clock-input pins neither. throughout the device. Each DLL can drive two global clock DS001-2 (v2.8) June 13, 2008 www.xilinx.com Module 2 of 4 Product Specification 13 P116B - Winter 2020 P116B - Configurable Logic IO Blocks (IOBs) • Highly configurable IO Blocks allow input/output/tri-state connection, with adjustable slew rate and logic levels P116B - Winter 2020 P116B - Configurable Logic Configuring FPGAs • FPGAs can be configured in several ways • Schematic capture • Hardware description languages (HDLs) • Parametric GUI design tools (e.g. “wizards”) • In general, modules are compatible at the “pin” (interface) level, so multiple techniques can be used in a single design. • For example, it’s common to use schematic capture to specify the top level design and HDLs or wizards to design the lower level modules. P116B - Winter 2020 P116B - Configurable Logic Schematic Capture Associate the inputs and Draw schematic using a library of “parts” outputs with pins
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages33 Page
-
File Size-