Advanced Synthesis Techniques

Size: px
Start display at page:

Download "Advanced Synthesis Techniques"

Transcription

1 Advanced Synthesis Techniques

2 Reminder From Last Year Use UltraFast Design Methodology for Vivado Recommendations for Rapid Closure HDL: use HDL Language Templates & DRC Constraints: Timing Constraint Wizard, DRC Iterate in Synthesis (converge within 300ps) Real problems seen post synthesis (long path ) Faster iterations & higher impact Improve area, timing, power Only then, iterate in next steps opt, place, phys_opt, route, phys_opt Tools >Report >Report DRC Worst path post Synthesis: 4.3ns 3 levels of logic! Worst path post Route: 4.ns 4 levels of logic

3 Advanced Synthesis Techniques Overview Advantages of C Synthesis over RTL Synthesis Advance Synthesis Techniques for Design Closure Case Study: design closure at Synthesis level

4 HLS & IP Integrator (IPI) vs. RTL Synthesis VHDL, Verilog: RTL 00k RTL (VHDL) lines (VHDL) VHDL-2008, SV: 50k lines Test Bench Test Test Bench (System (System Bench C) C) (driver level) RTL C++ RTL (VHDL) code (VHDL) (5k lines)) Test Bench Test Test Bench (System (System Bench C) C) (application) Minimal test RTL Sim. Verification advantage: e.g. video processing RTL: frame per ~5 hours C++: frame per second C Debug Exhaustive functional tests RTL Synthesis Design closure HLS IPI Design closure RTL Synth P&R P&R HW System Debug Exhaustive functional tests HW System Debug System-level Debug Actual example: Traditional Flow 240 people*mo o 0 people o 2 years 5x faster HLS Based Flow 6 people*mo o 2 people o 8 month Faster for derivative designs C++ reuse Scales with parameters Device independent

5 HLS Automates Micro-architecture Exploration while (i++) for j =0.. N y(i) = y(i) + b(j) * x(i-j) Project specification Architecture choices while (i++) for j =0.. N y(i) = y(i-j) +b(j) * x(i) x(n) Z - Z - Z - x(n) b 0 b b 2 b m- b 0 b b 2 b m- X X X X X X X X Micro-architecture choices Z - + Z - + Z - + Algorithmic delay x(n) b x(n) 0 X + X + Fully parallel: N DSP + cascade X + Pipeline register x(n) + Fully Folded: DSP (default) X X X Fully parallel: N DSP no cascade

6 HLS Micro-Architecture Exploration while () M3(i) = M(i-2) * C2 A(i) = M3(i) + x(i) M2(i) = M(i-) * C A2(i) = A(i) + M2(i) M(i) = A2(i) * C0 i++ C++ A A2 M M2 x[i] M3 c 0 c c 2 Z - Z - Dataflow Graph RTL Schedule : 4 cycles Sequential process (CPU model) Minimal HW Resources: MULT, ADD M3 A M2 A2 M i 4 i+ 28 M3 Z - A M2 A2 Z -2 M M3 Schedule 2: 0 cycles Parallelism within each iteration Better performance (~29%) 2 MULT, ADD M3 A A2 M M2 i 0 i+ Z -2 M3 A A2 M Z - M2 20 M3 i+2 Schedule 3: 9 cycles Loop pipelining Best performance (~36%) 2 MULT, ADD M3 A A2 M M2 i 9 i+ Z -2 M3 A A2 M Z - M2 8 M3 i+2

7 LUT6 Cross-probing Vivado Synthesis Flow Syntax check Build file hierarchy Design hierarchy Unroll loops Build Logic: Arithmetic RAM FSM Boolean logic XDC VHDL, Verilog VHDL-2008, SystemVerilog more compact: advanced types verification friendly: UVM, SVA Analyze Elaborate Module generators RTL Optimizations Boolean optimization Technology mapping Optimize & Map P&R or DCP

8 Architecture-Aware Coding Priority Encoders Loops Clocks & Resets Directives & Strategies Case Study

9 Architecture Aware DSP HDL code needs to match DSP hardware (e.g. DSP48E2) Signage, width of nets, optimal pipelining Signed 27 bit A 27 ACC B 27 C XOR EQ Verify that DSP are inferred efficiently Signed arithmetic with pipelining Use templates & Coding style examples: Complex multiplier Squarer (UG90) Multiply-accumulate Dynamic pre-adder FIR (UG579) Large accumulator Rounding (205.3) XOR (206.)

