IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

Copier un bit


Sujet :

VHDL

  1. #1
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut Copier un bit
    Hello,

    Titre un peu bizarre, je sais pas vraiment comment ça s'appelle.

    Je cherche à faire quelque chose de très simple : j'ai un std::logic_vector, je regarde la valeur d'un bit, et je génère un std_logic_vector qui soit '1111' si le bit est '1', et '0000' si le bit est '0'.

    Il faut passer par une variable ? (Je cherche à faire ça en 1 cycle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    signal n: std_logic_vector(31 downto 0); -- on regarde le bit de poids fort de n
    variable n_msb_extand: std_logic_vector(31 downto 0) := (others => '0');
    --...
    process(i_clk)
    begin
       n_msb_extand := (others => n(31));
       n <= (n(30 downto 0) & i_data) xor n_msb_extand;
       --...
    end process;

  2. #2
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    process(clk)
    begin
        if(rising_edge(clk))then
            if(n(31) = '1') then
                i_data <= (others => '1');
            else
                i_data <= (others => '0');
            end if;
        end if;
    end process;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [unity]Copier un tableau de bits dans un mot
    Par zykoo dans le forum Automation
    Réponses: 2
    Dernier message: 18/04/2010, 10h51
  2. STEP7 - Comment copier 16 bit
    Par Zgrominet dans le forum Automation
    Réponses: 1
    Dernier message: 04/06/2008, 12h22
  3. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  4. Debugger 16-32 bits
    Par Mat dans le forum Assembleur
    Réponses: 4
    Dernier message: 28/06/2002, 11h34
  5. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo