Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2028 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  problème genérique en code VHDL

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème genérique en code VHDL

n°2230045
ayo1
Posté le 06-06-2014 à 00:52:15  profilanswer
 

Bonsoir à tous ;
 
Mon programme concerne le produit de corrélation .pour 4 bits il marche  
 
Probléme : comment  faire le programme en generique  
 
j'essaye à le faire pour 8 bits mais j'ai quelques  soucis : :??:  
 
Vous pouvez m'aider si possible :
 
voici mon code :

Code :
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.numeric_std.all;
  4. entity correla is
  5. generic  (
  6.             longueur  : natural :=8 );
  7. port (
  8.          clk : in    std_logic ;
  9.          rst : in    std_logic  ;
  10.          data: in    std_logic_vector(11 downto 0)  ;
  11.           --code: in    std_logic_vector(15 downto 0 )  ;--for 4 bits
  12.          code: in    std_logic_vector((4*longueur)-1 downto 0 )  ;---for generic
  13.        
  14.             --Q   :out    std_logic_vector(17 downto 0) )  ;--for 4 bits
  15.          Q   :out   std_logic_vector((4*longueur)+1 downto 0)) ; ---for generic
  16. end entity ;
  17. architecture arch of correla  is
  18.        --type RAM is array (0 to 3) of std_logic_vector(3 downto 0) ; --for 4 bits
  19.        type RAM is array (0 to 3) of std_logic_vector(longueur-1 downto 0) ;---for generic
  20.      
  21.        --type ram16 is array (0 to 3) of signed(15 downto 0) ;--for 4 bits
  22.        type ram16 is array (0 to 3) of signed((4*longueur)-1 downto 0) ;---for generic
  23.        --type Rom is array (0 to 3) of signed(11 downto 0) ;--for 4 bits
  24.        type Rom is array (0 to 3) of signed((3*longueur)-1 downto 0) ;---for generic
  25.         signal voie :Rom ;
  26.         signal CD    : RAM;
  27.        
  28.         signal temp: ram16;
  29.      
  30.      
  31.        -- signal sum0   :signed (16 downto 0) ;
  32.          signal sum0   :signed (4*longueur  downto 0) ;---for generic
  33.         --signal sum1   :signed (16 downto 0) ;--for 4 bits
  34.         signal sum1   :signed (4*longueur downto 0) ;---for generic
  35.         --signal AB     :signed (17 downto 0) ;--for 4 bits
  36.         signal AB     :signed ((4*longueur)+1 downto 0) ;---for generic
  37.        
  38. begin
  39.    
  40.                                
  41.                            
  42.     --CD(0) <= code(15 downto 12);--for 4 bits
  43.     --CD(1) <= code(11 downto 8);--for 4 bits
  44.     ---CD(2) <= code(7 downto 4);--for 4 bits
  45.     --CD(3) <= code(3 downto 0); --for 4 bits
  46.    
  47.      AY:for j in 0 to 3 generate
  48.            CD(j)<=(code((longueur*j+(longueur-1)) downto (longueur*j)));---for generic
  49.       end generate AY ;
  50.    
  51.    
  52.      
  53.      etalement:process(clk,rst)
  54.          
  55.         begin
  56.                   if(rst='1') then
  57.                      Q  <=(others=>'0');
  58.                    
  59.                      F:for k in 0 to longueur-1 loop ---for generic
  60.                           temp(k)<=x"0000";
  61.                        end loop ;
  62.                      --temp(0)<=x"0000";--for 4 bits
  63.                      --temp(1)<=x"0000";--for 4 bits
  64.                      --temp(2)<=x"0000";--for 4 bits
  65.                      --temp(3)<=x"0000";--for 4 bits
  66.                    else
  67.                         if(clk'event and clk ='1') then
  68.                               voie(0)<=signed(data) ;
  69.                              
  70.                               B:for L in 1 to 3 loop
  71.                                  voie(L)<=voie(l-1);---for generic
  72.                                end loop ;
  73.                              
  74.                               --voie(1)<=voie(0);--for 4 bits
  75.                               --voie(2)<=voie(1);--for 4 bits
  76.                               --voie(3)<=voie(2); --for 4 bits
  77.                            
  78.                                    
  79.                                       for i in 0 to 3 loop
  80.                                       --for i in 0 to longueur-1 loop
  81.                                         temp(i) <= voie(i)*signed(CD(i));
  82.                                       end loop ;
  83.                                      
  84.                                        --sum0<= resize(temp(0),17)+temp(1) ;--for 4 bits
  85.                                        sum0<= resize(temp(0),(4*longueur)+1)+temp(1) ;---for generic
  86.                                        --sum1<= resize(temp(2),17)+temp(3) ;--for 4 bits
  87.                                       sum1<= resize(temp(2),(4*longueur)+1)+temp(3) ;---for generic
  88.                                
  89.                                         -- AB<=resize(sum0,18)+sum1 ;--for 4 bits
  90.                                          AB<=resize(sum0,(4*longueur)+2)+sum1 ;---for generic
  91.                                        
  92.                                          Q<=std_logic_vector(AB) ;
  93.                                                  
  94.                                  
  95.                              end if ;
  96.                      end if
  97.                                    
  98.                        
  99.                      
  100.             end process ;
  101. end architecture ;


 
 
Merci d'avance .

mood
Publicité
Posté le 06-06-2014 à 00:52:15  profilanswer
 

n°2230046
ayo1
Posté le 06-06-2014 à 01:00:00  profilanswer
 

la question :comment faire pour que le programme sera generique  
 
Merci encore une fois :sweat:

n°2230063
h3bus
Troll Inside
Posté le 06-06-2014 à 10:30:24  profilanswer
 

On ne peut rien faire pour toi si tu n'expose pas clairement:
- Qu'est ce qui doit être générique et qu'est-ce qu'il représente
- Quel est l'impact de ton générique sur la tailles des I/O du module
- Quel est l'impact de ton générique sur la taille de tes signaux internes
- Enfin, l'impact sur l'algorithme
 
Il y a d'ailleurs de grande chances que tu résolves de toi même ton souci après y avaoir répondu!
 
Aussi, je te l'ai déjà dis mais les noms de tes I/O et signaux doit être amélioré. On doit savoir de quoi il s'agit à la première lecture.
Pour nous qui ne sommes pas dans ta tête, c'est incompréhensible.
 
AUssi, les commentaires ne servent pas à commenter le code, mais à mettre des informations supplémentaires.


---------------
sheep++
n°2230108
ayo1
Posté le 06-06-2014 à 14:57:55  profilanswer
 

h3bus a écrit :

On ne peut rien faire pour toi si tu n'expose pas clairement:
- Qu'est ce qui doit être générique et qu'est-ce qu'il représente : je voudrais que mon code sera génerique ex:8,12,.....31
- Quel est l'impact de ton générique sur la tailles des I/O du moduleIl va changer la taille  ça depend code !! meme chose pour les signaux internes
- Quel est l'impact de ton générique sur la taille de tes signaux internes
- Enfin, l'impact sur l'algorithme
 
Il y a d'ailleurs de grande chances que tu résolves de toi même ton souci après y avaoir répondu!
 
Aussi, je te l'ai déjà dis mais les noms de tes I/O et signaux doit être amélioré. On doit savoir de quoi il s'agit à la première lecture.
Pour nous qui ne sommes pas dans ta tête, c'est incompréhensible.
 
AUssi, les commentaires ne servent pas à commenter le code, mais à mettre des informations supplémentaires.


 
J'écris sur une feuille comment les changements faites (signaux internes ,I/O ) mais je n'arrive pas comment la postuler !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  problème genérique en code VHDL

 

Sujets relatifs
Probleme de InfoWindow sur des Marker Google MapsProblème bios FreeDOS
generer code barre pour une liste d'articles sous excelCode VBA pour exportation Données et tracer de graphique
Erreur code vhdlmacro code arduino
demande en VHDLproblème impression
[HTML/PHP]Construction de code d'un site web. 
Plus de sujets relatifs à : problème genérique en code VHDL


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR