Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > VHDL
VHDL Forum d'entraide sur VHDL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/10/2012, 10h16   #1
binome-x
Invité de passage
 
Homme
Ingénieur/Chercheur
Inscription : novembre 2007
Messages : 65
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur/Chercheur

Informations forums :
Inscription : novembre 2007
Messages : 65
Points : 3
Points : 3
Par défaut Inverser l'ordre des bits d'un signal

Bonjour,
je voudrais inverser l'ordre des bits d'un signal, j'ai écrit ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

entity permut is
port(
	i :		in  std_logic_vector(7 downto 0);
	o :		out std_logic_vector(7 downto 0));
end permut;

architecture behav of permut is
begin
	o <= i(0 to 7);
end behav;
Mais Modelsim ne veut pas compiler, il dit : Slice range direction (to) does not match slice prefix direction (downto).
Comment je dois écrire ça ?
Merci.
binome-x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 15h09   #2
titiri
Membre régulier
 
Inscription : juin 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 37
Points : 77
Points : 77
L'erreur de compilation de ModelSim est normale puisque le vecteur "i" est orienté dans le sens descendant. On ne peut donc pas en extraire une plage orientée dans le sens ascendant.

Vous pouvez faire un process "combinatoire" :
Code :
1
2
3
4
5
6
7
process(i)
begin
for x=0 to 7 loop
     o(x) <= i(7-x);
end loop;
end process;
Ce qui est équivalent à ceci, avec la lourdeur en moins :
Code :
1
2
3
4
5
    o(0) <= i(7);
    o(1) <= i(6);
    ...
    o(7) <= i(0);
Vous pouvez aussi définir une "function" dans un package (par exemple SwapBits) qui effectue la même chose de manière générique (0 et 7 sont obtenus par les attributs left/right ou high/low suivant vos besoins)
Cdlt
titiri est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h08.


 
 
 
 
Partenaires

Hébergement Web