George Mason University FPGA Design Flow ECE 545 Lecture 10.

Slides:



Advertisements
Similar presentations
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Devices & FPGA Design Flow ECE 448 Lecture 5.
Advertisements

George Mason University FPGA Design Flow ECE 448 Lecture 9.
Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
FPGA Devices & FPGA Design Flow
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Achieving Timing Closure. Achieving Timing Closure - 2 © Copyright 2010 Xilinx Objectives After completing this module, you will be able to:  Describe.
ECE 699: Lecture 2 ZYNQ Design Flow.
ECE 448 FPGA and ASIC Design with VHDL
ECE 448: Spring 12 Lab 4 – Part 2 Finite State Machines Basys2 FPGA Board.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
ECE 448 FPGA and ASIC Design with VHDL Spring 2008.
ECE 448 FPGA and ASIC Design with VHDL
ECE 545 Project 1 Part IV Key Scheduling Final Integration List of Deliverables.
Designing with FPGAs ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Thomson Engineering.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
George Mason University FPGA Devices & FPGA Design Flow ECE 448 Lecture 7.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
VHDL Project Specification Naser Mohammadzadeh. Schedule  due date: Tir 18 th 2.
ECE 545 Digital System Design with VHDL
ECE 448 FPGA and ASIC Design with VHDL Spring 2010.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
CprE / ComS 583 Reconfigurable Computing
Welcome to the ECE 449 Computer Design Lab Spring 2005.
ECE 448: Spring 11 Lab 3 Part 1 Sequential Logic for Synthesis.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
ECE 545 Project 2 Specification Part I. Adjust your synthesizable code for Project 1 in such a way that it complies with the following requirements: a.
ECE 545 Project 2 Specification. Schedule of Projects (1) Project 1 RTL design for FPGAs (20 points) Due date: Tuesday, November 22, midnight (firm) Checkpoints:
© 2003 Xilinx, Inc. All Rights Reserved Global Timing Constraints FPGA Design Flow Workshop.
George Mason University ECE 449 – Computer Design Lab Introduction to FPGA Devices & Tools.
ECE 448 FPGA and ASIC Design with VHDL Spring 2011.
ECE 545 Lecture 7 FPGA Design Flow.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE Presenter: Shu-yen Lin Advisor: Prof. An-Yeu Wu 2005/6/6.
ECE 545 Project 2 Specification. Project 2 (15 points) – due Tuesday, December 19, noon Application: cryptography OR digital signal processing optimized.
George Mason University ECE 449 – Computer Design Lab Welcome to the ECE 449 Computer Design Lab Spring 2004.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
George Mason University ECE 448 FPGA and ASIC Design with VHDL FPGA Design Flow ECE 448 Lecture 7.
Sept. 2005EE37E Adv. Digital Electronics Lesson 1 (Part 2) FPGA Architectures.
Introduction to FPGA Tools
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
ECE 448 FPGA and ASIC Design with VHDL
George Mason University ECE 545 – Introduction to VHDL Logic Synthesis with Synopsys ECE 545 Lecture 11.
Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May – 9 June 2007 Javier.
ECE 448 FPGA and ASIC Design with VHDL
Tools - Analyzing your results - Chapter 7 slide 1 Version 1.5 FPGA Tools Course Analyzing your Results.
PARBIT Tool 1 PARBIT Partial Bitfile Configuration Tool Edson L. Horta Washington University, Applied Research Lab August 15, 2001.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Devices ECE 448 Lecture 5.
ECE 448 FPGA and ASIC Design with VHDL Spring 2009.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Design Flow based on Aldec Active-HDL FPGA Board.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
ECE 545 Project 1 Introduction & Specification Part I.
Course web page: ECE 545 Introduction to VHDL ECE web page  Courses  Course web pages  ECE 545.
George Mason University FPGA Devices & FPGA Design Flow ECE 545 Lecture 8.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Devices & FPGA Design Flow ECE 448 Lecture 6.
FPGA Devices & FPGA Design Flow
Time-borrowing platform in the Xilinx UltraScale+ family of FPGAs and MPSoCs Ilya Ganusov, Benjamin Devlin.
ECE web page  Courses  Course web pages
FIT Front End Electronics & Readout
FPGA Devices & FPGA Tools
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
CprE / ComS 583 Reconfigurable Computing
ECE 448 Lecture 5 FPGA Devices
ECE 699: Lecture 3 ZYNQ Design Flow.
VHDL Introduction.
Sequential Logic for Synthesis Based on Aldec Active-HDL
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

George Mason University FPGA Design Flow ECE 545 Lecture 10

FPGA Design process (1) Design and implement a simple unit permitting to speed up encryption with RC5-similar cipher with fixed key set on 8031 microcontroller. Unlike in the experiment 5, this time your unit has to be able to perform an encryption algorithm by itself, executing 32 rounds….. Library IEEE; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity RC5_core is port( clock, reset, encr_decr: in std_logic; data_input: in std_logic_vector(31 downto 0); data_output: out std_logic_vector(31 downto 0); out_full: in std_logic; key_input: in std_logic_vector(31 downto 0); key_read: out std_logic; ); end AES_core; Specification / Pseudocode VHDL description (Your Source Files) Functional simulation Post-synthesis simulation Synthesis On-paper hardware design (Block diagram & ASM chart)

FPGA Design process (2) Implementation Configuration Timing simulation On chip testing

Manual Design HDL Code Manual Optimization FPGA Tools Netlist Post Place & Route Results Functional Verification Timing Verification Informal Specification Test Vectors Traditional Development and Benchmarking Flow

Manual Design HDL Code Option Optimization FPGA Tools Netlist Post Place & Route Results Functional Verification Timing Verification Informal Specification Test Vectors Extended Traditional Development and Benchmarking Flow ATHENa

6 Tools used in FPGA Design Flow Xilinx XST Design Synthesis Implementation Xilinx ISE VHDL code Netlist Bitstream Synplify Premier Functionally verified VHDL code

Xilinx FPGA Tools Aldec Active-HDL Student Edition (IDE) Xilinx XST (restricted) Home Aldec Active-HDL Design Flow Xilinx ISE Design Flow simulation synthesis implementation Xilinx ISE WebPACK (restricted) ISim Xilinx XST (restricted) Xilinx ISE WebPACK (IDE) (restricted)

Xilinx FPGA Tools Aldec Active-HDL (IDE) Xilinx XST or Synopsys Synplify Premier Xilinx ISE Design Suite ECE Labs ISim or ModelSim Xilinx XST or Synopsys Synplify Premier Xilinx ISE Design Suite (IDE) Aldec Active-HDL Design Flow Xilinx ISE Design Flow simulation synthesis implementation

TechnologyLow-costHigh-performance 220 nmVirtex 180 nmSpartan-II, Spartan-IIE 120/150 nmVirtex-II, Virtex-II Pro 90 nmSpartan-3Virtex-4 65 nmVirtex-5 45 nmSpartan-6 40 nmVirtex-6 28 nmArtix-7Virtex-7 20 nmVirtex UltraSCALE 16 nmVirtex UltraSCALE+ Xilinx FPGA Families

Support for Xilinx Families 90 nm Spartan-3, Virtex-4 65 nm Virtex-5 45 nm Spartan-6 40 nm Virtex-6 28 nm Artix-7, Kintex-7, Virtex-7, Zynq 7000 Future families ISE Vivado

George Mason University Synthesis

12 Synthesis Tools … and others Synplify Premier Xilinx XST

