Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

VHDL design génération de flip-flop



  1. #1
    funzy2009

    VHDL design génération de flip-flop

    Bonjour,

    J'aurais souhaité avoir quelques informations sur la synthèse des signaux en langage VHDL :
    J'ai compris que lorsque l'on synthétise un signal dans un process clocké (sur front montant) celà crée 1 ou plusieurs flip flops en fonction du nombre de bits des signaux. De même pour les variables celà dépend des cas mais je pense avoir compris le fonctionnement.
    Cependant si l'on assigne le signal différemment dans 2 boucles différentes (toujours à l'intérieur du process clocké) est ce que cela crée 2 flips flops différentes ou bien une seule avec sortie différente ?
    Si l'on a par exemple if() {
    S_exemple <= '1';
    }
    else S_exemple <= '0' ;
    Aura t on une flip flop pour le signal S_exemple ou bien une flip flop dans le if et une dans le else ?

    Merci par avance pour vos éclaircissement,

    Bien cordialement

    -----


  2. Publicité
  3. #2
    jiherve

    Re : VHDL design génération de flip-flop

    Bonsoir,
    Non il y aura qu'une bascule précédée de logique combinatoire.
    JR
    l'électronique c'est pas du vaudou!

  4. #3
    funzy2009

    Re : VHDL design génération de flip-flop

    D'accord merci
    Donc si j'ai bien compris c'est une seule bascule flip flop par signal, et si il est assigné plusieurs fois (dans différentes boucles par exemple), c'est juste de la logique combinatoire autour ?

  5. #4
    andre_teprom

    Re : VHDL design génération de flip-flop

    Le nombre d'etats indépendants est le facteur qui déterminera le nombre de bascules nécessaires pour synthétiser le circuit.
    La logique combinatoire peut avoir combien de bits sont nécessaires, indépendamment de la quantité d'etats.

  6. #5
    jiherve

    Re : VHDL design génération de flip-flop

    Bonjour,
    Si le signal est composé de n bits alors il y aura au plus n bascules.
    JR
    l'électronique c'est pas du vaudou!

  7. A voir en vidéo sur Futura
  8. #6
    stefjm

    Re : VHDL design génération de flip-flop

    Citation Envoyé par funzy2009 Voir le message
    D'accord merci
    Donc si j'ai bien compris c'est une seule bascule flip flop par signal, et si il est assigné plusieurs fois (dans différentes boucles par exemple), c'est juste de la logique combinatoire autour ?
    Oui, une bascule par signal, mais assignée par la dernière affectation effectuée.

    S_exemple<=1;
    S_exemple<=0;

    S_exemple vaudra 0 et jamais 1.

    Autre exemple avec un entier.
    Si la valeur des bascules vaut 3, suite aux instructions :
    S_exemple<=S_exemple+1;
    S_exemple<=S_exemple+1;

    S_exemple au coup suivant, vaudra 4. (et pas 5 comme trop de débutants le "croivent"...du verbe croiver)
    Dernière modification par stefjm ; 22/11/2015 à 17h35. Motif: accord
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  9. Publicité
  10. #7
    jiherve

    Re : VHDL design génération de flip-flop

    Bonsoir
    S_exemple<=1;
    S_exemple<=0;

    S_exemple vaudra 0 et jamais 1.
    Cà c'est vrai pour des assignations concurrentes ici il y avait if/elsif

    Autre exemple avec un entier.
    Si la valeur des bascules vaut 3, suite aux instructions :
    S_exemple<=S_exemple+1;
    S_exemple<=S_exemple+1;
    çà c'est faux car un signal n'est évalué qu'une fois dans un process, c'est la grosse différence qui existe avec une variable qui est évaluée et mise à jour à chaque assignation (par := en l’occurrence) donc en sortie du process la valeur du signal sera 4!
    JR
    l'électronique c'est pas du vaudou!

  11. #8
    funzy2009

    Re : VHDL design génération de flip-flop

    Tout d'abord merci pour vos explications, je commence à y voir plus clair
    2 autres petites questions :
    1) Si j'assigne dans mon "rising edge" une variable à un port d'entrée, est ce que cela va me creer une flip flop ?
    2)De même si j'assigne une variable à un type "constant" positive integer ?

    ex :
    Port P_entrée
    Constant Data_size
    variable V_variable1
    variable V_variable2

    if rising edge
    V_variable1 : = P_entrée
    V_variable2 := V_variable1 + Data_size

    Pour moi dans ce cas précis on aura généré qu'une flip flop pour l'assignation de variable1 au port d'entrée, suis je dans l'erreur ?

    Par avance, merci

  12. #9
    jiherve

    Re : VHDL design génération de flip-flop

    Bonsoir,
    En effet normalement seule V_variable1 sera constituée de FF et V_variable2 pourra être le résultat d'une logique combinatoire; Mais cela peut dépendre du compilateur.
    Donc toujours être méfiant avec les variables qu'il faut utiliser avec précaution et parcimonie si l'on veut contrôler de façon serrée le résultat de la synthèse.
    Le VHDL c'est un vrai métier.

    JR
    l'électronique c'est pas du vaudou!

  13. #10
    funzy2009

    Re : VHDL design génération de flip-flop

    Merci
    J'avais peur en fait que le fait d'assigner une variable avec une constante me crée un registre flip flop supplémentaire (en effet la constante doit être en mémoire et j'avais un doute si lorsqu'on assigne var := constante on crée une flip flop ou non).

  14. #11
    jiherve

    Re : VHDL design génération de flip-flop

    Re
    Comme dans la réalité un bloc logique comporte souvent logique combinatoire et FF cela ne changera sans doute pas grand chose au final.
    De plus un synthétiseur malin optimisé pour la vitesse pourra très bien générer 2FF par bit!
    JR
    Dernière modification par jiherve ; 24/11/2015 à 21h08.
    l'électronique c'est pas du vaudou!

Sur le même thème :

Discussions similaires

  1. Flip Flop
    Par James3 dans le forum Électronique
    Réponses: 23
    Dernier message: 02/09/2010, 10h56
  2. Flip flop
    Par wafa1984 dans le forum Électronique
    Réponses: 2
    Dernier message: 03/09/2009, 12h21
  3. Flip Flop rs , éclairez moi
    Par Diostrofobe dans le forum Électronique
    Réponses: 1
    Dernier message: 28/05/2009, 17h08
  4. Flip Flop
    Par guifou dans le forum Électronique
    Réponses: 6
    Dernier message: 11/11/2008, 15h10
  5. flip flop cd4538
    Par elsena dans le forum Électronique
    Réponses: 13
    Dernier message: 11/12/2007, 11h54