adsd fall2015 01 designspaceexploration designmthodologies

102
Dr. Rehan Hafiz <[email protected]> Lecture # 01

Upload: lovelyosmile253

Post on 12-Dec-2015

15 views

Category:

Documents


7 download

DESCRIPTION

VLSI Signal Processing Systems, Parhi

TRANSCRIPT

Page 1: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Dr. Rehan Hafiz <[email protected]>Lecture # 01

Page 2: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Course Information

Couse Websitehttp://lms.nust.edu.pk/

Lectures: Monday (1700-1750), Wednesday (1800-1950)Contact: By appointment/Email, or 1700-1900 hrs MondayOffice: A116- Faculty Block, SEECS, Building

Acknowledgement: Material from the following sources has been consulted/used in these

slides:

1. [SHO] Digital Design of Signal Processing System by Dr Shoab A Khan

2. [SAM] Samir Palnitkar, “Verilog HDL”, Prentice Hall, ISBN: 0130449113. , Latest Edition

3. [STV] Advanced FPGA Design, Steve Kilts

4. [PAR] VLSI Signal Processing Systems, Parhi

Material/Slides from these slides CAN be used with following citing reference:

Dr. Rehan Hafiz: Advanced Digital System Design 2015

Creative Commons Attribution--ShareAlike 3.0 Unported License.

Page 3: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Today’s Lecture

Introduction

What are Digital Systems ?

What shall you learn in this course ?

Where you can apply the learned knowledge?

Will this course open any new job horizon for you ?

Page 4: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Introduction - Mine4

Area

PhD in Reconfigurable System Design for Optical Tomography form The University of Manchester (2008)

Digital System Design for complex algorithms

Digital Image Processing, Video Registration, Immersive Displays

Activities

Group Director : VISpro Vision Imaging & Signal Processing Research Group

Head: Digital Systems & Signal Processing Knowledge Group (Summer 2009-2011)

Projects

Ultra High Definition Panorama Generation & Rendering (with ETRI Korea)

Digital Image Calibration for Multi Projector Displays (with Epic Technologies)

A Multi View Imaging (MVI) Processing Platform: FPGA based Real Time Panoramic Mosaic Generation (Funded by ICT R&D Fund)

Have been part of the project “Design and Verification of Low-Power, High-Speed IP Suite for Universal Serial Bus (USB 3.0)” with Dr. Nazar (Funded by ICT R&D Fund)

