Chapitre 3 l10-SystemC

download Chapitre 3 l10-SystemC

of 170

Transcript of Chapitre 3 l10-SystemC

  • 7/24/2019 Chapitre 3 l10-SystemC

    1/170

    Chapitre 2 : Cible

    matrielle ASIC-FPGA

    Nadia Khouja Saad

  • 7/24/2019 Chapitre 3 l10-SystemC

    2/170

    Plan du Chapitre 2

    Introduction aux systmes sur puce 2

    1. Introduction : technologie CMOS

    2. Niveau dabstraction pour la modlisationdes circuits Intgrs

    3. Classification des cibles matrielles

    4. Les cibles FPGAs

  • 7/24/2019 Chapitre 3 l10-SystemC

    3/170

    Introduction

    Introduction aux systmes sur puce 3

    Cibles matrielles sont rendues possibles par les progrs raliss entechnologie dintgration

    SSI : Small Scale Integration (dizaine de transistors)

    MSI : Meduim Scale Integration (centaine de transistors)

    LSI : Large Scale Integration (Milliers de transistors)

    Besoin doutils de conception + automatisation Outils CAD

    VLSI : Very Large Scale Integration (Centaine de milliers detransistors)

    Outils CAD indispensables pour grer la complexit de laconception et de la fabrication du Circuit Intgr (CI).

  • 7/24/2019 Chapitre 3 l10-SystemC

    4/170

    Les transistors: la technologie de base des

    CI

    nmosGrille

    Gate

    Drain

    pmos

    Gri

    lle=1

    Drain

    Source Source

    Sur Nmos : Si Grille ==1, alors Drain et Source connectes

    Nmos

    Grille=0

    Sur Pmos : Si Grillle ==0, alors Drain et Source connectes 4

    Nmos

    Les CI (ou chips) reprsentent la ralisation courante de tout

    systme informatique

    Un CI : un ensemble de transistors + connections

    MOS: metal oxcyde semiconductorNMOS: nchannel mos

    PMOS: pchannel mos

  • 7/24/2019 Chapitre 3 l10-SystemC

    5/170

    p

    n

    GND

    VDD 1

    A

    Y =A'

    A=0

    VDD 1

    p

    A=1

    0

    n

    GND

    p

    n

    GND

    VDD 1

    1

    CMOS : complementary mos (circuit comportant des Pmos et des Nmos

    Masse 0Masse 07Masse 0

    Un inverseur (NOT) dans la technologie

    CMOS

  • 7/24/2019 Chapitre 3 l10-SystemC

    6/170

    Exercice 1De quel type de porte sagit-il ?

    x y z

    0 0 1

    0 1 1

    1 0 1

    1 1 0

    Introduction aux systmes sur puce 6NAND

    z= NAND(x,y)

    NOT

  • 7/24/2019 Chapitre 3 l10-SystemC

    7/170

    Exercice 2

    x y z0 0 1

    0 1 0

    1 0 0

    1 1 0

    NORIntroduction aux systmes sur puce 7

    Comment raliser une porte NOR en technologie CMOS

    z= NOR(x,y)

  • 7/24/2019 Chapitre 3 l10-SystemC

    8/170

    Niveaux de modlisation des CI

    Introduction aux systmes sur puce 8

    Les transistors reprsentent un niveau de modlisation

    des CI, appel aussi niveau lectrique

    Dautresmodles existent: + dtaills (- abstrait)

    Dessin de masque (niveau physique)

    Dautres modles existent: + abstrait (- dtaills)

  • 7/24/2019 Chapitre 3 l10-SystemC

    9/170

    Niveaux de modlisation des CI

    Introduction aux systmes sur puce 9

    Les proprits dun systme peuvent tre spcifis selontrois domaine:

    Comportemental: Information fonctionnel du systme

    Que fait-il?

    Structurel: Information schmatique.

    Les diffrents sous-systmes et comment sont-ils lis?

    Physique: Information gomtrique.

    Taille, forme et placementphysique?

    Pour chaque domaine il y a plusieurs niveaux dabstraction.

  • 7/24/2019 Chapitre 3 l10-SystemC

    10/170

    Description dun systme

    Introduction aux systmes sur puce

    Descr ipt ion structu rel le:

    en explicitant de quoi ce systme est fait.On dcrit la structureinterne d'un bloc. Par exemple : un microprocesseur contientun

    ensemble de registres, une ALU, un UC, des caches, et le toutest connect de telle et telle faon".

    Les sous-blocs (registres, ALU) peuvent eux-aussiventuellement tre modliss partir de sous-blocs, etc,jusqu' arriver des blocs de base ulta-simples (bascules D).

    Descr ip t ion compor tementale: en dcrivant son comportement : on se moque de ce qu'il y a

    dedans, seul ce qui compte c'est ce qu'il fait. Un bloc est doncune bote noire, donc on dcrit le fonctionnement l'aide d'uneou plusieurs fonctions.

  • 7/24/2019 Chapitre 3 l10-SystemC

    11/170

    En pratique, on commence par une description comportementale(car les spcification d'un systme sont souvent donnes sousforme algorithmique).

    Puis, force de simulations et de mesures de performances, on

    essaye d'identifier des grands blocs. La description devient alorsmixte : une partie structurelle donnant la liste des blocs et la faondont ils sont relis entre eux, alors que les blocs eux sont encorereprsents sous forme comportementale.

    On r-applique ensuite ce procd rcursivement chaque bloc(dcomposition en sous-blocs, sous-sous-blocs), jusqu' obtenir unedescription presque totalement structurelle base de bascules D etfonctions logiques simples.

    Des outils se chargent alors de traduire tout a automatiquement enportes logiques.

    Introduction aux systmes sur puce

    Description dun systme

  • 7/24/2019 Chapitre 3 l10-SystemC

    12/170

    77

    Domaine comportemental

    Domaine structurel

    Chaque cercle correspond un niveau dabstraction : Abstraction croissante

    Systme

    Algorithme

    Transfert de registres

    LogiqueFonction de transfert

    Rectangle

    Plan des cellules

    Plan des modules

    Plan de masse

    Partitions physiques

    Diagramme en Y de Gajski

    Processeur, ASIC, ASIP, FPGA, etc.

    Modules matriel

    UAL, registres

    Portes, bascules, etc.

    Transistor

    1 Architecturale

    2 Algorithmique

    3 Bloc fonctionnel

    2 logique

    3 circuit

    1

    2

    3

    4

    5

    Domaine physique

    de lintrieur vers lextrieur.Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    13/170

    Conception des circuits VLSI

    Introduction aux systmes sur puce 3

    Circuit VLSI (centaines de milliers de transistors)

    Automatisation du procd de fabrication

    Vrification base sur la simulation (au lieu descartes)

    Utilisation de langages de description du matriel

    (HDL)

  • 7/24/2019 Chapitre 3 l10-SystemC

    14/170

    PLD

    SIC

    Les composants (HARD)

    ASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGA CPLD PALSeaofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom A

    Circuits

    prcaractriss

    Standard

    cell

    ASIC

    FPGACPLD

    PAL

    GAL

    SRAM

    : Application Specific IntegratedCircuit

    : Field Programmable GateArray

    : Complex Programmable Logic Device

    : Programmable ArrayLogic

    : Generic Array Logic = PAL

    : Static Random Acess Memory

    AntifuseSRAM

    Introduction aux systmes sur puce 4

  • 7/24/2019 Chapitre 3 l10-SystemC

    15/170

    ASIC: Full Custom

    ASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGA CPLD PALSeaofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom

    Circuits

    prcaractriss

    Standard

    cell

    AntifuseSRAM

    ASIC

    Introduction aux systmes sur puce 8

    : Application Specific IntegratedCircuit

  • 7/24/2019 Chapitre 3 l10-SystemC

    16/170

    ASIC: Full Custom

    Au final

    Au dpart

    SPECIFICATIONS

    +

    Approche full custom Conception au niveau transistor

    Permet des circuits mixtes analogique/numrique

    Effort de conception trs important

    Surface rduite, performance trs importantes

    Introduction aux systmes sur puce 6

  • 7/24/2019 Chapitre 3 l10-SystemC

    17/170

    ASIC: Standard Cell

    ASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGAC

    PLD PALSeaofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom

    Circuits

    prcaractriss

    Standard

    cell

    AntifuseSRAM

    ASIC

    Introduction aux systmes sur puce 7

    : Application Specific IntegratedCircuit

  • 7/24/2019 Chapitre 3 l10-SystemC

    18/170

    ASIC: Standard Cell

    Au final

    Au dpart

    SPECIFICATIONS

    BIBLIHOTEQUEDELEMENTS

    Introduction aux systmes sur puce 8

    PRE-CARACTERISES

    +

    +

    Approche standard cellUtilise des librairies de cellules primitives

    Portes AND, OR, registres, SRAM,etc.

    Effort de conception rduit, performances souvent proches dufull-custom

  • 7/24/2019 Chapitre 3 l10-SystemC

    19/170

    ASIC:Circuits prdiffuss

    ASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGA CPLD PALSeaofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom

    Circuits

    prcaractriss

    Standart

    cell

    AntifuseSRAM

    ASIC

    Introduction aux systmes sur puce 9

    : Application Specific IntegratedCircuit

  • 7/24/2019 Chapitre 3 l10-SystemC

    20/170

    ASIC: circuits prdiffuss

    Rseaux de transistors dj implants dans le silicium, mais non

    interconnects.

    Cest l interconnexion des transistors qui personnalise le circuit enfonction de l application vise.

    Introduction aux systmes sur puce 2

  • 7/24/2019 Chapitre 3 l10-SystemC

    21/170

    ASIC: Gate Array

    Au dpart

    SPECIFICATIONS

    +

    Au final

    Bandes de cellules de hauteur fixe spares par des canaux de routageIl est possible aussi dutiliser des bibliothques de composants pr-caractriss

    Introduction aux systmes sur puce 2

  • 7/24/2019 Chapitre 3 l10-SystemC

    22/170

    ASIC: Sea of Gates

    Gate array Sea of gates

    circuit compos de blocs contigus de transistors

    les connexions passent entre les blocs ou par-dessus

    Introduction aux systmes sur puce 22

  • 7/24/2019 Chapitre 3 l10-SystemC

    23/170

    ASIC: les circuits configurables

    ASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGA CPLD PALSeaofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom

    Circuits

    prcaractriss

    Standart

    cell

    AntifuseSRAM

    Introduction aux systmes sur puce 23

  • 7/24/2019 Chapitre 3 l10-SystemC

    24/170

    Les circuits configurables: dfinition

    Introduction aux systmes sur puce 24

    Composants standard programmables

    lectriquement:

    Une seule fois (fusibles,antifusibles)

    ou

    Plusieurs fois: reprogrammables

  • 7/24/2019 Chapitre 3 l10-SystemC

    25/170

    Ensemble de ressources logiques (portes,bascules,etc) qui peuvent tre

    interconnectes de diffrentes faons. Ralisation de fonctions boolennes sous

    forme dune somme de produits (PAL,PLA)

    Un rseau de bloc logiques configurables

    (FPGA)

    Introduction aux systmes sur puce 9

    Les circuits configurables: principe

    des architectures

  • 7/24/2019 Chapitre 3 l10-SystemC

    26/170

    Les circuits configurables:

    technologie de programmation

    fusible

    Introduction aux systmes sur puce 26

    Le choix se fait selon des

    critre:La vitesse deprogrammation

    La densit dintgration

    La facilit de mise enuvre ( programmationsur site,

    reprogrammation)

  • 7/24/2019 Chapitre 3 l10-SystemC

    27/170

    Les circuits configurables:

    technologie de programmation

    Introduction aux systmes sur puce 27

    Programmation une seule fois (PAL)

    Fusibles (mtal)

    Antifusible (CAPACITE MOS), Nombre de configurations limit(EEPROM)

    Transistor MOS grille flottante

    Configuration chaque mise sous tension(FPGA)

    SRAM

  • 7/24/2019 Chapitre 3 l10-SystemC

    28/170

    Technologie de programmation

    Fusible : destruction dun fusible par passage dun courant

    suprieur celui de lalimentation.

    Antifusible:

    en appliquant une tension importante (16V pendant

    1ms) une zone isolante entre deux zones semi-

    conductrice fortement dope, ce dernier diffuse dans

    cette zone et la rend conductrice.

    Chaque cellule occupe 1,8um2 (700um2 pour un

    fusible)

    Hormis la non reprogramabilit, cest la meilleuretechnologie (vitesse et surtout une trs haute densit

    dintgration) Introduction aux systmes sur puce 93

  • 7/24/2019 Chapitre 3 l10-SystemC

    29/170

    Technologie de programmation:

    Lapparition du transistor MOS grilleflottante a permis de rendre le composantbloqu ou passant sans lapplicationpermanente dune tension de commande.

    L application dun potentiel sur la grillesuprieure provoque le passage d unepartie des lectrons du canal travers lamince couche d oxyde, ce qui charge lagrille flottante. Lors de la lecture, unetension applique sur la grille suprieure estcompltement masque par la charge

    ngative emmagasine sur la grille flottante.Cela quivaut un transistor toujoursbloqu.

    Pour passer d'un 0 (transistor bloqu) un 1(transistor passant), on applique une tensionsur la source. Cela a pour effet d'attirer leslectrons hors de la grille flottante.

    Transistor MOS grille flottante (EPROM)

    Introduction aux systmes sur puce 29

  • 7/24/2019 Chapitre 3 l10-SystemC

    30/170

    Technologie de programmation:

    Introduction aux systmes sur puce 3

    Transistor MOS grille flottante (EPROM) UV-EPROM : nest pas utilis dans les PLD EEPROM

    Reprogrammation dune faon slective (parpartie) Une cellule ncessite 6 transistors pour sa ralisation (75 100 um2 en CMOS

    0,6um une surface importante rduit la densit dintgrations

    Le nombre de programmations est limit (100 CMOS 0,6um) cause de ladgradation des isolants

    La programmation ou leffacement dune cellule dure qlq millisecondes

    Flash EPROM Nautorise pas une programmation slective Une cellule ncessite 2 transistors une densit dintgration importante: trois

    4 fois plus que EEPROM mais 10 fois moins que lantifusible Le nombre de cycle de programmation est plus grands que EEPROM

    Temps de programmation de qlq dizaine de us et temps deffacement de qlq ms Inconvnient: ncessite un tension supplmentaire (de 12V) de programmation

    et deffacement Programmation in-situ

  • 7/24/2019 Chapitre 3 l10-SystemC

    31/170

    Technologie SRAM (FPGA) Technologie CMOS standard Portes de transmission ou multiplexeurs commands par

    des cellules SRAM Les mmoires SRAM permettent de configurer les

    interconnexions et de programmer les cellules Programmation illimite Programmation chaque

    mise sous tension ( partir dune mmoire externeEPROM)

    6 transistors permet un accs slectif et rapide (qlq ns)

    Densit dintgration plus faible (flash EEPROM) maiselle bnficie de lvolution technologique importante (contrairement au EEPROM et flash EEPROM)

    Introduction aux systmes sur puce 3

    Technologie de programmation

  • 7/24/2019 Chapitre 3 l10-SystemC

    32/170

    Technologie SRAM (FPGA)

    Technologie de programmation

    CelluleSRAM

    Ligne deconnexion

    Ligne deconnexion

    CelluleSRAM

    Lignes deconnexion

    Introduction aux systmes sur puce 32

    Entre dunbloc logique

    MUL

  • 7/24/2019 Chapitre 3 l10-SystemC

    33/170

    PAL

    ASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGA CPLD PALSeaofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom

    Circuits

    prcaractriss

    Standart

    cell

    AntifuseSRAM

    PAL

    Introduction aux systmes sur puce 33

    : Programmable Array Logic

  • 7/24/2019 Chapitre 3 l10-SystemC

    34/170

    PAL est le concept de base des PLD (programmable Logic

    Introduction aux systmes sur puce 34

    Device)

    PAL: la disposition des transistors et des connections estfixe, mais on peut dtruire ou remettre une connexion.

    Principe : Qcq soit la complexit dune fonction logique, ellepeut tre crite sous la forme dune somme de produits: matricede portes AND et porte OR

    PAL

  • 7/24/2019 Chapitre 3 l10-SystemC

    35/170

    100

    PAL

    liaison nonprogrammable

    liaison programmInatrobdulection aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    36/170

    Circuits logiques programmables

    Introduction aux systmes sur puce 36

    Selon le caractre programmable des

    matrices AND et OR, il existe :

    PAL ( programmable array logic): Matrice de ET programmable, matrice OU fige

    PROM ( programmable read-only memory)

    Matrice de ET fige, matrice OU programmable

    PLA ( programmable logic array) Matrice de ET programmable, matrice OU programmble

  • 7/24/2019 Chapitre 3 l10-SystemC

    37/170

    PROM

    Introduction aux systmes sur puce 37

  • 7/24/2019 Chapitre 3 l10-SystemC

    38/170

    PLA

    Introduction aux systmes sur puce 38

  • 7/24/2019 Chapitre 3 l10-SystemC

    39/170

    PLA: exemple

    Introduction aux systmes sur puce 39

  • 7/24/2019 Chapitre 3 l10-SystemC

    40/170

    PAL: exemple

    Introduction aux systmes sur puce 4

  • 7/24/2019 Chapitre 3 l10-SystemC

    41/170

    Donnez le cblage du circuit ci-dessous en utilisant :

    1. PAL

    2. PROM

    a b c

    l l l

    &

    &

    &

    &

    &

    &

    &

    A dd res s 0

    A ddres s 1

    A ddres s 2

    A ddres s 3

    A ddres s 4

    A ddres s 5

    A ddres s 6

    A ddres s 7 &

    a !a b !b c !c

    !a & ! b & !c

    !a & ! b & c

    !a & b & !c

    !a & b & c

    a & !b & !c

    a & !b & c

    a & b & !c

    a & b & c

    P r e d e fi n e d A N D a r r ay

    ProgrammableOR

    array

    w x y

    Prede f ined l i nk

    P r o g r a m ma b l e l in k

    Les circuits configurables:exercice

    Introduction aux systmes sur puce 4

  • 7/24/2019 Chapitre 3 l10-SystemC

    42/170

    7

    Donnez le cblage du circuit ci-dessous en utilisant :

    1.PAL

    2. PROM

    Les circuits configurables: exercice

    a b c

    l l l

    &

    &

    &

    &

    &

    &

    &

    Address0

    Address1

    Address2

    Address3

    Address4

    Address5

    Address6

    Address7 &

    a !a b !b c !c

    !a & !b & !c

    !a & !b & c

    !a & b & !c

    !a & b & c

    a & !b & !c

    a & !b & c

    a & b & !c

    a & b & c

    Predefined AND array

    ProgrammableOR

    array

    w x y

    Predefined link

    Programmable link

    w = (a & b)

    x = !(a &b)

    y = (a & b) ^ cIntroduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    43/170

    Les circuits configurables: SPLD(simpleprogrammable logique Device)

    Introduction aux systmes sur puce 43

  • 7/24/2019 Chapitre 3 l10-SystemC

    44/170

    SPLD: Classification selon lastructure de sortie

    Introduction aux systmes sur puce 44

    Trois types de structures de base:

    Combinatoire

    Squentielle Versatile

  • 7/24/2019 Chapitre 3 l10-SystemC

    45/170

    SPLD:Combinatoire

    -Certaines broches peuvent tre utilises aussi bien en entre quen sortie grce un systme de logique 3 tats. La commande de cette dernire est configure

    au moment de la programmation.

    -La structure de sortie permet aussi de rinjecter les sorties en

    entre (Feed-back).

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    46/170

    SPLD: Squentielle

    Ces circuits sont composs de bascule D. Les sorties desbascules sont de type trois tats contrles par un signal devalidation Enable ou OE, et une horloge est commune toutesles bascules (clock).

    Introduction aux systmes sur puce 46

  • 7/24/2019 Chapitre 3 l10-SystemC

    47/170

    SPLD: Versatile

    Ce type de structure reprsente les P.A.L. les plus volues,car ces structuresproposent quatre configurations possibles:combinatoires et squentielles

    S1S0

    Introduction aux systmes sur puce 47

  • 7/24/2019 Chapitre 3 l10-SystemC

    48/170

    SPLD: Versatile

    Introduction aux systmes sur puce 48

  • 7/24/2019 Chapitre 3 l10-SystemC

    49/170

    4

    Matrice de ET ralisanttous les produits possibles

    (maxtermes) connecte

    aux sorties par desOU

    Grande surface de Si

    utilise. Ces circuits ne

    sont plus utiliss

    aujourdhui

    Les circuits configurables: SPLD(simpleprogrammable logique Device)

  • 7/24/2019 Chapitre 3 l10-SystemC

    50/170

    CPLD

    ASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGA CPLD PALSeaofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom

    Circuits

    prcaractriss

    Standart

    cell

    AntifuseSRAM

    CPLD

    Introduction aux systmes sur puce 5

    : Complex Programmable Logic Device

  • 7/24/2019 Chapitre 3 l10-SystemC

    51/170

    CPLD

    PAL

    PALPAL

    PAL

    MATRICE DINTERCONNECTIONSE/S E/S

    Les CPLDs regroupentplusieurs PALsinterconnects par unrseau de connexionsprogrammables.

    Les CPLDs sont lesprmisses des premiersFPGAs.

    Introduction aux systmes sur puce 5

    Ces circuits ne sont plusutiliss aujourdhui car

    remplacs par les FPGAs.

  • 7/24/2019 Chapitre 3 l10-SystemC

    52/170

    CPLD

    Introduction aux systmes sur puce 52

    la technologie de programmation estgnralement EEPROM ou Flash EPROM)

    Un seul point de connexion relie entre eux lesblocs logiques. Les temps de propagations dessignaux sont constants et prdictibles (avantroutage) ce nest pas le cas des FPGA (voirplus tards)

  • 7/24/2019 Chapitre 3 l10-SystemC

    53/170

    Altera MAX 7000 Macrocell structure

    CPLD/ EPLD(Erasable)

    Rseau ET-OUavec 8 termesproduits

    + Multiplexeurprogrammable

    Introduction aux systmes sur puce 53

  • 7/24/2019 Chapitre 3 l10-SystemC

    54/170

    Altera MAX

    7000Macrocell

    structure

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    55/170

    FPGAASIC

    Circuits

    prdiffuss

    Circuits

    configurables

    SEMI-CUSTOMCUSTOM

    FPGA CPLD PALSea ofgate

    Gatearray

    Circuits

    sur mesure

    FullCustom

    Circuits

    prcaractriss

    Standart

    cell

    AntifuseSRAM

    FPGA : Field Programmable Gate Array

    Les blocs logique sont plus nombreux et plus simples que les CPLD mais cette fois

    les interconnexions entre les blocs logiques ne sont plus centralises

    Introduction aux systmes sur puce 55

  • 7/24/2019 Chapitre 3 l10-SystemC

    56/170

    FPGA : Architecture

    Un FPGA est la base :

    Un rseau de blocs de logiqueprogrammable (ConfigurableLogic Block -CLB), chaque blocpouvant raliser des fonctions

    complexes de plusieurs variables,et comportant des lments mmoire

    Un rseau dinterconnexionsprogrammables entre les blocs

    Des blocs spciaux dentre et desortie avec le monde extrieur(Input/Output BlockIOB).

    Introduction aux systmes sur puce 56

  • 7/24/2019 Chapitre 3 l10-SystemC

    57/170

    CLB base de multiplexeurs

    Utilise pour la technologie ANTIFUSIBLE quivaut une LUT cble

    Introduction aux systmes sur puce 57

  • 7/24/2019 Chapitre 3 l10-SystemC

    58/170

    CLB base de multiplexeurs : Exemple

    Cellule ACTEL ACT3

    Introduction aux systmes sur puce 58

  • 7/24/2019 Chapitre 3 l10-SystemC

    59/170

    FPGA: CLB base de LUT Arrangement Matriciel de blocs logiques avec configuration des :

    1. La fonction de chaque bloc

    2. Interconnexions entre les blocs logiques

    4-LUT

    EntresD

    Q

    0

    1 Sortie

    Choix configurable

    par bitstream

    Introduction aux systmes sur puce 59

  • 7/24/2019 Chapitre 3 l10-SystemC

    60/170

    25

    FPGAs : CLB base de Look Up Table

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    61/170

    SRAM

    SRAM

    SRAM

    SRAM

    SRAM

    SRAM

    Out

    Out

    In 0

    In 1

    In 2

    In 3

    LUT 4

    Ce sont de petits lments de mmorisation, qui refltent

    la table de vrit dune fonction logique.In 0 In 1 In 2 In 3

    LUT = Table de scrutation

    LUT 4 entres = RAM 2octets

    Introduction aux systmes sur puce 6

    FPGA :Les Look Up Tables

  • 7/24/2019 Chapitre 3 l10-SystemC

    62/170

    In 0 In 1 In 2 In 3

    Out

    1 1 1 1 0

    1 1 1 0 1

    1 1 0 1 1

    1 1 0 0 0

    1 0 1 10

    1 0 1 0 1

    Introduction aux systmes sur puce 62

    FPGA : Les Look Up Tables

  • 7/24/2019 Chapitre 3 l10-SystemC

    63/170

    In 0 = 0 In 1 In 2 In 3

    Out

    1 1 1 1 0

    1 1 1 0 1

    1 1 0 1 1

    1 1 0 0 0

    1 0 1 1 0

    1 0 1 0 1

    Introduction aux systmes sur puce 63

    FPGA :Les Look Up Tables

  • 7/24/2019 Chapitre 3 l10-SystemC

    64/170

    In 0=0 In 1 In 2 In 3

    Out

    1 1 1 1 0

    1 1 10 1

    1 1 0 1 1

    1 1 000

    1 0 1 1 0

    1 0 10 1

    FPGA : Les Look Up Tables

    Introduction aux systmes sur puce 64

  • 7/24/2019 Chapitre 3 l10-SystemC

    65/170

    In 0 =0 In 1 = 1 In 2 In 3

    Out

    1 1 1 1 0

    1 1 10 1

    1 1 0 1 1

    1 1 00 0

    1 0 1 1 0

    1 0 10 1

    FPGA : Les Look Up Tables

    Introduction aux systmes sur puce 3

  • 7/24/2019 Chapitre 3 l10-SystemC

    66/170

    In 0 =0 In 1 = 1 In 2 In 3

    Out

    1 1 1 1 0

    1 1 1 0 1

    1 1 0 1 1

    1 1 0 00

    1 0 1 1 0

    1 0 1 0 1

    FPGA : Les Look Up Tables

    Introduction aux systmes sur puce 66

  • 7/24/2019 Chapitre 3 l10-SystemC

    67/170

    In 0 =0 In 1 = 1 In 2 =1 In 3 = 1

    Out= 1 = In3 In2 In1 Ino

    1 1 1 1 0

    1 1 1 0 1

    1 1 0 1 1

    1 1 0 0 0

    1 0 1 1 0

    1 0 1 0 1

    FPGA: Les Look Up Tables

    Introduction aux systmes sur puce 67

    FPGA CLB

  • 7/24/2019 Chapitre 3 l10-SystemC

    68/170

    FPGA : CLB

    68

  • 7/24/2019 Chapitre 3 l10-SystemC

    69/170

    Exemple: implmentation dunadditionneur srie

    69

  • 7/24/2019 Chapitre 3 l10-SystemC

    70/170

    FPGA : Xilinx CLB XC4000

    7

    E i

  • 7/24/2019 Chapitre 3 l10-SystemC

    71/170

    Exercice:1.Comment peut on-raliser une fonction combinatoire 4 variables avec le CLB

    de xilinx? Donner le chemin de propagation du signal de sortie2.Comment peut on-raliser une fonction squentielle 5 variables avec le CLB

    de xilinx? Donner le chemin de propagation du signal de sortie

    7

    E i

  • 7/24/2019 Chapitre 3 l10-SystemC

    72/170

    Exercice:1. Comment peut on-raliser une fonction combinatoire 4 variables avec le CLB

    de xilinx? Donner le chemin de propagation du signal de sortie

    72

    E i

  • 7/24/2019 Chapitre 3 l10-SystemC

    73/170

    Exercice:2. Comment peut on-raliser une fonction squentielle 5 variables avec le CLB

    de xilinx? Donner le chemin de propagation du signal de sortie

    73

  • 7/24/2019 Chapitre 3 l10-SystemC

    74/170

    FPGA: configuration Arrangement Matriciel de blocs logiques avec configuration des :

    1. La fonction de chaque bloc

    2. Interconnexions entre les blocs logiques

    Introduction aux systmes sur puce 74

  • 7/24/2019 Chapitre 3 l10-SystemC

    75/170

    4

    FPGA: interconnexions

    programmables

    Xilinx

    Matrice de connexionsProgrammables

    (Programmable Switch Matrix)

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    76/170

    FPGA: interconnexions programmables

    CLB

    lment dunematrice de connexion(PSM)

    CLB

    CLB

    Introduction aux systmes sur puce 76

  • 7/24/2019 Chapitre 3 l10-SystemC

    77/170

    FPGA: types de connexions

    Introduction aux systmes sur puce 77

    Directes: relient deux CLBs adjacents Simples: relient deux PSMs (Programmable Switch

    Matrix) adjacentes

    Doubles: relient deux PSMs spares par une PSM Quadruples: relient deux PSMs spares par 3 PSMs Longs: traversent la puce de part en part, soit

    horizontalement ou verticalement (ils peuvent toutefoistre spares en deux moities de longueur gale etindpendantes)

  • 7/24/2019 Chapitre 3 l10-SystemC

    78/170

    FPGA: types de connexions

    Connexions directes : relient deux CLB

    adjacents.

    Ne passent pas parune matrice de

    connexion (PSM)

    Introduction aux systmes sur puce 78

  • 7/24/2019 Chapitre 3 l10-SystemC

    79/170

    FPGA: types de connexions

    Connexions Simples: Relient deux PSM

    adjacentes.

    Offrent une grandeflexibilit de parcours.

    Le passage d'uneconnexion simple autravers d'une PSM entraneun dlai.

    Ce type de connexion seprte surtout aux liens denature locale.

    Introduction aux systmes sur puce 79

  • 7/24/2019 Chapitre 3 l10-SystemC

    80/170

    FPGA: types de connexions

    Connexions doubles: relient deux PSMs

    spares par une PSM:

    Offrent une plus grande

    rapidit que les connexionssimples pour les liens delongueur intermdiaire

    Maintiennent une bonne

    flexibilit de parcours.

    De la mme manire, les

    connexions quadruplespermettent des liensrapides un peu plus longsmais entranent unecertaine pnalit dans laflexibilit du parcours.

    Introduction aux systmes sur puce 8

  • 7/24/2019 Chapitre 3 l10-SystemC

    81/170

    FPGA: types de connexions

    Les longues lignes sont delongs segments mtallissparcourant toute la longueur etla largeur du composant, ellespermettent ventuellement de

    transmettre avec un minimumde retard les signaux entre lesdiffrents lments dans le butd'assurer un synchronismeaussi parfait que possible. Deplus, ces longues lignespermettent d'viter lamultiplicit des pointsd'interconnexion.

    Introduction aux systmes sur puce 8

  • 7/24/2019 Chapitre 3 l10-SystemC

    82/170

    FPGA: types de connexions

    Lignes simples

    Lignes doubles

    Lignes longues

    Introduction aux systmes sur puce 82

  • 7/24/2019 Chapitre 3 l10-SystemC

    83/170

    FPGA: types de connexions

    Introduction aux systmes sur puce

    Xilinx XC4000X 83

  • 7/24/2019 Chapitre 3 l10-SystemC

    84/170

    Le passage dun bloc logique un autre se fera par un nombre depoint de connexion (responsable des temps de propagation)fonction de la position relative des deux blocs logique et de ltatdencombrement de la matrice.

    Ces dlais ne sont donc pas prdictibles (contrairement au CPLD)avant le placement routage

    De la phase de placement des blocs logique dpendront doncbeaucoup les performances du circuit en terme de vitesse

    Introduction aux systmes sur puce 84

    FPGAs :Interconnexions programmables

    FPGAs Interconne ions programmables

  • 7/24/2019 Chapitre 3 l10-SystemC

    85/170

    5

    FPGAs : Interconnexions programmables

    Introduction aux systmes sur puce

    I/O Blocs

  • 7/24/2019 Chapitre 3 l10-SystemC

    86/170

    I/O Blocs

    Les blocs

    dentre/sortie(IOBs)

    contrlent le flot de donnes entre lesbroches du FPGA et la logique interneutilisateur; les I/O sont: Bidirectionnelles (entre ou sortie)

    3 tats (haute impdance)A retards programmables

    Multi-standards (niveaux logiques)

    Introduction aux systmes sur puce 86

  • 7/24/2019 Chapitre 3 l10-SystemC

    87/170

    I/O Blocs

    Problme de faire communiquer les composants entre eux : il y a plusieurs

    codages en tension des niveaux 1 et 0 (tension d'alimentation VDD, type de marges):

    Les buffers permettent de rsoudre ce problme

    Introduction aux systmes sur puce 87

    FPGA : Les entres/sorties

  • 7/24/2019 Chapitre 3 l10-SystemC

    88/170

    FPGA : Les entres/sorties

    FPGAs : Xilinx IOB (Input Output Block)

    Introduction aux systmes sur puce 88

  • 7/24/2019 Chapitre 3 l10-SystemC

    89/170

    Sparta

    n 3E

    Introduction aux systmes sur puce

    FPGA: et encore!!!

  • 7/24/2019 Chapitre 3 l10-SystemC

    90/170

    55

    FPGA: et encore!!!

    Introduction aux systmes sur puce

    La technologie actuelle des FPGA

  • 7/24/2019 Chapitre 3 l10-SystemC

    91/170

    La technologie actuelle des FPGA

    Introduction aux systmes sur puce 56

    Jusqu 200 000 cellules logiques lmentaires Cellule = Look-up-Table + registres Blocs mmoire configurables

    Blocs de 18kbits, au total jusqu 1Mo

    Structures ddies pour les traitementsarithmtique 512 multiplieurs 18x18 bits embarqus

    Processeurs embarqus Jusqu 4 PowerPC en dur Soft-Core : processeurs utilisant les cellules logique

    Liaisons sries haut dbit Jusqu 10 Gbits MAC Ethernet intgre

  • 7/24/2019 Chapitre 3 l10-SystemC

    92/170

    57

    FPGA: Les modes de configuration

    Le bitstream dcrit la configuration de tous leslments configurables du circuits

    Un transfert de bitstream est ncessaire lors de

    la mise sous tension et chaquereconfiguration

    Introduction aux systmes sur puce

    FPGA: Les modes de configuration

  • 7/24/2019 Chapitre 3 l10-SystemC

    93/170

    On rencontre couramment 6 techniques de configuration:

    Master mode srie ou parallle

    Slave mode srie ou parallle Peripheral mode srie ou parallle

    La slection de la technique de configuration se faitgrce des bits de configuration du FPGA

    Dans tous les cas la configuration se fait via un fichierde configuration binaire : le Bitstream

    Les entres sorties utilises pendant la configuration

    sont aussi des I/O du circuits utilisables en

    Lenvoisdes donnes deconfigurations peut se faire en srieou en parallle

    Introduction aux systmes sur puce 58fonctionnement

    FPGA: Les modes de configuration

    Master mode

  • 7/24/2019 Chapitre 3 l10-SystemC

    94/170

    Dans ce cas le FPGA est matre de sa configuration

    Data

    EPROMCLK

    OE

    Data-in

    FPGACLK

    CTRL

    MODESERIE

    Introduction aux systmes sur puce 59

    Master mode

    Master mode

  • 7/24/2019 Chapitre 3 l10-SystemC

    95/170

    Dans ce cas le FPGA est matre de sa configuration

    Data(7:0)

    ADD(11:0)

    EPROM

    OE

    Data-in(7:0)

    ADD(11:0)

    FPGA

    CTRL

    MODE PARALLELE

    8bits

    Introduction aux systmes sur puce 69

    Master mode

  • 7/24/2019 Chapitre 3 l10-SystemC

    96/170

    Peripheral mode

  • 7/24/2019 Chapitre 3 l10-SystemC

    97/170

    Le FPGA est vue comme un priphrique du microprocesseur

    P

    Data(7:0)

    ADD(11:0)

    CTRL

    Data-in(7:0)

    Chip_Selec

    FPGA

    CTRL

    8bits

    Introduction aux systmes sur puce 97

    Le microprocesseur peut tre un curde processeur

    embarqu dans le circuit

    Peripheral mode

  • 7/24/2019 Chapitre 3 l10-SystemC

    98/170

    Cas dtude : Xilinx Spartan 3E

    Introduction aux systmes sur puce 98

    Plusieurs versions:

    Carte digilent basede Spartan

  • 7/24/2019 Chapitre 3 l10-SystemC

    99/170

    g p

    XC3S500E

    Introduction aux systmes sur puce 99

    Carte Spartan XC3S500E : Composants

  • 7/24/2019 Chapitre 3 l10-SystemC

    100/170

    Carte Spartan XC3S500E : Composants

    Introduction aux systmes sur puce

    La carte Spartan 3E regroupe :

    un FPGA XC3S500E Spartan 3E,

    un CPLD Coolrunner II,une mmoire PROM de 4 Mbit,

    une mmoire Flash srielle de 16 Mbit,

    une mmoire Flash parallle de 128 Mbit,

    une mmoire DDR SDRAM de 512 Mbit,

    un cran LCD,

    un port PS/2, un port VGA,

    une prise Ethernet 10/100,

    deux ports RS-232,

    un port de configuration USB,

    deux convertisseurs de donnes,

    un oscillateur 50 MHz,

    un connecteur dexpansion Hirose FX2 permettant 40 entres/sorties

    gnriques,

    8 DEL,

    des boutons poussoir et des commutateurs.

  • 7/24/2019 Chapitre 3 l10-SystemC

    101/170

    La carte supporte trois modes de configuration la mise sous tension, soit le mode Master-Slave utilisant le PROM 4 Mbits

    (1MBits sur version ISI), un mode SPI utilisant la mmoire Flash sriel et un mode BPI utilisant la mmoire Flash parallle.

    La carte peut aussi tre programme

    directement laide dun port JTAG lorsquelleest sous tension.

    Introduction aux systmes sur puce

    Carte Spartan 3E: modes de configuration

  • 7/24/2019 Chapitre 3 l10-SystemC

    102/170

    Flot de conceptions des FPGA

    Introduction aux systmes sur puce 2

    Voir Module Synthse VHDL

    darchitecture

  • 7/24/2019 Chapitre 3 l10-SystemC

    103/170

  • 7/24/2019 Chapitre 3 l10-SystemC

    104/170

    1. Fonctionnement

    et dfinition

    Organisation fonctionnelle dun

  • 7/24/2019 Chapitre 3 l10-SystemC

    105/170

    Organisation fonctionnelle d unsystme microcontrleur

    Introduction aux systmes sur puce 5

    Dfinition

  • 7/24/2019 Chapitre 3 l10-SystemC

    106/170

    Cest une unit de traitement de linformation de type microprocesseur laquelle on a

    ajout des priphriques internes permettant de raliser des montages sans ncessiterlajout de composantsexternes.

    Ce sont des systmes minimum sur une seule puce. Ils contiennent : un CPU, de laRAM, de la ROM et des ports dEntre/Sorties (parallles, sries,etc..).

    Introduction aux systmes sur puce 6

  • 7/24/2019 Chapitre 3 l10-SystemC

    107/170

    Dfinition

    Introduction aux systmes sur puce 7

    Ils comportent aussi des fonctions spcifiques comme des compteursprogrammables pour effectuer des mesures de dures, des CAN voir des

    CNA pour sinsrer au sein de chanes dacquisition, des interfaces pourrseaux de terrain, etc ...

    Il est adapt pour rpondre au mieux aux besoin des applicationsembarques (appareil lectromnagers, chane dacquisition, lecteur carte puce, etc...). Il est par contre gnralement moins puissant en terme de

    rapidit, de taille de donnes traitables ou de taille de mmoireadressable

    quun microprocesseur.

  • 7/24/2019 Chapitre 3 l10-SystemC

    108/170

    Dfinition

    Introduction aux systmes sur puce 8

    Avantages :

    . Encombrement rduit,

    . Circuit imprim peu complexe,

    . Faible consommation,. Cot rduit.

    Inconvnient:

    . Systme de dveloppement onreux,

    . Programmation ncessitant un matriel adapt.

    Diffrence entre microprocesseur

  • 7/24/2019 Chapitre 3 l10-SystemC

    109/170

    Diffrence entre microprocesseur

    et microcontrleur

    Introduction aux systmes sur puce 9

    f

  • 7/24/2019 Chapitre 3 l10-SystemC

    110/170

    fonctionnement

    Introduction aux systmes sur puce

    E l M68HC0

  • 7/24/2019 Chapitre 3 l10-SystemC

    111/170

    Exemple: M68HC05

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    112/170

    2. Architecture

    Bit dfi iti

  • 7/24/2019 Chapitre 3 l10-SystemC

    113/170

    Bit dfinition

    Introduction aux systmes sur puce 78

    H d V N

  • 7/24/2019 Chapitre 3 l10-SystemC

    114/170

    79

    Harvard ou Von Neumann

    Un bus dinstructionsUn bus de donnesUn seul bus

    dinstructionset dedonnesIntroduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    115/170

    1.Le microprocesseur

  • 7/24/2019 Chapitre 3 l10-SystemC

    116/170

    1.Le microprocesseur

    RISC ou CISC: Plus on rduit lenombre dinstructions, plus facile etplus rapide en est le dcodage, et plusvite le composant fonctionne.Cependant, il faut plus d'instructions

    pour raliser une opration complexe. Jeu dinstructions Codage des instructions et Mode

    dadressage

    Introduction aux systmes sur puce 6

    1 Le microprocesseur:

  • 7/24/2019 Chapitre 3 l10-SystemC

    117/170

    1. Le microprocesseur:

    Contrleur d interruptions

    Introduction aux systmes sur puce 7

    Le microcontrleur, dans son environnement, est destin traiter desinformations en temps rel .Lapplication est couple au monde extrieur, par lchange frquentdemessages et de signaux des instants prvus.

    Il est dans lobligation de changer dtat en fonction des priorits relativesde lopration en cours et de celle qui lui est demand. Il interrompt ou non ledroulement normal du programme en fonction dune demande externe. Celles-ci sont vues du microcontrleur comme des demandes dinterruption.

    deux types dinterruption : NMI (No Maskable Interrupt) : interruption non - masquable, IRQ (Interrupt Request) : interruption masquable.

    1. Le microprocesseur:

  • 7/24/2019 Chapitre 3 l10-SystemC

    118/170

    1. Le microprocesseur:

    Contrleur dinterruptions

    Introduction aux systmes sur puce 8

    Du matriel qui gre les signaux dinterruption

    Quelque soit lentre dinterruption active, le microprocesseur ralise destches identiques :

    dans tout les cas, le programme principal est interrompu ; le processeur doit sauvegarder le contenu du PC dans la pile ;le processeur excute une squence privilgie, reflet du type detraitement dinterruption ;

    2 M i

  • 7/24/2019 Chapitre 3 l10-SystemC

    119/170

    2. Mmoire programme

    Introduction aux systmes sur puce 9

    Ce dispositif contient les instructions du programme que doit excuter lemicroprocesseur. Ce type de mmoire (appele mmoire morte), estuniquement accessible en lecture. Sa programmation ncessite uneprocdure particulire et un matriel adquat.

    Il en existe diffrents types selon leur mode de programmation :

    De la PROM programmable lectriquement une seule fois par ledveloppeur (appele aussi OTPROM),

    De la EPROM programmable lectriquement et effaable aux U-V(appele aussi UVPROM),

    De la EEPROM programmable et effaable lectriquement.

    De lammoire flash (programmable une vitesse plus rapide, densitleve)

    3 M i d d

  • 7/24/2019 Chapitre 3 l10-SystemC

    120/170

    3. Mmoires de donnes

    Introduction aux systmes sur puce 2

    Ce dispositif permet de mmoriser temporairement les donnes gnres parle microprocesseur pendant les diffrentes phases du traitement numrique

    (rsultats doprations, tats des capteurs...). Ces mmoires sont accessiblesen criture et en lecture.

    On en trouve 2 types :

    De la mmoire vive (RAM) volatile : (donnes perdues en cas decoupure de lalimentation) ayant un temps de lecture et critureassezcourt(quelques ns),

    De la mmoire morte (EEPROM) non-volatile : (donnes conserves encas de coupure de lalimentation) ayant un temps dcriture assez lev(quelques ms) par rapport au temps de lecture qui est assez faible

    (quelques ns).

  • 7/24/2019 Chapitre 3 l10-SystemC

    121/170

    5. Linterface srie: USART(U i l S h A h

  • 7/24/2019 Chapitre 3 l10-SystemC

    122/170

    (Universal Synchronous Asynchronous

    Receiver Transmetter)

    Introduction aux systmes sur puce 22

    Ce type dinterface permet au microcontrleur de communiquer avec dautressystmes base de microprocesseur.

    Les donnes envoyes ou reues se prsentes sous la forme dunesuccession temporelle (sur un seul bit) de valeurs binaires images dun mots.

    Il y a 2 types de liaison srie : synchrone et asynchrone.

    5. Linterface srie : Liaison srie

  • 7/24/2019 Chapitre 3 l10-SystemC

    123/170

    synchroneDans ce dispositif la transmission est synchronise par un signal dhorlogemis par lunit maitre

    Introduction aux systmes sur puce 23

    5. Linterface srie: Liaison srie

  • 7/24/2019 Chapitre 3 l10-SystemC

    124/170

    asynchroneCe dispositif ne possde pas de signal dhorloge de synchronisation.Les units en liaison possdent chacune une horloge interne cadence la mmefrquence.

    Lorsquune unit veut mettre un mot binaire, elle gnre un front descendant sur saligne mettrice. A la fin de lmission de ce mot, la ligne repasse au niveau haut.

    La donne transmettre peut contenir un bit supplmentaire appel parit et servant la correction derreurs.

    Introduction aux systmes sur puce 24

    5 Linterface srie

  • 7/24/2019 Chapitre 3 l10-SystemC

    125/170

    5. L interface srie

    Introduction aux systmes sur puce 9

    Plusieurs normes de communication srie: USB (Universal serial Bus)

    CAN (Controller Area Network)

    SPI (Serial Peripheral Interface

    I2C (Inter Integrated Circuit)

    UART (Universal Asynchronous Recever Transmitter)

    LIN (Local Interconnect Network)

    Ethernet

    Wireless interfaces Zigbee

    bluetooth

  • 7/24/2019 Chapitre 3 l10-SystemC

    126/170

  • 7/24/2019 Chapitre 3 l10-SystemC

    127/170

    7 TIMER

  • 7/24/2019 Chapitre 3 l10-SystemC

    128/170

    7. TIMER

    Le Timer permet de raliser les fonctions suivantes :

    Introduction aux systmes sur puce 28

    1. Gnration dun signal priodique2. Gnration dune impulsion calibre,3. Temporisation: compter les cycles dhorloge du uc lui-mme. Dans

    ce cas, comme lhorloge est fixe, il sagit en ralit de compter dutemps.

    4. Comptage d'vnements: compter les impulsions reues sur une

    pin dentre.

    Plusieurs registres associs au Timer permettent de configurer les

    diffrents modes dcrits prcdemment.

    8. Le chien de garde (Watchdog)

  • 7/24/2019 Chapitre 3 l10-SystemC

    129/170

    Introduction aux systmes sur puce 29

    Ce dispositif est un systme anti-plantage du microcontrleur. Il sassure quil ny ait

    pas d'excution prolong dune mme suite dinstructions. il s'agit en gnral d'un compteur qui est rgulirement remis zro. Si le compteur dpasse une valeur donne (timeout) alors on procde un reset(redmarrage) du systme.

    Le chien de garde consiste souvent en un registre qui est mis jour via uneinterruption rgulire. Il peut galement consister en une routine d'interruption qui doiteffectuer certaines tches de maintenance avant de redonner la main au programme

    principal. Si une routine entre dans une boucle infinie, le compteur du chien de garde

    ne sera plus remis zro et un reset est ordonn.

    Le chien de garde permet aussi d'effectuer un redmarrage si aucune instructionn'est prvue cet effet. Il suffit alors d'crire une valeur dpassant la capacit du

    compteur directement dans le registre : le chien de garde lancera le reset.

    9 Direct Memory Access (DMA)

  • 7/24/2019 Chapitre 3 l10-SystemC

    130/170

    9. Direct Memory Access (DMA)

    Introduction aux systmes sur puce 3

    Transfert rapide de donnes entre

    MmoirePriphriques

    PriphriquepriphriqueMmoire et mmoire

    sans lintervention du processeur

    Permet au processeur de raliserdautreactions pendant le transfert.

    LES SIGNAUX DHORLOGE

  • 7/24/2019 Chapitre 3 l10-SystemC

    131/170

    LES SIGNAUX D HORLOGE.Le signal dhorloge permet de cadencer le fonctionnementdu microcontrleur.

    Ce dernier intgre gnralement une porte Trigger de Schmitt afin de raliserun oscillateur. Pourlobteniron place un quartz entre les deux broches OscInet OscOutcomme lindique le schma suivant :

    Introduction aux systmes sur puce 3

  • 7/24/2019 Chapitre 3 l10-SystemC

    132/170

    3. DVELOPPEMENT DU

    PROGRAMME ET MISEAU POINT.

    Dveloppement de code

  • 7/24/2019 Chapitre 3 l10-SystemC

    133/170

    Dveloppement de code

    Ou un mlange

    Introduction aux systmes sur puce 33

  • 7/24/2019 Chapitre 3 l10-SystemC

    134/170

  • 7/24/2019 Chapitre 3 l10-SystemC

    135/170

    Exemple de microcontrleur

  • 7/24/2019 Chapitre 3 l10-SystemC

    136/170

    Exemple de microcontrleur

    Introduction aux systmes sur puce 2

  • 7/24/2019 Chapitre 3 l10-SystemC

    137/170

    4. Exemple de la

    famille PIC de

    MICROCHIP

    Architecture

  • 7/24/2019 Chapitre 3 l10-SystemC

    138/170

    Introduction aux systmes sur puce 38

    Les PIC se conforment l'architectureHarvard :

    -La plupart des instructions occupent un mot de la mmoire de programme. La taillede ces mots dpend du modle de PIC,

    - la mmoire de donnes est organise en octets.

    Les PIC sont des processeurs RISC,Un cycle d'instruction d'un PIC dure 4 temps d'horloge. La plupart des instructions

    durent un cycle, sauf les sauts qui durent deux cycles. On atteint donc des vitessesleves.

    Avec un quartz de 4 MHz (ou l'horloge interne), on obtient donc 1 000 000 de

    cycles/seconde, or, comme le PIC excute pratiquement 1 instruction par cycle, hormis

    les sauts, cela donne une puissance de lordre de 1 MIPS (1 million d'instructions par

    seconde).

    Les PIC peuvent tre cadencs 20 MHz (srie PIC16), 40 MHz (srie PIC18), voire48 MHz (exemple : PIC18F2550 PIC avec USB) et 64 MHz (exemple : PIC18F25K20 PIC en 3,3 V).

    Les familles du PIC

  • 7/24/2019 Chapitre 3 l10-SystemC

    139/170

    Introduction aux systmes sur puce 39

    Les modles de PIC courants sont reprs par une rfrence de la forme :

    2 chiffres : famille du PIC (10, 12, 16, 17 et 18). 1 lettre : type de mmoire de programme (C ou F).

    -Le F : indique en gnral qu'il s'agit d'une mmoire flash et donc effaablelectroniquement.

    - Le C : indique en gnral que la mmoire ne peut tre efface que par

    exposition aux ultra-violets (exception pour le PIC16C84 qui utilise unemmoire EEPROM donc effaablelectriquement).

    Un L peut tre ajout devant pour indiquer qu'il s'agit d'un modle basse tension(exemple : 2 V 5,5 V si LF 4,2 V 5,5 V si F).

    un groupe de lettres pour indiquer le botier et la gamme de temprature.Par exemple, le PIC18LF4682-I/P : est un microcontrleur de la famille PIC18,basse tension (L), mmoire flash (F), modle 4682, gamme de temprature

    industrielle (I) et botier DIL40.

  • 7/24/2019 Chapitre 3 l10-SystemC

    140/170

    PIC16F84

  • 7/24/2019 Chapitre 3 l10-SystemC

    141/170

    Introduction aux systmes sur puce 4

    Ses principales caractristiques:

    microcontrleurs 8 bits seulement 35 mots d'instruction instruction sur 14 bits vitesse d'horloge (existe en version 4, 10 ou 20 Mhz) 4 sources d'interruption (?) 1000 cycles effacement/criture possible de la mmoire programme flash 1K mots mmoire programmeFlash 68 octets de donnes RAM 64 octets de donnes EEPROM 13 pins I/O avec contrle individuel de direction TMR0 8bit timer/compteur

    Le tout sur un pav de 18 pins.

    PIC16F84

  • 7/24/2019 Chapitre 3 l10-SystemC

    142/170

    PIC16F84

    Introduction aux systmes sur puce 42

    Programmation

  • 7/24/2019 Chapitre 3 l10-SystemC

    143/170

    Programmation

    Introduction aux systmes sur puce 43

    Les PIC disposent de plusieurs technologies de mmoire de programme :ROM, EPROM, EEPROM, UVPROM, flash. Certains PIC sont dpourvus demmoire programme interne, c'est le cas des PIC18C601 et PIC18C801 o le

    programme doit tre contenu dans une mmoire externe.

    La programmation du PIC peut se faire de diffrentes faons :

    1. Par l'intermdiaire d'un programmateur ddi (par exemple : PRO MATE ou

    PICSTART Plus de la socit Microchip)

    2. Par programmation in-situ. Il suffit alors de cbler correctement le

    microcontrleur sur la carte fille pour qu'une simple liaison srie suffise. Il existe

    pour cela plusieurs solutions libres (logiciel + interface faire soi-mme) oucommerciales (par exemple : PICkit 2 ou ICD2 de Microchip).

  • 7/24/2019 Chapitre 3 l10-SystemC

    144/170

    Le programmateur

  • 7/24/2019 Chapitre 3 l10-SystemC

    145/170

    Introduction aux systmes sur puce 2

    Une fois le programme compil, il faut letransfrer dans la mmoire du microcontrleur.Pour cela il vous faut :

    Une petite interface matrielle Un logiciel: qui assure le transfert des donnes

    entre le PC et le microcontrleur (il est fourniavec le programmateur). Comme exemple

    ICPROG , c'est le meilleur logiciel deprogrammation de PIC l'heure actuelle, et il al'avantage d'tre disponible en freeware.

  • 7/24/2019 Chapitre 3 l10-SystemC

    146/170

    Commande dune LED

  • 7/24/2019 Chapitre 3 l10-SystemC

    147/170

    Commande d une LED

    Introduction aux systmes sur puce

    Exemple dapplications:

  • 7/24/2019 Chapitre 3 l10-SystemC

    148/170

    clignotement de Led

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    149/170

    Architecture

    i t

  • 7/24/2019 Chapitre 3 l10-SystemC

    150/170

    interne

    Introduction aux systmes sur puce

    Architecture interne

  • 7/24/2019 Chapitre 3 l10-SystemC

    151/170

    ARM 32-bit Cortex-M3 CPU Embedded Memories :

    FLASH: up 128 Kbytes SRAM: up 20 Kbytes

    CRC calculation unit 7 Channels DMA Power Supply with internal regulator and low power modes :

    2V to 3.6V supply 4 Low Power Modes with Auto Wake-up Up to 72 MHz frequency managed & monitored by the Clock Control Rich set of peripherals & IOs

    Embedded low power RTC with VBAT capability Dual WatchdogArchitecture

    5 Timers w/ advanced control features(including Cortex SysTick) 9 communications Interfaces Up to 80 I/Os (100 pin package) w/ 16 external interrupts/eventUp to 2x12-bits 1Msps ADC w/ up to 16 channels and Embeddedtemperature sensor w/ +/-1.5linearity with T

    Introduction aux systmes sur puce 2 6

    System architectureI-Bus (Instruction Bus): ddi principalement pour le transfert des instructions (code)

  • 7/24/2019 Chapitre 3 l10-SystemC

    152/170

    2 7

    I Bus (Instruction Bus): ddi principalement pour le transfert des instructions (code)

    entre Cortex et la mmoireFlash.

    D-Bus & System Bu s: connects directement la matrice de bus qui sert de lienavec les bus daccs la SRAM, le systme DMA (Direct Memory Access) ainsi quele AHB (Advnaced High Bus) .APB1 & 2 (Advanced Peripheral Bus 1 & 2): Chacun des deux bus est connect au

    AHB travers un pont (respectivement AHB-APB1 et AHB-APB2) et servent vhiculer

    les donnes vers et depuis une partie des priphriques.

    Introduction aux systmes sur puce

    up to 72MHz

    up to 36MHz

    Processeur CortexM3

  • 7/24/2019 Chapitre 3 l10-SystemC

    153/170

    Processeur CortexM3

    Introduction aux systmes sur puce 2 8

    Un processeur 32 bits: Il contient un chemin de donnes (data path)32 bits, un banc de registres 32 bits et des interfaces mmoires de32 bits.

    Il se base sur un pipeline 3 tages (Fetch, Decode et Execute) possde une architecture Harvard, c'est--dire quil contient deux

    bus distincts pour le transfert des donnes et des instructions. Cecipermet daccderen mme temps aux instructions et aux donnes,et par consquent une augmentation de la performance puisquelaccs aux donnes naffecte pas le pipeline.

    lespace dadressage du Cortex-M3 est unique et peut atteindre lataille de 4 GO

    Firmware : code ncessaire agissant trs bas

    niveau (Driver) et permettant aux applications

    dutiliser le matriel dune faon transparente

  • 7/24/2019 Chapitre 3 l10-SystemC

    154/170

    2 9

    Espace utilis pour adresser les

    priphriques ajouts par le constructeur

    du microcontrleur intgrant le Cortex-M3.

    Espace utilis pour stocker les donnesrelatives au code.

    Espace utilis pour adresser les priphriques d

    Cortex-M3 : Contrleur dinterruption, le Timersystme, le bloc de contrle, etc.

    Espace utilis pour stocker du code

    excutable. On peut galement stockerIntroduction aduxessysdtomnesnsurepsu.ce

    Gestion des interruptions (NVIC)

  • 7/24/2019 Chapitre 3 l10-SystemC

    155/170

    Gest o des te upt o s ( C)

    Introduction aux systmes sur puce 22

    Le NVIC est capable de grerjusqu 240 interruptions gnrespar des priphriques externes au Cotex-M3 et dont le niveau depriorit peut tre dynamiquement fix parmi 256 niveaux possibles.

    En plus de ces interruptions, le NVIC gre un certain nombredexceptions dclenches par des priphriques internes du Cortx-M3 (Bus AHB, MPU, Timer SysTick, etc..) ou par des fautes auniveau du programmemme.

  • 7/24/2019 Chapitre 3 l10-SystemC

    156/170

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    157/170

    Droulement dune interruption

  • 7/24/2019 Chapitre 3 l10-SystemC

    158/170

    223

    p

    Quand une interruption autorise estdclenche par un priphrique, le NVIC

    force le processeur la servir.

    Il commence par sauvegarder un certainnombre de registres dans la pile, et

    paralllement, il rcupre ladresse de laroutine relative linterruption.Le temps total qui scoule du momentou linterruption se dclenche jusqulexcution de la premire instruction de laroutine est de seulement 12 cycles.

    Une fois lexcution de la routine esttermine, les contenus des registres

    sauvegards sont rcuprs partir de la

    pile ainsi que ladresse de linstructionsuivante du programme principal.

    Introduction aux systmes sur puce

    Arbre dhorloge du STM32

  • 7/24/2019 Chapitre 3 l10-SystemC

    159/170

    g

    Introduction aux systmes sur puce 224

    Les diffrents bus, composants et priphriques fonctionnent avecdes frquences dhorloge synthtises partir de lun des deuxsignaux horloge :

    HSI (High Speed Internal) : Il sagit dun signal de frquence 8 Mhz

    gnr par un oscillateur interne intgr au niveau du c. Cest cettefrquence qui est utilise par dfaut aprs une opration de reset.Elle prsente linconvnient de manque de prcision et de stabilit.

    HSE (High Speed External) : Il sagit dun signal de frquencecomprise entre 4 et 25 Mhz, gnr par un dispositif ( base dun

    cristal) plac lextrieur du c.

    Arbre dhorloge du STM32

  • 7/24/2019 Chapitre 3 l10-SystemC

    160/170

    225

    La synthse des diffrentes frquences partir de lundes deux signaux :

    g

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    161/170

    GPIO

  • 7/24/2019 Chapitre 3 l10-SystemC

    162/170

    227

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    163/170

    Programmation du STM321. Le Standard de

    programmation en C :

    CMSIS 1.0

    CMSIS : Cortex Microcontroller Software

    Interface Standard

  • 7/24/2019 Chapitre 3 l10-SystemC

    164/170

    229

    Il sagit en effet dun ensemble de modules (drivers) qui permettent aux applications

    daccder au matriel dune faon transparente

  • 7/24/2019 Chapitre 3 l10-SystemC

    165/170

    Lapplication dveloppe

    parlutilisateur

    -Liste des interruptions du STM32 spcifiques au

    noyau Cortex-M3.-Organisation de la mmoire STM32 et dfinition des

    Fadircehsiseersdpehydsiqmueasrrdaegseregistres.

  • 7/24/2019 Chapitre 3 l10-SystemC

    166/170

    (-aOspsetimonbsleduerc)onpfoiguurration.

    linitialisation des

    paramtres du STM32

    Routines relatives aux

    exceptions du Cortex-M3

    Fichier entte de configuration contenant laliste des priphriques utiliss duSTM32

    Les drivers des priphriques

    de base (noyau) (Contrleur

    dinterruptions, Timer systme)

    Fonctions bas niveau de

    lAPI pour laccs aux

    fonctionnalits despriphriquesIntroduction aux systmes sur puce 23

    stm32f10x_ppp.c et .h nest pas uniquement utilis pour dsigner un seulfichier

    mais elle stend un certain nombre de fichiers.

    Chaque fichier tant relatif lun despriphriques du microcontrleur (ppp tant

  • 7/24/2019 Chapitre 3 l10-SystemC

    167/170

    C aque c e ta t e at u des p p ques du c oco t eu (ppp ta t

    remplace par labrviation du priphrique).

    Introduction aux systmes sur puce 232

  • 7/24/2019 Chapitre 3 l10-SystemC

    168/170

    2. Dveloppement

    dapplication dans

    lenvironnement Ride7

  • 7/24/2019 Chapitre 3 l10-SystemC

    169/170

    Introduction aux systmes sur puce

  • 7/24/2019 Chapitre 3 l10-SystemC

    170/170