Intégration d un processeur spécialisé et de la logique Programmable au sein d un FPGA



Documents pareils
MAC-TC: programmation d un plate forme DSP-FPGA

Introduction à Eclipse

TP1 : Initiation à Java et Eclipse

TD/TP 1 Introduction au SDK d Android

TP1 : Initiation à Java et Eclipse

Comment paramétrer et sauvegarder les configurations d Altium Designer?

SIN-FPGA DESCRIPTION PAR SCHEMA

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Warren PAULUS. Android SDK et Android x86

Installation et utilisation de Cobian Backup 8

Le langage C. Séance n 4

SnapMusic Studio 715 Guide d Installation

Quoi de neuf en LabVIEW FPGA 2010?

Traitement de données

Installation et prise en main

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

PIC EVAL Dev Board PIC18F97J60

MANUEL UTILISATEUR SOPISAFE V 3.5

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Eclipse atelier Java

REPETEUR SANS FIL N 300MBPS

Prise en main. Prise en main - 0

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012


Procédure d installation de la solution Central WiFI Manager CWM

Clé USB Wi-Fi TP-Link TL-WN721N (150 Mbps) Manuel d installation

Parrot 3200LS-Color 3400LS-GPS

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

BIRT (Business Intelligence and Reporting Tools)

Clé USB 2.0 Wi-Fi n Référence

Installation du Logiciel de Configuration de l Agility sur Windows 64 bits

Instructions relatives à l installation et à la suppression des pilotes d imprimante PostScript et PCL sous Windows, version 8

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Guide d installation logicielle

Approche Contract First

DEPLOIEMENT MICROSOFT WINDOWS

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Connected to the FP World

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Installation Guide Serveur d impression et de stockage multifonctions à 2 ports USB 2.0 haute vitesse Manuel de l utilisateur

Suite logicielle ZOOM version 7.1 Guide d installation 94ZM-ZMJ1F-712

Installer les Pilotes USB

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

ACTIVITÉ DE PROGRAMMATION

Sage Paie Recueil d informations techniques. Sage Paie & RH. Recommandations techniques. Mise à jour : 18 décembre Sage R&D Paie PME 1

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Procédure d installation des logiciels EBP sous environnement MAGRET

Super HUD- Guide Utilisateur

Bases Java - Eclipse / Netbeans

WinReporter Guide de démarrage rapide. Version 4

Manipulations du laboratoire

Ces deux machines virtuelles seront installées sous VMWARE WORKSTATION.

Projet M1 Année scolaire 2013/2014

Guide d utilisation de PL7 Pro Récupérer ou transférer un programme

Sélection du contrôleur

PX8048 Convertisseur audio/vidéo VHS vers USB

TCHATONS PAR LIAISON SANS FIL BLUETOOTH

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Espace pro. Installation des composants avec Firefox. Pour. Windows XP Vista en 32 et 64 bits Windows 7 en 32 et 64 bits

Annexe : La Programmation Informatique

Cours 7 : Programmation d une chaîne d acquisition

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

Votre premier projet Android

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

Tutoriel déploiement Windows 7 via serveur Waik

GUIDE D INSTALLATION DES DRIVERS

Module.NET 3 Les Assemblys.NET

Installer ADONIS:CE. ADONIS:Community Edition 2.0 Français. Prérequis et procédure pas à pas. BOC Information Systems 5 rue du Helder, Paris

Guide de l utilisateur ArpentGIS-Trajet 1.2 ArpentGIS-Expert 1.4

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

Cours 1 : Qu est-ce que la programmation?

Programmer en JAVA. par Tama

Fiche n 14 : Import / Export avec PlanningPME

MODE D EMPLOI OUTLOOK ADD-IN POUR SELECTLINE

Installation et compilation de gnurbs sous Windows

hager Logiciel PC pour configurateur Radio Tebis TX 100 Manuel d utilisation 6T7266

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

SQL Server Installation Center et SQL Server Management Studio

Java Licence Professionnelle CISII,

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Cours 1 : La compilation

Programmation C. Apprendre à développer des programmes simples dans le langage C

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

as Architecture des Systèmes d Information

Manuel de l utilisateur

Utilisation de l outil lié à MBKSTR 9

Manuel utilisateur *PA * MAJ 30/12/2013 FR

Manuel d installation et d utilisation du logiciel GigaRunner

Logiciel (Système d impression directe)

Démarrage des solutions Yourcegid On Demand avec Citrix

Derrière toi Une machine virtuelle!

MS SQL Express 2005 Sauvegarde des données

Sauvegarde des données d affaires de Bell Guide de démarrage. Vous effectuez le travail Nous le sauvegarderons. Automatiquement

Transcription:

Intégration d un processeur spécialisé et de la logique Programmable au sein d un FPGA 1) Problématique et objectifs L objectif de cette séance est d intégrer un processeur spécialisé (PS) avec la logique programmable (PL) sur un FPGA. Le processeur spécialisé sur le Kit ATLYS SPARTAN 6 est baptisé Microblaze (voir cours sur les SOPC) et reste façonnable. On donne le symbole ci-dessous du PS (le system top). La suite logicielle software development kit SDK nous permettra de développer la partie software du PS. La partie PL ne sera pas modélisée en VHDL, on utilisera des IPCORE pré-câblés comme le clocking wizard et l IPCORE counter. L IPCORE counter sera simplement un compteur de 2 bits avec une horloge CLK et un reset synchrone sclr. Le FPGA sera connecté à 2 LEDS qui seront l image binaire des sorties du compteur LED0 et LED1 du kit. L interrupteur SW1 permettra de générer le signal d horloge. Sw0 actif au 0 logique nous permettra de réinitialiser le compteur via la broche sclr. PAGE 1

2) Méthodologie La méthodologie est la suivante : XPS Xilinx platform studio Définir la plateforme du système microprogrammé CPU microblaze ISE Integrated system editor - Créez notre schematic sous ISE afin d intégrer notre CPU des blocs de fonction numérique écrite en VHDL et des IPCORE propriétaires le tout synthétisé sur un FPGA -Simulez avec lsim le comportement du système - Programmez avec impact la partie matérielle du FPGA SDK software development kit Développez en langage C notre programme pour le cpu microblaze et programmez la partie logicielle FPGA On aura besoin de créer un répertoire projet et trois sous-répertoires pour nos 3 étapes : ISE pour l intégration RTL VHDL XPS pour la création et la configuration du processeur spécialisé PS SDK pour le développement logiciel du SOPC PAGE 2

3) Partie 1 :définir et configurer le processeur spécialisé Lancez le logiciel XPS On définit par la suite un board support package (BSB) qui sera fonction de l architecture matérielle du FPGA et du kit ATLYS La Prise en compte matériel du board support package de la carte ATLYS XILINX DIGILENT PAGE 3

La configuration du PS et les IPCORE intégrables du BSP s effectue sur la fenêtre suivante : PAGE 4

Cliquez sur next On peut intégrer dans le PS, des IPCORE compatibles avec le CPU microblaze. La fenêtre de droite nous donne tous les IPCORE qui constituent l architecture actuelle du PS Dans notre application on va Intégrer dans le PS, l IPCORE gpio afin de piloter notre compteur et de récupérer des consignes sur SW0 et SW1. On reliera par la suite le processeur spécialisé via le GPIO à l IPCORE compteur et aux interrupteurs SW0 et SW1 comme ceci est indiqué dans la figure suivante : PAGE 5

L Intégration de l IPCORE gpio dans le PS se fait par le bus AXI4lite du CPU Microblaze Le paramétrage de l IPCORE gpio a lieu par la suite : PAGE 6

En cliquant sur system on peut définir la plage d adresse du périphérique dans la cartographie mémoire du CPU Microblaze. Si on laisse par défaut ces adresses le logiciel SDK définira automatiquement une plage d adresse libre pour le périphérique gpio. La définition du choix de la plage d adresse n est donc pas obligatoire. En cliquant sur + sur la figure on voit apparaitre les broches d entrées sorties du périphériques gpio, coté gauche le bus AXI4lite et coté droit le bus du gpio qu il va falloir configurer par la suite. PAGE 7

On peut changez le nom de note périphérique gpio et on aperçoit la connexion du périphérique au bus AXI4LITE du PS: PAGE 8

On doit connecter les broches de sorties et d entrées du GPIO sur les broches externes du CPU microblaze : Pour le port de sortie du GPIO : PAGE 9

Pour le port d entrée du GPIO : On peut faire apparaitre la cartographie mémoire du CPU Microblaze qui nous sera utilie lors du développement logicielle sur SDK PAGE 10

On peut lancer une vérification architecturale du PS en cliquant sur run DRC (design rule check) Mais en fait, il y a un bug. Sur l axi_gpio, les ports GPIO_IO et GPIO2_IO sont restés en l air alors qu ils auraient dû être supprimés. Si vous faites un DRC, il y a deux erreurs. Pour corriger ce bug, il faut éditer le fichier system.mhs qui contient toutes les informations concernant le PS. Il faut faire apparaitre l onglet «Project» puis double cliquez sur le fichier : PAGE 11

Lancez à nouveau un DRC (design rule check ) et Sauvegardez le projet A ce stade notre processeur spécialisé a été façonné, on va donc intégrer ce PS dans un environnement matériel plus complexe sous ISE PAGE 12

4) Partie 2 : Intégration matérielle sous ISE Intégration PSOC 06/02/2014 Lancez le logiciel ISE qui traite les FPGA du type VIRTEX, SPARTAN, ZINQ, ARTIX. Créez un nouveau projet sur ISE PAGE 13

Comme vu lors des TPS VHDL, choisir notre FPGA de la carte ATLYS : Cliquez sur finish PAGE 14

Associez le système CPU Microblaze à notre projet Intégration PSOC 06/02/2014 Naviguez vers le dossier XPS PAGE 15

Générez le code source VHDL faisant apparaitre l entité du CPU Microblaze On va modifier l entité afin de faire apparaitre nos broches d entrée-sorties qui nous permettront de nous connecter au compteur et aux interrupteurs SW0 et SW1 PAGE 16

En sélectionnant system_top on peut vérifier la syntaxe VHDL du module CPU en double cliquant sur check syntax On doit par la suite intégrer l IPCORE compteur En sélectionnant system_top on peut vérifier la syntaxe VHDL du module CPU par check syntax PAGE 17

PAGE 18

On va paramétrer le compteur On intégre l IPCORE du type clocking wizard PAGE 19

Suivre la procédure vue lors des TPS VHDL pour produire une horloge à 100MHz sans entrée RESET et LOCKED On va créer un symbole pour le cœur de CPU Microblaze PAGE 20

On verra par la suite que le symbole créé du CPU microblaze aura la forme suivante : PAGE 21

Nos différentes entités (CPU, CLOCKING, compteur) seront reliées ensemble sur un top schematic, on va donc créer un top schematic PAGE 22

Complétez alors le schéma PAGE 23

Le schéma final aura l aspect suivant et permettra d intégrer dans notre FPGA, deux IPCORE préfabriqués (PL), et un PS CPU microblaze Pour associer les broches aux broches externes du FPGA, deux possibilités s offrent à nous : Complétez directement un fichier de contrainte.ucf en maitrisant la syntaxe Se servir du logiciel plan ahead pour établir ce fichier de contrainte Sélectionner implementation Contraints file PAGE 24

PAGE 25

Le fichier top_schema.ucf est créé automatiquement PAGE 26

Il nous reste à programmer matériellement et façonner notre FPGA (voir la procédure lors des TPs VHDL). Afin de développer le logiciel du CPU microblaze, double cliquez sur export hardware to sdk sans l exportation du ficher de programmation matérielle bit PAGE 27

5) Développement logiciel en langage C du processeur spécialisé Le lancement du logicielle SDK eclipse s effectue automatiquement SDK (software development kit) PAGE 28

Le BSP board support package a été créé par XPS PAGE 29

Modifiez le fichier source en C afin qu il réponde à notre application. PAGE 30

#include <stdio.h> #include "platform.h" //#include <sleep.h> #include "xparameters.h" #include "xgpio.h" void print(char *str); void usleep(unsigned int useconds); int main() { int Status, i; u32 Data_out, Data_in; XGpio Gpio; /* The Instance of the GPIO Driver */ init_platform(); xil_printf("essai tp10\n"); /* * Initialize the GPIO driver */ Status = XGpio_Initialize(&Gpio, 0); if (Status!= XST_SUCCESS) { return XST_FAILURE; } /* * GPIO channel 2 = en entrée * */ XGpio_SetDataDirection(&Gpio, 2, 0xffffffff); /* * GPIO channel 1 = sortie * */ XGpio_SetDataDirection(&Gpio, 1, 0x00000000); Data_out = 0; Data_in = XGpio_DiscreteRead(&Gpio, 2); xil_printf("datain = %x\n", Data_in);// etat des ports while(1){ Data_in = XGpio_DiscreteRead(&Gpio, 2);// lecture des ports entrées xil_printf("datain = %x\n", Data_in); if (Data_in==0x01)// fonctionnement libre du compteur for (i = 0; i < 4; i++) { // les 8 bits faibles de data_out sont // envoyés sur channel 2 Data_out=0x00; XGpio_DiscreteWrite(&Gpio, 1, Data_out); usleep(1000000); Data_out=0x01;// XGpio_DiscreteWrite(&Gpio, 1, Data_out); //Data_out++; // lecture dans l'ordre de SW5, SW7, SW12-1, SW12-2 //Data_in = XGpio_DiscreteRead(&Gpio, 1); //xil_printf("datain = %x\n", Data_in); } else PAGE 31

} { Data_out=0x02; XGpio_DiscreteWrite(&Gpio, 1, Data_out); } } return 0; void usleep(unsigned int useconds) { int i,j; for (j=0;j<useconds;j++) for (i=0;i<15;i++) asm("nop"); } La compilation se fait logiquement automatiquement quand on sauvegarde l environnement File save project PAGE 32

Cliquez droit puis sur new pour lancer la configuration Intégration PSOC 06/02/2014 La page principale apparait : PAGE 33

Définir le comportement de la carte ATLYS après la fin de configuration On peut émuler la liaison série RS232 du kit FPGA sur la prise usb/uart (port com8 ici) Cliquez sur run dans le menu le fichier de programmation est chargé dans la mémoire vive du kit FPGA et l application matérielle et logicielle doivent se lancer PAGE 34