[VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

[VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation



  1. #1
    invitecf0e8b4a

    [VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation


    ------

    Bonjour à tous,

    Je viens de débuter en VHDL et je dois faire un programme qui envoie en sortie un std_logic_vector après calcul sur l'entrée.

    Ma question est :

    Comment dois je faire pour que sa taille soit un paramètre variable défini seulement lors de l'instanciation?

    Code:
    entity reg is
    	generic(taille : positive range 1 to 50) ;
       port (
        	d, clk, rst : in std_logic;
        	q : out std_logic_vector(taille-1 downto 0)
       );
    end  reg ;
    
    
    architecture comportementale of reg  is
    
    -----operations de calcul
    
    end comportementale;
    
    architecture structurelle of reg is
    	component cptReg is
    		generic(taille : positive range 1 to 50) ;
    		port (
    			d, clk, rst : in std_logic;
    			q : out std_logic_vector(taille-1 downto 0)
    		);
    	end  component cptReg;
    	begin
    		Inst_reg : cptReg 
    			generic map(taille => 28) 
    			port map (d =>d, clk => clk, rst => rst, q =>q);
    end structurelle;
    Merci.

    Patrick

    -----

  2. #2
    jiherve

    Re : [VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation

    Bonjour,
    C'est le "generic" qui définit la taille au moment de l'instanciation, donc où est le problème?
    reste à décrire cptreg.
    nota attention aux architectures multiples si ce n'est pas absolument nécessaire, c'est un bon moyen de se prendre les pieds dans le tapis.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    invitecf0e8b4a

    Re : [VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation

    Bonjour JR,

    Merci pour ta réponse.

    Le problème auquel je suis confronté est que lors de la synthèse pour simulation, je retrouve avec une erreur car le paramètre "taille" de l'entité "reg" n'a pas été défini.
    Et lorsque je lui affecte une valeur par défaut, je me retrouve avec une autre erreur car le paramètre "taille" de "reg" est différent du paramètre taille de "cptreg".

    Patrick

  4. #4
    jiherve

    Re : [VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation

    Re
    pour l'entité reg il faut que le paramètre taille soit defini dans son instanciation.
    Si tu veux que le paramètre se propage à cptreg tu écris:
    Code:
    Inst_reg : cptReg 
    			generic map(taille => taille) 
    			port map (d =>d, clk => clk, rst => rst, q =>q);
    .
    C'est la force du VHDL que de pouvoir paramétrer à partir d'une entité mère.
    Ceci dit ce n'est pas mal non plus que de placer des valeurs par défaut correspondant à l'usage le plus fréquent par ex:
    Code:
    generic(taille : positive range 1 to 50) := 32 ;
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    invitecf0e8b4a

    Re : [VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation

    Re.

    Si je comprends bien ta solution, on fixe la taille par défaut au niveau de l'entité et on la propage à cptreg par instanciation.

    Mais y'aurait-il une manière de faire le contraire?
    C'est à dire, fixer la valeur de la taille au moment de l'instanciation de "cptreg" et faire en sorte qu'elle se propage au niveau de l'entité?

    Patrick

  7. #6
    jiherve

    Re : [VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation

    Re
    Non les paramètres se propagent top botom , d'une entité mère à une entité fille, cela semble logique est il n'est il pas ?
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    invitecf0e8b4a

    Re : [VHDL] Taille de registre : paramètre variable à définir lors de l'instanciation

    Ok, je vois. Merci pour ton aide JR.

    Patrick

Discussions similaires

  1. Registre a decalage, avec bascule D(VHDL)
    Par deyni dans le forum Électronique
    Réponses: 15
    Dernier message: 09/03/2013, 12h42
  2. Pavage d’un rectangle par des rectangles de taille variable
    Par Slagt dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 14/09/2011, 21h17
  3. comment peut on définir l'équivalence lors du titrage
    Par invite876b22ed dans le forum Chimie
    Réponses: 2
    Dernier message: 28/12/2009, 11h54
  4. Comment définir une variable pour l'afficher sur un LCD
    Par jorg1n dans le forum Électronique
    Réponses: 4
    Dernier message: 21/11/2007, 08h46
  5. C++ variable passee en parametre
    Par invitedbe5e39e dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/10/2007, 20h46
Découvrez nos comparatifs produits sur l'informatique et les technologies.