10 DSP Block Inference Improvements (a b) 2 (a + b) 2 Squarer: DSP Complex multiplier: 3 DSP (a+bi)*(c+di) = ((c-d)*a + S) + ((c+d)*b + S)i with S=(a-b)*d A B X X+ +X+ Re Im Wider arithmetic requires more pipelining e.g. MULT 44x35 requires 4 MULT 27x8 & ADD A B Synthesis A B Pipelined MULT 44x35 in HDL Mapped to 4 DSP Blocks (27x8 MULT) Verify proper inference for full DSP block performance!

11 Architecture-Aware RAM & ROM HDL code needs to match BRAM Architecture Registered address (sync read), optional output register 32K configurations Width= x Depth=2 5 (32K) = 32Kx Width=2 x Depth=2 4 (6K) = 6Kx2 Width=32 x Depth=2 0 (K) = Kx32 36K configuration Width=36 x Depth=2 0 (K) = Kx36 Wider & Deeper Memories Automatically inferred by Synthesis RAMB36 addr addr 32xK out Q Verify that BRAM are inferred efficiently! Example: single port RAM

12 RAM Decomposition: Example 32Kx32 RAM 32Kx Kx32 32 Kx x 32Kx x Kx x 4x... Kx32 LUTs 32 32Kx Kx MUX W= D=5 W=32 D=0 W=32 D=0 High Performance & Power (default w/ timing constraints) level, 32 BRAM active Low Power & Performance UltraScale cascade-mux 32 levels, BRAM active Performance/Power Trade-off Hybrid LUT & UltraScale Cascade 4 levels, 4 BRAM active (* cascade_height = 32 *) (* cascade_height = 4 *) Verify that BRAM are decomposed efficiently!

13 RAM & ROM Recommendations BRAM Reg BRAM Reg BRAM Reg Reg BRAM Reg Use pipeline Reg for performance No logic in-between No Fanout In same hierarchy! BRAM slack<0 BRAM slack>0 Reg Reg Reg Reg Reg Run phys_opt to move Reg in & out based on timing Add extra pipeline for best performance! Verify that BRAM are pipelined efficiently!

14 Beware of Priority Logic if (c0) q = a0; else if (c) q = a; else if (c2) q = a2; else if (c3) q = a3; else if (c4) q = a4; else if (c5) q = a5; if (c0) q = a0; if (c) q = a; if (c2) q = a2; if (c3) q = a3; if (c4) q = a4; if (c5) q = a5; a5 Priority encoded logic long paths a4 c5 a3 c4 a2 c3 a c2 a0 c c0 Priority logic will hurt Timing Closure! a0 a c0 Removing else s won t help!! a2 c a3 c2 a4 c3 a5 c4 c5

15 Priority Logic with for loops flag = 0; for (i=0 ; i<3 ; i=i+) if (c[i]) flag = ; Same as if if if flag = 0; for (i=0 ; i<3 ; i=i+) if (c[i]) begin flag = ; break; //SystemVerilog end Same as if else if else if break won t help!! 0 c[26] c[27] c[30] c[29] c[28] c[3] 0 c[5] c[4] c[3] c[2] c[] c[0] break does not reduce logic! Best code in this case: flag = c Think Simple!

16 Priority Logic with case Statement case (c) v0: q=a0; v: q=a; v2: q=a3; v3: q=a4; v4: q=a5; In Verilog: CASE (c) //synthesis parallel_case (watch for simulation mismatch!) In SystemVerilog: unique case (c) // works with if too a5 CASE won t help either! (note: values are variables) a4 c==v5 a3 c==v4 a2 c==v3 a BAD c==v2 a0 c==v c==v0 a0 c v0 a c v a2 c v2 a3 c v3 a4 c v4 GOOD If conditions are mutually exclusive, make it clear! Note: please use complete conditions.v full_case (simulation may not match) or default & assign don t_care.sv priority (for case & if)

17 Priority Logic Which Should Not Be! if (c0) q = a0; else if (c) q = a; else if (c2) q = a2; else if (c3) q = a3; else if (c4) q = a4; else if (c5) q = a5; a a2 a3 a4 a5 c0 = (S == 0); c = (S == ); c2 = (S == 2); c3 = (S == 3); c4 = (S == 4); -hot conditions (here: binary encoded) a0 S 2 S S 0 Automated in most cases Even with registered conditions! a0 S 0.2 a S 0.2 a2 S 0.2 a3 S 0.2 a4 S 0.2 a5 S 0.2 unique if (c0) in SystemVerilog a0..7 case (S) 0: q = a0 : q = a 2: q = a2 or: q = A[S] S a0..3 S 0 S BAD GOOD GOOD If conditions are mutually exclusive, do not use a priority logic Use unique if in SystemVerilog a4..7 S 0 S S 2

