Cours Dsp Esprit p2 2011

download Cours Dsp Esprit p2 2011

of 69

Transcript of Cours Dsp Esprit p2 2011

  • 8/18/2019 Cours Dsp Esprit p2 2011

    1/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20111

    Concepts et Pratique des

    Processeurs Numériques des

    Signaux (DSP) 

    Chiheb Rebai, Nadia [email protected], [email protected] 

    ©Esprit, Février 2011

    École Supérieure Privé d’Ingénierie et deTechnologies

    mailto:[email protected]:[email protected]:[email protected]:[email protected]

  • 8/18/2019 Cours Dsp Esprit p2 2011

    2/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20112

    Objectifs du cours

    Mise en évidence de:Fonctionnalités de base des processeurs numériques des signaux (DSP)

     Architectures des cores et des périphériques des DSPs

    Méthodologies et Outils de développement, de vérification et de mise au point

    Compétences à acquérir:

    Maîtrise des architectures matérielles des DSPs

    Maîtrise du jeu d’instructions pour la programmation des DSP 

    Spécification des applications d’implantation sur DSP 

    Règles de structuration et de développement de codes DSP

    Maîtrise des outils de développement et de test des applications DSP 

  • 8/18/2019 Cours Dsp Esprit p2 2011

    3/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20113

    Programme du module

    Séance 1 Concepts de base des DSP: définition et architecturegénérique

    C. Rebai

    Séance 2 Étude des DSP AD-Blackfin: architecture et jeud’instructions 

    C. Rebai

    Séance 3 Initiation à l’environnement de développement intégré

    Visual DSP++

    C. Rebai

    Séance 4  Application 1: Familiarisation avec le jeu d’instructions

    du DSP BlackfinC. Rebai

    M. Attia

    Séance 5  Application 2: Implantation d’un filtre à réponse

    impulsionnelle finie (FIR)C. Rebai

    M. Attia

    Séance 6  Application 3: Chargement des porteuses d’unmodulateur DMT  

    C. RebaiM. Attia

    Séance 7  Application 4: Fonctions de traitement d’images  C. Rebai

    M. Attia

  • 8/18/2019 Cours Dsp Esprit p2 2011

    4/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20114

    Partie 2

    Etude des DSP AD-Blackfin

     Architecture du core ADSP Blackfin

    Unités périphériques

    Jeu d’instructions et exemples 

  • 8/18/2019 Cours Dsp Esprit p2 2011

    5/69  ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20115

    Architecture du core

    ADSP Blackfin

    École Supérieure Privé d’Ingénierie et deTechnologies

  • 8/18/2019 Cours Dsp Esprit p2 2011

    6/69  ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20116

    Road Map DSP AD-Blackfin

  • 8/18/2019 Cours Dsp Esprit p2 2011

    7/69  ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20117

    Architecture ADSP BF533

  • 8/18/2019 Cours Dsp Esprit p2 2011

    8/69  ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20118

    Architecture ADSP BF535

  • 8/18/2019 Cours Dsp Esprit p2 2011

    9/69  ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 20119

    Architecture ADSP BF561

    JTAG Testand

    Emulation

    InterruptController/

    Timer

    Blackfin-LP Core Instr Cache / SRAMData Cache / SRAM

    Scratch

    Blackfin-LP Core Instr Cache / SRAMData Cache / SRAM

    Scratch

    128K Bytes SRAM 

    System Bus Interface Unit 

    GP I/O 

    SPI 

    UART0 IrDA 

    64

    SPORT0 

    SPORT1 32

    PPI PPI External Mem 

    Controller  

    32 

    16 

    DMAController 1

    DMAController 2

    32 

    16 

    Watchdog

    Timer

    Boot ROM

    PAB EAB DAB 

    Clock andPower Mgmt

    Cntl (PLL)

    InterruptController/

    Timer

    Watchdog

    Timer

    IMDMAController

    DAB 

    Timers 

    Dual Core

  • 8/18/2019 Cours Dsp Esprit p2 2011

    10/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201110

    Modes opératoires

    Les DSP Blackfin supportent 3 modes:

    Supervisor Mode

    Permet un accès complet à toutes les ressources périphériques

    Utilisé pour les OS kernel et les device derivers

    Permet de servir les interruptions et les exceptions

    User Mode

    Code d’algorithmes ne permettant pas un accès aux ressources périphériques  

    Ne permet pas de servir les interruptions et les exceptions

    Emulator (or Debug) Mode

    Permet les mêmes fonctionnalités que le Supervisor mode et accessible via

    JTAG

  • 8/18/2019 Cours Dsp Esprit p2 2011

    11/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201111

    Architecture du core

  • 8/18/2019 Cours Dsp Esprit p2 2011

    12/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201112

    2 Multiplieurs 16 bits

    2 accumulateurs 40 bits

    2 ALU 40 bits

    4 ALU video 8 bits

    1 Shifter

    Data Registers

    Manipulation dedonnées 8, 16, ou32 bits à partir dubanc de registres

    de calcul

    2 DAGs

    Unités arithmétiques et d’adressage 

  • 8/18/2019 Cours Dsp Esprit p2 2011

    13/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201113

    Registres du core

    Tous les traitements sont effectués sur des données contenues dans des registres

    Tous les périphériques sont configurés avec des registres

    L’accès mémoire se fait à travers des pointeurs dans les registres d’adresses  

    L’accès aux registres se fait par nom ou registre mappé en mémoire (MMRs : Memory

    Mapped registers)

    Registres du core accessib les par nom

  • 8/18/2019 Cours Dsp Esprit p2 2011

    14/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201114

    Registres du core

    Frame Pointer

    Stack Pointer

  • 8/18/2019 Cours Dsp Esprit p2 2011

    15/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201115

    R[7:0] : 32 bits

    R[7:0].H : 16 bits

    R[7:0].L : 16 bits

    A[1:0] : 40 bits

    A[1:0].X : 8 bi ts

    A[1:0].W : 32 bits

    A[1:0].H : 16 bits

    A[1:0].L : 16 bits

    Registres de données

    Exemple: accès par nom

  • 8/18/2019 Cours Dsp Esprit p2 2011

    16/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201116

    Index registers: I[3:0]  Unsigned 32-bit

    Modify registers: M[3:0]  Signed 32-bits

    Base and Length registers: B[3:0] and L[3:0]  Unsigned 32-bits

    Pointer registers: P[5:0], FP, USP, and SP Unsigned 32-bits

    Caractéristiques

    • Supply address and post-modify 

    • Supply address with offset 

    • Modify address 

    • Bit-reversed carry address

    Registres des DAG

  • 8/18/2019 Cours Dsp Esprit p2 2011

    17/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201117

    R0 = [ I2 ] ;  /*loads a 32-bit value from an address pointed to by I2 and stores it in the

    destination register R0*/

    R0 = [ I2++M1 ] ;  /*loads a 32-bit value from an address pointed to by I2 and stores it in the

    destination register R0, I2 is then updated by M1 content*/

    R0.H = W [ I2 ] ;  /* loads a 16-bit value from an address pointed to by I2 and stores it in the

    16-bit destination register R0.H */

    [ P1 ] = R0 ; /* 32-bit store operation.*/

    B [ P1++] = R0 ;  /* stores the 8-bit value from the R0 register in the address pointed to by

    P1 register, then increments P1 register Byte transfer only with pointers */

    R0 = W [ P1++ ] (Z) ;  /* loads a 16-bit word into a 32-bit destination register from an address

    pointed to by the P1 Pointer register. The Pointer is then incremented by

    2 and the word is zero-extended to fill the 32-bit destination register */ 

    I1 += M2 ;  /* adds M2 to I1 and updates I1 with the new value, no memory access*/ 

    Instructions DAG

  • 8/18/2019 Cours Dsp Esprit p2 2011

    18/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201118

    Architecture ALU

  • 8/18/2019 Cours Dsp Esprit p2 2011

    19/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201119

    Fonctions ALU

  • 8/18/2019 Cours Dsp Esprit p2 2011

    20/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201120

    Opérations ALU 16 bits

    Single 16-bit addition

    Dual 16-bit addition

    Quad 16-bit addition

    Dual 16-bit Cross

    addition

    with saturation

  • 8/18/2019 Cours Dsp Esprit p2 2011

    21/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201121

    Opérations ALU 32 bits

    32-bit addition

    Dual 32-bit addition

  • 8/18/2019 Cours Dsp Esprit p2 2011

    22/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201122

    Opérations ALU logiques

  • 8/18/2019 Cours Dsp Esprit p2 2011

    23/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201123

    Architecture MAC

  • 8/18/2019 Cours Dsp Esprit p2 2011

    24/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201124

    Fonctions MAC

  • 8/18/2019 Cours Dsp Esprit p2 2011

    25/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201125

    Mode 1: Fractional mode

  • 8/18/2019 Cours Dsp Esprit p2 2011

    26/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201126

    Mode 2: Integer mode

  • 8/18/2019 Cours Dsp Esprit p2 2011

    27/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201127

    Single MAC 16-bit operation

  • 8/18/2019 Cours Dsp Esprit p2 2011

    28/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201128

    Multiplication + accumulation

  • 8/18/2019 Cours Dsp Esprit p2 2011

    29/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201129

    MAC avec transfert DReg

  • 8/18/2019 Cours Dsp Esprit p2 2011

    30/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201130

    Dual MAC operations

  • 8/18/2019 Cours Dsp Esprit p2 2011

    31/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201131

    Dual MAC operations

  • 8/18/2019 Cours Dsp Esprit p2 2011

    32/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201132

    Architecture du SHIFTER

  • 8/18/2019 Cours Dsp Esprit p2 2011

    33/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201133

    Fonctions SHIFTER

  • 8/18/2019 Cours Dsp Esprit p2 2011

    34/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201134

    Opérations SHIFTER

    Décalag e arithmétique

    Rotation

  • 8/18/2019 Cours Dsp Esprit p2 2011

    35/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201135

    Décalage logique

  • 8/18/2019 Cours Dsp Esprit p2 2011

    36/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201136

    Program Sequencer

    Fonctionnalités Program

    Sequencer

    Maintains Loops,

    Subroutines, Jumps, Idle,

    Interrupts and Exceptions

    Contains a 10-stage

    instruction pipeline

    Includes Zero-Overhead

    Loop Registers

  • 8/18/2019 Cours Dsp Esprit p2 2011

    37/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201137

    Instructions Program Sequencer

  • 8/18/2019 Cours Dsp Esprit p2 2011

    38/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201138

    Instructions Pipeline

    Exécution Pipeline

  • 8/18/2019 Cours Dsp Esprit p2 2011

    39/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201139

    Program Flow Control

  • 8/18/2019 Cours Dsp Esprit p2 2011

    40/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201140

    (If CC) jump get_new_sample ; /* assembler resolved target, abstract offsets */

    (If !CC ) jump (p5) ; /* P5 contains the absolute address of the target */

    call ( p5 ) ;

    call get_next_sample ;

    P5 = 0x20;

    LSETUP (lp_start, lp_end ) LC0 = P5; /* loop setup instruction */ 

    lp_start: R5 = R0 + R1(ns) || R0 = [P2++] || R1 = [I1++];

    lp_end: R5 = R5 + R2;

    Two sets of loop registers are used to manage two nested loops:

    • LC[1:0] – the Loop Count registers

    • LT[1:0] – the Loop Top address registers

    • LB[1:0] – the Loop Bottom address registers

    Interruptions vs Exceptions

  • 8/18/2019 Cours Dsp Esprit p2 2011

    41/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201141

    Classification des interruptions

  • 8/18/2019 Cours Dsp Esprit p2 2011

    42/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201142

    Variation Program Flow

  • 8/18/2019 Cours Dsp Esprit p2 2011

    43/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201143

    Caractéristiques de la mémoire

  • 8/18/2019 Cours Dsp Esprit p2 2011

    44/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201144

    32 bits d’adresses  Capacité maximale d’adressage = 4 Goctets 

    L1 Static Random Access Memories (SRAM)

    A set of memory-mapped registers (MMRs)

    A boot Read Only Memory (ROM)

    Hiérarchie mémoire

  • 8/18/2019 Cours Dsp Esprit p2 2011

    45/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201145

  • 8/18/2019 Cours Dsp Esprit p2 2011

    46/69

    Mémoire L1 - Instructions

  • 8/18/2019 Cours Dsp Esprit p2 2011

    47/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201147

    Mémoire L1 - Data

  • 8/18/2019 Cours Dsp Esprit p2 2011

    48/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201148

  • 8/18/2019 Cours Dsp Esprit p2 2011

    49/69

    Architecture des périphériques

  • 8/18/2019 Cours Dsp Esprit p2 2011

    50/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201150

    Périphériques communication série

  • 8/18/2019 Cours Dsp Esprit p2 2011

    51/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201151

    Architecture ports série SPORTs)

  • 8/18/2019 Cours Dsp Esprit p2 2011

    52/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201152

    Peripheral Access Bus

    DMA Access Bus

    Fonctionnalités SPORTs

  • 8/18/2019 Cours Dsp Esprit p2 2011

    53/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201153

    Fonctionnalités SPI

  • 8/18/2019 Cours Dsp Esprit p2 2011

    54/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201154

    Architecture SPI

  • 8/18/2019 Cours Dsp Esprit p2 2011

    55/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

     Février 201155

    Application SPI

  • 8/18/2019 Cours Dsp Esprit p2 2011

    56/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP

     – 

     Février 201156

    MOSI: Master Output Slave In

    MISO: Master Input Slave Out

    SPISS: Serial Peripheral Interface Slave Select

    Fonctionnalités UART

  • 8/18/2019 Cours Dsp Esprit p2 2011

    57/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP

     – 

     Février 201157

    Fonctionnalités PPI

  • 8/18/2019 Cours Dsp Esprit p2 2011

    58/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP

     – 

     Février 201158

    Applications PPI

  • 8/18/2019 Cours Dsp Esprit p2 2011

    59/69

     ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP

     – 

    Février 201159

    DMA: Direct Memory Access

  • 8/18/2019 Cours Dsp Esprit p2 2011

    60/69

     

    ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

    Février 201160

    Mémoire

    Interne

    (L1)

    Mémoire

    Externe

    (SDRAM)

    Périphériques

    SPORT

    PPI

    UART

    Le contrôleur DMA permet le transfert

    de données sans l’intervention duprocesseur

    Le core met à jour les registres et

    répond aux interruptions quand les

    données sont prêtes

    Transfert 1-D

    Transfert 2-D avec différentes tailles de

    colonnes et lignes et différents pas

    Timers

     

  • 8/18/2019 Cours Dsp Esprit p2 2011

    61/69

     

    ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – 

    Février 201161

    6 Timers (BF533)

    Un Core Timer

    Un Watchdog Timer

    Un Real-Time Clock (RTC)Trois 32-bit General Purpose

    Timers:

    Pulse and Capture Mode

    PWM Mode

    External Clock Mode

    Core Timer

  • 8/18/2019 Cours Dsp Esprit p2 2011

    62/69

    Étapes de développement logiciel

  • 8/18/2019 Cours Dsp Esprit p2 2011

    63/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201163

    lasses d’instructions 

  • 8/18/2019 Cours Dsp Esprit p2 2011

    64/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201164

    Load

    Store

    Move

    Opérations

    Arithmétiques

    Opérations

    Logiques

    Opérations

    Bits

    Décalages

    RotationsAppels

    Sauts

    Instructions

    parallèles

    Vidéo

    Vecteurs

    Usages général

    &

    Applications

    spécifiques

    Applications

    spécifiques

    Exemple 1: génération d’un flux série 

  • 8/18/2019 Cours Dsp Esprit p2 2011

    65/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201165

    BITMUX ( source_1, source_0, A0 ) (ASR); (Right Shift)

    BITMUX ( source_1, source_0, A0 ) (ASL); (Left Shift)

    Codeur convolutif (5,7)

    In the Shift Right version, the processor performs the following sequence:

    1. Right shift Accumulator A0 by one bit. Right shift the LSB of source_1 into the MSB of the Accumulator.

    2. Right shift Accumulator A0 by one bit. Right shift the LSB of source_0 into the MSB of the Accumulator.

    After « Right Shift »

    Exemple 2: LFSR

  • 8/18/2019 Cours Dsp Esprit p2 2011

    66/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201166

    Applications

    Division plynômiale: P/Q = N+R

    Codeurs et décodeurs cycliques

    A0 = BXORSHIFT ( A0, A1, CC ) ;

    Implémentation des Linear Feedback Shift Registers

    1: connexion

    (P)

    (Q)

    (R)

    (N)

    Instructions sur les vecteurs 

  • 8/18/2019 Cours Dsp Esprit p2 2011

    67/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201167

    Instructions qui manipulent plusieurs données 16 bits en même temps

    Opérations supportées: Addition, soustraction, multiplications, décalages,… 

    r5=r3 +|+ r4 ; /* dual 16-bit operations, add|add */

    r6=r0 -|+ r1(s) ; /* same as above, subtract|add with saturation */

    r5=r3 +|- r4, r7=r3 -|+ r4 ; /* 4 additions in the same time */ 

    r7 = max (r1, r0) (v) ;

    Instructions parallèles 

  • 8/18/2019 Cours Dsp Esprit p2 2011

    68/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201168

    • 32-bi t ALU/MAC instruct ion || 16-bi t instruc t ion || 16-bi t instruct ion ;

    • 32-bi t ALU/MAC instruct ion || 16-bi t instruc t ion ;

     /* Multiply and accumulate while loading two data registers. One load uses an

    Ireg pointer. */

    A1+=R0.L*R2.H,A0+=R0.L*R2.L || R2.L=W[I2++] || R0=[I1--] ;

    R3.H=(A1+=R0.L*R1.H), R3.L=(A0+=R0.L*R1.L) || R0=[P0++] || R1=[I0] ;

     /* Multiply-Accumulate to a Data register while incrementing an Ireg. */

    r6=(a0+=r3.h*r2.h)(fu) || i2-=m0 ;

    École Supérieure Privé d’Ingénierie et deTechnologies

  • 8/18/2019 Cours Dsp Esprit p2 2011

    69/69

      ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP  –  Février 201169

    Finde la 2 ème  partie…