Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and...

15
1 Präsenzeinheit 1 : Das VIVADO Entwurfssystem Zielsetzung Erzeugung neuer VIVADO-Projekte mit dem New Project Wizard Beschreibung der Entwurfsarten der VIVADO IDE Erzeugung von DRC Reports zur Entdeckung/Isolation von Designfehlern Verwendung des VIVADO I/O Planning Werkzeuges zur Vorgabe der FPGA Pins Untersuchung und Verwendung der Optionen für die Synthese und Implementierung und Durchführung der Implementierung Vorstellung des "Baselining"-Prozesses und deren Verwendung bei der Optimierung der Timing Vorgaben Erzeugung unterschiedlicher Synthese- und Implementierungs- Reports unter Verwendung der Tcl Konsole sowie des VIVADO GUI Verwendung des "Schematic/Hierarchy Viewers" zur Identifikation von Sub-Komponenten und Analyse des Designs Identifikation des Einflusses der Fertigung auf die Timinganalyse Definition der Verarbeitung der min/max Timingparameter im Reportfile der Timinganalyse Verwendung spezieller Optionen des Timinganalysators zur Erzeugung spezieller Reports Spezifikation der I/O Timingvorgaben für "Source synchrone" und "System synchrone" Anwendungen Analyse der Timingreports zur Zentrierung der Taktflanken im Datenauge Verwendung der "Area Constraints" zur Optimierung des Designverhaltens Kombination des "Hierarchical viewer", " Schematic viewer" und der Timingreports zur Definition optimierter Area Constraints Verwendung von "project-based" und "non-project based" Batch Anweisungen für Synthese, Implementierung und Report File Erzeugung

Transcript of Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and...

Page 1: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

1

Präsenzeinheit 1 :

Das VIVADO Entwurfssystem Zielsetzung

Erzeugung neuer VIVADO-Projekte mit dem New Project Wizard

Beschreibung der Entwurfsarten der VIVADO IDE

Erzeugung von DRC Reports zur Entdeckung/Isolation von Designfehlern

Verwendung des VIVADO I/O Planning Werkzeuges zur Vorgabe der FPGA Pins

Untersuchung und Verwendung der Optionen für die Synthese und Implementierung und

Durchführung der Implementierung

Vorstellung des "Baselining"-Prozesses und deren Verwendung bei der Optimierung der

Timing Vorgaben

Erzeugung unterschiedlicher Synthese- und Implementierungs- Reports unter Verwendung

der Tcl Konsole sowie des VIVADO GUI

Verwendung des "Schematic/Hierarchy Viewers" zur Identifikation von Sub-Komponenten

und Analyse des Designs

Identifikation des Einflusses der Fertigung auf die Timinganalyse

Definition der Verarbeitung der min/max Timingparameter im Reportfile der Timinganalyse

Verwendung spezieller Optionen des Timinganalysators zur Erzeugung spezieller Reports

Spezifikation der I/O Timingvorgaben für "Source synchrone" und "System synchrone"

Anwendungen

Analyse der Timingreports zur Zentrierung der Taktflanken im Datenauge

Verwendung der "Area Constraints" zur Optimierung des Designverhaltens

Kombination des "Hierarchical viewer", " Schematic viewer" und der Timingreports zur

Definition optimierter Area Constraints

Verwendung von "project-based" und "non-project based" Batch Anweisungen für Synthese,

Implementierung und Report File Erzeugung

Page 2: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

2

Agenda

Vivado Synthesis and Implementation

o Basic Timing Constraints

o Multi-Cycle

o False Path

o check_timing

Performance Baselining

Vivado Design Flows

o non-project batch flow

o runs manager for project-based flow

o common mistakes

Vivado Reports

Basic Design Analysis

UltraFast™ Design Methodology

o HDL Coding methodology

o timing constraint methodology

o pin planning

Advanced Timing Analysis

o min/max timing analysis

o report_timing / report-timing_summary

System-Synchronous and Source-Synchronous I/O Timing

o I/O timing cases

Introduction to Pblocks

o Floorplanning is helpfull

Floorplanning Techniques

o key floorplanning principles

o best floorplanning methodologies

Hierarchical Design

o out-of-context modules

o module analysis flow

o bottom-up / top-down methodology

Project-Based and Non-Project Batch Design Flows

o structure and files of a project

o operations of the runs manager

o managing the constraints

Scripting Using the Project-Based and Non-Project Batch Flows

Page 3: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

3

Übungen

Übung 1: Vivado IDE Overview

Übung 2: Vivado Synthesis and Implementation

Übung 3: Vivado Design Rule Checker

Übung 4: Vivado Reports

Übung 5: Basic Design Analysis

Übung 6: Advanced I/O Timing

Übung 7: Design Analysis and Floorplanning

Übung 8: Scripting in the Project-Based Flow

Übung 9: Scripting in the Non-Project Batch Flow

Empfohlene vertiefende Inhalte

Anhang 1: Advanced Timing Analysis

Page 4: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

4

Präsenzeinheit 2 und Präsenzeinheit 3 (jeweils 2 Tage):

Die VHDL Synthese Zielsetzung

Überblick der Hardware Beschreibungssprache VHDL

Erarbeitung der Unterschiede zwischen Verhaltungsbeschreibung und struktureller

Beschreibung

Erarbeitung der Unterschiede zwischen Beschreibung einer Komponente für die Simulation

und einer synthesegerechten Beschreibung dieser Komponente

Verwendung von skalaren und zusammengesetzten (composite) Datentypen

Verwendung von seriellen und nebenläufigen Anweisungen zur Steuerung des Datenflusses

Beschreibung von Basiskomponenten unter Verwendung häufiger VHDL Konstrukte

Finite State Machines (FSMs)

Beschreibung von Automaten (Finite State Machines FSM)

Beschreibung von RAM/ROM Datenstrukturen

Einführung in die VHDL Simulation

Definition der grundlegenden Regeln zur Modellierung von Komponenten

Agenda

Introduction to VHDL

o Component Instantiation

o Behavioral Descriptions

o Concurrent Signal Assignment

o Process Statement

o Sequential Statements

Behavioral Modeling

o Introduction to Behavioral Modeling

o Transport and Inertial Delays

o Driver Creation

o Generics

Sequential Processing

o Process Statement

o Signal Assignment versus Variable Assignment

o Sequential Statements

o IF Statement

Page 5: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

5

o CASE Statement

o LOOP Statement

o WAIT Statements

Object Types

o Signal

o Variable

o Constant

Data Types

o Scalar Types

o Composite Types

o File Types

Subprograms and Packages

Subprograms

o Functions

o Conversion Functions

o Procedures

Packages

o Package Declaration

o Deferred Constant

o Subprogram Declaration

o Package Body

Predefined Attributes

o Value Kind Attributes

o Function Kind Attributes

o Signal Kind Attributes

o Type Kind Attributes

o Range Kind Attributes

Generate Statement

Simple Testbench

Übungen

Übung 1: Using the Tools, Data Types, Concurrent Operations

Übung 2: Using Concurrent Statements, Processes and Variables

Übung 3: Designing a Simple Process

Übung 4: Simulating a Simple Design Creating Memory

Übung 5: Building a Dual-Port Memory Finite State Machines

Page 6: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

6

Übung 6: Building a Moore Finite State Machine Targeting Xilinx FPGAs

Übung 7: Xilinx Tool Flow

Übung 8: Using Loops

Übung 9: Building Your Own Package Interacting with the Simulation

Übung 10: Building a Meaningful Testbench

Referenz

VHDL REFERENZ Tables

Empfohlene vertiefende Inhalte

Anhang 1: HDL Coding Techniques

Page 7: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

7

Präsenzeinheit 4 (2 Tage)

Die VHDL Simulation Zielsetzung

Beschreibung und Verwendung der VHDL Testbenches

Verwendung existierender Packages zur Beschreibung wiederverwendbarer Funktionen

Erzeugung eigener Packages zur Beschreibung wiederverwendbarer Funktionen

Erzeugung von selbst-testenden Testbenches

Beschreibung von realistischen Simulationsmodellen

Verwendung von File I/O zur dynamischen Speicherung von Simulationsdaten

Verwendung von File I/O zur Erzeugung von Eingangstestdaten

Verwendung von Parametern (Generics) zur Beschreibung von wiederverwendbaren

Funktionen und Komponenten

Agenda

Review of Transport and Inertial Delays