18 Parallelizing Priority Logic When you can t avoid O(n), you still can! a63 0 a5 0 c5 a4 if c0 c63 64 deep 0 c4 a3 0 c3 a2 0 c2 a 0 c a0 0 c0 if c32 c63 32 deep if c0 c3 32 deep 0 c0 c3 2 deep (log 6 (32)) c63 BAD: N deep GOOD: N/2 + deep... or N/4 + 2 or log(n) recursively Improve timing even when conditions are not mutually exclusive!

19 Beware of Loop Unrolling Avoid if c = 0; for (i=0 ; i<8 ; i=i+) if (a[i]) c = c+; Get rid of if c = 0; for (i=0 ; i<8 ; i=i+) c = c+a[i]; c = a[0] + a[] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7]; a[0] a[7] 0 + a[7] + a[6] + a[0] c a[] a[2] a[3] a[4] a[6] a[5] + c BAD: area & depth O(N) GOOD: area & depth log 3 (N) if in loops can seriously hurt timing!

20 Beware of Loop Unrolling Arithmetic s Q = 0 for i = 0 to 3 for j = 0 to 3 Q = Q+A+i+j Q = = 6*A + 48 = A<< Q = (A + 3) << 4 Q = 0+ A A+0+ + A A+0+3 A++0 + A++ + A++2 + A++3 A A+2+ + A A+2+3 A A+3+ + A A+3+3 A[N-:4] 48 + Q[N-4:0] A[N-5:0] 3 + Q[N-:4] BAD: up to 36 N bit adder GOOD: N-3 bit adder BETTER: N-4 bit adder Loops (in general) can hurt timing! Here: symbolic arithmetic optimization may not happen

21 Avoid Gated Clock Transformation Very common in ASIC design (low power) Consolidate the clocks to minimize clock skew D Q low-skew network (BUFG) D Q c CE (latched on ~c) clk ASIC FPGA c CE CE clk edged detector D Q D Q D Q D Q c clk clk c clk CE clk BAD: 2 clocks, gated GOOD: clock Avoid gated clocks they will hurt timing closure (will cause clock skew)

22 Avoid [Async] Resets What we recommended Reduce the number of control sets {clk, rst, ce} Avoid Reset / avoid Async Reset D Q D Q D Q does this really remove reset? CE clk CE clk CLR clk rst BAD: Attempt to remove Reset created Enable and Reset is still Async Verify that removing Reset did not add Enables

23 DIRECT_ENABLE/DIRECT_RESET Guides Synthesis to directly connect net to DFF control pin When Synthesis is choosing to not use the reset or enable When there are multiple possibilities of enable or set/reset D Q D D Q direct_enable CE CE clk CE clk RST D D clk Q direct_reset RST D Q R clk Guide Synthesis to connect a signal to Enable, Reset

24 RTL Synthesis: New Strategies Vivado RTL Synthesis has now 8 Strategies Each Strategy is a combination of options & directives Directives have a specific purpose For quick pipe-cleaning iterations FLow_RuntimeOptimized For best area Flow_AreaMultThresholdDSP Flow_AreaOptimized_medium Flow_AreaOptimized_high For performance Vivado_Synthesis_Default Flow_PerfOptimized_high Flow_PerfThresholdCarry Strategies in Vivado (synthesis options) For congested designs Flow_AlternateRoutability Taking the best of all Strategies can give you 0% better QoR

25 Case Study Problem Area explosion & bad timing in a design Locating the cause of the issue Find offending module & synthesize it Out Of Context Look for suspicious operators on Elaborated view (how??) Cross-probe to source files Resolution Fix the source code and/or use synthesis options

26 Case Study: Locating the Cause of the Issue Look for suspicious operators Ctrl-F in Elaborated Schematic Select suspicious operators (here: MULT, MOD ) Press F4 to view schematic Press F7 to cross-probe

27 Case Study: More Useful / Fun Tips Double Click to expand paths Go back & forth Cross-probe from HDL to schematic!!! (RTL or gate) Select text & right-click Press F4

28 Case Study: Analysis of QoR Issue Should this code generate arithmetic s? array(263..0) of std_logic_vector(3..0) array(23..0) of std_logic_vector(3..0) 47,000 LUT 7,000 CARRY4 k DFF cnt (values: 0..0) * 24 + i (values: 0..23) 264 constants No MULT, ADD, or MOD necessary! How to fix it? Please propose a code change to improve QoR...

29 Case Study: Resolution Original Code Solution 47,000 LUT 7,000 CARRY4 k DFF LUT 0 CARRY4 k DFF # timing closure technique: careful analysis of Synthesis results!

30 Conclusion Use HLS & IPI when you can 5X more productive for design & verification HLS often achieves better quality of results Iterate in Synthesis for design closure! Adopt SystemVerilog or VHDL-2008 for higher productivity Use templates for big blocks Investigate QoR issues Locate possible Synthesis QoR issues Recode or use tools options as needed Final gunshot approach try different Strategies Do not move to P&R until timing is closed (within 300 ps)

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

Vivado HLx Design Entry. June 2016

Vivado HLx Design Entry. June 2016 Vivado HLx Design Entry June 2016 Agenda What is the HLx Design Methodology? New & Early Access features for Connectivity Platforms Creating Differentiated Logic 2 What is the HLx Design Methodology? Page

More information

Verilog for High Performance

Verilog for High Performance Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes

More information

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out

More information

A GENERATION AHEAD SEMINAR SERIES

A GENERATION AHEAD SEMINAR SERIES A GENERATION AHEAD SEMINAR SERIES Constraints &Tcl Scripting Design Methodology Guidelines for Faster Timing Convergence Agenda Vivado Tcl Overview XDC Management Design Methodology for Faster Timing Closure

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Synthesis Revision History The following table shows the revision history for this document: Date Version Revision 06/24/2015 2015.2 Changes are: Added Important note on

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Synthesis Revision History The following table shows the revision history for this document: Date Version Revision 04/01/2015 2015.1 Initial release for 2015.1. Changes include:

More information

Vivado Synthesis Tips & Tricks

Vivado Synthesis Tips & Tricks Vivado Synthesis Tips & Tricks Presented By Balachander Krishnamurthy Sr. Product Marketing Manager October 2 nd, 2018 Topics for Today The UltraFast Design Methodology UFDM: Customer Case Study Waiver

More information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for

More information

Field Programmable Gate Array (FPGA)

Field Programmable Gate Array (FPGA) Field Programmable Gate Array (FPGA) Lecturer: Krébesz, Tamas 1 FPGA in general Reprogrammable Si chip Invented in 1985 by Ross Freeman (Xilinx inc.) Combines the advantages of ASIC and uc-based systems

More information

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

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware

More information

Verilog for Synthesis Ing. Pullini Antonio

Verilog for Synthesis Ing. Pullini Antonio Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits

More information

Control and Datapath 8

Control and Datapath 8 Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system

More information

PINE TRAINING ACADEMY

PINE TRAINING ACADEMY PINE TRAINING ACADEMY Course Module A d d r e s s D - 5 5 7, G o v i n d p u r a m, G h a z i a b a d, U. P., 2 0 1 0 1 3, I n d i a Digital Logic System Design using Gates/Verilog or VHDL and Implementation

More information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

FPGA for Software Engineers

FPGA for Software Engineers FPGA for Software Engineers Course Description This course closes the gap between hardware and software engineers by providing the software engineer all the necessary FPGA concepts and terms. The course

More information

Lecture #1: Introduction

Lecture #1: Introduction Lecture #1: Introduction Kunle Olukotun Stanford EE183 January 8, 20023 What is EE183? EE183 is continuation of EE121 Digital Logic Design is a a minute to learn, a lifetime to master Programmable logic

More information

Introduction to High level. Synthesis

Introduction to High level. Synthesis Introduction to High level Synthesis LISHA/UFSC Prof. Dr. Antônio Augusto Fröhlich Tiago Rogério Mück http://www.lisha.ufsc.br/~guto June 2007 http://www.lisha.ufsc.br/ 1 What is HLS? Example: High level

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 9: Coding for Synthesis (cont.) Prof. Mingjie Lin 1 Code Principles Use blocking assignments to model combinatorial logic. Use nonblocking assignments to

More information

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

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden

MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden High Level Synthesis with Catapult MOJTABA MAHDAVI 1 Outline High Level Synthesis HLS Design Flow in Catapult Data Types Project Creation Design Setup Data Flow Analysis Resource Allocation Scheduling

More information

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4)

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4) Verilog Sequential Logic Verilog for Synthesis Rev C (module 3 and 4) Jim Duckworth, WPI 1 Sequential Logic Module 3 Latches and Flip-Flops Implemented by using signals in always statements with edge-triggered

More information

קורס VHDL for High Performance. VHDL

קורס VHDL for High Performance. VHDL קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

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

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design Techniques for Digital Systems Lab CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check

More information

ECE Digital Engineering Laboratory. Designing for Synthesis

ECE Digital Engineering Laboratory. Designing for Synthesis ECE 554 - Digital Engineering Laboratory Designing for Synthesis Below is a list of coding styles that might cause synthesis problems and/or inefficient design implementation. This is not an exhaustive

More information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly

More information

CSE140L: Components and Design

CSE140L: Components and Design CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam

More information

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna Advanced FPGA Design Jan Pospíšil, CERN BE-BI-BP j.pospisil@cern.ch ISOTDAQ 2018, Vienna Acknowledgement Manoel Barros Marin (CERN) lecturer of ISOTDAQ-17 Markus Joos (CERN) & other organisers of ISOTDAQ-18

More information

NEW FPGA DESIGN AND VERIFICATION TECHNIQUES MICHAL HUSEJKO IT-PES-ES

NEW FPGA DESIGN AND VERIFICATION TECHNIQUES MICHAL HUSEJKO IT-PES-ES NEW FPGA DESIGN AND VERIFICATION TECHNIQUES MICHAL HUSEJKO IT-PES-ES Design: Part 1 High Level Synthesis (Xilinx Vivado HLS) Part 2 SDSoC (Xilinx, HLS + ARM) Part 3 OpenCL (Altera OpenCL SDK) Verification:

More information

Lecture 7: Structural RTL Design. Housekeeping

Lecture 7: Structural RTL Design. Housekeeping 18 643 Lecture 7: Structural RTL Design James C. Hoe Department of ECE Carnegie Mellon University 18 643 F17 L07 S1, James C. Hoe, CMU/ECE/CALCM, 2017 Housekeeping Your goal today: think about what you

More information

ALTERA FPGA Design Using Verilog

ALTERA FPGA Design Using Verilog ALTERA FPGA Design Using Verilog Course Description This course provides all necessary theoretical and practical know-how to design ALTERA FPGA/CPLD using Verilog standard language. The course intention

More information

INTRODUCTION TO CATAPULT C

INTRODUCTION TO CATAPULT C INTRODUCTION TO CATAPULT C Vijay Madisetti, Mohanned Sinnokrot Georgia Institute of Technology School of Electrical and Computer Engineering with adaptations and updates by: Dongwook Lee, Andreas Gerstlauer

More information

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 1.2.2: VHDL-1 Liang Liu liang.liu@eit.lth.se 1 Outline VHDL Background Basic VHDL Component An example FSM Design with VHDL Simulation & TestBench 2

More information

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Feb 9, 2010 John Wawrzynek Spring 2010 EECS150 - Lec7-CAD2 Page 1 Finite State Machine Review State Transition

More information

HDL Coding Style Xilinx, Inc. All Rights Reserved

HDL Coding Style Xilinx, Inc. All Rights Reserved HDL Coding Style Objective After completing this module, you will be able to: Select a proper coding style to create efficient FPGA designs Specify Xilinx resources that need to be instantiated for various

More information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Design Flows Overview Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To

More information

FPGA design with National Instuments

FPGA design with National Instuments FPGA design with National Instuments Rémi DA SILVA Systems Engineer - Embedded and Data Acquisition Systems - MED Region ni.com The NI Approach to Flexible Hardware Processor Real-time OS Application software

More information

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015 Cadence SystemC Design and Verification NMI FPGA Network Meeting Jan 21, 2015 The High Level Synthesis Opportunity Raising Abstraction Improves Design & Verification Optimizes Power, Area and Timing for

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

CDA 4253 FPGA System Design Op7miza7on Techniques. Hao Zheng Comp S ci & Eng Univ of South Florida

CDA 4253 FPGA System Design Op7miza7on Techniques. Hao Zheng Comp S ci & Eng Univ of South Florida CDA 4253 FPGA System Design Op7miza7on Techniques Hao Zheng Comp S ci & Eng Univ of South Florida 1 Extracted from Advanced FPGA Design by Steve Kilts 2 Op7miza7on for Performance 3 Performance Defini7ons

