MAC-TC: programmation d un plate forme DSP-FPGA Tanguy Risset avec l aide de: Nicolas Fournel, Antoine Fraboulet, Claire Goursaud, Arnaud Tisserand - p. 1/17
Plan Partie 1: le système Lyrtech Introduction systèmes Introduction system on chip (exemple Da Vinci) Programmation d un système de calcul embarqué Architecture et chaîne de compilation de la carte Lyrtech Un exemple simple sur la carte Partie 2: Conception de circuit Présentation des architectures FPGA Rappel sur les circuits intégrés Présentation rapide de Vhdl - p. 2/17
- p. 3/17
- p. 4/17
Système Lyrtech Complet - p. 5/17
Carte SFF SDR/EM - p. 6/17
Da Vinci SoC - p. 7/17
Infrastructure de Programmation - p. 8/17
Deux modes de Programmation Trois étapes pour programmer la plate-forme: Détecter la plate-forme sur le réseau ethernet générer les fichiers binaires pour le FPGA pour le DSP Télécharger les binaires sur la plate-forme Board Software Development Kit (BSDK): On travaille à partir: d un fichier.c pour le DSP d un fichier.vhd pour le FPGA Model-Based Development Kit (MBDK, pas expliqué ici), on travaille à partir: de boites simulink pour le DSP de boites simulink pour le FPGA - p. 9/17
BSDK Lyrtech fournit un utilitaire smshell qui permet un certain nombre de commande détecter et locker la carte Lyrtech sur le réseau depuis le host: smdetect télécharger le binaire du DSP (un.out) télécharger la configuration du FPGA (un.bit) On peut lancer smshell depuis l onglet Programmes mais il vaut mieux utiliser un fichier.bat associé à chaque projet Un projet BSDK contient trois sous-répertoires dsp fpga host (fichier de commande smshell) - p. 10/17
Commandes smshell exemple de commandes de smshell (taper help dans le smshell): ; Detect SFF SDR EVM ; smdetect sdr detect ip 134.214.146.255 transport 0 ip 134.214.146.99 connect 0 ; load FPGA corresponding to your hardware configuratio fpgaload..\fpga\ise\sdrioring.bit ; load DSP corresponding to your hardware configuration dspload..\dsp\pjt\debug\loopcodecvpss.out - p. 11/17
Outils TI et Xilinx Le répertoire DSP contient: Un répertoire src Un répertoire pjt: fichier pour l environnement de programmation (Code Composer Studio) Un répertoire cmd: commande de compilation Le répertoire fpga contient: répertoires ise et ucf pour l environnement de programmation (Xilinx ISE) Un répertoire src - p. 12/17
FPGA: partie custom logic - p. 13/17
Petit exemple: allumer une LED Étape 1: savoir comment sont accessible les registres de configuration des LED. Par l intermédiaire du FPGA - p. 14/17
Petit exemple: allumer une LED Étape 2: Comment accéder à ces registres Méthode 1: on utilise l API fournit par Lyrtech ( SFF SDR EVM-DP - DSP API.pdf p11): void FPGA_LEDSet (Uint8 LedSet) This function turns on LED. ou fichier fpga.h accessible en Lyrtech/SFF\_SDR/sdk/dsp/inc/ D où le code pour le DSP (source: Lyrtech): if (IntCount0&0x1) FPGA_LEDSet(FPGA_LED0); else FPGA_LEDClear(FPGA_LED0); - p. 15/17
Petit exemple: allumer une LED Étape 2: Comment accéder à ces registres Méthode 2: on trouve l adresse du registre (SFF SDR EVM-DP - Users guide.pdf p16 et 20) D MP SoC memory map Adress range 0x02000000-0x02FFFFFFF 0x04000000-0x04FFFFFFF 0x04000000-0x04FFFFFFF Description NAND Flash memory FPGA DDR2 SDRAM FPGA memory map Offset Access Mnemonic Description... 0x8300 R/W LED_CONTROL LED control... D où le code pour le DSP (source: Nicolas Fournel): volatile Uint32 *leds = (volatile Uint32*)0x04008300; int Iter = 0;... *leds = (Iter >> 10) & 0x3; - p. 16/17
Exemple complet Exemple sff_sdr_audiocodec_vpss_loop, repertoire Lyrtech/SFF\_SDR/examples/default/hard_func_ex/ Entrée du port audio rebouclée vers la sortie du port audio par l intermédiaire du FPGA - p. 17/17