Simulation Concepts

o Different Types of Testbenches

o the self-testing testbench

Stimuli Generation

o Bus Functional Models (BFM)

o Analog type stimulus

o random stimulus

Attributes used for VHDL Simulation

o checking the behavior

o checking the timing

o 'STABLE

o 'LAST_EVENT

Access Type Techniques and Blocks

Utilizing File I/O

Modeling external Components

o External UART

o External ADC

o External DAC

o External Memory

o External µController

Page 8: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

8

Cool Stuff with VHDL

Übungen

Übung 1: Flexible Functions

Übung 2: Linked Lists with Access Types

Übung 3: TextIO Techniques

Übung 4: Creating Real-Word Simulations Supporting Multiple Platforms

Übung 5: Supporting Multiple Platforms Non-Integer Numbers

Übung 6: Implementing Fixed and Floating Point Numbers

Page 9: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

9

Präsenzeinheit 5 (2 Tage)

Die FPGA Architektur Zielsetzung

Funktionale Beschreibung 6-Input LUT und der SLICES/CLBS der 7-Series FPGAs

Spezifikation der CLB Resourcen und der verfügbaren SLICE Konfigurationen

Spezifikation der Block RAM, FIFO, und DSP Resourcen

Spezifikation der I/O Zellen sowie der ISERDES/OSERDES Einheiten

Spezifikation und Verwendung der MMCM / PLL Einheiten sowie der

Taktverteilungseinheiten

Definition und Verwendung der Hard IPs zur Implementierung der High-Performance DDR3

Schnittstellen

Beschreibung zusätzlicher Hard IP Zellen der 7-Series FPGAs

Agenda

7 Series FPGA Overview

o 7 Series Families

o Architecture

o Dedicated IP

CLB Architecture

o CLB Structure and Routing

o Slice Resources

o Distributed RAM/SRL

o Using Slice Resources

Slice Flip-Flops

o Control Sets

o Designing Resets

o Other Reset Considerations

Memory Resources

o Block RAM Capabilities

o FIFO Capabilities

o Using Block RAM Resources

DSP Resources

o DSP Overview

o 7 Series FPGA DSP Slice

Page 10: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

10

o Pre-Adder and Dynamic Pipeline Control Advantages

o IP Support and Inference

I/O Resources

o SelectIO Interface Electrical Resources

o SelectIO Interface Logical Resources

o Power Savings

o Using SelectIO Interface Resources

Clocking Resources

o Clock Networks and Buffers

o Clock Management Tile

o Usage Models

o Using Clock Resources

Memory Controllers

o Phaser and I/O FIFOs

o Memory Controller

o Memory Interface Generator (MIG)

Dedicated Hardware

o Serial Gigabit Transceivers

o PCI Express Technology Interface

o XADC and AMS

Coding Techniques

o Hierarchy

o Control Sets

o Synthesis Options

Übungen

Übung 1: CLB Resources, Memory Resources

Übung 2: Memory Resources, DSP Resources

Übung 3: DSP Resources

Übung 4: I/O Resources

Übung 5: Clocking Resources

Page 11: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

11

Präsenzeinheit 6 und Präsenzeinheit 7 (jeweils 2 Tage):

Die FPGA Design Technik Zielsetzung

Definition der "UltraFast Design Methodology"

Identifikation der Schlüsselparameter zur Optimierung der Timing- / Flächenvorgaben

Definition eines korrekt spezifizierten FPGA Designs

Optimierung der VHDL Beschreibung zur Effizienzsteigerung der benötigten FPGA Ressourcen

bzw. zur Erzielung der Timingvorgaben

Empfohlene Verwendung der RESET Strukturen

Verwendung von unterschiedlichen Sysnchronisationstechniken zur Vermeidung der

Metastabilität und zur Optimierung der Hardware Verifikation

Verwendung des "VIVADO Clock Interaction" Reports

Definition der Methodik für die Timingoptimierung ("Timing Closure")

Die Verwendung der Xilinx XDC Constraints für die Beschreibung von ungültigen Pfaden,

Pfaden mit definierten Ausnahmen oder Pfaden die in mehreren Takten durchlaufen werden

können (timing exceptions, false paths, multi-cycle path constraints)

Verwendung der statischen Timinganalyse zur Analyse der Verzögerungszeiten

Verwendung von speziellen XDC I/O Vorgaben zur Spezifikation von externen Komponenten

Beschreibung der verschiedenen Syntheseoptionen zur Verbesserung der

Designperformance

Agenda

UltraFast Design Methodology Checklist

FPGA Design Methodology

o Device and System Architecture

o HDL Coding Techniques

o Pin Planning and Floorplanning Methodology

HDL Coding Techniques

o Introduction

o Control Sets

o Control Signal Design Tips

o Design Tips

Reset Methodology

o Fundamentals

Page 12: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

12

o Why Reset?

o Reset Recommendations

o Reset Workarounds

Synchronization Circuits and the Clock Interaction Report

o Single Bit Synchronization Circuits

o Bus Synchronization Circuits

o Clocks and Synchronizers

FPGA Design Techniques

o Duplicating Flip-Flops

o Pipelining

o I/O Flip-Flops

Accessing the Design Database

o Finding Objects

o Object Properties

o Object Connectivity

Static Timing Analysis and Clocks

o Setup Checks and Clocks

o Timing Reports

o Hold Checks

o Generated Clocks

o Multiple Clocks

Inputs and Outputs

o Creating Input Delays

o Creating Output Delays

o Using Virtual Clocks

Timing Exceptions

o Multicycle Paths

o False Paths

o Max/Min Delay Exceptions

o Constraint Priority

Timing Closure

o Techniques to Isolate Common Timing Bottlenecks

o Last Mile Strategies

Page 13: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

13

Übungen

Übung 1: Vivado IDE Database

Übung 2: Vivado IDE Clocks

Übung 3: I/O Constraints

Übung 4: Timing Exceptions Synthesis Techniques

Übung 5: Resets

Übung 6: SRL and DSP Inference

Übung 7: Timing Closure and Design Conversion

Empfohlene vertiefende Inhalte

Anhang: Timing Constraints Review

Anhang: Synchronization Circuits and the Clock Interaction Report

Anhang: Replication, Fanout, and Physical Optimization

Anhang : Pipelining lab

Anhang: Handling Vivado Design Suite Objects in the GUI

Page 14: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

14

Präsenzeinheit 8 (2 Tage):

Hardware Debugging Zielsetzung

Spezifikation und Verwendung der VIVADO IDE Debug Cores

Effiziente Nutzung des VIVADO LoGIC Analysators

Implementierung der VIVADO Debug Cores mit Hilfe der Netzlisteninsertion oder der

Instantiierung in der VHDL Beschreibung

Hinweise für die effektive Nutzung von internen Testpunkten

Optimierung der Designperformance bei der Nutzung von VIVADO Debug Cores

Beschreibung unterschiedlicher Methoden für die Datenaquisition, inklusive

Datenspeicherung, Skripting und Spezifikation spezieller Triggerereignisse

Agenda

How the Vivado Logic Analyzer Works

o Debugging Flows

o Debug Cores

Adding the Debug Cores – Netlist Insertion Flow

o Vivado IDE Logic Debug Support

o Using the Netlist Insertion Debug Probing Flow

o Using the Vivado Logic Analyzer

Instantiating the Debug Cores – HDL Instantiation Flow

o Instantiation Process of Cores

o ILA Core and Options

o VIO Core

Debug Flow in the IP Inegrator

o IP Integrator Overview

o Debug Core Integration in IPI

Triggering and Visualizing Data

o Trigger Settings

o Views

o Saving and Restoring Captured Data

o Debugging at Device Startup

Tips and Tricks

o Keeping Time

Page 15: Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and Implementation ... o Behavioral Descriptions ... o Conversion Functions o Procedures

15

o Sampling in Multiple Clock Domains

o Unconventional Triggering

o Using Tcl Commands to Change the Nets for Debug

Scripting

o Hardware Server and Analyzer Scripting

o Tcl Interface

Übungen

Übung 1: Inserting a Debug Core Using the Netlist Insertion Flow

Übung 2: Adding a Debug Core Using the HDL Instantiation Flow

Übung 3: Debugging Flow – IPI Block Design

Übung 4: Tips and Tricks

Übung 5: VIO Tcl Scripting

Übung 6: Remote Access (optional)