More information

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

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Universität Dortmund RTL Synthesis Purpose of HDLs Purpose of Hardware Description Languages: Capture design in Register Transfer Language form i.e. All

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory

More information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis of Combinational and Sequential Circuits with Verilog Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two

More information

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 98-1 Under-Graduate Project Synthesis of Combinational Logic Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 What is synthesis? Outline Behavior Description for Synthesis Write Efficient HDL

More information

Verilog Module 1 Introduction and Combinational Logic

Verilog Module 1 Introduction and Combinational Logic Verilog Module 1 Introduction and Combinational Logic Jim Duckworth ECE Department, WPI 1 Module 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Design Flows Overview Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To

More information

EECS150 - Digital Design Lecture 6 - Logic Simulation

EECS150 - Digital Design Lecture 6 - Logic Simulation EECS150 - Digital Design Lecture 6 - Logic Simulation Sep. 17, 013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL IE24 Digital Design L7: Combinational circuits, Introduction to VHDL Elena Dubrova KTH / ICT / ES dubrova@kth.se This lecture BV 38-339, 6-65, 28-29,34-365 IE24 Digital Design, HT 24 2 The multiplexer

More information

Synplify Pro for Microsemi Edition Release Notes Version L M-G5, November 2016

Synplify Pro for Microsemi Edition Release Notes Version L M-G5, November 2016 Synopsys, Inc. 690 East Middlefield Road Mountain View, CA 94043 USA Website: www.synopsys.com Synplify Pro for Microsemi Edition Release Notes Version L-2016.09M-G5, November 2016 Publication Version

More information

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

Don t expect to be able to write and debug your code during the lab session. EECS150 Spring 2002 Lab 4 Verilog Simulation Mapping UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 4 Verilog Simulation Mapping

More information

The Xilinx XC6200 chip, the software tools and the board development tools

The Xilinx XC6200 chip, the software tools and the board development tools The Xilinx XC6200 chip, the software tools and the board development tools What is an FPGA? Field Programmable Gate Array Fully programmable alternative to a customized chip Used to implement functions

More information

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control ECE 4514 Digital Design II Lecture 15: FSM-based Control A Design Lecture Overview Finite State Machines Verilog Mapping: one, two, three always blocks State Encoding User-defined or tool-defined State

More information

Programmable Logic Devices HDL-Based Design Flows CMPE 415

Programmable Logic Devices HDL-Based Design Flows CMPE 415 HDL-Based Design Flows: ASIC Toward the end of the 80s, it became difficult to use schematic-based ASIC flows to deal with the size and complexity of >5K or more gates. HDLs were introduced to deal with

More information

International Training Workshop on FPGA Design for Scientific Instrumentation and Computing November 2013

International Training Workshop on FPGA Design for Scientific Instrumentation and Computing November 2013 2499-20 International Training Workshop on FPGA Design for Scientific Instrumentation and Computing 11-22 November 2013 High-Level Synthesis: how to improve FPGA design productivity RINCON CALLE Fernando

More information

EECS 151/251A Fall 2017 Digital Design and Integrated Circuits. Instructor: John Wawrzynek and Nicholas Weaver. Lecture 14 EE141

EECS 151/251A Fall 2017 Digital Design and Integrated Circuits. Instructor: John Wawrzynek and Nicholas Weaver. Lecture 14 EE141 EECS 151/251A Fall 2017 Digital Design and Integrated Circuits Instructor: John Wawrzynek and Nicholas Weaver Lecture 14 EE141 Outline Parallelism EE141 2 Parallelism Parallelism is the act of doing more

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Introduction This lab introduces the concept of modular design by guiding you through

More information

Counters, Timers and Real-Time Clock

Counters, Timers and Real-Time Clock Introduction In the previous lab, you learned how the Architectural Wizard can be used to generate a desired clock frequency and how the IP Catalog can be used to generate various cores including counters.

More information

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007 EECS 5 - Components and Design Techniques for Digital Systems Lec 2 RTL Design Optimization /6/27 Shauki Elassaad Electrical Engineering and Computer Sciences University of California, Berkeley Slides

More information

An easy to read reference is:

An easy to read reference is: 1. Synopsis: Timing Analysis and Timing Constraints The objective of this lab is to make you familiar with two critical reports produced by the Xilinx ISE during your design synthesis and implementation.

More information

EECS150 - Digital Design Lecture 09 - Parallelism

