quartus2: warning que je ne comprend pas
Modérateur : Modérateur
quartus2: warning que je ne comprend pas
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
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
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;
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;
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 ?
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 ?
-
- Administrateur
- Messages : 2323
- Inscription : 23 sept. 2003 18:14
- Localisation : Strasbourg
- Contact :
Les sorties sont normalement en état indéterminé avant une simulation comme ici :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...
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.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...
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...
Si tu veux visualiser des signaux intermédiaires, il suffit de les déclarer comme une sortie que tu veux visualiser.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....
Oui, depuis peu.utilises tu quartus2 ?
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...
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...
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;
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;
-
- Administrateur
- Messages : 2323
- Inscription : 23 sept. 2003 18:14
- Localisation : Strasbourg
- Contact :
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
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