[http://vispro.seecs.nust.edu.pk/]

Page 5: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

5

Vision System Design

Image Processing

Digital System Design

Low Level Computer

Vision

VISpro Vision Image & Signal Processing LabSEECS-NUST

In 2009 founded the

Page 6: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

LL L C RRR

Stitching SystemGeometric Warping | Color Correction | Blending

Rendering SystemAutomatic Geometric Alignment | Projector Color Matching | Warping

Demonstration of the developed system

Ultra High Definition (UHD)Panorama Generation &

Rendering System

VISproVision Image & Signal

Processing Lab, SEECSSouth Korea

A system capable of performing Ultra High Definition (UHD) panoramic stitching & multi-

projection rendering.

Applications• Planetarium Displays• Tele-Broadcasting• Dome Displays for Museums• Wide Display Screens for Control

Rooms

Technical Outcomes• 1 International Patent Accepted• 7 International Patents Pending• 5 Journal Papers• 1 Conference Paper

Stitched Panoramic Frame

Page 7: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Similar Ladybug System that is being used for Google Street View

VISproVision Image & Signal

Processing Lab, SEECS

A hardware based standalone system for panorama generation

Applications• Video & Geological Surveillance• Armed Personal Vehicles (APVs)• Surveys

Innovation & Commercialization• 2 Journals + 1 Conference• Developed IP for real time

Stitching

Real Time Panorama Generation System

National ICT R&D Fund

Ministry of IT

Epic Technologies, Pakistan

• Developed a Verilog IP for Panoramic Stitching• Verilog IP evaluated on a standalone FPGA board

Page 8: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

COPRO VISION – (JOINT MS THESIS)

8

Vision System Design

Image Processing

Digital System Design

Low Level Computer

Vision

VISpro Vision Image & Signal Processing LabSEECS-NUST

Chair of Embedded SystemsKarlsruhe Institute of Technology, Germany

Designing of Approximate Circuits for Image Processing & Computer Vision

Co-processor designing for image and computer vision algorithms

Page 9: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

9

1. M. Shafique, W. Ahmad, R. Hafiz, Jörg Henkel, A low latency Generic Accuracy Configurable Adder in ACM/EDAC/IEEE 52nd Design Automation Conference (DAC), San Francisco, CA, USA, June 8-12, (2015)

2. M. Ahmad, A. Kamboh & R. Hafiz, "Power & Throughput Optimized Lifting Architecture for Wavelet Packet Transform", IEEE International Symposium on Circuits and Systems ISCAS 2014 (June 2014, Melbourne)

3. R. Bilal, R. Hafiz, M. Shafique, S. Shoaib, A. Munawar, and Jorg Henkel. "ISOMER: Integrated selection, partitioning, and placement methodology for reconfigurable architectures." In Computer-Aided Design (ICCAD), 2013 IEEE/ACM International Conference on, pp. 755-762.

Published in Top 3 conferences in the area of Hardware & Architecture in 2013, 2014 & 2015

*Only paper from a Pakistani university in DAC 2015

Page 10: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Need for Approximate Computing

• “Minimum Computational Effort” for“Acceptable Computational Goal”

𝐴 =1000

10𝐵 =

1000

916

( A > 1 ) ? ( B > 1.102 ) ?

Both Computations Require Same Computational Effort?

Gave an invited talk on “Approximate Computing ” in University of Malaya, Malaysia in March 2015

Page 11: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

11A low latency Generic Accuracy Configurable Adder, DAC 2015

Page 12: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Start looking through various

SEECS Research Group NOW

Page 13: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

What are Digital Systems ?

Page 14: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

A digital system[1] is a data technology that uses discrete (discontinuous) values – No Analogue

^ Tocci, R. 2006. Digital Systems: Principles and Applications (10th Edition). Prentice Hall. ISBN 0-13-172579-3

http://www.youwall.com/index.php?ver=NDAwNg==

Page 15: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Digital Life Starts from ADC…or is inherently Digital

Page 16: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

So what --- What’s the use ?

Where can I apply the learned

knowledge?

Can I see “Digital System Design” in

action ?

Page 17: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Digital Systems….

Wherever – you have discrete values to process… Micro-Processors….. Core i5, Core i7 Digital Signal Processing

Audio Processing – MP3 Players, Equalizers Image Processing – Cameras, Loads of Processing Sensing --- Medical Equipment Video Processing – Display Technologies, UHD

Resolution, Disparity Tracking….. Simple example : Face Focusing

Communication – Mobile Phones, Smartphones…

Endless List

Page 18: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

[SHO]

Page 19: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

What shall I learn in this course ?

Page 20: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

The Course…20

After successful completion of this course the students shall be

able to port complex algorithms to hardware by designing efficient

data-paths and controllers; handle cross clock domain issues and

shall have the desired knowledge to optimize design for meeting

design specifications (speed, area, timings)

The related relevant courses in your stream are:

ASIC Design Methodology

Advanced VLSI System Design

The course has NO associated LAB credit hours. However, interested

students can contact me.

Page 21: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Course Outline

Week Topic Description/ Lecture Breakdown

1 Introduction Outline & Introduction

Initial Assessment of students

Digital design methodology & design flow

2 Verilog+

Combinational Logic

Combinational Logic Review + Verilog Introduction

Combinational Building Blocks in Verilog

3 Verilog + Sequential

Logic

Sequential Common Structure in Verilog (LFSR /CRC+ Counters + RAMS)

Sequential Logic in Verilog

4 Synthesis in Verilog Synthesis of Blocking/Non-Blocking Statements

5 Micro-Architecture

Controllers

Design Partitioning + RISC Microprocessor

Micro-programmed & State machine based controllers. A case study of

object tracking

6 Optimizing Speed Architecting Speed in Digital System Design: [Throughput, Latency,

Timing]

7 Optimizing Area Architecting Area in Digital System Design: [Area Optimization]

8 FIR Implementation FIR Implementations + Pipelining & Parallelism in Non Recursive DFGs

Page 22: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Course Outline

Week Topic Description/ Lecture Breakdown

10 Cross Clock Domain (CDC)

Issues

Cross-Clock Domain Issues & RESET circuits

11 Fixed-Point Arithmetic &

Addition

Q-Format Arithmetic, Fast Adders, Multi-Operand Addition

12 Multipliers Multiplication , Multiplication by Constants + BOOTH Multipliers

13 Approximate Computing Approximate Arithmetic Units : Adders, Multipliers

13 CORDIC CORDIC (sine, cosine, magnitude, division, etc)

CORDIC implementation in HW

14 Algorithmic Transformations

for Recursive DFGs

15 High Level Design, HW-SW Co-Design

Paper Reading

16 Algorithmic Transformations

for Recursive DFGs

DFG representation of DSP Algorithms, Iteration Bound, Retiming

, Unfolding, Look ahead transformations

17 Project Project Presentations

Page 23: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

1 Introduction: Course Overview, Design Space Exploration, Digital design methodology

2 Understanding FPGAs, (Xilinx FPGA Architecture) Verilog Introduction : Combinational

Building Blocks in Verilog

3 Sequential Common Structure in Verilog (LFSR /CRC+ Counters + RAMS)

4 Synthesis of Blocking/Non-Blocking Statements

Design Partitioning & Micro Architectures

5 Micro-Coded Controllers TERM PROJECT-START

7 Understanding Throughput, Latency &Timing & Architecting Speed/Area

8 Representation of Non Recursive DFGs & Optimizations for Non Recursive DFGs

9 FIR Implementations + Pipelining & Parallelism in Non Recursive DFGs

10 Cross-Clock Domain Issues & RESET circuits

11 Arithmetic Operations, Adders & Fast Adders, Multi-Operand Addition

13 Multiplication , Multiplication by Constants + BOOTH Multipliers

14 Approximate Computing

15 CORDIC (sine, cosine, magnitude, division, etc) & HW- TERM PROJECT-END

16 Hardware Software Co-Design, The selection, partitioning & placement problem

17 Selected Topics, DFG representation of Recursive DSP Algorithms, Iteration Bound &

Optimization

Page 24: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

With Much Respect & Gratitude to Dr. Shoab Ahmed Khan

Page 25: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Relevant Books

(Sho) Digital Design of Signal Processing Systems, Shoab A Khan

(Stv) Advanced FPGA Design, Steve Kilts

(Par) VLSI Signal Processing Systems, Parhi

25

Page 26: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Reference/Related Books

(Sam) Verilog HDL, Samir Palnitkar

(Cil) Advanced Digital Design with the Verilog HDL, M D. Ciletti

Synthesis of Arithmetic Circuits

26

Page 27: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Distribution

Quizzes 10%

Assignment 10%

Research Project 15%

OHT1 15%

OHT2 15%

Final 35%

27

*There can be slight modifications & shall be notified earlier

Page 28: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Relevant Conferences28

IEEE/ACM ICCAD

FPL (International Conference on Field- Programmable Logic and Applications)

FPL – FPGA (http://www.fpl.uni-kl.de/fpl/)

ES Week : International Conference on Hardware - Software Codesign and System Synthesis

DATE - Design, Automation, and Test in Europe

IEEE Symposium on Computer Arithmetic – ISCA

Applied Reconfigurable Computing – ARC

Engineering of Reconfigurable Systems and Algorithms – ERSA

Design Automation Conference – DAC

International Symposium on High-Performance Computer Architecture - HPCA

Page 29: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Relevant Journals29

IEEE Transactions on Circuits and Systems for Video Technology – TCSV

IEEE Transactions on Very Large Scale Integration Systems – VLSI

ACM Transactions on Architecture and Code Optimization – TACO

Journal of Systems Architecture - Elsevier Microprocessors and Microsystems – Elsevier Journal of Signal Processing Systems - Springer AIP – Review Scientific Instruments ACM Transactions on Design Automation of Electronic

Systems (TODAES)

Page 30: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

An Excellent Verilog Tutorial30

Verilog Tutorial http://www.asic-world.com/verilog/veritut.html

Writing Technical Paper http://www1.cs.columbia.edu/~hgs/etc/writing-style.html

Page 31: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Class Ethics31

Page 32: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Class Ethics &.. Other stuff

Attendance Respect for all & classroom discipline Quizzes

Anytime

“Never cheat” Better fail NOW or else will fail sometime LATER in life

Hard work “always” pays…. Assignments

References (IEEE Indexing [1],[2],…)

Plagiarism No copying

32

Page 33: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

PLAGIARISM

Adapted from What is Plagiarism PowerPointhttp://mciu.org/~spjvweb/plagiarism.ppt33

Page 34: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

34

“…Oh ! I forgot to

replace-all the variable names..”

Page 35: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

… or even more

… hum nay mil ker kaam kia tha

Page 36: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Questions….

Page 37: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Please do fill in the GOOGLE Survey form that I shall be sharing with you !

AssessmentStatus quo – Where we stand?

37

Page 38: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies
Page 39: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

What’s the difference between

software & hardware ?

Page 40: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

H/W vs. S/W

What do you mean when you say your design is S/W or H/W based?

S/W is where we have instructions. Executed on programmable H/W unit

H/W is where we have a dedicated data-pathdefined

Page 41: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Example- Add 8 numbers

Result myfunc (a,b,c,d,e,f,g,h)

int a,b,c,d,e,f,r1,r2,r3,r4,rr1,rr2

//a-h get values from somewhere

r1= a+b;

r2 = c+d;

r3 = e+f;

r4 = g+h

rr1 = r1+r2

rr2= r3 + r4;

Result = rr1 + rr2;

my_verilog_module (inputs: a,b,c,d,e,f,g,hOutputs: Result)

wire a,b,c,d,e,f,r1,r2,r3,r4,r5

----------

r1= a+b;

r2 = c+d;

r3 = e+f;

r4 = g+h

rr1 = r1+r2

rr2= r3 + r4;

Result = rr1 + rr2

C Code Verilog Code

Ignore syntax in this slide !!

Page 42: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

What happens actually

Gets sequentially executed on a processor

A datapath is created

& its parallel & this is where H/W benefit comes

C Code Verilog Code

Controller

Instructions Queuer1= a+b;r2 = c+d;r3 = e+f;r4 = g+hrr1 = r1+r2rr2= r3 + r4;Result = rr1 + rr2;

ALU

Memory

a,b c,d e,f g,h

Page 43: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

What is the design space for a

digital system designer ?

Page 44: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

More & Powerful design options are getting available to the developer.

Design Space Options : GPPs, DSPs, FPGAs, Application Specific Processors, ASICs

Design Space Exploration deals with deciding the best from the available options for the design

For Further Reading : [SHO] Chapter-1

Design Space Exploration44

Page 45: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Moore’s Law (1965) is fueling the DSP Market

45

The number of transistors on a chip was doubling every 18 to 24 months and made the prediction for future

32nm => Sandy Bridge (2011) 11 nm => approx. 2015

More & Powerful Design Options are now available

[SHO]

Page 46: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Options/Space46

Programmable Processors (& Microcontrollers) [General purpose Instruction Set Processors ]

Programming flexibility

Optimized - Architectures with so much design effort put in their designs

Examples: Intel, Atmel, ARM Processors

Digital Signal Processors / [Application Specific Instruction Set Processors (ASIPs)]

Programming flexibility. Optimized Architectures for DSP Applications e.g. dedicated MAC units

Examples: DSP from Texas Instruments, Array/Vector instructions

FPGA – Field Programmable Gate Arrays

Reconfigurable Hardware

Typically Fully dedicated design ----- Longer Development cycle

ASIC – Application Specific Integrated Circuits

Fully dedicated design, Lower cost, low power, No flexibility

Custom ASIPS such as DIGIC 4

Hybrid Architectures

HW/SW combined designs

FPGAs containing Processors Soft Processors [Microblaze, NIOS, Power PC]

Processors Containing (tightly coupled with) reconfigurable (coarse/fine) logic

Page 47: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Canon DIGIC 5+Application Specific Instruction Set Processor

http://thenewcamera.com/wp-content/uploads/2012/01/Canon-1D-X-processing-syste.jpghttp://www.dancewithshadows.com/tech/wp-content/uploads/2009/03/canon-eos-t1i-photo.jpg

Application Specific Processors are typically combination of an instruction programmable core with specialized hardware units.

Page 48: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

The most recent version, DIGIC 5, wasco-designed by Texas Instruments andbased on the Texas Instruments OMAP,a System-on-Chip (SoC) that includesan ARM architecture processor.[1][2] Sincethese processors are based aroundthe ARM CPUs, custom firmware forthese units have been developed to addfeatures to the cameras.

Source Wikipedia

Page 49: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Hybrid Architectures

Hybrid Architectures combine both : Instruction Programmable Processors & FSM based Dedicated Designs

Previous Trend Soft Processor Cores embedded inside an FPGA. Example : Micro-Blaze in Xilinx

Hard Processor Cores embedded inside an FPGA. Example : Power PC

New Trend

Pre-Fabrication Customization For example Xtensa Customizable Processor from a company called Tensilica.

Tensilica allows you to add custom instructions of your choice to the processor. Once you are done they fabricate the processor for you.

Post Fabrication reconfigurable Enhancements For example Xilinx ZYNQ architecture where you have a dual core ARM processor

closely coupled with reconfigurable logic that can be used as a hardware accelerator.

Page 50: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

The future…..Hybrid Architectures

Xtensia from Tensillica

Pre-Fabrication Compile Time Customization

Page 51: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Hybrid Architectures

Hybrid Architectures combine both : Instruction Programmable Processors & FSM based Dedicated Designs

Previous Trend Soft Processor Cores embedded inside an FPGA. Example : Micro-Blaze in Xilinx

Hard Processor Cores embedded inside an FPGA. Example : Power PC

New Trend

Pre-Fabrication Customization For example Xtensa Customizable Processor from a company called Tensilica.

Tensilica allows you to add custom instructions of your choice to the processor. Once you are done they fabricate the processor for you.

Post Fabrication reconfigurable Enhancements For example Xilinx ZYNQ architecture where you have a dual core ARM processor

closely coupled with reconfigurable logic that can be used as a hardware accelerator.

Page 52: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

The future…..Hybrid Architectures

Xilinx ZYNQ 7000

Post Fabrication reconfigurable Enhancements

Cash the benefit of both…• Easy & Rapid Development• Customized H/W only for compute intensive units

Page 53: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Space Options53

[SHO]

Application Specific Custom

Dedicated Design

Page 54: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

How to select the best from

the design space ?

Page 55: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Decision depends on the nature & complexity of applications

55

Applications are characterized by amount of data, parallelism, real time requirements.

And.. Time to market

Cost

Complexity to port to H/W

Quantity

Power Requirements

Page 56: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Analyzing your application for design space exploration

56

Computationally intensive (‘number crunching’) tasks

Standard Tasks/Protocols/Interfaces/Encoding

Commercial off the shelf ASICs are available

Memory Controllers, Firewire interfaces, Audio interface (AC97), DVI interface

Non Standard Structured Tasks (Less Decisions, Straightforward Datapath)

Consist of code that has loops with no/less dependencies. For example array operations

Suitable for FPGAs/custom ASICs

Examples: FFT Butterflies , Long arithmetic chains,

Non Standard Non Structured Sequential Tasks

More Code intensive & complex to port to H/W. due to Dependencies

Suitable for DSP Processors

Adaptive Algorithms with multiple IF/Else such as Motion Vector Estimation, Matrix^Power

Control Oriented Tasks

User interfaces, control processes, system controllers and other code intensive protocols are usually mapped on GPPs or microcontrollers.

Multiple interrupts & Complex Scheduling are conveniently handled by Operating Systems so better handled by instruction based Processors

Page 57: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

A typical system57

For complex systems HW/SW co design may be the only optimal choice.

Soft processors like NIOS even allow you to make custom instructions !

Use a processor with FPGA/ASICS as Hardware Accelerators

Page 58: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Where are we focusing ?58

[SHO]

Application Specific Custom

Dedicated Design

Page 59: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

A little exercise…59

Display- 480 x 640 pixels, VGA, resistance type touch

User Interface Navigation

Touch screen on LCD

Control Buttons : Power on and OFF

Wifi, Bluetooth,

Supports camera & JPEG compression

Built-in GPS Radio

Need support to run Mobile Applications

What components you shall be using for your system ?

Group of 3-4 – On a paper & submit

http://www.openmoko.com/freerunner.html

Page 60: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

An examples60

..& you need an OS too

Memory

Of-the-shelfASIC

Custom Design

Page 61: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

In a modern architecture…Everything on a single system on chip (SoC)

Page 62: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Reading Assignment62

Relevant sections of Chapter-1 [SHO]

Page 63: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

LECTURE-2

DIGITAL DESIGN METHODOLOGY

Page 64: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

What we learned in the Last Lecture ?

What’s Design Space Exploration ?

Difference between HW & SW ?

How Moore’s Law is fueling the miniaturization

GPPs, DSPs, FPGAs, ASICs & Hybrids

That FPGAs are based on LUT (Look Up Tables) & ASICS on actual gates.

80/20 Rule & the motivation for HW/SW Co-Design

HW is desirable where we have the opportunity to process things in parallel since we have no dependencies

Page 65: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies
Page 66: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Digital Design Methodology66

From concept to reality

A long tiring process

http://nigamanth.net/vlsi/category/asic-design-flow/

Page 67: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology: Big Picture

67

MRD Marketing Requirement

Document

Arch. Spec.

(Macro Architecture)

Micro-Architecture Document

(Detailed Design , Design Partition)

(Design Entry)

HDL

SimulationFunctional Verification

Design Integration & Verification

Pre synthesis Sign-Off

Synthesize & Map Gate-Level

Netlist

Post synthesis Design

Verification

Test Generation & Fault

Generation

Clock Trees

Cell Routing

Verify Physical & Electrical Design

RulesExtract ParasiticsDesign Sign-Off

Page 68: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology

A list of desirable features

Studies

Customer’s expectations

Competing Products

Add-ons

Market opportunities

Time to market

Profit Margins

Quantity

Impacts design decision

Architecture at a very high and abstract level

Block diagrams

Usually a transaction level model (TLM)

How data is moving across different blocks

State machines that control the flow of data

Typically a long boring document

Marketing Requirement Document (MRD)

Architecture Specification

(Macro Architecture)

Page 69: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

SampleArchitecture

69

Page 70: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Architectural Spec : Another Example….

Page 71: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology

Design Partitioning

Control vs. datapath separation

Interconnection structures (modules) within datapath

Partitioning of functions into blocks

Going deeper into design

Interface definition for each module

Clock/reset requirements,

Optimizations

Memory buffers

Implementation State Machines

Timing Charts

Top-down design method

Exploiting hierarchy

This document is crucial, for a

large team working on various modules of the same design.

Design Specification

Micro Architecture

Typically an even longer document as compared to Architecture

Specification Document

Page 72: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology

Take design to a deeper level where each register is known and code it using HDL (Hardware Description Languages)

HDL De-burdens gate level

optimizations

Allows this stage to be technology independent (e.g., FPGA LUTs or ASIC standard cell libraries)

Behavioral descriptions

Simulation vs. Formal Methods

Test Plan Development

What to test & how ?

E.g: Instruction set for a range of data, Corner cases for ALUs,

Testbench Development

Testing of independent modules

Does your design meets specification

72

RTL HDL Design

(Register Transfer Level)

Simulation and Functional Verification of each module

Page 73: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology

Integrate

Bugs lurking in the interface behavior among modules

The Testbench

I/O interfacing with top level module

Monitor port & bus activity across module boundaries

Test Vectors

Full functionality Demonstrated

Make sure that the behavior specification (HDL) meets the design specification (coded in HDL or system verilog)

73

Design Integration and Verification

Pre synthesis sign-off

Page 74: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology

Synthesize the design from the behavior description

Map onto target technology

Optimizations Minimize logic Reduce area Reduce power Balance speed vs. other

resources consumed

Produces netlist of standard cells(for ASICS) or database to configure LUTs (for FPGAs)

Comparing Synthesized gate-level description to the verified behavioral model

A testbench that instantiates both models & drive them via common stimulus

74

Gate-Level Synthesis and Technology Mapping

Post-synthesis Design Validation

Page 75: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology

Are the timing specifications met?

Are the speeds adequate on the critical paths?

Re-synthesis may be required to achieve timing goals

Modify architecture

Choose a different target device or technology

Test Generation and Fault Simulation

Placement and Routing

Clock distribution trees to minimize skew

Physical and Electrical Design Rule Check

Determining Parastics / Interference

75

Post synthesis Timing Verification

ASIC Specific

Page 76: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Design Methodology: Big Picture

76

MRD Marketing Requirement

Document

Arch. Spec.

(Macro Architecture)

Micro-Architecture & Design Partition

Design Entry

HDL

SimulationFunctional Verification

Design Integration & Verification

Pre synthesis Sign-Off

Synthesize & Map Gate-Level

Netlist

Post synthesis Design

Verification

Test Generation & Fault

Generation

Clock Trees

Cell Routing

Verify Physical & Electrical Design

RulesExtract Parasitic

Design Sign-Off

ASIC Specific

Page 77: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Reading Assignment77

Relevant sections of Chapter-1 [SHO]

All Excluding : 1.3.2,1.3.3,1.8.1,1.8.2,1.8.3

http://www.design-reuse.com/articles/9010/fpga-s-vs-asic-s.html

FPGA's vs. ASIC's

Page 78: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Questions….

Page 79: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

HDLs, Verilog HDL, VHDL

Page 80: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Related Reading

Verilog Basics & Dataflow Verilog Level

Chapter 2 [Dr. Shoab’s Book]

Till before Section 2.6.4 & Excluding the following Section 2.5.2

2.5.3.1

2.5.3.2

Page 81: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Verilog Basics81

Page 82: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Today’s Lecture

Modules in Verilog

Instantiating a Module

Gate Level Modeling in Verilog

Data Flow Level Modeling in Verilog

Conditional Operation & Operators

Behavioral Level

CASE, IF-ELSE

Page 83: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Verilog83

HW or SW ?

Verilog --- Programming language ?

Verilog

HW Description

In H/W Everything is always active

Creates your Datapath/Circuit

Its simulation is Event Based

The synthesis tool understands only a subset of Verilog, the part of Verilog called ‘RTL Verilog’

Page 84: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Is Verilog Simulation event

based ?

Is the synthesized H/W also

event based ?

Page 85: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Verilog

Data Types

85

net Connection between hardware elements

Default value Z High Impedance [not driven by circuit, the signal is neither driven to a logical high nor low level ]

Declared as Wire

reg Can act as A variable that holds a value … (need to be careful)?

Synthesizable to register or latch

Declared as reg

Initial state is Unknown (X) in Verilog Simulation

Vectors wire [7:0] data_bus; // A bus of width 8

//8 bit bus, with bit-7 as the most significant

Memories reg mem1bit [0:1023]; // 1K 1 bit words

reg [7:0] membyte [0: 1023]; // 1K 8 bit words

Others Integer, Real, Time, Arrays, Strings, Parameters

Word Size

Page 86: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Examples

wire [low# : high#] or wire [high# : low#]

The first # defines the MSB

Example

Wire [2:0] a = 3’b001; // Bit 2 is the MSB (Use This)

Wire [0:2] a = 3’b001; // Bit 0 is the MSB

Assigning value to a part-select of vector

wire [31:0] a,b,c;

a[31] = 1’b1

//Above means we are making the MSB of a equal to 1

You can’t change the order of MSB after declaration

Leave : Variable Vector Part Select

Page 87: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Verilog 2001 allows Multi-Dimensional Arrays

87

Xilinx allows upto 3D arrays (Correct for 2011 )

Declaring 3D array //////////////// 3 D Array reg [7:0] d [0:3][0:1][0:1];

Accessing 3D Array d[1][0][0] = data; d[1][0][0] [3:0]= 4’b1010;

Accessing parts of an element of 3D Array e = d[3][1][0][3:0];

http://www.sutherland-hdl.com/papers/2000-HDLCon-paper_Verilog-2000.pdf

Page 88: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Constants

Page 89: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Verilog89

Comments //

Number Specification 2’b11 // 2 bit binary number

Without base format decimal numbers e.g. 11 is a decimal no. Without size simulator/machine specific, e.g: ‘h11 is a 32 bit no.

12’hCDF // 12 bit hex number

-3’d1 // 3 bit 2’s complement of 1

Keywords & Identifiers wire Write_enable; // wire is a keyword & Write_enable is an identifier

Logic Values: 0,1 & ..X,Z Unknown Value: X, e.g. Un-initialized value, A net driven by two primitives

High Impedance: Z, e.g. Tristate Buffer, Bi-directional I/O

It is important to remember that there is no X (unknown value) in a real circuit [SHO]

Page 90: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

What shall be the value of

a, b and c

wire a = 4’d11;

wire b = 4’b0011;

wire c = 4’b11;

Page 91: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Tri-State Buffer for IO-Ports

FPGA Outside

inout IO_Pad;

wire Input_Data;

wire Output_Data;

wire Output_Enable;

assign Input_Data = IO_Pad;

assign IO_Pad = Output_Enable ? Output_Data : 1’bz

& assign the IO type in your ucf (User Constrained File)

IO_PAD

Output_Enable

Output_Data

Input_Data

Page 92: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Verilog Module

Consider a very simple design

We want to make a Full Adder

FA

HA

HA

Page 93: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Verilog HALF Adder & FULL Adder

[CIL]

module HA_GateLevel(input a, b ,output c_out, sum

);

xor x1 (sum,a,b);and and1 (c_out,a,b);

endmodule

gate(out,in1,in2)

Page 94: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

module HA_GateLevel (a,b,c_o,s_o);input a,b;output c_o, s_o;

xor (s_o,a,b);and (c_o,a,b);

endmodule

Basic Verilog Module

module HA_GateLevel(input a, b ,output c_o, s_o

);

xor (s_o,a,b);and (c_o,a,b);

endmodule

Module Declaration & Port Listing

Intermediate Connections, Wire

Declarations

Module LogicComb./Seq.

End Module

Verilog 1995Verilog 2001

Page 95: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

module FA(input a,b,c_in,output sum, cout);

wire s1,c1,c2;

HA_GateLevel HAB1 (.a(a), .b(b), .c_o(c1), .s_o(s1));

HA_GateLevel HAB2 (.a(c_in), .b(s1), .c_o(c2), .s_o(sum));

or(cout,c2,c1);

endmodule

module HA_GateLevel(input a, b ,output c_o, s_o

);xor (s_o,a,b);and (c_o,a,b);endmodule

Module Declaration & Port Listing

Intermediate Connections, Wire

Declarations

Instantiation of

Lower Level Modules &

Port Connection

(2001)

Module LogicComb./Seq.

End Module

module HA_GateLevel(input a, b ,output c_o, s_o

);xor (s_o,a,b);and (c_o,a,b);endmodule

Page 96: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

module FA(input a,b,c_in,output sum, cout);

wire s1,c1,c2;

HA_GateLevel HAB1 (.a(a), .b(b), .c_o(c1), .s_o(s1));

HA_GateLevel HAB2 (.a(c_in), .b(s1), .c_o(c2), .s_o(sum));

or(cout,c2,c1);

endmodule

Module Declaration & Port Listing

Intermediate Connections, Wire

Declarations

Instantiation of

Lower Level Modules &

Port Connection

(2001)

Module LogicComb./Seq.

End Module

//1995 Instantiation Style

HA_GateLevel HAB1 (a, b, c1, s1);

// Second Half AdderHA_GateLevel HAB2 (c_in, s1, c2, sum );

Page 97: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

module Parent_Module (….)……….

97

reg or net

wire

wire

wireInput InOut

Output out is a reg or wire

wire

Intermediate Connections, Wire Declarations, regs

Instantiation of lower modules

Dataflow Statements assign out = in1 & in2

wire out = in1 & in2

Procedural blocksAlways/initial blocks

(Behavioural statements)

module Sample_Name (in1, in2, out)input wire in1,in2;output reg out;

endmodule

Rule: Input inside a module is always a wire

Signal_From_Sample_Name must be a wire

Page 98: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Example

Page 99: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Port Listing Styles

Verilog 95 vs Verilog 2001 style

Page 100: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

[SHO]

Page 101: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

Port Connection StylesInstantiating a Module in another block

Verilog 95 vs Verilog 2001 style

Lets use the previous FA to make a 3 bit Ripple Carry Adder

[SHO]

Page 102: ADSD Fall2015 01 DesignSpaceExploration DesignMthodologies

This method is better for block with greater no.

of ports