ID de l'article: 000077859 Type de contenu: Information et documentation de produit Dernière révision: 23/04/2013

Comment implémenter un multiplicateur complexe 25 x 18 en seulement 3 blocs DSP de précision de l’outil ?

Environnement

  • Édition d'abonnement Intel® Quartus® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descriptif

    Toutes les familles de périphériques 28 nm, dont Stratix® V, Arria® V et Cyclone® V, peuvent prises en charge une structure multiplicateur complexe 25x18 en utilisant 3 blocs DSP à précision variable.

    Le logiciel Quartus® II présente des limites lors de l’utilisation du megacore® qui implémente cette structure en utilisant 4 blocs DSP.

    Résolution

    Pour contourner cette limitation, utilisez le modèle de code Multiplicateur complexe 25x18 trouvé dans les modèles logiciels de Quartus II pour inférer votre multiplicateur complexe.  Pour utiliser ce modèle de code, vous devrez d’abord ouvrir un nouveau fichier de conception, puis sélectionnez ce modèle dans les modèles disponibles dans le logiciel Quartus II.  Ce modèle se trouve dans les modèles Verilog ou VHDL sous conceptions complètes > fonctionnalités Arithmétiques > DSP (Stratix-V, Arria-V et Cyclone-V).

    Pour votre commodité, ce modèle de code de Verilog est ci-dessous :

    Modèle Verilog Quartus II
    Multiplication 25x18 complexe
    Pour une utilisation avec les familles de périphériques Stratix V, Arria-V, Cyclone-V et appareils ultérieures

    module complex_25x18 (x_r, x_i, y_r, y_i, horloge, ena1, ena0, réinitialiser, p_r, p_i) ;
    Ce modèle est applicable au mode 25x18 complexe sur Stratix-V
    entrée [24:0] x_r ;
    entrée [24:0] x_i ;
    entrée [17:0] y_r ;
    entrée [17:0] y_i ;
    Stratix-V DSP prend en charge jusqu’à 3 paires d’horloge/ena et 2 signaux de réinitialisation async
    horloge d’entrée ;
    entrée ena1 ;
    ena0 d’entrée ;
    réinitialisation des entrées ;
    sortie [43:0] p_r ;
    sortie [43:0] p_i ;

    Tous les entrées/sorties doivent être signés.
    Tous les registres d’entrée doivent utiliser les mêmes {clock, ena, reset}
    Tous les registres de sortie doivent utiliser les mêmes {clock, ena, reset}
    rég signé [24:0] x_r_reg, x_i_reg ;
    rég signé [17:0] y_r_reg, y_i_reg ;
    rég signé [43:0] p_r, p_i ;

    fil signé [25:0] a1 ;
    fil signé [18:0] a2 ;
    fil signé [18:0] a3 ;
    fil signé [43:0] p1 ;
    fil signé [43:0] p2 ;
    fil signé [43:0] p3 ;

    assigner a1 = x_r_reg – x_i_reg ;
    assigner p1 = a1 * y_i_reg ;
    assigner a2 = y_r_reg – y_i_reg ;
    assign p2 = a2 * x_r_reg ;
    assigner a3 = y_r_reg y_i_reg ;
    assign p3 = a3 * x_i_reg ;

    toujours @(posedge clock or posedge reset)
    Commencer
    si (réinitialisation == 1\'b1)
    Commencer
    x_r_reg < = 0 ;
    x_i_reg < = 0 ;
    y_r_reg < = 0 ;
    y_i_reg < = 0 ;
    p_r < = 0 ;
    p_i < = 0 ;
    Fin
    Autre
    Commencer
    si (ena0 == 1\'b1)
    Commencer
    x_r_reg <= x_r ;
    x_i_reg <= x_i ;
    y_r_reg <= y_r ;
    y_i_reg < = y_i ;
    Fin
    si (ena1 == 1\'b1)
    Commencer
    p_r <= p1 p2 ;
    p_i <= p1 p3 ;
    Fin
    Fin
    Fin

    endmodule

    Produits associés

    Cet article concerne 13 produits

    FPGA Stratix® V GX
    FPGA Cyclone® V GX
    FPGA Stratix® V GT
    FPGA Stratix® V GS
    FPGA Arria® V GZ
    FPGA SoC Arria® V SX
    FPGA SoC Cyclone® V ST
    FPGA SoC Arria® V ST
    FPGA Arria® V GX
    FPGA Arria® V GT
    FPGA Cyclone® V E
    FPGA Stratix® V E
    FPGA SoC Cyclone® V SE

    Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.