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 :

Interconnection


Sujet :

VHDL

  1. #1
    Membre à l'essai
    Homme Profil pro
    alternance STMicroelectronics
    Inscrit en
    Novembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : alternance STMicroelectronics
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Interconnection
    Salut à tous!

    Nom : Capture.PNG
Affichages : 152
Taille : 75,7 Ko

    J'ai un problème avec le code d'un système que je veux modéliser (il est en pièce jointe).
    Je n'ai pas d'erreur quand je compile mais quand je fais l’élaboration voici le message qui s'affiche dans le terminal:

    ncelab: *E,CSGMSS: multiple sources for unresolved signal: INT1 [4.3.1.2].
               Computing driving value: :systeme_comparateur_tb(archi):uut@systeme_comparateur(archi):int1
    In port map at: ../sources/systeme_comparateur_arch.vhdl, line: 95, position: 34
    Voici mon code:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    library ieee;
    use ieee.std_logic_1164.all;
     
    library analogdevice_lib;
    use analogdevice_lib.all;
     
    library st_lib;
    use st_lib.all;
     
    entity systeme_comparateur is
     
      port(enable_mux4_comp1,
           enable_mux8_comp1,
           enable_mux4_comp2,
           enable_mux8_comp2 : in std_logic;
           A_mux4_comp1,
           A_mux4_comp2      : in std_logic_vector (1 downto 0);
           A_mux8_comp1,
           A_mux8_comp2      : in std_logic_vector (2 downto 0);
           S_mux4_comp1,
           S_mux4_comp2      : in real_vector (3 downto 0);
           S_mux8_comp1,
           S_mux8_comp2      : in real_vector (7 downto 0);
           In_switch        : in std_logic;
           Sortie_comp1,
           Sortie_comp2      : out real);   
     
    end systeme_comparateur;
     
     
    architecture archi of systeme_comparateur is
     
    component analog_ADG704
     
      generic (INPUTS_SEL: integer);
     
      port(EN : in std_logic;
           A  : in std_logic_vector (INPUTS_SEL-1 downto 0);
           S  : in real_vector (2**INPUTS_SEL-1 downto 0);
           D  : out real);
     
    end component;
     
    component analog_ADG708
     
      generic (INPUTS_SEL: integer);
     
      port(EN : in std_logic;
           A  : in std_logic_vector (INPUTS_SEL-1 downto 0);
           S  : in real_vector (2**INPUTS_SEL-1 downto 0);
           D  : out real);
     
    end component;
     
    component analog_comparateur
     
      generic (vcc   : real;
         gnd   : real);  
     
      port(in_pos : in real;
           in_neg : in real;
                 s_comp : out real);   
     
    end component;
     
    component analog_ADG712_1
     
      port(In_ADG_1: in std_logic;
                 D_ADG_1:  in real;
           S_ADG_1:  out real);
     
    end component;
     
    signal int1, int2, int3, int4 : real;
     
    begin
     
      mux4_comp1:   analog_ADG704
     
                generic map (INPUTS_SEL => 2)
     
            port map (enable_mux4_comp1,
                                                A_mux4_comp1,
                                                S_mux4_comp1,
                                                int1);
     
      mux8_comp1:   analog_ADG708
     
            generic map (INPUTS_SEL => 3)
     
            port map (enable_mux8_comp1,
                                                A_mux8_comp1,
                                                S_mux8_comp1,
                                                int2);
     
      comp1:    analog_comparateur
     
            generic map (vcc => 5.0, gnd => 0.0)
     
            port map (int1, int2, Sortie_comp1);
     
      mux4_comp2:   analog_ADG704
     
                generic map (INPUTS_SEL => 2)
     
            port map (enable_mux4_comp2,
                                                A_mux4_comp2,
                                                S_mux4_comp2,
                                                int3);
     
      mux8_comp2:   analog_ADG708
     
            generic map (INPUTS_SEL => 3)
     
            port map (enable_mux8_comp2,
                                                A_mux8_comp2,
                                                S_mux8_comp2,
                                                int4);
     
      comp2:    analog_comparateur
     
            generic map (vcc => 5.0, gnd => 0.0)
     
            port map (int3, int4, Sortie_comp2);
     
      switch:    analog_ADG712_1
     
            port map (In_switch, int3, int1);
     
    end archi;

    Je ne peux pas lancer de simulation a cause de cette erreur donc, je pense que je ne fais pas bien la connexion de l’entrée et la sortie du composant ADG712 avec le reste du système... Je ne vois pas comment faire...

    Pouvez-vous m'aider s'il vous plait?? Si vous avez besoin de plus d'infos n’hésitez pas!! Merci Nom : Capture.PNG
