ECE 459/559 Secure & Trustworthy Computer Hardware Design

Similar documents
Lab. Course Goals. Topics. What is VLSI design? What is an integrated circuit? VLSI Design Cycle. VLSI Design Automation

Spiral 2-8. Cell Layout

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

Design Methodologies

Lecture 3 Introduction to VHDL

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

VLSI Design Automation

An Overview of Standard Cell Based Digital VLSI Design

Field Programmable Gate Array

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

VLSI Design Automation

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

System-on-Chip Design for Wireless Communications

C-Based Hardware Design

FABRICATION TECHNOLOGIES

An overview of standard cell based digital VLSI design

EE595. Part VIII Overall Concept on VHDL. EE 595 EDA / ASIC Design Lab

Synthesizable FPGA Fabrics Targetable by the VTR CAD Tool

Implementing Tile-based Chip Multiprocessors with GALS Clocking Styles

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline

FPGAs: FAST TRACK TO DSP

Evolution of CAD Tools & Verilog HDL Definition

EE 434 ASIC & Digital Systems

Hardware Synthesis. References

VLSI Design Automation. Calcolatori Elettronici Ing. Informatica

RTL Coding General Concepts

Design Methodologies and Tools. Full-Custom Design

101-1 Under-Graduate Project Digital IC Design Flow

CHAPTER 1 INTRODUCTION

EE 330 Laboratory Experiment Number 11

Fundamental Design Concepts. Fundamental Concepts. Modeling Domains. Basic Definitions. New terminology and overloaded use of common words

Don t expect to be able to write and debug your code during the lab session.

COE 561 Digital System Design & Synthesis Introduction

ESE 570 Cadence Lab Assignment 2: Introduction to Spectre, Manual Layout Drawing and Post Layout Simulation (PLS)

FPGA Based Digital Design Using Verilog HDL

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

EE 434 Lecture 30. Logic Design

Design & Implementation of 64 bit ALU for Instruction Set Architecture & Comparison between Speed/Power Consumption on FPGA.

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

Best Practices for Incremental Compilation Partitions and Floorplan Assignments

ProASIC PLUS FPGA Family

TSIU03, SYSTEM DESIGN LECTURE 2

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Inferring Storage Elements

Introduction to VHDL. Module #5 Digilent Inc. Course

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification

Lecture 4. VHDL Fundamentals. George Mason University

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Lecture 12 VHDL Synthesis

EE 466/586 VLSI Design. Partha Pande School of EECS Washington State University

Digital System Design Lecture 2: Design. Amir Masoud Gharehbaghi

Chapter 5: ASICs Vs. PLDs

VHDL simulation and synthesis

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool

RIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM. SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8)

Hardware Verification Group. Department of Electrical and Computer Engineering, Concordia University, Montreal, Canada. CAD Tool Tutorial.

A physical level perspective

Maximizing Logic Utilization in ex, SX, and SX-A FPGA Devices Using CC Macros

תכן חומרה בשפת VERILOG הפקולטה להנדסה

EE-382M VLSI II. Early Design Planning: Front End

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

EE 330 Laboratory Experiment Number 11 Design, Simulation and Layout of Digital Circuits using Hardware Description Languages

Introduction to VHDL #1

Introduction to ICs and Transistor Fundamentals

Digital Design with FPGAs. By Neeraj Kulkarni

VHDL Quick Start. Edward Gatt

UNIT V: SPECIFICATION USING VERILOG HDL

Q.1. Attempt any TEN of the following: (a) Define the term Noise Margins. Ans: [Define: 2 M]

VLSI Design Automation. Maurizio Palesi

ASIC Products Application Note

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

EITF35: Introduction to Structured VLSI Design

FPGA based Design of Low Power Reconfigurable Router for Network on Chip (NoC)

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

EE 330 Laboratory Experiment Number 11 Design and Simulation of Digital Circuits using Hardware Description Languages

E 4.20 Introduction to Digital Integrated Circuit Design

CCE 3202 Advanced Digital System Design

Digital Integrated Circuits A Design Perspective. Jan M. Rabaey

ECE 545 Lecture 12. FPGA Resources. George Mason University

Introduction to VHDL Design on Quartus II and DE2 Board

VLSI Test Technology and Reliability (ET4076)

Lecture 2: Introduction to System Design, VHDL Basics. TIE Logic Synthesis Arto Perttula Tampere University of Technology Fall 2017

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004

ISE Design Suite Software Manuals and Help

Lab 3: Standard Combinational Components

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL

Digital System Design

Chapter 2 Getting Hands on Altera Quartus II Software

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 10/25/16

Advanced module: Video en/decoder on Virtex 5

TRAFFIC LIGHT CONTROLLER USING VHDL

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements

Lab 3 Verilog Simulation Mapping

Design Methodologies. Digital Integrated Circuits A Design Perspective. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic.

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997.

Metodologie di progetto HW Il test di circuiti digitali

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Design Progression With VHDL Helps Accelerate The Digital System Designs

Transcription:

ECE 459/559 Secure & Trustworthy Computer Hardware Design VLSI Design Basics Garrett S. Rose Spring 2016

Recap Brief overview of VHDL Behavioral VHDL Structural VHDL Simple examples with VHDL Some VHDL for SIMON encryption

Summary Circuit-level view Transistors as switches Static CMOS circuits Top-down design flows VHDL to silicon

Some General Terms VLSI Very Large Scale Integration CMOS Complimentary Metal-Oxide Semiconductor ASIC Application Specific Integrated Circuit FPGA Field Programmable Gate Array SoC System on Chip NoC Network on Chip HDL Hardware Description Language (VHDL or Verilog) RTL Register Transfer Language

Transistors as Switches We can view MOS transistors as electrically controlled switches Voltage at gate controls path from source to drain g = 0 g = 1 nmos g d s d s OFF d s ON pmos g d s d s ON d s OFF

CMOS Inverter A 0 1 Y A V DD Y A Y GND

CMOS Inverter A Y 0 1 0 A Y V DD OFF A=1 Y=0 ON GND

CMOS Inverter A Y 0 1 1 0 A Y

More Complex Gates: Pull-Up and Pull-Down Nets Pull-up net (PUP) off when pulldown (PDN) on PUP implemented as complement of PDN (Complementary MOS) If two FETs in parallel in PDN, counterparts in series in PUP Output (Y) connected to V DD or GND, never both

More Complex Gates: Pull-Up and Pull-Down Nets Pull-up net (PUP) off when pulldown (PDN) on PUP implemented as complement of PDN (Complementary MOS) If two FETs in parallel in PDN, counterparts in series in PUP Output (Y) connected to V DD or GND, never both

CMOS NAND Gate A B Y 0 0 0 1 1 0 1 1 A B Y

CMOS NAND Gate A B Y 0 0 1 0 1 1 0 A=0 ON ON Y=1 OFF 1 1 B=0 OFF

CMOS NAND Gate A B Y 0 0 1 0 1 1 1 0 A=0 OFF ON Y=1 OFF 1 1 B=1 ON

CMOS NAND Gate A B Y 0 0 1 0 1 1 1 0 1 A=1 ON OFF Y=1 ON 1 1 B=0 OFF

CMOS NAND Gate A B Y 0 0 1 0 1 1 1 0 1 A=1 OFF OFF Y=0 ON 1 1 0 B=1 ON

CMOS NAND Gate A B Y 0 0 1 0 1 0 1 0 0 1 1 0 A B Y

3-Input NAND Gate Y pulls low if ALL inputs are 1 Y pulls high if ANY input is 0 A Y B C

The ASIC The term ASIC has been applied to many design styles Technically, refers only to application specific circuits (i.e., any microchip you design yourself) Often, ASIC is used to refer to automated designs developed using some hardware description language Usually want an ASIC fast clear design flows applied ASICs are low volume integrated circuits In recent years, ASICs are less common since an FPGA can be used to implement desired function -- Some might say... FPGA is the new ASIC

Typical ASIC Design Flow Requirements RTL Model Simulate Synthesize Gate-level Model Simulate Test Bench ASIC/SoC Place & Route Timing Model Simulate

ASIC Design Steps RTL design and verification must write the HDL code Can use VHDL or Verilog Synthesis compiles HDL design description into a gate level netlist Floorplanning before place & route, must decide where functional modules will be placed on the die or FPGA Place & Route Placement determines where standard cells are placed Routing adds wires (configures switch blocks) connecting gates to implement final design Every step must include simulation & verification

Placement of Cells ASIC Standard Cell View

System on Chip (SoC) SoC implies a system of fairly high level blocks (e.g., memory, processors, DSP, etc.) integrated into one design SoC often refers to heterogeneous systems encompassing a great deal of functionality, often mixed signal Complex blocks are designed individually and not modified at the highest level each block essentially a black box Designers often use intellectual property (IP) cores for the building blocks of higher level designs Repository of useful, yet free IP: www.opencores.org

