CSCI 660 CSCI-660 Introduction to VLSI Design Khurram Kazi

  • View
    220

  • Download
    2

Embed Size (px)

Text of CSCI 660 CSCI-660 Introduction to VLSI Design Khurram Kazi

  • Slide 1
  • CSCI 660 CSCI-660 Introduction to VLSI Design Khurram Kazi
  • Slide 2
  • CSCI 660 2 Course Outline Overview of ASIC design flow VHDL targeted for Synthesis Synthesis Constraining and Optimizing Design Area and Timing reports Verification Self Checking Design Verification Concepts Behavioral modeling for Test Benches in VHDL SystemC Verilog for Synthesis Gate Level Verification
  • Slide 3
  • CSCI 660 3 Recommended Books + useful links 1.HDL Programming Fundamentals; VHDL and Verilog, Nazeih, B. Botros, Da Vinci Engineering Press, 2006, ISBN: 1-58450-855-8 2.The Designer's Guide to VHDL (2nd edition), ISBN 978-1- 55860-674-6, Publisher: Morgan Kaufman, May 2001 3.Verilog HDL, Samir Palnitkar, 2nd Edition, SunSoft Press; A Prentice Hall Title, 2003, ISBN: 0-13-044911-3 4.Verification Methodology Manual for SystemVerilog (Hardcover), by Janick Bergeron, Eduard Cerny, Alan Hunter, Andy Nightingale, Springer; 1 edition (September 28, 2005), ISBN-10: 0387255389 5.Advanced ASIC Chip Synthesis: Using Synopsys Design Compiler and PrimeTime, Himanshu Bhatnagar, Kluwer Academic Publishers, 2nd Edition, ISBN: 0-7923-7644-7 http://ece.gmu.edu/courses/ECE545/index.htm This webpage has tons of useful information!! Go over the ModelSim content as we will be using it as the simulator
  • Slide 4
  • CSCI 660 4 Tools used in the course Mentor Graphics ModelSim VHDL simulator Verilog simulator System Verilog simulator Synopsys Synthesis tool Static Timing Analysis Remote access to our tools is available Please send an email to Mike Madigan mmadigan@nyit.edu for remote access account
  • Slide 5
  • CSCI 660 5 Grading Policy Homework/Short Quizzes 30% 1 Midterm Test30% Final Project40% Final Projects will be customized to your field of specialization, may it be in Data Networking, Cryptography, Specialized Arithmetic Operations, DSP, Computer Architecture etc. Oral and written communication skills will be stressed in this course and taken into account for the final grade
  • Slide 6
  • CSCI 660 6 Dos and Donts for the Final Project DO NOT use any off the shelf general purpose microprocessor or any other circuit taken from the publicly available information base. I will know if you did!! Come up with your own functional idea and Implement it. Be creative ! Have a systems perspective and see how your design fits in the system. By mid semester have a good idea of your project Team of 2 students working on the same project is allowed. Each team members task within the project should be explicitly defined.
  • Slide 7
  • CSCI 660 7 Teamwork Encouraged: How much collaboration is acceptable Since time will be short, I would encourage you to help out your fellow students with the Usage of the Tools but not the Design. Informing me of the help received is strongly encouraged, i.e. give credit where credit is due!! Helping fellow students with Tools usage and class participation will be rewarded in the final grade.
  • Slide 8
  • CSCI 660 8 Where to Start in the ASIC Process! Begin with ASIC (Application Specific Integrated Circuit) Specification Most likely by the time you are done with the design the Final Spec. will be quite different than the original ideas Based on performance and functional requirements define operating frequencies, I/O pad types, operating conditions, verification and test requirements to ensure error free design and manufacturability of it
  • Slide 9
  • CSCI 660 9 Implication of the Designs we work on; keep few things in mind! During the design process we always make trade-offs Trade-offs can be based on time to market, cost implications, complexity, environmental considerations etc. Ethics: Keep in mind the implications of what you are designing, how it impacts the society!! Digital designs inherently deal with Implementing approximate solutions Power consumption considerations: Making the Designs Green; Environmental friendly!! Cost/performance trade-offs
  • Slide 10
  • CSCI 660 10 Implication of the Designs we work on; keep few things in mind! Few bad approximations lead to Example: Failure of Patriot Missile (1991 Feb. 25) Source http://www.math.psu.edu/dna/455.f96/disasters.html American Patriot Missile battery in Dharan, Saudi Arabia, failed to intercept incoming Iraqi Scud missile The Scud struck an American Army barracks, killing 28 Cause, per GAO/IMTEC-92-26 report: software problem (inaccurate calculation of the time since boot) Specifics of the problem: time in tenths of second as measured by the systems internal clock was multiplied by 1/10 to get the time in seconds Internal registers were 24 bits wide 1/10 = 0.0001 1001 1001 1001 1001 100 (chopped to 24 b) Error @ 0.1100 1100 2 23 @ 9.5 10 8 Error in 100-hr operation period @ 9.5 10 8 100 60 60 10 = 0.34 s Distance traveled by Scud = (0.34 s) (1676 m/s) @ 570 m, this put the Scud outside the Patriots range gate. Ironically, the fact that the bad time calculation had been improved in some (but not all) code parts contributed to the problem, since it meant that inaccuracies did not cancel out
  • Slide 11
  • CSCI 660 11 Implication of the Designs we work on; keep few things in mind! Few bad approximations lead to Example: Explosion of Ariane Rocket (1996 June 4) Source http://www.math.psu.edu/dna/455.f96/disasters.html Unmanned Ariane 5 rocket launched by the European Space Agency veered off its flight path, broke up, and exploded only 30 seconds after lift-off (altitude of 3700 m). The $500 million rocket (with cargo) was on its 1st voyage after a decade of development costing $7 billion Cause: software error in the inertial reference system Specifics of the problem: a 64 bit floating point number relating to the horizontal velocity of the rocket was being converted to a 16 bit signed integer An SRI* software exception arose during conversion because the 64-bit floating point number had a value greater than what could be represented by a 16-bit signed integer (max 32 767)
  • Slide 12
  • CSCI 660 12 Overview of some of the steps in an ASIC design flow RTL code implies synthesizable HDL code
  • Slide 13
  • CSCI 660 13 RTL Block Synthesis* *Simplified design flow
  • Slide 14
  • CSCI 660 14 Insert Test Structure (Internal Scan and JTAG)* *Simplified design flow Note that we will not cover JTAG or insertion of the boundary scan in this class
  • Slide 15
  • CSCI 660 15 Insert Test Structure (Internal Scan and JTAG)* *Simplified design flow Note that we will not cover JTAG or insertion of the boundary scan in this class
  • Slide 16
  • CSCI 660 16 Insert I/O Pads* *Simplified design flow
  • Slide 17
  • CSCI 660 17 ASIC Floorplan* *Simplified design flow
  • Slide 18
  • CSCI 660 18 Getting ASIC Ready for Handoff* *Simplified design flow
  • Slide 19
  • CSCI 660 19 Brief History of VHDL VHDL is a language used for designing and simulating digital hardware. It has been adopted by the electronics industry worldwide. Another Language that is also widely used is Verilog VHDL is an acronym for V HSIC ( V ery H igh S peed I ntegrated C ircuit) H ardware D escription L anguage VHDL originally was used for specifications Subsequently was used for simulating designs Finally its scope evolved into its usage for synthesizing digital designs
  • Slide 20
  • CSCI 660 20 Levels of Abstraction Slide taken from K.Gaj lectures at GMU Algorithmic level Register Transfer Level Logic (gate) level Circuit (transistor) level Physical (layout) level Level of description most suitable for synthesis
  • Slide 21
  • CSCI 660 21 Register Transfer Logic (RTL) Slide taken from K.Gaj lectures at GMU Combinational Logic Combinational Logic Registers
  • Slide 22
  • CSCI 660 22 Levels at which VHDL can be used Slide taken from K.Gaj lectures at GMU VHDL for Simulation VHDL for Synthesis VHDL for Specification
  • Slide 23
  • CSCI 660 23 Typical HDL Design Environment Testbench (Generator In C or HDL) Testbench (Analyzer In C or HDL) HDL Design (VHDL or Verilog Reference Model ( In C or Functional HDL) HDL (Hardware Description Language) can typically be either VHDL or Verilog
  • Slide 24
  • CSCI 660 24 Overview of VHDL Library and Library Declarations Entity Declaration Architecture Configuration
  • Slide 25
  • CSCI 660 25 Overview of VHDL Package (typically compiled into the destination library) contains commonly used declarations Constants maybe defined here Enumerated data types (Red, Green, Blue) Combinatorial functions (performing a decode function; returns single value) Procedures (can return multiple values) Component declarations
  • Slide 26
  • CSCI 660 26 Overview of VHDL: Example of Library Declaration LIBRARY library_name;--comments USE library_name.package_name.package_parts;-- VHDL is case -- insesitive Typically there are three different libraries used in a design 1) ieee.std_logic_1164 (from the ieee library) 2) standard (from the std library) 3) work ( work library) std_logic_1164 : Specifies the STD_LOGIC (8 levels) and the STD_ULOGIC (9 levels) multi-values logic systems std : It is a resource library (data types, text i/o, etc.) work : This is where the design is saved Library ieee;-- A semi-colon (;) indicates the end of a statement or a declaration USE ieee