Embedded Multiplier vs Logic Elements dans FPGA Altera
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Embedded Multiplier vs Logic Elements dans FPGA Altera



  1. #1
    invite2a8374e8

    Embedded Multiplier vs Logic Elements dans FPGA Altera


    ------

    Bonjour,

    J'explique rapidement mon problème: je viens d'écrire un module en VHDL, dans lequel je fais des multiplications. J'utilise un FPGA d'Altera et j'utilise Quartus II pour compiler mon FPGA.

    Tout fonctionne bien, mais lors de la synthèse, les multiplications de mon module se font en utilisant des "Logic Elements" et non des "Embedded Multiplier 9-bit elements" (alors que j'en ai beaucoup à disposition..). L'instanciation du multiplieur chez Altera est LPM_MULT mais je ne peux pas l'instancier dans un process ou en tout cas je n'y suis pas arrivé...

    Quelqu'un connait-il la solution pour forcer l'outil de synthèse à implémenter mes multiplications en "Embedded Multiplier 9-bit elements" et non en Logic Elements? Peut-on cocher une option ou quoi dans Quartus?

    Merci de votre aide!

    -----

  2. #2
    jiherve

    Re : Embedded Multiplier vs Logic Elements dans FPGA Altera

    Bonjour
    Tu vas dans "assignment", "settings",analysis & synthesis settings","more settings" et tu mets "on" sur "auto dsp block replacement"; normalement c'est la valeur par défaut.
    Ceci dit cela suppose que ta cible dispose de block DSP, ce n'est pas le cas pour les entrées de gamme de type Cyclone.
    Enfin cela suppose également que ton code puise coller à l'utilisation d'un bloc DSP et là il y a sans doute beaucoup à faire.
    On ne peut effectivement pas instancier un LPM_MULT dans un process car c'est un component, il faut l'instancier en // du process.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    invite2a8374e8

    Re : Embedded Multiplier vs Logic Elements dans FPGA Altera

    Merci pour ta réponse JR!

    Donc comme tu l'as dit l'option "auto dsp block replacement" est bien par défaut en position ON.

    Pour le FPGA que j'utilise, il n'y a pas de problème au niveau des blocs DSP.. J'en ai pas mal à disposition.

    Donc je pense que cela vient plutôt de mon codage alors.. Tu dis qu'il y a beaucoup à faire, qu'entends tu par là? Qu'est-ce qui peut faire que mon code ne soit pas synthétisable en blocs DSP? Je fais une multiplication entre une donnée entrante de type signée et une valeur constante signé d'un tableau que j'ai défini. Le fait de multiplier par une constante peut en être la cause?

  4. #4
    jiherve

    Re : Embedded Multiplier vs Logic Elements dans FPGA Altera

    Bonsoir,
    c'est quelquefois très capricieux, peux tu poster ton code ?
    utilise les balises ad hoc (le dièse).
    Pour que l'instanciation se passe bien il faut vraiment une quasi bijection entre le code et la réalité hard du block DSP.
    Pas plus tard qu'au début de ce mois je me suis énervé un max avant que QII daigne m'instancier une ROM dont je faisais calculer le contenu par une fonction.
    JR
    l'électronique c'est pas du vaudou!

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

    Re : Embedded Multiplier vs Logic Elements dans FPGA Altera

    Bonjour,

    Oui je pense que ca doit être ça parce que j'ai fait plusieurs tests avec dans le code juste un multiplieur et ca marchait mais dès que je compile le mien.. Il me synthétise tout en logic elements.

    Voici une partie de mon code très abrégé mais la partie concernée sur la multiplication est la suivante:

    Code:
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_signed.all; 
    use ieee.numeric_std.all;
    
    entity A is
    	generic(
    		data_width 	: integer := 14;
    		coeff_width	: integer := 14;
    	);
    	port( 
    		clk       	: in  std_logic; 
    		rst     	: in  std_logic;
    		data_in     : in  signed (data_width-1 downto 0); 
    		data_out	: out signed (data_width-1 downto 0)
    	);
    end A;
    
    architecture A_arch of A is
    
    signal  coeff : signed ((coeff_width-1) downto 0);
    signal  tab_data : signed((data_width-1) downto 0);  
    signal  tab_A : signed((2*data_width-1) downto 0); 
    
    begin
    coeff_0  <= to_signed(209,14);			
    
    process (clk)
    begin
         if (i_clk'event and i_clk = '1') then						
    	tab_data       <= data_in;
            tab_A	    <= tab_data * coeff_0;	
         end if;
    end process;
    Merci de ton aide =) mais c'est vrai que parfois c'est difficile de comprendre pourquoi QII refuse de faire ce que l'on veut..

  7. #6
    jiherve

    Re : Embedded Multiplier vs Logic Elements dans FPGA Altera

    Bonjour,
    Là je comprends mieux, en fait QII considère que c'est plus efficace de faire la multiplication avec des portes car comme le coeff est une constante la logique doit se simplifier beaucoup, il est très malin QII.
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    invite2a8374e8

    Re : Embedded Multiplier vs Logic Elements dans FPGA Altera

    Ok! merci du coup de main ce qui est quand même bizarre c'est que si je fais uniquement un seul multiplieur dans mon module, il me le synthétise en bloc DSP et non en logic elements.. Mais uniquement si je ne mets qu'un seul mutliplieur! Bon je fais confiance alors à QII pour la simplification. Merci encore

Discussions similaires

  1. FPGA-Altera
    Par invitee85bde26 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 20/04/2010, 09h17
  2. Qu'est ce que c'est un bloc Look up table dans un FPGa?
    Par invitec4af4119 dans le forum Électronique
    Réponses: 2
    Dernier message: 30/07/2009, 18h12
  3. Outils de développement pour FPGA Altera
    Par Rodrigue dans le forum Électronique
    Réponses: 6
    Dernier message: 03/07/2008, 21h49
  4. Fpga Altera
    Par WhiteBird dans le forum Électronique
    Réponses: 4
    Dernier message: 07/08/2007, 21h48
  5. Intégrer un Linux embarqué dans un FPGA
    Par invite28beb742 dans le forum Électronique
    Réponses: 3
    Dernier message: 12/07/2006, 09h41
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...