EECS150 - Digital Design Lecture 09 - Parallelism EECS150 - Digital Design Lecture 09 - Parallelism Feb 19, 2013 John Wawrzynek Spring 2013 EECS150 - Lec09-parallel Page 1 Parallelism Parallelism is the act of doing more than one thing at a time. Optimization

More information

Hardware Modelling. Design Flow Overview. ECS Group, TU Wien

Hardware Modelling. Design Flow Overview. ECS Group, TU Wien Hardware Modelling Design Flow Overview ECS Group, TU Wien 1 Outline Difference: Hardware vs. Software Design Flow Steps Specification Realisation Verification FPGA Design Flow 2 Hardware vs. Software:

More information

VIVADO TUTORIAL- TIMING AND POWER ANALYSIS

VIVADO TUTORIAL- TIMING AND POWER ANALYSIS VIVADO TUTORIAL- TIMING AND POWER ANALYSIS IMPORTING THE PROJECT FROM ISE TO VIVADO Initially for migrating the same project which we did in ISE 14.7 to Vivado 2016.1 you will need to follow the steps

More information

World Class Verilog & SystemVerilog Training

World Class Verilog & SystemVerilog Training World Class Verilog & SystemVerilog Training Sunburst Design - Expert Verilog-2001 FSM, Multi-Clock Design & Verification Techniques by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst

More information

Chapter 2 Using Hardware Description Language Verilog. Overview

Chapter 2 Using Hardware Description Language Verilog. Overview Chapter 2 Using Hardware Description Language Verilog CSE4210 Winter 2012 Mokhtar Aboelaze based on slides by Dr. Shoab A. Khan Overview Algorithm development isa usually done in MATLAB, C, or C++ Code

More information

HDLs and SystemVerilog. Digital Computer Design

HDLs and SystemVerilog. Digital Computer Design HDLs and SystemVerilog Digital Computer Design Logic Arrays Gates can be organized into regular arrays. If the connections are made programmable, these logic arrays can be configured to perform any function

More information

FPGA architecture and design technology

FPGA architecture and design technology CE 435 Embedded Systems Spring 2017 FPGA architecture and design technology Nikos Bellas Computer and Communications Engineering Department University of Thessaly 1 FPGA fabric A generic island-style FPGA

More information

EECS150 - Digital Design Lecture 4 - Verilog Introduction. Outline

EECS150 - Digital Design Lecture 4 - Verilog Introduction. Outline EECS150 - Digital Design Lecture 4 - Verilog Introduction Feb 3, 2009 John Wawrzynek Spring 2009 EECS150 - Lec05-Verilog Page 1 Outline Background and History of Hardware Description Brief Introduction

More information

LAB 5 Implementing an ALU

LAB 5 Implementing an ALU Goals To Do Design a practical ALU LAB 5 Implementing an ALU Learn how to extract performance numbers (area and speed) Draw a block level diagram of the MIPS 32-bit ALU, based on the description in the

More information

A Brief Introduction to Verilog Hardware Definition Language (HDL)

A Brief Introduction to Verilog Hardware Definition Language (HDL) www.realdigital.org A Brief Introduction to Verilog Hardware Definition Language (HDL) Forward Verilog is a Hardware Description language (HDL) that is used to define the structure and/or behavior of digital

More information

Asynchronous FIFO Design

Asynchronous FIFO Design Asynchronous FIFO Design 2.1 Introduction: An Asynchronous FIFO Design refers to a FIFO Design where in the data values are written to the FIFO memory from one clock domain and the data values are read

More information

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is

More information

COE 561 Digital System Design & Synthesis Introduction

COE 561 Digital System Design & Synthesis Introduction 1 COE 561 Digital System Design & Synthesis Introduction Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Outline Course Topics Microelectronics Design

More information

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS Contents i SYLLABUS osmania university UNIT - I CHAPTER - 1 : BASIC VERILOG HDL Introduction to HDLs, Overview of Digital Design With Verilog HDL, Basic Concepts, Data Types, System Tasks and Compiler

More information

VHDL Essentials Simulation & Synthesis

VHDL Essentials Simulation & Synthesis VHDL Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using VHDL standard language. The course

More information

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 10: Synthesis Optimization Prof. Mingjie Lin 1 What Can We Do? Trade-offs with speed versus area. Resource sharing for area optimization. Pipelining, retiming,

More information

EECS150 - Digital Design Lecture 23 - High-Level Design (Part 1)

