division vhdl
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

division vhdl



  1. #1
    shadow-man

    division vhdl


    ------

    bonjour a tous
    je programme en vhdl sur la basys2 et je voudrait faire un division dans mon code
    j'ai déjà fait un division dans se même code, donc j'ai comprit le principe.
    là je croit avoir comprit le problème, je croit que la division est impossible lorsque j'ai une variable au dénominateur mais impossible de le résoudre
    si quelqu'un pouvait m'aidez merci d'avance. et aussi m'expliquer pourquoi

    Code:
    freq1 <= to_signed(500000,20)/(to_integer(freq_user)*to_signed(20,5));

    -----

  2. #2
    jiherve

    Re : division vhdl

    bonjour,
    il faut ecrire freq1 <= to_signed(500000/(to_integer(freq_user)*20),20) ;
    ou plus simplement
    freq1 <= to_signed(25000/to_integer(freq_user),20);
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    shadow-man

    Re : division vhdl

    bonjour encore merci de tes réponses
    mais j'ai toujours une erreur

    ERROR:Xst:769 - "C:/Users/qreynaud/Documents/xilinx/basys2_25_04/PWM.vhd" line 71: Operator <INVALID OPERATOR> must have constant operands or first operand must be power of 2

    faut-il faire une opération spéciale pour avoir la variable au dénominateur ?
    Dernière modification par shadow-man ; 05/05/2014 à 13h39.

  4. #4
    jiherve

    Re : division vhdl

    Bonsoir,
    quelles sont les librairies déclarées en tete du projet ?
    Chez moi avec modelsim et quartus cela compile.
    Cela doit être une limitation de ton outil ou du fpga Xilinx choisi.
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    shadow-man

    Re : division vhdl

    voila je pense que cela ne vient pas de mes librairie car j'ai deja effectuer une division dans le même code mais le truc c'est que lorsque j'inverse ma division :
    freq1 <=(to_integer(freq_user)*to_si gned(20,5))/ to_signed(500000,20);
    quesque tu entend par la:
    "Cela doit être une limitation de ton outil ou du fpga Xilinx choisi." pourrai tu m'expliquer

    et pour info voila mes librairie
    library ieee;
    use ieee.std_logic_1164.all;
    use IEEE.numeric_std.all;
    use ieee.std_logic_signed.all;

  7. #6
    inoxxam

    Re : division vhdl

    Dans la plupart des cas, la division n'est pas synthetisable par les outils. Alors en simulation ça marche, parce que ton PC sait diviser.
    Il faut soit l'éviter (idéalement, c'est rarement impossible à éviter) soit trouver un moyen quelconque de l'implémenter, ce qui est rarement trivial.

  8. #7
    shadow-man

    Re : division vhdl

    ok merci pour l'info
    j'avais une autre technique qui était de faire le "décalage de chiffre binaire" se qui permettait de diviser par 2,4,8,16,32....
    déjà quesque vous en pensez?
    et ensuite est ce qu'il est possible de diviser par des chiffres intermédiaire je m'explique :
    je voudrait diviser ma fréquence pour pouvoir la réglé facilement la diviser par 5,10,20 ...
    ??

  9. #8
    jiherve

    Re : division vhdl

    Bonjour,
    la librairie signed ne sert à rien, sauf a mettre la grouille, lorsque l'on utilise deja numeric std.
    Les outils modernes sont capable de synthétiser une division, c'est cependant couteux en ressources.
    Autrement on peut facilement implementer un diviseur avec un algo de type division euclidienne, c'est pas véloce, un coup d'horloge par bit plus un talon pour la normalisation mais c'est économe.
    voir sur opencores.org.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. division par 0
    Par balnelius dans le forum Science ludique : la science en s'amusant
    Réponses: 64
    Dernier message: 22/01/2013, 13h56
  2. Division par 0 !
    Par invite231234 dans le forum Mathématiques du supérieur
    Réponses: 60
    Dernier message: 12/05/2012, 08h52
  3. Division
    Par invitebed24623 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 19/10/2008, 17h01
  4. Point flottant en VHDL et vhdl-200x
    Par invite6eee6b27 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/09/2008, 19h47
  5. division
    Par inviteac73760b dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 08/11/2007, 09h07
Découvrez nos comparatifs produits sur l'informatique et les technologies.