13 architecture MLU_DATAFLOW of MLU is signal A1:STD_LOGIC; signal B1:STD_LOGIC; signal Y1:STD_LOGIC; signal MUX_0, MUX_1, MUX_2, MUX_3: STD_LOGIC; begin A1<=A when (NEG_A='0') else not A; B1<=B when (NEG_B='0') else not B; Y<=Y1 when (NEG_Y='0') else not Y1; MUX_0<=A1 and B1; MUX_1<=A1 or B1; MUX_2<=A1 xor B1; MUX_3<=A1 xnor B1; with (L1 & L0) select Y1<=MUX_0 when "00", MUX_1 when "01", MUX_2 when "10", MUX_3 when others; end MLU_DATAFLOW; VHDL description Circuit netlist Logic Synthesis

14 Circuit netlist (RTL view)

15 Mapping LUT2 LUT1 FF1 FF2 LUT0

George Mason University Implementation

17 Implementation After synthesis the entire implementation process is performed by FPGA vendor tools

18 Implementation

19 Translation UCF NGD Native Generic Database file Constraint Editor or Text Editor User Constraint File Circuit Netlist Timing Constraints Synthesis

20 Mapping LUT2 LUT1 FF1 FF2 LUT0

21 Placing CLB SLICES FPGA

22 Routing Programmable Connections FPGA

23 Configuration Once a design is implemented, you must create a file that the FPGA can understand This file is called a bitstream: a BIT file (.bit extension) The BIT file can be downloaded directly to the FPGA, or can be converted into a PROM file which stores the programming information

Two main stages of the FPGA Design Flow Synthesis Technologyindependent Technologydependent Implementation RTL Synthesis Map Place & Route Place & Route Configure - Code analysis - Derivation of main logic constructions - Technology independent optimization - Creation of “RTL View” - Mapping of extracted logic structures to device primitives - Technology dependent optimization - Application of “synthesis constraints” -Netlist generation - Creation of “Technology View” - Placement of generated netlist onto the device -Choosing best interconnect structure for the placed design -Application of “physical constraints” - Bitstream generation - Burning device

25 Synthesis Report Example – Resource Utilization (1) Device utilization summary: Selected Device : 6slx4tqg144-3 Slice Logic Utilization: Number of Slice Registers: 53 out of % Number of Slice LUTs: 163 out of % Number used as Logic: 163 out of % Slice Logic Distribution: Number of LUT Flip Flop pairs used: 198 Number with an unused Flip Flop: 145 out of % Number with an unused LUT: 35 out of % Number of fully used LUT-FF pairs: 18 out of 198 9% Number of unique control sets: 7

26 Synthesis Report Example – Resource Utilization (2) IO Utilization: Number of IOs: 43 Number of bonded IOBs: 43 out of % Specific Feature Utilization: Number of BUFG/BUFGCTRLs: 1 out of 16 6% Number of DSP48A1s: 5 out of 8 62%

27 Synthesis Report Example – Timing Timing Summary: Speed Grade: -3 Minimum period: 6.031ns (Maximum Frequency: MHz)

28 Map Report Example – Resource Utilization (1) Design Summary Slice Logic Utilization: Number of Slice Registers: 54 out of 4,800 1% Number used as Flip Flops: 53 Number used as Latches: 0 Number used as Latch-thrus: 0 Number used as AND/OR logics: 1 Number of Slice LUTs: 149 out of 2,400 6% Number used as logic: 148 out of 2,400 6% Number using O6 output only: 133 Number using O5 output only: 0 Number using O5 and O6: 15 Number used as ROM: 0 Number used as Memory: 0 out of 1,200 0% Number used exclusively as route-thrus: 1

29 Map Report Example – Resource Utilization (2) Slice Logic Distribution: Number of occupied Slices: 58 out of 600 9% Number of MUXCYs used: 32 out of 1,200 2% Number of LUT Flip Flop pairs used: 162 Number with an unused Flip Flop: 109 out of % Number with an unused LUT: 13 out of 162 8% Number of fully used LUT-FF pairs: 40 out of % Number of unique control sets: 7 Number of slice register sites lost to control set restrictions: 35 out of 4,800 1% IO Utilization: Number of bonded IOBs: 43 out of %

