quartus2: warning que je ne comprend pas

Electronique numérique / Circuits logiques programmables EPLD, CPLD, FPGA d'Altera ou de Xilinx VHDL, Verilog ou SystemC

Modérateur : Modérateur

sabord
PONCTUEL
PONCTUEL
Messages : 18
Inscription : 16 mai 2005 8:02

quartus2: warning que je ne comprend pas

Message par sabord »

bonjour,

walla ce que j'obtiens après compilation:


Warning: Design contains 5 input pin(s) that do not drive logic
Warning: No output dependent on input pin P1_clk
Warning: No output dependent on input pin P2
Warning: No output dependent on input pin clk
Warning: No output dependent on input pin nRST
Warning: No output dependent on input pin ld

quelqu'un comprend t'il ce que j'ai oublié de faire?

/me perplexe

JP
Administrateur
Administrateur
Messages : 2323
Inscription : 23 sept. 2003 18:14
Localisation : Strasbourg
Contact :

Message par JP »

Bonjour sabord,

Ca serait possible d'avoir le code avec ?

a+
JP

sabord
PONCTUEL
PONCTUEL
Messages : 18
Inscription : 16 mai 2005 8:02

Message par sabord »

voilà l'architecture principale:
les différents composants compilent comme il faut...
c lorsque je compile l'ensemble que j'ai des erreures

library ieee ;
use ieee.std_logic_1164.all;
use IEEE.NUMERIC_STD.ALL;
use ieee.std_logic_unsigned.all;
----------------------------------------------------

Entity cod_opt is
port(
P1_clk:in std_logic;
P2:in std_logic;
clk:in std_logic;
nRST:in std_logic;
ld: in std_logic;
tx:out std_logic;
tx_busy :out std_logic

);
End cod_opt;

architecture behavior of cod_opt is


------------------------------------------------------------
component BasculeD is
port(
P2 :in std_logic;
P1_clk : in std_logic;
nRST:in std_logic;
q:out std_logic
);
end component;
-------------------------------------------------------------
component XOR_INV is
port( clk: in std_logic;
q: in std_logic;
sens: out std_logic
);
end component;
--------------------------------------------------------------
component compteur is

generic(n: natural :=13);
port(
nRST: in std_logic;
P1_clk: in std_logic;
sens: in std_logic;
Qcompt: out unsigned(n-1 downto 0)
);
end component;

--------------------------------------------------------------
component Div_Freq is
port(
clk:in std_logic;
nRST: in std_logic;
TOP_16 :out std_logic
);
End component;
----------------------------------------------------------------
component multiplieur is
port(
clk:in std_logic;
Qcompt:in unsigned(12 downto 0);
nRST:in std_logic;
Qmult:out unsigned(7 downto -7)
);

End component;
----------------------------------------------------------------
component Div_Freq_TX is
port(
clk:in std_logic;
nRST: in std_logic;
TOP_TX :out std_logic
);
End component;
---------------------------------------------------------------
component TX_RS232 is
port(
nRST: in std_logic;
clk: in std_logic;
TOP_TX : in std_logic;
ld: in std_logic;
Qmult :in unsigned(7 downto -8);
tx: out std_logic;
tx_busy:out std_logic
);
End component;
begin
end behavior;

JP
Administrateur
Administrateur
Messages : 2323
Inscription : 23 sept. 2003 18:14
Localisation : Strasbourg
Contact :

Message par JP »

Je n'ai pas d'erreur avec ton code.

Vérifies que tu n'assignes pas 2 valeurs différentes à une même variable en même temps.

sabord
PONCTUEL
PONCTUEL
Messages : 18
Inscription : 16 mai 2005 8:02

Message par sabord »

mon pb vient peut-être de ce que je sais pas bien me servir de quartus 2.

j'ai d'autre warnings concernant les sorties que j'essaie de visualiser en simulation.
quartus 2 les mets toutes à la masse....et forcément elles ne changent pas lors de la simu...

avec le logiciel que j'utilisais avant(et que je n'ai pas sous la main), pour simuler, il n' y avait pas besoin d' assigner les pins...il suffisait de préciser que les sorties n'avaient pas d'états prédéfinis, de définir les entrées, et lancer la simu...

sous quartus 2 je suis paumé...si on n'assigne pas les pins, il semble impossible de visualiser sur chronogramme les sorties,...ce qui est embêtant pour les signaux intermédiaire....

et le tutorial n'est pas d'une grande aide...

utilises tu quartus2 ?

JP
Administrateur
Administrateur
Messages : 2323
Inscription : 23 sept. 2003 18:14
Localisation : Strasbourg
Contact :

Message par JP »

les sorties que j'essaie de visualiser en simulation.
quartus 2 les mets toutes à la masse....et forcément elles ne changent pas lors de la simu...
Les sorties sont normalement en état indéterminé avant une simulation comme ici :

Image
avec le logiciel que j'utilisais avant(et que je n'ai pas sous la main), pour simuler, il n' y avait pas besoin d' assigner les pins...il suffisait de préciser que les sorties n'avaient pas d'états prédéfinis, de définir les entrées, et lancer la simu...
Dans Quartus, il faut définir ce que tu veux voir en simul. Je trouve que ce système est plus clair que de devoir faire le tri dans l'ensemble des signaux.
Le reste est apparemment identique.
Si tu préfères trier tu peux peut être regarder du côté du filtre du "node finder"
Je comprends que ce ne soit pas évident de changer d’outil quand on en maîtrise un autre...
sous quartus 2 je suis paumé...si on n'assigne pas les pins, il semble impossible de visualiser sur chronogramme les sorties,...ce qui est embêtant pour les signaux intermédiaire....
Si tu veux visualiser des signaux intermédiaires, il suffit de les déclarer comme une sortie que tu veux visualiser.
utilises tu quartus2 ?
Oui, depuis peu.

Invité

Message par Invité »

ce que je veux dire, c que avec les warnings que j'ai,
mes différents signaux restent à 0, même si je les spécifient comme inconnu avant de lancer la simulation.
walla la lsite de tous mes warnings....


Warning: Feature Netlist Optimizations is not available with your current license
Warning: Output pins are stuck at VCC or GND
Warning: Pin tx stuck at GND
Warning: Pin tx_busy stuck at GND
Warning: Pin sens stuck at GND
Warning: Pin TOP_16 stuck at GND
Warning: Pin TOP_TX stuck at GND
Warning: Pin Qcompt[12] stuck at GND
Warning: Pin Qcompt[11] stuck at GND
Warning: Pin Qcompt[10] stuck at GND
Warning: Pin Qcompt[9] stuck at GND
Warning: Pin Qcompt[8] stuck at GND
Warning: Pin Qcompt[7] stuck at GND
Warning: Pin Qcompt[6] stuck at GND
Warning: Pin Qcompt[5] stuck at GND
Warning: Pin Qcompt[4] stuck at GND
Warning: Pin Qcompt[3] stuck at GND
Warning: Pin Qcompt[2] stuck at GND
Warning: Pin Qcompt[1] stuck at GND
Warning: Pin Qcompt[0] stuck at GND
Warning: Design contains 5 input pin(s) that do not drive logic
Warning: No output dependent on input pin PD1_clk
Warning: No output dependent on input pin PD2
Warning: No output dependent on input pin clk
Warning: No output dependent on input pin nRST
Warning: No output dependent on input pin ld

bizarre de chez bizarre...

Invité

Message par Invité »

ayé je crois avoir trouvé où est mon erreure...je vérifie..

sabord
PONCTUEL
PONCTUEL
Messages : 18
Inscription : 16 mai 2005 8:02

Message par sabord »

mon problème vient de mon multplieur: voici le code que j'utilise(inspiré d'un code que j'ai trouvé sur le net).
J'ai enfin réussi à le simuler, mais il ne fonctionne pas comme je voudrais.

___________________________
library ieee;

USE ieee.std_logic_1164.all;
use IEEE.NUMERIC_STD.ALL;
----------------------------------------------------
--

----------------------------------------------------
Entity Multiplieur is


port( clk:in std_logic;
Qcompt:in unsigned(12 downto 0);
nRST:in std_logic;
Qmult:out unsigned(14 downto 0));
End Multiplieur;

----------------------------------------------------

architecture comportement of Multiplieur is


begin
process(nRST,clk)
begin
if(nRST='1') then
Qmult<=(others=>'0');si je remplace 0 par 1 je n'ai plus mes warnings, par contre à la simu, dans un cas comme dans l'autre ça ne marche pas

Elsif rising_edge(clk)then
Qmult <= to_unsigned( (to_integer(Qcompt) * 3 / 100 ),15);

End if;

End process;
end comportement


J'ai trouvé un autre code utilisant le package ufixed_pkg:mais là, je ne parviens pas à compiler car je ne dispose pas de ce package.(peut-être parce que j'utilise la version gratuite? mais j'ai réussi à trouver le fichier vhd de ce package, mais je ne sais pas comment le compiler pour l'inclure à la librairie ieee. Quelqu'un a une idée???


library ieee;

USE ieee.std_logic_1164.all;
use IEEE.NUMERIC_STD.ALL;

use ieee.fixed_pkg.all;

----------------------------------------------------
--

----------------------------------------------------
Entity Multiplieur is


port( clk:in std_logic;
Qcompt:in unsigned(12 downto 0);
nRST:in std_logic;
Qmult:out ufixed(7 downto -7));
End Multiplieur;

----------------------------------------------------

architecture comportement of Multiplieur is

signal valcompt : ufixed (12 downto 0);
signal coeff : ufixed (0 downto -3);



begin
process(valcompt,coeff)
begin
valcompt <=to_ufixed (to_integer(Qcompt), valcompt'high, valcompt'low);

coeff <= to_ufixed (0.03, coeff'high, coeff'low);
Qmult<=valcompt*coeff;

End process;
end comportement;

JP
Administrateur
Administrateur
Messages : 2323
Inscription : 23 sept. 2003 18:14
Localisation : Strasbourg
Contact :

Message par JP »

J'ai trouvé ça comme exemple:

LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
USE IEEE.STD_LOGIC_SIGNED.ALL ; --Essayes avec ces librairies
USE IEEE.STD_LOGIC_ARITH.ALL ;

ENTITY Multiplieur IS
GENERIC (Tmult : TIME ;
NbBits : INTEGER );
PORT ( Entree1 : IN Std_Logic_Vector(NbBits-1 DOWNTO 0) ;
Entree2 : IN Std_Logic_Vector(NbBits-1 DOWNTO 0) ; -- Quand c'est un bus, je crois que c'est Std_Logic_Vector, pas sur que unsigned fonctionne
Sortie : OUT Std_Logic_Vector(NbBits-1 DOWNTO 0) );
END Multiplieur ;

ARCHITECTURE comportementale OF Multiplieur IS

BEGIN
ProcessMultiplieur : PROCESS (Entree1, Entree2)

VARIABLE in1, in2, s : INTEGER ;

BEGIN
in1 := CONV_INTEGER (Entree1) ;
in2 := CONV_INTEGER (Entree2) ;
s := in1 * in2 ;
Sortie <= CONV_STD_LOGIC_VECTOR(s, NbBits) AFTER Tmult ;
END PROCESS ProcessMultiplieur ;
END comportementale ;

Essayes peut être avec ce code, il m'a l'air plus académique :)

Répondre