Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and...
Transcript of Präsenzeinheit 1 - plc2.complc2.com/assets/files/agenda_fpga_designer.pdf · Vivado Synthesis and...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)