30 Map Report Example – Resource Utilization (3) Specific Feature Utilization: Number of RAMB16BWERs: 0 out of 12 0% Number of RAMB8BWERs: 0 out of 24 0% ……. Number of DSP48A1s: 5 out of 8 62% …….

31 Post-PAR Static Timing Report Clock to Setup on destination clock clk_i | Src:Rise| Src:Fall| Src:Rise| Src:Fall| Source Clock |Dest:Rise|Dest:Rise|Dest:Fall|Dest:Fall| clk_i | 7.530| | | |

32 PAR Report Constraint | Check | Worst Case | Best Case | Timing | Timing | | Slack | Achievable | Errors | Score Autotimespec constraint for clock net clk | SETUP | N/A| 7.530ns| N/A| 0 _i_BUFGP | HOLD | 0.457ns| | 0|

33 Timing Report (1) Timing constraint: Default period analysis for net "clk_i_BUFGP" 3354 paths analyzed, 309 endpoints analyzed, 0 failing endpoints 0 timing errors detected. (0 setup errors, 0 hold errors) Minimum period is 7.530ns Delay (setup path): 7.530ns (data path - clock path skew + uncertainty) Source: a_register/q_o_4 (FF) Destination: x_reg_inst/q_o_3 (FF) Data Path Delay: 7.453ns (Levels of Logic = 2) Clock Path Skew: ns ( ) Source Clock: clk_i_BUFGP rising Destination Clock: clk_i_BUFGP rising Clock Uncertainty: 0.035ns

34 Timing Report (2) Maximum Data Path at Slow Process Corner: a_register/q_o_4 to x_reg_inst/q_o_3 Location Delay type Delay(ns) Physical Resource Logical Resource(s) SLICE_X4Y36.AQ Tcko a_register/q_o a_register/q_o_4 DSP48_X0Y3.B4 net (fanout=21) a_register/q_o DSP48_X0Y3.M3 Tdspdo_B_M Mmult_mult_unsigned Mmult_mult_unsigned SLICE_X8Y39.C4 net (fanout=1) mult_unsigned SLICE_X8Y39.CLK Tas x_reg_inst/q_o Mmux_x_57 Mmux_x_4_f7_2 Mmux_x_2_f8_2 x_reg_inst/q_o_ Total 7.453ns (4.209ns logic, 3.244ns route) (56.5% logic, 43.5% route)

35 Timing Report (3) Delay (setup path): 7.484ns (data path - clock path skew + uncertainty) Source: a_register/q_o_7_1 (FF) Destination: x_reg_inst/q_o_3 (FF) Data Path Delay: 7.391ns (Levels of Logic = 2) Clock Path Skew: ns ( ) Source Clock: clk_i_BUFGP rising Destination Clock: clk_i_BUFGP rising Clock Uncertainty: 0.035ns Clock Uncertainty: 0.035ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE Total System Jitter (TSJ): 0.070ns Total Input Jitter (TIJ): 0.000ns Discrete Jitter (DJ): 0.000ns Phase Error (PE): 0.000ns

36 Timing Report (4) Maximum Data Path at Slow Process Corner: a_register/q_o_7_1 to x_reg_inst/q_o_3 Location Delay type Delay(ns) Physical Resource Logical Resource(s) SLICE_X2Y33.AQ Tcko a_register/q_o_7_2 a_register/q_o_7_1 DSP48_X0Y3.B7 net (fanout=13) a_register/q_o_7_1 DSP48_X0Y3.M3 Tdspdo_B_M Mmult_mult_unsigned Mmult_mult_unsigned SLICE_X8Y39.C4 net (fanout=1) mult_unsigned SLICE_X8Y39.CLK Tas x_reg_inst/q_o Mmux_x_57 Mmux_x_4_f7_2 Mmux_x_2_f8_2 x_reg_inst/q_o_ Total 7.391ns (4.209ns logic, 3.182ns route) (56.9% logic, 43.1% route)