Affichages : 152
Taille : 75,7 Ko

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Points : 121
    Points
    121
    Par défaut
    Bonsoir,

    Le signal 'int1' est piloté au moins DEUX fois :
    • ligne 85, sortie de analog_ADG704
    • ligne 128, sortie de analog_ADG712_1


    Or seuls les std_logic/std_logic_vector sont de type résolu (notez qu'un std_logic est un std_ulogic auquel on a appliqué une fonction de résolution, d'où la présence du 'u' dans std_ulogic pour dire 'unresolved').
    C'est dans la norme IEEE. Voir un exemple sur http://www.csee.umbc.edu/portal/help/VHDL/misc.html.
    Donc, les types integer (et ses dérivés : natural, positive) et real sont de type NON résolu => un seul driver autorisé.

    Dans l'absolu, on peut définir une fonction de résolution pour n'importe quel type (y compris integer et/ou real), mais cela n'aurait pas vraiment de sens.

    Je pense plutôt qu'il s'agit d'une étourderie qu'il faut corriger...

    Cordialement

  3. #3
    Membre à l'essai
    Homme Profil pro
    alternance STMicroelectronics
    Inscrit en
    Novembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : alternance STMicroelectronics
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par titiri Voir le message
    Je pense plutôt qu'il s'agit d'une étourderie qu'il faut corriger...
    De ma part??

    Parce que mon probleme c'est que dans mon systeme j'ai un noeud ou il y a 2 signaux differents qui "arrivent" sur un autre signal. Bon normalement avec l'interrupteur je n'ai jamais les 2 signaux en meme temps car sa commande depend de l'enable du multiplexeur (celui tout en haut du schema). En gros lorsque le multiplexeur tout en haut n'est pas utilise l'interrupteur se ferme pour connecter le 3eme multiplexeur a la place. Mais je dois quand meme faire cette connection non ?

  4. #4
    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
    Bonjour,

    Le design que tu nous soumet contient l’équivalent d'un court-circuit...
    Même si la simulation fonctionnelle est correcte ,l'outil de synthèse ne laissera jamais implémenter un tel cas.
    Il faut trouver une solution logique à ce problème.

    Intercaler une porte OR or AND ou XOR, ou autre...

    Personnellement je n'aime pas décrire le comportement de mes signaux directement en instanciant des porte logiques. C'est illisible...

    Je préfère directement décrire la fonction logique du signal :

    s1 <= s2 when s3 = '0' else
    '0' when etc...;

    Et laisser l'outil de synthèse trouver une implémentation. Il sera meilleur que moi pour trouver la meilleur solution dans 99% des cas.

  5. #5
    Membre à l'essai
    Homme Profil pro
    alternance STMicroelectronics
    Inscrit en
    Novembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : alternance STMicroelectronics
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par mith06 Voir le message
    Même si la simulation fonctionnelle est correcte ,l'outil de synthèse ne laissera jamais implémenter un tel cas.
    Je ne cherche pas a synthetiser, juste simuler.

    Mais je vais quand meme voir avec ta solution ca me parait faisable. Merci !

Discussions similaires

  1. interconnecter ad-hoc et infrastructure
    Par sofiane44 dans le forum Développement
    Réponses: 0
    Dernier message: 09/04/2008, 16h14
  2. Interconnection avec MapServer ?
    Par petchos dans le forum Ruby
    Réponses: 2
    Dernier message: 06/11/2007, 14h28
  3. Configuration ordis interconnectés pour calculs
    Par dajakl dans le forum Ordinateurs
    Réponses: 19
    Dernier message: 22/09/2007, 12h06
  4. Interconnection entre deux application differentes
    Par napegadie dans le forum VB.NET
    Réponses: 8
    Dernier message: 20/07/2007, 16h36
  5. Comment interconnecter deux PC par un cable croisé ?!
    Par bnadem35 dans le forum Hardware
    Réponses: 10
    Dernier message: 12/08/2006, 17h20

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