System on Chip Design -- Revision: -- Revision 0.01 - File Created -- Additional Comments: -- ------------------------------------------------------------------------------ -- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity SRAD_Top is Port ( clk : in std_logic; ExtRST : in std_logic; NewFrm : in std_logic; DataIn : in std_logic_vector(7 downto 0); Addr_R : out std_logic_vector (13 downto 0); Dsp_Addr : out std_logic_vector (13 downto 0); DataOut : out std_logic_vector(7 downto 0); InAdMux : out std_logic; DisAdMux : out std_logic; Dsp_WE : out std_logic; VGA_Ena : out std_logic; SRAD_Clk : out std_logic ); end SRAD_Top; Start with high level HDL description Some blocks synthesized from HDL, some custom Research opportunities in power/temp. management, interconnection issues, etc. Example: an ultrasound image processing system architecture Structure of SRAD_Top is COMPONENT Antilog Port ( D : in std_logic_vector(7 downto 0);

SoC Communication On-chip communication major design consideration for IP blocks Shared Bus (broadcast) Low area Poor scalability High energy consumption Network on Chip (point-to-point) Scalability Low energy consumption High area

Bus Basics Bus communications follows strict order serial nature Module 1 Module 2 Module 3 Module 4 First Second Can broadcast multiple destinations at the same time Module 1 Module 2 Module 3 Module 4

Bus Basics Bus communication operates in units of cycles, messages and transactions

Network on Chip (NoC) As more and more complex systems are integrated, interconnection becomes a critical issue An NoC is literally a network (usually passing packets) on the chip not unlike the networks of macroscopic systems such as supercomputers, LANs, or the internet NoC has become more attractive since bus architectures only allow two devices to communicate at a time The on-chip network can be implemented in a variety of ways such as a simple crossbar, Clos, mesh, and so on

Network on Chip (NoC) Networks can be implemented on chip to circumvent issues: Synchronization NoC may be globally asynchronous Multiple paths to avoid faults and allow many connections Cool, low-power operation

Design Flow Revisited Some tools useful in flow: RTL Verification ModelSim Synthesis Design Compiler Place & Route Cadence Encounter RTL (register transfer level) code written in VHDL or Verilog using any text editor (e.g., gedit on Linux) can be verified using NCLaunch, ISim or ModelSim Design Compiler takes high level HDL code and synthesizes to a gate-level netlist (this is a Verilog netlist) Encounter takes the Verilog netlist from Design Compiler as input to place and route the final design

Design Flow Revisited Silicon RTL Design Behavioral Design VHDL ModelSim Verify Design Compiler Synthesis Verilog Netlist Encounter ModelSim (with library) Place & Route Verify Final Layout

Design Flow Revisited FPGA RTL Design Behavioral Design VHDL ModelSim Verify ISE/Vivado/XST Netlist Synthesis (fairly generic) ModelSim (with library) Verify ISE/Vivado Prog File Design Implementation -- Translate, Map, Place & Route (mostly proprietary)

Still More... RTL Design VHDL Simulation Each stage has verification and loop(s) back ISE/Vivado/XST Netlist Simulation ISE/Vivado Final Design Timing Analysis Power Analysis Equivalence

What the Designer Controls HDL description likely starts high-level then becomes more structured with time It all starts here... Constraints extra files are included with HDL indicating performance targets to synthesis and other tools Timing constraints needed to meet performance targets Pin placement also falls under constraints Can constrain tool to place blocks at certain locations CAD tool options tools can be tweaked to use different algorithms, seed parameters, etc.

Coding for Circuits The design always begins with the initial behavioral description the RTL code The RTL description is a very high level form written in some HDL, either VHDL or Verilog RTL describes the design in terms of microarchitectural components such as registers & ALUs A lower level HDL form would be a gate level netlist and even lower than that is transistor level -- netlists can be written in an HDL such as Verilog

Relationship to Security? Fault-injection attacks force circuit-level faults to disrupt desired behavior Hardware Trojans circuit- and/or logic-level circuits added to a design for malicious purposes Reverse engineering need to hide design details at all levels (circuit, logic, RTL, etc.) How would you encrypt a circuit (design and implementation)? Several mitigation techniques exist for HW security that can be applied at various levels of abstraction