EE 5324 – VLSI Design II Part I: Introduction Kia Bazargan University of Minnesota Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 1 Section Outline • Administrative Issues • Semiconductor industry trends • Chip implementation methodologies • Design methodologies Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 2 Section Outline • Administrative Issues • Semiconductor industry trends • Chip implementation methodologies • Design methodologies Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 3 Administrative Issues • Class Time and venue:______________________________ Web page: http://www.ece.umn.edu/users/kia/Courses/EE5324 Textbook: J. M. Rabaey, "Digital Integrated Circuits: A Design Perspective", Prentice Hall, 2nd Ed., 2002 CAD software: o Cadence / HSpice / Magic? • Grades 40% homework and quizzes 25% midterm – open book. Date: ______________ 35% Final exam – open book. Date: ______________ Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 4 Administrative Issues • Personnel Instructor: Kia Bazargan o Email: kia@ece.umn.edu o Phone: (612) 625-4588 Office: EE/CSci 4-159 o Office hours: __________________________ TA: ______________ o Email: ______________________________ o Phone: ___________ Office: _____________ o Office hours: ___________________ Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 5 Administrative (cont.) • Policies Homework must be received before class o 1min – 24 hours late: 50% of the grade o > 24 hours late: 0% Spring 2006 Zero tolerance for cheating Collaboration OK, copying NOT OK Include ID on all homework, exams, etc. No extra work for extra credit Check the class web pages regularly, the students are responsible for checking the discussion threads and announcements regularly EE 5324 - VLSI Design II - © Kia Bazargan 6 Online Slides • Slides are posted on the web Handouts as .pdf file Powerpoint files provided too o NOTE: some slides are animated (like this one) o Click on the slide to see the animation o Click once more. o Note: some slides have notes! (like this one) o Some slides contain text that is not printed in the handouts, but animated. These are left for you to fill out in the handouts. An example is shown below (animated: click to see) This is a sample text, not printed, but animated Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 7 References and Copyright • Textbooks (only [Rab02] required) [WE92] N. H. E. Weste, K. Eshraghian “Principles of CMOS VLSI Design: A System Perspective” Addison-Wesley, 2nd Ed., 1992. [Rab02] J. M. Rabaey “Digital Integrated Circuits: A Design Perspective” Prentice Hall, 2nd Ed., 2002. [Par00] B. Parhami “Computer Arithmetic: Algorithms and Hardware Designs” Oxford University Press, 2000. [KL99] S. Kang, Y. Levlebici “CMOS Digital Integrated Circuits: Analysis and Design” McGraw-Hill, 2nd Ed., 1999. Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 8 References and Copyright (cont.) • Slides used: [©Hauck] © Scott A. Hauck, 1996-2000; G. Borriello, C. Ebeling, S. Burns, 1995, University of Washington (Modified by Kia when necessary) [©Prentice Hall] © Prentice Hall 1995, © UCB 1996 Slides for [Rab96] http://bwrc.eecs.berkeley.edu/Classes/IcBook/instructors.html Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 9 What is This Course All About? • Prerequisite Basic CMOS design Static/dynamic circuit design Layout / Simulation • What is different from “VLSI Design I”? Higher-level of design (closer to architecture) Emphasis on performance, processor cores, fault tolerance • What is covered? Spring 2006 Mostly arithmetic circuits Memories Test and testability New issues and design techniques EE 5324 - VLSI Design II - © Kia Bazargan 10 Course Outline • CMOS Designs Arithmetic & logic unit (ALU) o Bitwise operations o Datapath layout Adders o Basic adders: carry propagation, Carry Look-ahead, Manchester Carry Chain o More complex adders: Carry Save Adder, Brent-Kung o Fast adders: Carry-Select adder, Wallace tree Multipliers o o o o Spring 2006 Shift/Add multiplication Booth encoding Multiplication by constants Floating point multiplication EE 5324 - VLSI Design II - © Kia Bazargan 11 Course Outline (cont) • CMOS Designs (cont) Shift/Rotate operations Memories o Memory cells: static and dynamic o Memory arrays: address decoders, sensors and amplifiers • Test and testability Fault models Design techniques: scan design, built-in self-test • New design techniques/platforms CORDIC algorithms Bit-serial computations [Recent circuit examples] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 12 Section Outline • Administrative Issues • Semiconductor industry trends • Chip implementation methodologies • Design methodologies Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 13 IC Products • Processors CPU, DSP, Controllers • Memory chips RAM, ROM, EEPROM • Analog Mobile communication, audio/video processing • Programmable PLA, FPGA • Embedded systems Used in cars, factories Network cards • System-on-chip (SoC) Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan Images: amazon.com 14 IC Product Market Shares Source: Electronic Business Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 15 Semiconductor Industry Growth Rates Source: http://www.icinsight.com/ (McClean Report) Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 16 More Demand for EDA CAE = Computer Aided Engineering Source: http://www.edat.com/edac Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 17 Growth in System Size CAGR = Compound Annual Growth Rate Source: http://www.edat.com/edac Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 18 Example: Intel Processor Sizes Silicon Process 1.5m Technology 1.0m 0.8m 0.6m 0.35m 0.25m Intel386TM DX Processor Intel486TM DX Processor Pentium® Processor Pentium® Pro & Pentium® II Processors Source: http://www.intel.com/ Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 19 Section Outline • Administrative Issues • Semiconductor industry trends • Chip implementation methodologies • Design methodologies Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 20 Implementation Methodologies Digital Circuit Implementation Approaches Digital Ckt Implementation Approaches Custom Custom Semi-custom Semi custom Cell-Based Standard Cells Compiled Cells Macro Cells Array-Based Pre-diffused (Gate Arrays) Pre-wired (FPGA) [© Prentice Hall] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 21 Custom Design • Using Magic we can get exactly what we want. • However: Complex to design Takes weeks to fabricate High design costs High overhead (nonrecurring – NRE) costs How do we automate the mapping? [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 22 Standard Cells • Develop predefined implementations of basic gates with standard form-factor Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan [© Hauck] 23 Standard Cells • Use regular layout • Can automate the mapping process, but Takes weeks to fabricate No economies of scale PWR CELL CELLCELL 1 2 3 CELL 4 CELL CELL 5 6 GND ROUTING Cells PWR CELL 7 ROUTING CELL 8 CELL CELL 9 10 GND Cells ROUTING Cells ROUTING PWR CELL CELL CELL CELL CELL CELL 11 12 13 14 15 16 Cells ROUTING GND [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 24 Combined Standard Cell and Full Custom Use full custom for regular structures & critical paths Standard cells handle complex logic & non-critical logic [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 25 Mask-Programmable Gate Array (MPGA) • Prefabricate all but the metal layers [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 26 Sea-of-Gates (SOG) • Prefabricate all but the metal layers and the contacts [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 27 Discrete Components • Prefabricate lots of small, simple parts. Wire them together. Q D Q D Q D D Q D Q D Q [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 28 Programmable Logic Devices • Categories of prewired arrays (or fieldprogrammable devices): Fuse-based (program-once) Non-volatile EPROM based RAM based • Recently: VPGA (Via-Programmable Gate Array) Structured ASIC [© Prentice-Hall] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 29 Programmable Logic Devices PLA PROM PAL [© Prentice-Hall] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 30 Fabrication Process Revisited • Speed up fabrication & get economies of scale by prefabricating some layers (a) field oxide etching (b) p-well diffusion n-SUBSTRATE (d) gate oxidation (c) field oxide etching n-SUBSTRATE p-WELL n-SUBSTRATE p-WELL p-WELL n-SUBSTRATE (e) polysilicon definition (f) p-plus diffusion p+ n-SUBSTRATE p-WELL p+ n-SUBSTRATE n+ n+ p-WELL p-WELL p+ n+ n+ p-WELL (j) metalization p+ n-SUBSTRATE Spring 2006 p+ n-SUBSTRATE (i) contact cuts p+ n-SUBSTRATE (h) oxide growth (g) n-plus diffusion p+ p+ n+ n+ p-WELL p+ p+ n-SUBSTRATE EE 5324 - VLSI Design II - © Kia Bazargan n+ n+ p-WELL [© Hauck] 31 Programming Technologies • Mask-programmed • Antifuse Polysilicon Field Oxide N+ diffusion ONO Dielectric access gate • EPROM • EEPROM floating gate n+ source n+ drain P-Type Silicon Write ~Q • SRAM Q [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 32 RAMs, ROMs • Given a RAM/ROM with 8k memory locations, in 1k*8bit organization 10 address lines Can implement 8 arbitrary 10-input functions (but inefficiently) I1 I2 I3 ROM 000 001 010 011 100 101 110 111 A B C D E F G H [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 33 Field Programmable Gate Arrays (FPGAs) • Logic cells embedded in a general routing structure • Logic cells usually contain: 5-input function calculator Flip-flops • All features electronically (re)programmable RAM RAM RAM RAM RAM RAM M RAM RAM AM RAM RAM [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 34 Multi-Mode Systems Tektronix PhaserCard printer controllers Different configurations for different printers Andromeda Systems disk controller Field upgrades performed by modem Radius pivoting monitor Different configurations for landscape & portrait ROM FPGA Honeywell tape drive Different configurations for read & write operations Config1 Config2 Config3 Config4 [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 35 Microprocessors & Microcontrollers • Microcontrollers are simple 1-chip computers optimized for embedded control • Cheap, ubiquitous, can handle complex control flow (relatively slowly) CPU RAM I/O ROM Sensor Actuator [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 36 Digital Signal Processors (DSPs) • Fast multiply-accumulate for signal filtering, etc. REGISTER MUX MULTIPLIER REGISTER PC PROGRAM CONTROLLER Address REGISTER MUX Address MUX PROGRAM ROM SHIFTER DATA RAM ALU Program Bus ACCUMULATOR I/O CONTROLLER SHIFTER Data Bus [© Hauck] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 37 Digital Logic Implementation Alternatives Full Custom PWR CELL CELL CELL 1 2 3 CELL 4 CELL CELL 5 6 GND Standard Cells PWR CELL 7 CELL 8 CELL 9 CELL 10 GND Gate Arrays Field-Programmable Gate Arrays (FPGAs) i1 i2 i3 i4 i5 i6 Programmable Logic Devices o1 Discrete Components Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 38 To Probe Further... • D. G. Chinnery and K. Keutzer, “Closing the Gap Between ASIC and Custom: An ASIC Perspective”, Design Automation Conference (DAC), pp. 637-642, 2000. Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 39 Section Outline • Administrative Issues • Semiconductor industry trends • Chip implementation methodologies • Design methodologies Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 40 IC Design Steps (cont.) Specifications Spring 2006 High-level Description Structural Description Behavioral VHDL, C Structural VHDL EE 5324 - VLSI Design II - © Kia Bazargan Figs. [©Sherwani] 41 IC Design Steps (cont.) High-level Description Specifications Physical Design Placed & Routed Design Packaging Spring 2006 Structural Description Synthesis Technology Mapping Gate-level Design Fabrication EE 5324 - VLSI Design II - © Kia Bazargan Logic Description X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Figs. [©Sherwani] 42 IC Design Steps (cont.) High-level Description Specifications Physical Design Placed & Routed Design Packaging Spring 2006 Structural Description Synthesis Technology Mapping Gate-level Design Logic Description Fabrication EE 5324 - VLSI Design II - © Kia Bazargan 43 The Big Picture: IC Design Methods Design Methods Cost / Development Time Quality % Companies involved Full Custom Standard Cell Library Design ASIC – Standard Cell Design RTL-Level Design Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 44 Optimization: Levels of Abstraction • Gate-level Reduce fan-out, capacitance Gate duplication, buffer insertion • Layout Move transistors driven by late inputs closer to the output Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan Level of detail Encoding data, computation scheduling, balancing delays of components, etc. Effectiveness • Algorithmic 45 Where Is This Course in the Big Picture? • VLSI related courses: VLSI CAD EE 5301 VLSI Design EE 5323 VLSI Design Automation I VLSI Design I EE 5302 EE 5324 VLSI Design Automation II VLSI Design II EE 5333 Analog Integrated Circuit Design Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan Others EE 4301 Digital Design With Programmable Logic EE 5329 VLSI Digital Signal Processing Systems EE 5549 Digital Signal Processing Structures for VLSI 46 Full Custom Design Structural/RTL Description Component Design Ctrl Mem Reg File Comp. Unit Place & Route I/O ... PLA comp RAM A/D Floorplan [©Sherwani] Layouts [© Prentice Hall] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 47 ASIC Design HDL Programming Structural/ RTL Description P_Inp: process (Reset, Clock) begin if (Reset = '1') then sum <= ( others => '0' ); input_nums_read <= '0'; sum_ready <= '0'; Ctrl Mem Reg File Comp. Unit add82 : kadd8 port map ( a => add_i1, b => add_i2, ci => carry, s => sum_o); Mult_i1 <= sum_o(7 downto 0); D C Spring 2006 B C A D C C C C C D C B B Cell library A C B D EE 5324 - VLSI Design II - © Kia Bazargan Floorplan [©Sherwani] 48 More Issues to Consider • Area/speed trade-off • Power consumption a new factor static mirror look-ahead manchester bypass 60 select Area (mm2) 80 tp(sec) 0.4 40 select look-ahead 20 0 0 static bypass mirror 0.2 manchester 10 20 0 0 N 10 20 N [© Prentice Hall] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 49 More Issues to Consider (cont.) • Aspect ratio, area budgets, datapath layout • Power and clock grid Wires (M1) Signal wires (M2) GND Well VDD Signal wires (M2) Control wires (M1) Well GND Figures: [© Prentice Hall] GND Approach I — Signal and power lines parallel Spring 2006 GND VDD Approach II — Signal and power lines perpendicular EE 5324 - VLSI Design II - © Kia Bazargan 50 Datapath Layout Example: Adder Standard cell layout Bit-slice cell layout [WE92] p.521 Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 51 Architecture of a CPU Flags: overflow, zero, etc. Control Read/write Mem Spring 2006 Register File Data path EE 5324 - VLSI Design II - © Kia Bazargan 52 Arithmetic and Logic Unit (ALU) • Functions Arithmetic (add, sub, inc, dec) Logic (and, or, not, xor) Comparison (<, >, <=, >=, !=) • Control signals Function selection Operation mode (signed, unsigned) • Output Operation result (data) Flags (overflow, zero, negative) Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 53 Simple ALU Example Bit 3 Bit 2 Bit 1 Data Out Multiplexer Shifter Adder Register Data in Control Bit 0 Tile identical processing elements [© Prentice Hall] Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 54 EE 5324 – VLSI Design II Part I, Appendix: FPGA Architectures Kia Bazargan University of Minnesota Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 55 FPGA Architecture - Layout • Island FPGAs Array of functional units Horizontal and vertical routing channels connecting the functional units Versatile switch boxes Example: Xilinx, Altera • Row-based FPGAs Like standard cell design Rows of logic blocks Routing channels (fixed width) between rows of logic Example: Actel FPGAs Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 56 FPGA Architecture: Functional Units • Functional units RAM blocks (Xilinx): implement function truth table Address lines (input) output Multiplexers (Actel): build Boolean functions using muxes Logic gates, flip-flops: Such as carry chains. Used for high-performance computations Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 57 Programmable Switch Elements • Used in connecting: The I/O of functional units to the wires A horizontal wire to a vertical wire Two wire segments to form a longer wire segment Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 58 Programmable Switch Elements: Implementation • SRAM connected to the gate of a transistor (Xilinx) symbol implementation symbol implementation • Fuse / Anti Fuse (Actel) Note: Switches degrade the signals slow down Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 59 Routing Channels • Note: fixed channel widths (tracks) • Should “predict” all possible connectivity requirements when designing the FPGA chip • Channel -> track -> segment track segment channel • Segment length? Long: carry the signal longer, less “concatenation” switches, but might waste track Short: local connections, slow for longer connections Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 60 Routing Channels (cont.) • Segment offset? • Hierarchy? Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 61 Switch Boxes • Ideally, provide switches for all possible connections • Trade-off: Too many switches: o Large area o Complex to program Too few switches: o Cannot route signals One possible solution Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan Xilinx 4000 62 Operation Example • 4-bit ripplecarry adder Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 63 Programming • How to access all programmable elements? Pin limitation - Chain all config bits in a shift register or use pipelining - Partition the elements into subsets, treat each as a memory block Feasibility of access (Actel example) - Consider the problem when designing the FPGA architecture - Carefully schedule the programming • Are there “invalid” configurations? - Yes! If two functional units drive same line - Avoid at architectural design or when prog Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 64 Programming (cont.) • Too much detail! (tens of bits for each cell/switch block) Automated placement, routing and programming Design a simple structure so that tools can handle • Partially reconfigurable? Extra control circuitry, more flexibility Runtime reconfigurable? (avoid conflicts with running components) Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 65 Pros and Cons • General architecture Slower than ASIC Less logic capacity (solution: reuse silicon area through reconfiguration) Flexible • Customization helps Instantiate many small processing elements parallel processing Some operations faster (e.g., constant multiplication, bit-wise operations) More operations in parallel reduce clock speed reduce power consumption Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 66 New Challenges • Balance between elements Data memory Configuration memory Special-purpose functional units Fine- vs. coarse-grain functional units • Communication bandwidth • Fast automatic tools • Versatile libraries Spring 2006 EE 5324 - VLSI Design II - © Kia Bazargan 67