IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

Component generic sans INTEGER'HIGH


Sujet :

VHDL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Component generic sans INTEGER'HIGH
    Bonjour,

    J'ai l'habitude d'utiliser ce type de structure pour créer des compteurs générique. Sous ALtera Quartus pas de soucis, ça synthétise sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    LIBRARY ieee;
    USE ieee.std_logic_1164.ALL;
    USE ieee.numeric_std.ALL;
    [...]
    ENTITY toto IS
    GENERIC
    	(
    	n : INTEGER
    	);
    PORT
    	(
    [...]
    	);
    END ENTITY toto;
    
    SIGNAL sig_clk_en_cnt : INTEGER RANGE 0 TO (n-1):= 0;
    
    ARCHITECTURE arch_toto OF toto IS
    BEGIN
    [...]
    IF (sig_clk_en_cnt = sig_clk_en_cnt'HIGH)THEN 
    sig_clk_en_cnt <=  sig_clk_en_cnt'LOW;
    END IF;
    [...]
    END  arch_toto;
    Je développe actuellement avec des outils Lattice, et il me refuse les attributs LOW et HIGH sur des "objets". J'en ai déduit qu'il refusait de gérer ces attributs pour des integer. En faisant des recherches il me semble que cette écriture est effectivement assez limite et que les attributs HIGH LOW sont plutôt à utiliser avec des std_logic_vector.

    Est ce que mon raisonnement est bon ou est ce une limitation de la part du logiciel de Lattice ?
    Comment coder la même chose avec des std_logic_vector en générique ?

    Merci

  2. #2
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    Salut,

    Voici comment je ferais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    library IEEE;
        use IEEE.std_logic_1164.all;
        use IEEE.numeric_std.all;
        use IEEE.std_logic_unsigned.all;
        use IEEE.math_real.all;
     
    entity TOTO is
        generic(
            n   : natural := 42
        );
        port(
            ...
        );
    end entity TOTO;
     
    architecture TOTO_ARCHTECTURE of TOTO is
        constant    CPT_WIDTH   : natural := natural := natural(ceil(log2(real(n+1))));
     
        signal      cpt         : std_logic_vector(CPT_WIDTH-1 downto 0);
     
    begin
     
        ...
        if (unsigned(cpt) = to_unsigned(n,CPT_WIDTH))then 
            cpt <=  (others => '0');
        else
            cpt <=  cpt + std_logic_vector(to_unsigned(1,CPT_WIDTH));
        end if;
        ...
    end architecture TOTO_ARCHTECTURE;

    Ton raisonnement est mathématiquement juste, mais pas assez "bas-niveau" pour être compris par le synthétiseur Latice (que je ne connais pas).

    En espérant aider.
    @+

Discussions similaires

  1. Form component: envoie email sans php ou asp
    Par guy2004 dans le forum Intégration
    Réponses: 0
    Dernier message: 06/06/2009, 12h14
  2. Trier un tableau() as integer sans Sort - Deux méthodes testées
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 25/10/2008, 22h52
  3. MouseListener sans component
    Par lamoua76 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 16/01/2008, 21h44
  4. Réponses: 4
    Dernier message: 20/05/2007, 18h14
  5. Extended dans integer sans les virgules
    Par Yepazix dans le forum Langage
    Réponses: 2
    Dernier message: 27/10/2005, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo