VHDL synthétiser les avertissements

G

gnudaemon

Guest
J'ai le code suivant pour déplacer plusieurs bits d'un signal std_logic_vector à 1 cycle d'horloge.
Quand j'ai synthétisé le (avec Synplify), il émet un avertissement sur certaines parties des intrants ne sont pas utilisés, et une partie des produits sont toujours '0 '(la partie supérieure).
Je me demande si ces avertissements sont ignorable, et ceux qui ne posera pas de problème lors du portage en conseil immobilier????
Merci de me donner l'avis si vous l'avez connu.Merci beaucoup
gnudaemon @

--------------------
IEEE bibliothèque;
ieee.std_logic_1164.all utilisation;
ieee.std_logic_unsigned.all utilisation;

RgtSftMBits4 entité est
port (remise à zéro: dans std_logic;
CLK: dans peu;
entrée: dans std_logic_vector (7 downto 0);
Sortie: std_logic_vector à (7 downto 0)
);
RgtSftMBits4 fin;

architecture RgtSftMBits4_bhv de RgtSftMBits4 est
constante deltaM: integer: = 3;
constante vectorSize: integer: = 7;
commencer
processus (reset, CLK)
commencer
if (reset = '1 ') puis
<= Sortie (d'autres => '0 ');
elsif (CLK = '1 'et clk'event) puis
pour i vectorSize downto à 0 boucle
if (i> vectorSize - deltaM) puis
de sortie (i) <= '0 ';
d'autre
de sortie (i) <= entrée (i deltaM);
fin si;
boucle de la fin;
fin si;
processus de bout;
RgtSftMBits4_bhv fin;Ajouté après 39 secondes:Les avertissements sont les suivants

@ W: CL111: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 24:2:24:3 | Toutes les missions accessibles à la sortie (5) attribuer '0 ', inscrivez-vous retiré par l'optimisation
@ W: CL111: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 24:2:24:3 | Toutes les missions accessibles à la sortie (6) attribue '0 ', inscrivez-vous retiré par l'optimisation
@ W: CL111: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 24:2:24:3 | Toutes les missions accessibles à la sortie (7) attribuer '0 ', inscrivez-vous retiré par l'optimisation
@ W: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 24:2:24:3 | Toutes les missions accessibles à bit 5 de la production (7 downto 0) attribuer 0, registre supprimés par l'optimisation
@ W: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 24:2:24:3 | Toutes les missions accessibles à bit 6 de sortie (7 downto 0) attribuer 0, registre supprimés par l'optimisation
@ W: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 24:2:24:3 | Toutes les missions accessibles au bit 7 de la production (7 downto 0) attribuer 0, registre supprimés par l'optimisation
@ W: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 13:3:13:7 | bit de port d'entrée <2> de l'entrée (7 downto 0) est utilisé
@ W: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 13:3:13:7 | bit de port d'entrée <1> d'entrée (7 downto 0) est utilisé
@ W: "P: \ VHDLDocument VHDLAnalysisAndModelingOfDigitalSystems \ \ FirstPart \ rgtSftMbits4.vhd": 13:3:13:7 | bit de port d'entrée <0> d'entrée (7 downto 0) est utilisé

 
Apparemment, avec les chiffres déclarés comme des constantes que vous aurez sur votre sorties exactement ce que les avertissements de l'Etat.Le seul signal utilisable sera présent sur les lignes de sortie 4 et 3.Le reste sera soit réduit à 0 ou jamais utilisés.Cela est dû à la structure de votre programme et / ou des valeurs constantes.Dans ce cas, ils travaillent ensemble pour produire votre sortie.Il va influencer votre conception pour vous.
AMHA le code doit être réécrit et les mises en garde ne peut être ignorée sauf si vous savez ce que vous faites.
VHDL, c'est comme C: Il fait exactement ce qu'on lui dit de faire, au lieu de ce que le programmeur veut qu'il fasse.

Cordialement, Yego

 
ne suis pas gettin toute synthèse Durin warnins ..est-ce correct de conception?

il check up ..

en ce qui concerne,

 
J'ai eu le même résultat que arunragavan avec ISE, mais avec les mêmes avertissements:

================================================== ==
* Analyse HDL *
================================================== ===
Analyse <rgtsftmbits4> entité (Architecture <RgtSftMBits4_bhv>).
INFO: XST: 1304 - Contenu du registre de sortie <<7>> en <rgtsftmbits4> unité ne change pas pendant le fonctionnement du circuit.Le registre est remplacé par la logique.
INFO: XST: 1304 - Contenu du registre de sortie <<6>> en <rgtsftmbits4> unité ne change pas pendant le fonctionnement du circuit.Le registre est remplacé par la logique.
INFO: XST: 1304 - Contenu du registre de sortie <<5>> en <rgtsftmbits4> unité ne change pas pendant le fonctionnement du circuit.Le registre est remplacé par la logique.
Entité <rgtsftmbits4> analysés.Unité <rgtsftmbits4> généré.================================================== ===
* Synthèse HDL *
================================================== ===

<rgtsftmbits4> Unité de synthèse.
AVERTISSEMENT: XST: 647 - Entrée <<input 2:0>> n'est jamais utilisée.
5-bit registre trouvé pour le signal de sortie <<4:0>>.
Résumé:
déduire 5 D-type flip-flop (s).
Unité <rgtsftmbits4> synthétisés.

 
Gnudaemon Salut,
Il suffit de regarder la boucle for que vous avez écrit ...
/////////////////////////////////////////////////
pour i vectorSize downto à 0 boucle
if (i> vectorSize - deltaM) puis
de sortie (i) <= '0 ';
d'autre
de sortie (i) <= entrée (i deltaM);
fin si;
boucle de la fin;
////////////////////////////////////////////////// / /
Considérant que réinitialisation n'est pas présent ...alors ceci est exécuté ...si nous étendons cette boucle u obtiendra
op [7] = '0 ';
op [6] = '0 ';
op [5] = '0 ';
op [4] [ip = 7];
op [3] [ip = 6];
op [2] [ip = 5];
op [1] [ip = 4];
op [0] [ip = 3];
/*****************************************;
Maintenant, j'espère que vous aurez le point de l'outil est fait ...op [7 downto 5] sont toujours à zéro et la propriété intellectuelle [2 downto 0] sont plus récents utilisés dans la logique !!!!!c'est qu'il y a eu la liberté de se connecter op [7 downto 5] à la terre au lieu de se connecter à tout bascule et il a quitté la propriété intellectuelle [2 downto 0] sans lien ..

 
1.Certes, je sais qu'il ya des signaux redondants qui n'ont pas été utilisées dans mon code.Me demande si elle provoque un problème lors du portage du matériel.
2.Le raisonnement de ce code est parfois seulement quelques bits supérieurs sont nécessaires pour combiner avec des séries de «0» pour former une nouvelle std_logic_signal.

 
NON, il ne posera pas de problèmes.outil électronique Th chiffres juste que puisque le signal est toujours "0" de toute façon, il n'est pas nécessaire de faire sauter un registre à ce sujet.
to meet timings in some way and that the absence of he register'd cause your design to meet timing after all.

La seule façon je peux penser de la façon dont cela pourrait causer un comportement différent est si vous voulez vraiment compter sur la conception de ne pas
respecter les échéances d'une certaine manière et que l'absence de cause, il register'd la conception de votre calendrier pour répondre, après tout.

 
Ice-Tea a écrit:

to meet timings in some way and that the absence of he register'd cause your design to meet timing after all.
La seule façon je peux penser de la façon dont cela pourrait causer un comportement différent est si vous voulez vraiment compter sur la conception de ne pas
respecter les échéances d'une certaine manière et que l'absence de cause, il register'd la conception de votre calendrier pour répondre, après tout.
 
le programme peut être bon si, comme suit:

IEEE bibliothèque;
ieee.std_logic_1164.all utilisation;
ieee.std_logic_unsigned.all utilisation;

RgtSftMBits4 entité est
port (remise à zéro: dans std_logic;
CLK: dans peu;
entrée: en unsigned (7 downto 0);
sortie: les unsigned (7 downto 0)
);
RgtSftMBits4 fin;

architecture RgtSftMBits4_bhv de RgtSftMBits4 est
constante deltaM: non signé (2 downto 0): = "011";
constante vectorSize: non signé (2 downto 0): = "111";
commencer
processus (reset, CLK)
commencer
if (reset = '1 ') puis
<= Sortie (d'autres => '0 ');
elsif (CLK = '1 'et clk'event) puis
pour i vectorSize downto à 0 boucle
if (i> (vectorSize - deltaM)) alors
de sortie (i) <= '0 ';
d'autre
de sortie (i) <= entrée (i deltaM);
fin si;
boucle de la fin;
fin si;
processus de bout;
RgtSftMBits4_bhv fin;

 
gnudaemon a écrit:Ice-Tea a écrit:

to meet timings in some way and that the absence of he register'd cause your design to meet timing after all.
La seule façon je peux penser de la façon dont cela pourrait causer un comportement différent est si vous voulez vraiment compter sur la conception de ne pas
respecter les échéances d'une certaine manière et que l'absence de cause, il register'd la conception de votre calendrier pour répondre, après tout.
 
Pourquoi ne pas simplement utiliser SLL, srl ou de ces opérandes pour le déplacement?

 

Welcome to EDABoard.com

Sponsor

Back
Top