EECS150 - Digital Design Lecture 23 - High-Level Design (Part 1) EECS150 - Digital Design Lecture 23 - High-Level Design (Part 1) April 21, 2009 John Wawrzynek Spring 2009 EECS150 - Lec24-hdl1 Page 1 Introduction High-level Design Specifies: How data is moved around

More information

ECE 4514 Digital Design II. Spring Lecture 13: Logic Synthesis

ECE 4514 Digital Design II. Spring Lecture 13: Logic Synthesis ECE 4514 Digital Design II A Tools/Methods Lecture Second half of Digital Design II 9 10-Mar-08 L13 (T) Logic Synthesis PJ2 13-Mar-08 L14 (D) FPGA Technology 10 18-Mar-08 No Class (Instructor on Conference)

More information

An introduction to CoCentric

An introduction to CoCentric A Hand-Out 1 An introduction to CoCentric Las Palmas de G. C., Spain Jun, 27 th, 2002 Agenda 2 System-level SoC design What is SystemC? CoCentric System Studio SystemC based designs verification CoCentric

More information

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

Fundamental Design Concepts. Fundamental Concepts. Modeling Domains. Basic Definitions. New terminology and overloaded use of common words Fundamental Design Concepts Fundamental Concepts Basic Definitions study now revisit later New terminology and overloaded use of common words Modeling Domains Structural Domain a domain in which a component

More information

INITIAL DESIGN CHECKS FLOW

INITIAL DESIGN CHECKS FLOW INTRODUCTION This quick reference guide presents the following simplified, step-bystep flows for quickly closing timing, based on the recommendations in the UltraFast Design Methodology Guide for the Vivado

More information

Xilinx ASMBL Architecture

Xilinx ASMBL Architecture FPGA Structure Xilinx ASMBL Architecture Design Flow Synthesis: HDL to FPGA primitives Translate: FPGA Primitives to FPGA Slice components Map: Packing of Slice components into Slices, placement of Slices

More information

Basic HLS Tutorial. using C++ language and Vivado Design Suite to design two frequencies PWM. modulator system

Basic HLS Tutorial. using C++ language and Vivado Design Suite to design two frequencies PWM. modulator system Basic HLS Tutorial using C++ language and Vivado Design Suite to design two frequencies PWM modulator system August 22, 2018 Contents 1 INTRODUCTION........................................... 1 1.1 Motivation................................................

More information

EE 4755 Digital Design Using Hardware Description Languages

EE 4755 Digital Design Using Hardware Description Languages EE 4755 Digital Design Using Hardware Description Languages Basic Information URL: http://www.ece.lsu.edu/v Offered by: David M. Koppelman, Room 345 ERAD Building 578-5482. koppel@ece.lsu.edu, http://www.ece.lsu.edu/koppel/koppel.html

More information

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. World Class SystemVerilog & UVM Training Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff Cummings

More information

TSEA44 - Design for FPGAs

TSEA44 - Design for FPGAs 2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Synthesis Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To the maximum

More information

Why Should I Learn This Language? VLSI HDL. Verilog-2

Why Should I Learn This Language? VLSI HDL. Verilog-2 Verilog Why Should I Learn This Language? VLSI HDL Verilog-2 Different Levels of Abstraction Algorithmic the function of the system RTL the data flow the control signals the storage element and clock Gate

More information

Advanced FPGA Design Methodologies with Xilinx Vivado

Advanced FPGA Design Methodologies with Xilinx Vivado Advanced FPGA Design Methodologies with Xilinx Vivado Alexander Jäger Computer Architecture Group Heidelberg University, Germany Abstract With shrinking feature sizes in the ASIC manufacturing technology,

More information

CMSC 611: Advanced Computer Architecture

CMSC 611: Advanced Computer Architecture CMSC 611: Advanced Computer Architecture Design Languages Practically everything adapted from slides by Peter J. Ashenden, VHDL Quick Start Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr

More information

Verilog Simulation Mapping

Verilog Simulation Mapping 1 Motivation UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 4 Verilog Simulation Mapping In this lab you will learn how to use

More information

ESE532: System-on-a-Chip Architecture. Today. Message. Graph Cycles. Preclass 1. Reminder

ESE532: System-on-a-Chip Architecture. Today. Message. Graph Cycles. Preclass 1. Reminder ESE532: System-on-a-Chip Architecture Day 8: September 26, 2018 Spatial Computations Today Graph Cycles (from Day 7) Accelerator Pipelines FPGAs Zynq Computational Capacity 1 2 Message Custom accelerators

More information