Standard ICs – ICs sold as Standard Parts SSI/LSI/ MSI IC such as MUX, Encoder, Memory Chips, or Microprocessor IC Application Specific Integrated Circuits (ASIC) – An IC Customized to a Particular System or Application –Custom ICs Reduced Cost and Improved Reliability Example. :A Chip for Toy Bear, Auto-Mobile Control Chip, Different Communication Chips Application Specific Standard Parts (ASSP) – Controller, Chip for PC or a Modem 2 Full-Custom Ics Fixed ASICs and Programmable ASICs 3 Types of ASICs – Cont’d 4 Full-Custom ASICs: Possibly all logic cells and all mask layers customized Semi-Custom ASICs: All logic cells are pre-designed and some (possibly all) mask layers customized Full custom VLSI design ASICs Speed / Density / Complexity / Likely Market Volume CPLDs FPGAs PLDs Engineering cost / Time to develop Include some (possibly all) customized logic cells Have all their mask layers customized Full-custom ASIC design makes sense only When no suitable existing libraries exist or Existing library cells are not fast enough or The available pre-designed/pre-tested cells consume too much power that a design can allow or The available logic cells are not compact enough to fit or ASIC technology is new or/and so special that no cell library exits. 7 Offer highest performance and lowest cost (smallest die size) but at the expense of increased design time, complexity, higher design cost and higher risk. Some Examples: High-Voltage Automobile Control Chips. Ana-Digi Communication Chips, Sensors and Actuators Semi-Custom ASICs 1. Standard-Cell based ASICs (CBIC- “sea-bick”) Use logic blocks from standard cell libraries, other mega-cells, full-custom blocks, system-level macros (SLMs), functional standard blocks (FSBs), cores etc. Get all mask layers customized- transistors and interconnect 9 Manufacturing lead time is around 8 weeks Less efficient in size and performance but lower in design cost Semi-Custom ASICs – Cont’d 2. Gate Array based ASICs In a gate-array-based ASIC, the transistors are predefined on the silicon wafer The predefined pattern of transistors is called the base array The smallest element that is replicated to make the base array is called the base or primitive cell 11 Design is performed by connecting predesigned and characterized logic cells from a library (macros) After validation, automatic placement and routing are typically used to convert the macro-based design into a layout on the ASIC using primitive cells Types of MGAs: 1. Channeled Gate Array 2. Channelless Gate Array 3. Structured Gate Array Only the interconnect is customized The interconnect uses predefined spaces between rows of base cells Manufacturing lead time is between two days and two weeks Figure: Channel gate-array die There are no predefined areas set aside for routing - routing is over the top of the gatearray devices Achievable logic density is higher than for channeled gate arrays Manufacturing lead time is between two days and two weeks Figure 1.6 Sea-Of-Gates (SOG) array die Only the interconnect is customized Custom blocks (the same for each design) can be embedded These can be complete blocks such as a processor or memory array, or An array of different base cells better suited to implementing a specific function Manufacturing lead time is between two days and two weeks. Figure : Gate array die with embedded block Semi-Custom ASICs – Cont’d 3. Programmable ASICs PLDs - PLDs are low-density devices which contain 1k – 10 k gates and are available both in bipolar and CMOS technologies [PLA, PAL or GAL] CPLDs or FPLDs or FPGAs - FPGAs combine architecture of gate arrays with programmability of PLDs. User Configurable Contain Regular Structures - circuit elements such as AND, OR, NAND/NOR gates, FFs, Mux, RAMs, Allow Different Programming Technologies Allow both Matrix and Row-based Architectures 16 Comparison Var. Fixed height Fixed Fixed Var. Var. Fixed Programmable Var. In row Fixed Fixed Var. Var. Var. Programmable High Medium Medium low 17 Comparison Compact Compact to moderate Moderate Large High High to moderate Moderate Low All layers All layers Routing layers only No layers 18 1. Design entry - Using a hardware description language ( HDL ) or schematic entry 2. Logic synthesis - Produces a netlist - logic cells and their connections 3. System partitioning - Divide a large system into ASIC-sized pieces 4. Prelayout simulation - Check to see if the design functions correctly 5. Floorplanning - Arrange the blocks of the netlist on the chip 6. Placement - Decide the locations of cells in a block 7. Routing - Make the connections between cells and blocks 8. Extraction - Determine the resistance and capacitance of the interconnect 9. Postlayout simulation - Check to see the design still works with the added loads of the interconnect Figure 1 ASIC design flow • Digital designer has various options: SSI (small scale integrated circuits) or MSI (medium scale integrated circuits) components Difficulties arises as design size increases Interconnections grow with complexity resulting in a prolonged testing phase Programmable Logic Devices (PLD) It is General purpose chip for implementing circuits. Can be customized using programmable switches. In programmable logic device (PLD) design, we use a computer aided design (CAD) software tool to perform “design entry.” We can also use the same package for “design verification” Same can be used to “download” the “design program” into hardware (i.e. the PLD). Example Our design now becomes: +5V A B C Y 0 1 2 3 4 1 2 3 4 a1 Vcc1 b1 a2 b2 a3 b3 a4 b4 a1 EPM7032 b1 a2 b2 a3 b3 a4 GND 0 b4 5 6 7 8 5 6 7 8 This single chip design requires Less power, less board space, should cost less on a per gate basis, easier to debug (in software), and be easier to manufacture. Also, Intellectual Property (IP) can be protected and exploited using a FPLD. 1. Increased system performance (Speed) • • • This is due to the reduced interconnect distances between gates. In a TTL design we have large RC delays as we propagate signals from one chip to another. In PLD designs, this distances are in the µm range. A B C 0 1 2 Large Delay on this net +5V 3 4 1 2 3 4 a1 Vcc1 0 b1 a2 b2 a3 b3 a4 b4 a1 74HC04 b1 a2 b2 a3 b3 a4 GND 0 b4 5 1 6 2 7 3 8 4 5 1 6 2 7 3 8 4 a1 Vcc1 0 b1 a2 b2 a3 b3 a4 b4 a1 74HC08 b1 a2 b2 a3 b3 a4 GND 0 b4 5 1 6 2 7 3 8 4 5 1 6 2 7 3 8 4 a1 Vcc1 b1 a2 b2 a3 b3 a4 b4 a1 74HC32 b1 a2 b2 a3 b3 a4 GND b4 5 6 7 8 5 6 7 8 0 Y FPLD Design The same net is now internal to the FPLD A B C Y +5V 0 1 2 3 4 1 2 3 4 a1 Vcc1 b1 a2 b2 a3 b3 a4 b4 a1 EPM7032 b1 a2 b2 a3 b3 a4 GND 0 b4 5 6 7 8 5 6 7 8 2. Increased Gate Density More logic gates on each PLD implies that you can have more functionality per unit area of board space. A single PLDs/FPGAs can hold the equivalent of over 1 million TTL logic gates. 3. Reduced Development Time CAD tools significantly reduce the development time for new designs. This not only cuts down the “time to market,” but also allows reduces the size of the team needed to complete a design. 4. Rapid Hardware Prototyping Hardware prototyping is greatly simplified using PLDs because it is relatively easy to change the design. One major concern however is I/O pin assignments. 5. Reduced “Time to Market” Since PLDs are already “complete,” there is no need to wait for fabrication. 6. Future Modifications Since PLDs can be “reconfigured” in the field. It is possible to have the end user perform system “upgrades.” 7. Reduced Development Costs The development costs for FPLDs tend to be lower than Application Specific Integrated Circuits (ASICs); however, the per unit cost of a FPLD is higher than an ASIC for large volumes. 1. Unlike a Microprocessor, a PLD implements real logic gates 2. PLDs can operate very fast 3. PLDs can do more than one thing at a time – a single micro can only pretend to do more than one thing at a time – Main types of PLDs PLA PAL ROM CPLD FPGA INPUT Fixed AND plane (decoder) Programmable Connections Programmable OR plane OUTPUT (Programmable) Read-Only Memory (ROM) INPUT Programmable AND plane Programmable Connections Programmable OR plane OUTPUT Programmable Logic Array (PLA) INPUT Programmable AND plane Fixed OR plane F/F OUTPUT Programmable Array Logic (PAL) Devices 1) PLA — a Programmable Logic Array (PLA) is a relatively small FPD that contains two levels of logic, an AND-plane and an OR-plane, where both levels are programmable 2) PAL — a Programmable Array Logic (PAL) is a relatively small FPD that has a programmable AND-plane followed by a fixed OR-plane 3) SPLD — refers to any type of Simple PLD, usually either a PLA or PAL 4) CPLD — a more Complex PLD that consists of an arrangement of multiple SPLD-like blocks on a single chip. 5) FPGA — a Field-Programmable Gate Array is an FPD featuring a general structure that allows very high logic capacity. • PLD as a Black Box Inputs (logic variables) Logic gates and programmable switches Outputs (logic functions) x1 x2 xn – Use to implement circuits in SOP form – The connections in the AND plane are programmable Input buffers and inverters x1 x1 xn xn P1 – The connections in the OR plane are programmable AND plane OR plane Pk f1 fm Programmable AND Plane Programmable OR Plane Programmable Node Un-programmed Connect Disconnect X O1 Y O3 O4 XY XY X Y X X Y Y O2 XY XY 3-36 Programmable AND Plane Programmable OR Plane YZ XZ XYZ XY X Y Z ? XY+YZ ? XZ+XYZ 3-37 • Gate Level Version of PLA x1 x2 x3 Programmable connections f1 = x1x2+x1x3'+x1'x2'x3 OR plane P1 f2 = x1x2+x1'x2'x3+x1x3 P2 P3 P4 AND plane f1 f2 • Customary Schematic of a PLA x1 x2 x3 OR plane f1 = x1x2+x1x3'+x1'x2'x3 P1 f2 = x1x2+x1'x2'x3+x1x3 P2 P3 x marks the connections left in place after programming P4 AND plane f1 f2 – Also used to implement circuits in SOP form – The connections in the AND plane are programmable x1 x2 Input buffers and inverters x1 x1 – The connections in the OR plane are NOT programmable xn fixed connections xn xn P1 AND plane OR plane Pk f1 fm Programmable AND Plane X Y Fix OR Plane O1 O2 O3 O4 3-42 • Example Schematic of a PAL x1 x2 x3 f1 = x1x2x3'+x1'x2x3 P1 f2 = x1'x2'+x1x2x3 f1 P2 P3 f2 P4 AND plane • Multi-Level Design with PALs – f = A'BC + A'B'C' + ABC' + AB'C = A'g + Ag' • where g = BC + B'C' and C = h below A B Sel = 0 En = 0 0 h 1 D Q Sel = 0 Clock 0 1 En = 1 g D Q Select Clock 0 1 D Q Clock f PLAs are more flexible than PALs since both AND & OR planes are programmable in PLAs. PLAs are expensive to fabricate and have large propagation delay. Logic expanders increase the flexibilities of PALs, but result in significant propagation delay. By using fix OR gates, PALs are cheaper and faster than PLAs. PLAs and PALs are usually referred to as SPLD. PALs usually contain D flip-flops connected to the outputs of OR gates to implement sequential circuits. 3-45 – A ROM (Read Only Memory) has a fixed AND plane and a programmable OR plane – Size of AND plane is 2n where n = number of input pins • Has an AND gate for every possible minterm so that all input combinations access a different AND gate – OR plane dictates function mapped by the ROM a0 a1 2 -to-4 decoder – 22x4 bit ROM has 4 addresses that are decoded d3 d2 d1 d0 • “Permanent” binary information is stored • Non-volatile memory – Power off does not erase information stored K-bit address lines K ROM 2k words N-bit per work N-bit Data Output N 5 A4 A3 5-to-32 32x8 ROM 8 Each represents 32 wires 0 1 2 3 A2 Decoder A1 A0 Fuse can be implemented as a diode or a pass transistor 28 29 30 31 D7 D6 D5 D4 D3 D2 D1 D0 – PLAs, PALs, and ROMs are also called SPLDs – Simple Programmable Logic Devices – SPLDs must be programmed so that the switches are in the correct places • CAD tools are usually used to do this – A fuse map is created by the CAD tool and then that map is downloaded to the device via a special programming unit • There are two basic types of programming techniques – Removable sockets on a PCB – In system programming (ISP) on a PCB » This approach is not very common for PLAs and PALs but it is quite common for more complex PLDs – The SPLD is removed from the PCB, placed into the unit and programmed there • Removable SPLD Socket Package – PLCC (plastic-leaded chip carrier) PLCC socket soldered to the PCB d oar P ted rin c b uit c r i • In System Programming (ISP) – Used when the SPLD cannot be removed from the PCB – A special cable and PCB connection are required to program the SPLD from an attached computer – Very common approach to programming more complex PLDs like CPLDs, FPGAs, etc. • Macrocell Select OR gate from PAL 0 1 D Q Flip-flop Clock back to AND plane Enable f1 • Macrocell Functions – Enable = 0 can be used to allow the output pin for f1 to be used as an additional input pin to the PAL – Enable = 1, Select = 0 is normal for typical PAL operation Select 0 – Enable = Select = 1 allows the PAL to synchronize the output changes with a clock pulse 1 D Q Clock back to AND plane – The feedback to the AND plane provides for multilevel design Enable f1 FPGA technology allows you to embed a processor, ROM, RAM, DSP, and any other block onto a single chip This has major advantages for electronics companies in terms of cost, reliability, reusability of intellectual property, and time to market – Complex Programmable Logic Devices (CPLD) – SPLDs (PLA, PAL) are limited in size due to the small number of input and output pins and the limited number of product terms • Combined number of inputs + outputs < 32 – CPLDs contain multiple circuit blocks on a single chip Each block is like a PAL: PAL-like block Connections are provided between PAL-like blocks via an interconnection network that is programmable Each block is connected to an I/O block as well I/O block PAL-like block I/O block PAL-like block PAL-like block PAL-like block I/O block I/O block Interconnection wires A collection of PLDs on a single chip with Programmable interconnects • Internal Structure of a PAL-like Block – Includes macrocells: Usually about 16 each – Fixed OR planes :OR gates have fan-in between 5-20 PAL-like block PAL-like block D Q D Q D Q • PAL-like Blocks – When tri-state gate is disabled, the corresponding output pin can be used as an input pin – The AND plane and interconnection network are programmable – Commercial CPLDs have between 2-100 PAL-like blocks • Programming a CPLD – CPLDs have many pins – large ones have > 200 • Removal of CPLD from a PCB is difficult without breaking the pins • Use ISP (in system programming) to program the CPLD • JTAG (Joint Test Action Group) port used to connect the CPLD to a computer Manufacturer Altera Altmel Cypress Lattice Philips Vantis Xilinx CPLD Products MAX 5000, 7000 & 9000 ATF & ATV FLASH370, Ultra37000 ispLSI 1000 to 8000 XPLA MACH 1 to 5 XC9500 Let’s takes a look at this URL www.altera.com www.atmel.com www.cypress.com www.latticesemi.com www.philips.com www.vantis.com www.xilinx.com Features: • The internal PLDs are called Configurable Functional Blocks (FBs or CFBs) • Each FB has 36 inputs and 18 Macrocells (effectively a “36V18”) • Each CLPD is packaged in a plastic-leaded chip carrier (PLCC) • The number of I/O pins are much less than the total number of Macrocells in family of devices 36 Signal pins 18 outputs Global Clock Global set/reset Global 3 state control 18 Output enable signals Figure: Function block • Each Function Block, comprised of18 independent macrocells, each capable of implementing a combinatorial or registered function. • The FB generates 18 outputs that drive the Fast CONNECT switch matrix. • These 18 outputs and their corresponding output enable signals also drive the IOB. •Logic within the FB is implemented using a sum-ofproducts representation. •Thirty-six inputs provide 72 true and complement signals into the programmable AND-array to form 90 product terms. •Any number of these product terms, up to the 90 available, can be allocated to each macrocell by the product term allocator. Each XC9500 macrocell may be individually configured for a combinatorial or registered function. Five direct product terms from the AND-array are available for use as primary data inputs (to the OR and XOR gates) to implement combinatorial functions, or as control inputs including clock, set/reset, and output enable. The product term allocator associated with each macrocell selects how the five direct terms are used. The macrocell register can be configured as a D-type or T-type flip-flop, or it may be bypassed for combinatorial operation. All global control signals are available to each individual macrocell, including clock, set/reset, and output enable signals. XC9500 Product term allocator and macrocell The product term allocator controls how the five direct product terms are assigned to each macrocell. The product term allocator can re-assign other product terms within the FB to increase the logic capacity of a macrocell beyond five direct terms. Up to 15 product terms can be available to a single macrocell The Fast CONNECT switch matrix connects signals to the FB inputs, All IOB outputs (corresponding to user pin inputs) and all FB outputs drive the Fast CONNECT matrix. Any of these (up to a FB fan-in limit of 36) may be selected, through user programming, to drive each FB with a uniform delay. The Fast CONNECT switch matrix is capable of combining multiple internal connections into a single wired-AND output before driving the destination FB XC9500 I/O Block The I/O Block (IOB) interfaces between the internal logic and the device user I/O pins. Each IOB includes an input buffer, output driver, output enable selection multiplexer, and user programmable ground control. The input buffer is compatible with standard 5V CMOS, 5V TTL, and 3.3V signal levels. The input buffer uses the internal 5V voltage supply (VCCINT) to ensure that the input thresholds are constant and do not vary with the VCCIO voltage. Features: Specifically designed to meet the needs of high volume, Cost-sensitive consumer electronic applications Spartan 3 family offers densities ranging from 50,000 to five million system gates, FPGA can handle larger circuits No AND/OR planes Provide logic blocks, I/O blocks, and interconnection wires and switches. Logic blocks provide functionality Interconnection switches that allow logic blocks to be connected to each other and to the I/O pins FPGA programmable logic blocks have only a few inputs and 1 or 2 flip-flops, but there are a lot more of them compared to the number of macrocells in a CPLD. FPGAs are all 3.3V to reduce power consumption. FPGAs are only available in SMT which is very inconvenient. FPGA’s need reprogramming each time they are powered up by a slave processor or serial memory. • Before powering on or off the FPGA, configuration data is stored externally in a PROM or some other nonvolatile medium • After applying power, the configuration data is written to the FPGA using any of five different modes: • • • • • Master Parallel, Slave Parallel, Master Serial, Slave Serial, and Boundary Scan (JTAG). CLB --“configurable logic block” I/O block logic block I/O block I/O block interconnection switch I/O block • Configurable Logic Blocks (CLBs) contain RAM-based Look-Up Tables (LUTs) to implement logic, and storage elements that can be used as flip-flops or latches. CLBs can be programmed to perform a wide variety of logical functions as well as to store data. CLB function generators (F, G, H) • Use RAM to store a truth table – F, G: 4 inputs, 16 bits of RAM each – H: 3 inputs, 8 bits of RAM – RAM is loaded from an external PROM at system initialization. Number of RAM Blocks by Device • LUTs – Logic blocks are implemented using a lookup table (LUT) • Small number of inputs, one output Contains storage cells that can be loaded with the desired values • A 2 input LUT uses 3 MUXes to implement any desired function of 2 variables x1 0/1 0/1 0/1 0/1 x2 f • Example: 2 Input LUT for XNOR x1 0 0 1 1 x2 0 1 0 1 f 1 0 0 1 f = x1'x2' + x1x2, or using Shannon's expansion: f = x1'(x2') + x1(x2) = x1'(x2'(1) + x2(0)) + x1(x2'(0) + x2(1)) x1 1 0 0 1 x2 f • • • • • Two flip-flops per CLB, Two flip-flops per I/O cell. 25 “gates” per CLB if used for logic. 32 bits of RAM per CLB if not used for logic. All of this is valid only if your design has a “perfect fit”. connections controlled by RAM bits programmable switch element turning the corner, etc. • Input/Output Blocks (IOBs) control the flow of data between the I/O pins and the internal logic of the device. • Each IOB supports bidirectional data flow plus tri-state operation • Field programmability is achieved through switches (Transistors controlled by memory elements or fuses) • Switches control the following aspects • Interconnection among wire segments • Configuration of logic blocks • Distributed memory elements controlling the switches and configuration of logic blocks are together called “Configuration Memory” PEs are used to physically “program” the interconnects. B A Vgate Field Effect Transistor (FET) FET acts like a “switch” If Vgate is ONE, switch is closed, connecting A and B otherwise A and B are isolated. Example B B Closed A Open A ONE Vgate=One Switch Closed Open Ckt Vgate=Zero Switch Open So, we’ll have one FET at every programmable Interconnect, but we need a method or technique to “program” VGATE to be ONE or ZERO. Before, we look at our options, some definitions Two Types: 1. Volatile “Program” is lost when power is removed 2. Non-volatile “Program” is retained with power is removed. Two Classes: 1. Re-programmable PE can be “erased” and “re-programmed” 2. One-time-programmable (OTP) PE can only be programmed “one” time. (not really used anymore) EPROM – Erasable Programmable Read Only Memory Reprogrammable and non-volatile It is possible to physically program an EPROM cell to always be ONE when power is applied. Also, we can use ultraviolet (UV) light to reset or “erase” the EPROM cell back to ZERO. B A UV To erase EPROM Cell We can, therefore, erase all the cells of the EPROM and then program the PEs that we want to be ONEs. EEPROM – (E2PROM) Electrically Erasable Programmable Read Only Memory Reprogrammable and non-volatile Similar to an EPROM except cell can be “erased” electrically. Two gates: Floating and Select Functionally equivalent to EPROM; only Construction and structure is different Electrically Erasable: Re-programmable by applying high voltage (No UV radiation expose!) When un-programmed, the threshold (as seen by select gate) is negative! SRAM Static Random Access Memory Volatile and Reprogrammable (electrically) SRAM Cell To Vgate Store the value of VGATE within a SRAM cell. We lose the program whenever the power is removed. Therefore, we’ll need the ability to “reload” the design upon power-up. Write 0 Write 1 BL BL 1 0 1 WL 1 0 To VGATE 0 0 1 WL 1 WL=1, turns “ON” FET, connecting BL to the cell To VGATE 1 Read BL X data data To VGATE data WL 0 WL=0, turns “OFF” FET, isolating data from the cell. However, Due to “positive” feedback, data is retained in the memory cell until power is removed B A SRAM Cell Use a SRAM cell to store VGATE. Lose “program” when power is removed. antifuse polysilicon ONO dielectric n+ antifuse diffusion 2l Open by default, closed by applying current pulse Anti-Fuse Non-volatile and OTP Normally, anti-fuse behaves like an “open” circuit, however you can “destroy” the fuse electrically so that it behaves like a short circuit. B Anti-fuse . A The antifuse is very small compared to the other PEs. • Though implementation differ, all anti-fuse programming elements share common property – Uses materials which normally resides in high impedance state – But can be fused irreversibly into low impedance state by applying high voltage • Very low ON Resistance (Faster implementation of circuits) • Limited size of anti-fuse elements; Interconnects occupy relatively lesser area. • One Time Programmable – Cannot be re-programmed (Design changes are not possible) – Retain configuration after power off Difference between CPLD and FPGA FPGAs use LUTs (Look-up Tables) while a CPLD uses a simpler sum of products Using LUTs are advantageous as it provides significant savings in processing time as the chip would not need to go through the process of recalculating the sum of products as CPLDs do. The main difference between FPGAs and CPLDs is the complexity or the number of logic gates contained in each. you can build more complex logic with FPGAs than with CPLDs. LUTs are a form of memory, but it does not persist once power is removed. CPLDs have non-volatile memory embedded in the chips enabling them to function right away without the need for external ROM. FPGA uses Fine Grained Architecture and best for Large Designs. CPLD uses Course Grained Architecture and Best for Relatively Small Designs General-purpose processors • Programmable device used in a variety of applications – Also known as “microprocessor” • Features – Program memory – General datapath with large register file and general ALU • User benefits – Low time-to-market and NRE costs – High flexibility • Example: Pentium, ARM, … Controller Datapath Control logic and State register Register file IR PC Program memory General ALU Data memory Assembly code for: total = 0 for i =1 to … 119 Application-specific processors • Programmable processor optimized for a particular class of applications having common characteristics • Features – Program memory – Optimized datapath – Special functional units • Benefits – Some flexibility, good performance, size and power • Example: DSP, Media Processor Controller Datapath Control logic and State register Registers Custom ALU IR PC Program memory Data memory Assembly code for: total = 0 for i =1 to … 120 Single-purpose hardware • Digital circuit designed to execute exactly one program – coprocessor, accelerator • Features – Contains components needed to execute a single program – No program memory • Benefits – Fast – Low power – Small size Controller Control logic Datapath index total State register + Data memory 121