cours 6 unité de controle(vhdl)

53
Conception et implémentation de s systèmes numériques Cours #6 Conception d’unités de contrôle

Upload: othmane-froukh

Post on 14-Nov-2015

25 views

Category:

Documents


6 download

DESCRIPTION

cours de VHDL

TRANSCRIPT

  • Conception et implmentation de s systmes numriques

    Cours #6Conception dunits de contrle

  • Conception et implmentation des systmes numriques

    Plan

    Rappel circuits squentiels: Analyse dun circuit squentiel synchrone: Machines tats en VHDL: Conception de machines tats: Conception de processeurs: Exemples

    Modle de producteur/consommateur Multiplicateur srie:

  • Conception et implmentation des systmes numriques

    Rappel: exemple de la machine distributrice

    33Source: Wikipdia

  • Conception et implmentation des systmes numriques

    Parties dun processeur

    Un processeur est compos de deux parties: Le chemin des donnes (datapath) traite les donnes. Il inclut:

    des registres; des units fonctionnelles (comme une unit arithmtique et logique) un mcanisme de commutation pour transfrer et manipuler les donnes.

    Lunit de contrle (control unit) est responsable du squenage des oprations excuter par le chemin de donnes selon des entres externes et le rsultat des oprations.

    Chemin des donnes

    Unit de contrle

    Contrle tat

    Sortie des donnes

    Sorties de contrle

    Entre des donnes

    Entres de contrle

  • Conception et implmentation des systmes numriques

    Machine distributrice

    ProcesseurClavier

    senseur de pices

    MM

    MM

    Moteurs des plateaux

    actuateurs pour rendre la monnaie

    affichages

    tatGrer largentGrer linventaire

    Lunit de contrle dtermine dans quel ordre les diffrentes actions doivent se produire, et gnre les signaux de contrle correspondants pour les chemin des donnes et pour les sorties.

  • Conception et implmentation des systmes numriques

    Circuits squentiels synchrones

    Un circuit squentiel comporte: une partie combinatoire; et des lments mmoire.

    Les lments mmoire entreposent ltat prsent du circuit. La partie combinatoire calcule le prochain tat du systme ainsi que ses sorties. Un circuit squentiel a normalement des entres et des sorties. Un circuit squentiel est men par un signal dhorloge et devrait avoir un signal

    de rinitialisation. Ces signaux sont des entres spciales.circuit combinatoire

    prochain tat tat prsent

    horloge

    entres sorties

    lments mmoire

  • Conception et implmentation des systmes numriques

    Circuits squentiels synchrones

    Il y a deux types de circuits squentiels: les circuits de Moore et de Mealy. Dans une machine de Moore, les sorties ne sont fonctions que de ltat

    prsent. Dans une machine de Mealy, les sorties sont fonctions de ltat prsent ainsi

    que des entres.circuit combinatoire

    prochain tattat prsent

    horloge

    entres

    sorties de Moore

    sorties de Mealy

    fonction de sortie (Moore)

    fonction de sortie (Mealy)

    calcul du prochain tatlments mmoire

  • Conception et implmentation des systmes numriques

    Plan

    Rappel circuits squentiels: Analyse dun circuit squentiel synchrone: Machines tats en VHDL: Conception de machines tats: Conception de processeurs: Exemples

    Modle de producteur/consommateur Multiplicateur srie:

  • Conception et implmentation des systmes numriques

    Analyse dun circuit squentiel synchrone

    On analyse un circuit pour en comprendre le fonctionnement. Analyser un circuit squentiel synchroneen quatre tapes:

    1. identifier les variables dtats;2. crire les quations dtats et les quations de sortie;3. dresser le tableau dtats; et,4. dessiner le diagramme dtats.

    D

    CLK

    Q'

    Q

    ZX D

    CLK

    Q'

    QCLK

    A

    B

    2.A+ = A xor B;B+ = B or X;Z = A nor B;

    1. A et B

  • Conception et implmentation des systmes numriques

    Analyse dun circuit squentiel synchrone(suite)

    D

    CLK

    Q'

    Q

    ZX D

    CLK

    Q'

    QCLK

    A

    B

    3. Tableau dtats: 4. Diagramme dtats:

    tat 0: AB = 00tat 1: AB = 01tat 2: AB = 10tat 3: AB = 11

    tat 3

    Sortie: 0

    tat 2

    Sortie: 0

    tat 1

    Sortie: 0

    tat 0

    Sortie: 1

    -

    0 0

    1

    -

    reset(tat

    initial)

    1

    tat prsent entre tat prochain sortie

    A B X A+ B+ Z

    0 0 0 0 1 10 0 1 0 1 10 1 0 1 0 00 1 1 1 1 01 0 0 1 1 01 0 1 1 1 01 1 0 0 0 01 1 1 0 1 0

    tat prsent entre tat prochain sortie

    A B X A+ B+ Z

    0 0 0 0 1 10 0 1 0 1 10 1 0 1 0 00 1 1 1 1 01 0 0 1 1 01 0 1 1 1 01 1 0 0 0 01 1 1 0 1 0

  • Conception et implmentation des systmes numriques

    Plan

    Rappel circuits squentiels: Analyse dun circuit squentiel synchrone: Machines tats en VHDL: Conception de machines tats: Conception de processeurs: Exemples

    Modle de producteur/consommateur Multiplicateur srie:

  • Conception et implmentation des systmes numriques

    Description dune machine tats en VHDL1. partir dun schma

    Approche adquate: quand on dsire modliser un circuit pour lequel on a le schma quand on a les quations dtats et de sortie

    library IEEE;use IEEE.std_logic_1164.all;

    entity cctsequentielex1 isport (

    reset : in STD_LOGIC;CLK : in STD_LOGIC;X : in STD_LOGIC;Z : out STD_LOGIC

    );end cctsequentielex1;

    architecture arch1 of cctsequentielex1 issignal A : STD_LOGIC; -- bascule A (en haut)signal B : STD_LOGIC; -- bascule B (en bas)begin

    process(CLK, reset) isbegin if (reset = '0') then

    A

  • Conception et implmentation des systmes numriques

    Description dune machine tats en VHDL2. partir dun diagramme dtats

    Approche beaucoup plus puissante: identifier les tats, les conditions de transition et les sorties pour chaque tat pas besoin dquations dtats plus lisible, robuste, facile maintenir

    architecture arch2 of cctsequentielex1 istype type_etat is range 0 to 3; signal etat : type_etat := 0;begin

    process(CLK, reset) isbegin

    if (reset = '0') thenetat etat if x = '0' then etat

  • Conception et implmentation des systmes numriques

    Description dune machine tats en VHDLEncodage symbolique des tats

    Lors de la conception, on prfre souvent un encodage symbolique lencodage numrique des tats.

    Type spcial pour ltat.Ici: encodage symbolique avec un type numr.

    Autres observations:machine de Moore (sortie dfinie seulement par ltat)sortie spcifie dans la condition de rinitialisationsortie avec registre

    S2Sortie = 1

    S4Sortie = 0

    S3Sortie = 0

    S1Sortie = 1

    X

    X

    resetarchitecture unprocessus of cctsequentielex2 is

    type type_etat is (S1, S2, S3, S4);signal etat : type_etat := S1;

    beginprocess(CLK, reset) isbegin if (reset = '0') then

    etat

  • Conception et implmentation des systmes numriques

    Parenthse: types numrs en VHDL

    Un type peut tre dfini avec une numration dlments dans une liste. Lordre dnumration dfinit un indice pour chaque lment partir de 0. Les

    oprateurs relationnels sappliquent entre les lments selon cet ordre. Exemples: dfinitions dans le package standard, disponible dans le manuel de

    rfrence du langage VHDL, norme 1076-2002 http://www.ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1003477

    package STANDARD is

    type BOOLEAN is (FALSE, TRUE);

    type BIT is ('0', '1');

    type CHARACTER is (NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, HT, LF, VT, FF, CR, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FSP, GSP, RSP, USP, ' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '', '?', --- etc.

  • Conception et implmentation des systmes numriques

    circuit combinatoire

    prochain tattat prsent

    horloge

    entres

    sorties de Moore

    sorties de Mealy

    fonction de sortie (Moore)

    fonction de sortie (Mealy)

    calcul du prochain tatlments mmoire

    Trois styles de description dune machine tats en VHDL

    Les trois parties dune machine tatssont : les lments mmoire qui conservent ltat prsent de la machine; un circuit combinatoire qui calcule le prochain tat; et, un circuit combinatoire qui calcule les sorties de Moore et de Mealy.

    Il y a trois styles principaux de description selon la rpartition des trois parties de la machine sur un ou plusieurs processus.

  • Conception et implmentation des systmes numriques

    Trois styles de description dune machine tats en VHDL1. Avec un seul processus

    Attention aux sorties: infrence de registres pour les sorties spcifier la sortie du prochain tat tant donns un tat et une entre

    prsentes. si plusieurs conditions rsultent en un tat donn, il faut spcifier la sortie

    de Moore de cet tat chaque fois. architecture unprocessus of cctsequentielex2 istype type_etat is (S1, S2, S3, S4);signal etat : type_etat := S1;begin

    process(CLK, reset) isbegin if (reset = '0') then

    etat

  • Conception et implmentation des systmes numriques

    process(etat)begin

    case etat iswhen S1 | S2 => sortie sortie

  • Conception et implmentation des systmes numriques

    Trois styles de description dune machine tats en VHDL2b. Avec deux processus

    Bon compromis entre la flexibilit et la lisibilit du code. Deux processus:

    un pour le calcul et lentreposage de ltat un pour les sorties (peut tre remplac par des noncs concurrents)

    architecture arch2 of cctsequentielex1 istype type_etat is range 0 to 3; signal etat : type_etat := 0;begin

    process(CLK, reset) isbegin

    if (reset = '0') thenetat etat if x = '0' then etat

  • Conception et implmentation des systmes numriques

    Trois styles de description dune machine tats en VHDL3. Avec trois processus

    Style qui correspondre exactement au modle. Code est trs lisible mais moins compact que la version deux processus. La liste de sensibilit du processus qui calcule le prochain tat inclut le signal qui

    entrepose ltat courant ainsi que toutes les entres. Le mme principe sapplique au processus qui calcule les sorties (pour une

    machine de Mealy).

  • Conception et implmentation des systmes numriques

    Trois styles de description dune machine tats en VHDL3. Avec trois processus

    -- processus pour le calcul du prochain tatprocess(etat, x) isbegin

    case etat iswhen S1 =>

    if x = '0' thenetat_prochain

  • Conception et implmentation des systmes numriques

    Trois styles de description dune machine tats en VHDLConclusion

    Les trois styles ont chacun leurs mrites et inconvnients. Cette varit doptions illustre nouveau la trs grande richesse de VHDL. Cette richesse cause cependant beaucoup de difficults parce quil nexiste pas

    une norme unique pour la description de machines tats. Il est donc plus difficile de concevoir un synthtiseur qui puisse reconnatre de

    faon satisfaisante les intentions du concepteur. Il est ncessaire de consulter le manuel dutilisation du synthtiseur utilis afin

    de connatre les styles dencodage de machines tats reconnus.

  • Conception et implmentation des systmes numriques

    Parenthse: rsultats diffrentspour la synthse et la simulation: comment les viter

    Attention la liste de sensitivit labsence dun signal dans la liste de sensitivit est importante pour le

    simulateur le synthtiseur suppose (en gnral) que le concepteur a fait une erreur:

    noncs wait: pas tenus en compte par le synthtiseur Quoi faire?

    Surveiller les avertissements du synthtiseur Pour les processus dcrivant des bascules: placer seulement clk et reset

    dans la liste de sensitivit Pour les processus dcrivant de la logique combinatoire: placer tous les

    signaux faisant partie dexpressions dans la liste de sensitivitprocess(A, B)begin

    T1

  • Conception et implmentation des systmes numriques

    Plan

    Rappel circuits squentiels: Analyse dun circuit squentiel synchrone: Machines tats en VHDL: Conception de machines tats: Conception de processeurs: Exemples

    Modle de producteur/consommateur Multiplicateur srie:

  • Conception et implmentation des systmes numriques

    Conception de machine tatsPrincipes de base

    La conception dune machine tats est un processus cratif similaire la description dun algorithme dans un langage de programmation:

    dbuter avec une description de la relation dsire entre les entres et les sorties;

    faire des choix en faisant un compromis entre des contraintes qui ne peuvent toutes tre satisfaites simultanment: performance, prcision, complexit, lisibilit, la testabilit et la consommation de puissance;

    considrer les cas spciaux sparment; pendant le processus de conception, on ralise souvent que la spcification

    est incomplte, ambige ou mal comprise; le systme une fois conu se comporte exactement tel quil a t dcrit,

    mais pas ncessairement comme on voudrait quil se comporte; utiliser un processus itratif ,rien ne marche la premire fois; bien documenter toutes les tapes.

  • Conception et implmentation des systmes numriques

    Conception de machine tatsProcdure traditionnelle et avec un VHDL

    tape Procdure traditionnelle Procdure avec un HDL(VHDL)

    Btir un diagramme dtats partir des donnes du problme. oui oui

    Btir le tableau dtats partir du diagramme dtats, en identifiant les tats par des symboles. oui non

    Rduire le nombre dtats ncessaires en liminant les tats quivalents. oui

    pas obligatoirepeut simplifier la documentation

    et la clart du code

    Assigner un code binaire chaque tat, et ajouter cette information au tableau dtat. oui par loutil de synthse

    partir du tableau dtat complet, obtenir les quations boolennes dentre des bascules du type choisi ainsi que les quations boolennes des sorties du systme, en simplifiant si possible.

    oui par loutil de synthse

    Donner le diagramme et/ou construire le circuit. oui par loutil de synthse

    Vrifier, vrifier, vrifier. oui oui

  • Conception et implmentation des systmes numriques

    Conception de machine tatsAlgorithmic State Machines

    Cette approche nest plus vraiment utilise depuis ladoption des HDL.

  • Conception et implmentation des systmes numriques

    Conception de machine tatsBtir le diagramme dtats

    La reprsentation graphique offerte par un diagramme dtats est trs avantageuse. Certains outils de conception produisent automatiquement du code VHDL partir dun diagramme dtats.

    Les principes suivants peuvent grandement aider obtenir le diagramme dtat. partir des donnes du problme, simuler certaines combinaisons dentre

    et de sortie pour bien comprendre la nature du problme. Construire un diagramme partiel menant une sortie dsire du systme. Ajouter au diagramme les autres chemins menant aux sorties dsires du

    systme. Vrifier le diagramme pour viter les tats quivalents (deux tats qui

    mnent aux mmes prochains tats et qui ont les mmes sorties pour les mmes entres).

    Complter le diagramme en ajoutant des transitions pour toutes les entres possibles partir de chaque tat.

    Identifier toute condition o le circuit doit tre rinitialis un tat de dpart, et annoter le diagramme avec cette information.

  • Conception et implmentation des systmes numriques

    Btir un diagramme dtatsExemple: reconnatre une squence

    Donnez un diagramme dtats pour une machine de Mealy qui doit reconnatre la squence 1101

  • Conception et implmentation des systmes numriques

    Btir un diagramme dtats Exemple: reconnatre une squence

    Donnez un circuit qui doit reconnatre la squence 1101 laide dun registre dcalage.

    Solution :Registre dcalage - 4 basculesLes squences imbriques sont correctement dtectes.

  • Conception et implmentation des systmes numriques

    Btir un diagramme dtats Exemple: communications entre deux modules

    Donner le diagramme dtats dun transmetteur RS-232. Indiquer la valeur des signaux de contrle et les actions prendre sur le chemin

    des donnes.

  • Conception et implmentation des systmes numriques

    Btir un diagramme dtats Exemple: communications entre deux modules

    condition pour la transition /actions prendre lors de la transition

  • Conception et implmentation des systmes numriques

    Transmetteur pour communications srielles RS-232code VHDL (1)

    library IEEE;use IEEE.STD_LOGIC_1164.all;entity rs232txsimple is

    generic (nStartBits : positive := 1; -- nombre de bits de dpartnDataBits : positive := 8; -- nombre de bits de donnesnStopBits : positive := 1 -- nombre de bits d'arrt

    );port(

    reset_n : in std_logic;bitClk : in std_logic; -- horloge des bitslecaractere : in std_logic_vector(nDataBits - 1 downto 0); -- caractre transmettreload : in std_logic; -- signal de contrle pour lire le caractre et dbuter la transmissionready : out std_logic; -- indique que le systme est prt transmettre un nouveau caractrers232_tx_data : out std_logic -- signal de transmission RS-232

    );end rs232txsimple;architecture arch of rs232txsimple isconstant startBit : std_logic := '0';constant stopBit : std_logic := '1';signal registreADecalage : std_logic_vector(nStartBits + nDataBits + nStopBits - 1 downto 0);signal entransmission : boolean;

    Type boolean pour le signal entransmission: on aurait pu prendre std_logic.

    Lutilisation de paramtres (generic) rend le module plus flexible.

    Utiliser des constantes amliore la lisibilit du code.

  • Conception et implmentation des systmes numriques

    Transmetteur pour communications srielles RS-232code VHDL (2)

    begin

    process(reset_n, bitClk)constant compteurMax : natural := registreADecalage'length;variable compteur : natural range 0 to compteurMax;begin

    if reset_n = '0' thenentransmission if load = '1' then

    compteur := compteurMax;entransmission

  • Conception et implmentation des systmes numriques

    Parenthse: gnration automatique de code VHDL partir dun diagramme dtats dans VHDL

  • Conception et implmentation des systmes numriques

    Conception de machine tatsDcomposition de machines tats

    Les circuits squentiels peuvent parfois tre dcomposs en blocs simples. La dcomposition peut suivre une approche hirarchique. Les diffrentes sous-

    machines tats doivent pouvoir communiquer entre elles laide de signaux de contrle et de donnes.

    Machineprincipale

    Sous-machine #1

    Go1

    Sous-machine #2

    Go2

    Fini1

    Fini2

    entressorties

  • Conception et implmentation des systmes numriques

    Conception de machine tatsDcomposition de machines tats

    Exemple : donner un diagramme dtats pour un circuit dont la sortie est 1 quand au moins deux 0 et deux 1 ont t reus, dans nimporte quel ordre.

    Solution 1:Une seule machine

  • Conception et implmentation des systmes numriques

    Conception de machine tatsDcomposition de machines tats

    Exemple : donner un diagramme dtats pour un circuit dont la sortie est 1 quand au moins deux 0 et deux 1 ont t reus, dans nimporte quel ordre.

    Solution 2:Dcomposition en trois machines

  • Conception et implmentation des systmes numriques

    Conception de machine tatsCircuits combinatoires itratifs et circuits squentiels

    Un circuit combinatoire itratif est un circuit compos de n modules identiques connects en cascade.

    Les modules ont des entres principales EP, des sorties principales SP, des entres de connexion en cascade EC et des sorties de connexion en cascade SC.

    moduleEP

    SP

    EC SC moduleEP

    SP

    EC SC moduleEP

    SP

    EC SC

    EP0 EP1 Epn-1

    C-1 C0 C1 Cn-2 Cn-1

    SP0 SPn-1SP1

  • Conception et implmentation des systmes numriques

    Conception de machine tatsCircuits combinatoires itratifs et circuits squentiels - 2

    Exemple de circuit itratif: circuit qui compare lgalit de deux nombres.

    Egalitecomp1

    X

    EGe EGs

    X0

    1 Y

    Y0

    comp1X

    EGe EGs

    X1

    Y

    Y1

    comp1X

    EGe EGs

    Xn-1

    Y

    Yn-1

    EGe

    YX

    EGs

    comp1

  • Conception et implmentation des systmes numriques

    Conception de machine tatsCircuits combinatoires itratifs et circuits squentiels - 3

    Si les entres sont disponibles en format srie et que lon est prt accepter les sorties principales en format srie aussi, alors il existe une version squentielle du mme circuit qui est trs simple et qui ncessite trs peu de matriel.

    Exemple pour un comparateur itratif: Les entres X et Y sont des entres srie synchronises avec le signal dhorloge

    CLK. Lentre init doit tre active au dbut pour fixer le contenu de la bascule la valeur 1, tel que montr la Figure :

    X et Y sont des entres srie synchronises avec CLK.

    Lentre init doit tre active au dbut pour fixer le contenu de la bascule la valeur 1.

    YX

    comp1

    D

    CLK

    Q

    CLK

    set

    init

  • Conception et implmentation des systmes numriques

    Plan

    Rappel circuits squentiels: Analyse dun circuit squentiel synchrone: Machines tats en VHDL: Conception de machines tats: Conception de processeurs: Exemples:

    Modle de producteur/consommateur Multiplicateur srie:

  • Conception et implmentation des systmes numriques

    Exemple: modle de consommateur/producteur

  • Conception et implmentation des systmes numriques

    Conception de processeursavec lapproche RTL - rappel

    Dans lapproche RTL, le concepteur spcifie les registres du processeur, les transferts de donnes entre ces registres, les oprations effectuer et les signaux de contrle pour grer ces activits.

    Lapproche RTL peut tre dcompose en quatre tapes:1. Analyse du problme afin de comprendre le flot des donnes travers le

    processeur.2. Conception du chemin des donnes, identification des signaux de contrle

    et dtat.3. Conception de lunit de contrle du processeur laide dune machine

    tats gnrant des signaux de contrle.4. Vrification que le processeur rsultant rencontre les spcifications.

  • Conception et implmentation des systmes numriques

    Exemple de conception dun processeurMultiplicateur srie

    Faire la conception dun processeur qui multiplie un multiplicande et un facteur pour donner un produit.

    Le processeur doit minimiser les ressources utilises on spcifie que le traitement doit tre fait en srie.

    Il faut garder la largeur des oprandes variables. Donner le chemin des donnes sous la forme dun schma et de code VHDL. Donner la machine tats de lunit de contrle sous la forme dun diagramme

    et de code VHDL.

  • Conception et implmentation des systmes numriques

    Exemple: multiplicateur srieProcessus traditionnel

    000000000000001101101

    +

    011010110100000001101101

    +

    100111011010001101001101101

    +

    0100111000000001001110

    01101101

    +

    Processus traditionnel de multiplication de nombre non signs.Le nombre dtapes correspond au nombre de bits du multiplicateur.On considre les bits du multiplicateur un la fois.On additionne le multiplicande dcal quand le bit du multiplicateur considr est gal 1.Laddition gnre toujours un bit supplmentaire.

  • Conception et implmentation des systmes numriques

    Exemple: multiplicateur srieProcessus modifi

    [ ]

    0.0000.00000.0000.0000

    .0011

    .1101

    +

    [ ]

    10.01100.01101.11010.0000

    .1001

    .1101

    +

    [ ]

    110.100110.10011.110110.0110

    .1000

    .1101

    +

    [ ]

    1110.0100110.01001.0000110.1001

    .0000

    .1101

    +

    Laddition ne se fait toujours que sur quatre bits.On peut dcaler laccumulateur vers la droite au lieu du multiplicande vers la gauche.Le multiplicateur aussi est dcal vers la droite, son bit le moins significatif est considr.

  • Conception et implmentation des systmes numriques

    Exemple: multiplicateur sriePorts dentre et de sortie

    go: lancer la multiplicationfini: la multiplication est termine

    chargeA, chargeB: signaux de contrle indiquant quon doit charger chaque oprandes

    library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;

    entity multiplicateur isgeneric (

    W : integer := 4 -- nombre de bits des oprandes);port(

    reset : in std_logic;CLK : in std_logic;go : in std_logic;entree : in unsigned(W - 1 downto 0);chargeA : in std_logic;chargeB : in std_logic;F : out unsigned(2 * W - 1 downto 0);fini : out std_logic

    );end multiplicateur;

  • Conception et implmentation des systmes numriques

    Exemple: multiplicateur srieChemin des donnes: diagramme

    Les signaux de contrle sont drivs des signaux dentre et de ltat du processeur.

    multiplicande

    / W

    produit

    facteur

    additioneur

    / W + 1

    /W

    chargeFacteurchargeMultiplicande

    clkinitProduit

    clk clk

    decaleFacteur

    decaleProduit

    entree /W

    facteur(0)

    chargeProduit

  • Conception et implmentation des systmes numriques

    cheminDonnees : process (clk)begin

    if rising_edge(clk) then-- registre du multiplicandeif chargeMultiplicande = '1' then

    multiplicande

  • Conception et implmentation des systmes numriques

    Exemple: multiplicateur srieMachine tats

    Les signaux de contrle sont drivs des signaux dentre et de ltat du processeur.

    dcalage

    addition

    compteur = 0reset

    compteur /= 0

    attente

    go

    compteur

  • Conception et implmentation des systmes numriques

    Exemple: multiplicateur srieMachine tats: code VHDL

    -- machine a tats de l'unit de contrlecontrole : process (CLK, reset)begin

    if rising_edge(CLK) thenif reset = '1' then

    etat

    compteur

  • Conception et implmentation des systmes numriques

    Exemple: multiplicateur srieDescription combine en VHDL

    architecture arch6 of multiplicateur issignal multiplicande : unsigned(W - 1 downto 0);signal facteur : unsigned(W - 1 downto 0);signal produit : unsigned(2 * W downto 0);constant compteurmax : positive := W - 1;signal compteur : natural range 0 to compteurmax;type type_etat is (attente, addition, decalage);signal etat : type_etat;begin

    process (CLK, reset)begin

    if rising_edge(CLK) thenif reset = '1' then

    etat

    if chargeA = '1' thenmultiplicande