Probème de compilation sur Quartus II

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

Modérateur : Modérateur

franek
NOUVEAU
NOUVEAU
Messages : 14
Inscription : 25 mai 2005 13:02

Probème de compilation sur Quartus II

Message par franek »

bonjour à tous,

Voilà j'ai problème, je n'arrive pas à compiler mon code VHDL sur quartus II(logiciel d'Altera). Alors que sur Galaxy (logiciel de Cypres), j'y arrivais.

Voici mon code en VHDL a l'expension *.vhd :

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity compteur is port (
clk : in bit;
Q : out bit_vector(3 downto 0));
end compteur;

architecture description of compteur is
signal cpt : integer range 15 downto 0;

begin
process(clk)
begin
if (clk='1' and clk'event) then
cpt <= cpt + 1;
end if;
end process;
Q <= bit_vector(cpt);
end description;

et voici le message d'erreur :

Error: VHDL Type Conversion error at cpt.vhd(22): integer type cannot be converted to bit_vector type
Error: Ignored construct description at cpt.vhd(12) because of previous errors

je ne comprends pas pourquoi il ne veut pas convertir le type integer en type bit_vector.

Merci d'avance pour votre aide.

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

Message par sabord »

au lieu de bit_vector, utilise std_logic_vector: là ça marche

franek
NOUVEAU
NOUVEAU
Messages : 14
Inscription : 25 mai 2005 13:02

Message par franek »

j'ai essayyé avec std_logic_vector et j'ai toujours un message d'erreur :

Error: VHDL Type Conversion error at cpt.vhd(23): integer type cannot be converted to std_logic_vector type

mais si j'utilise le std_logic_vector j'ai un autre probleme avec le package

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

Message par sabord »

alors remplace ta définition de cpt par:

signal cpt: std_logic_vector(3 downto 0);

si cpt est défini de la même façon que Q tu n'auras pas de problème

c comme ça que je fais pour les compteurs.

franek
NOUVEAU
NOUVEAU
Messages : 14
Inscription : 25 mai 2005 13:02

Message par franek »

j'ai remplacer Q et cpt par des std-logic_vector (3 downto 0), et maintenant j'ai un autre message d'erreur

le voici :

Error: Top-level design entity "cpt" is undefined

je ne comprends plus vraiment rien au logiciel d'Atera. c'est un mystère!!!

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

Message par sabord »

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity compteur is port (
clk : in bit;
Q : out std_logic_vector(3 downto 0));
end compteur;

architecture description of compteur is
signal cpt : std_logic_vector(3 downto 0);

begin
process(clk)
begin
if (clk='1' and clk'event) then
cpt <= cpt + 1;
end if;
end process;
Q <= cpt; --tu as bien changé ici aussi?end description;

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

Message par sabord »

je crois que c'est le genre d'erreure qui apparaît qd on a oublié un ";"
copié collé abusif??

franek
NOUVEAU
NOUVEAU
Messages : 14
Inscription : 25 mai 2005 13:02

Message par franek »

j'ai repris ton code vhdl et j'ai toujours le meme message d'erreur.

franek
NOUVEAU
NOUVEAU
Messages : 14
Inscription : 25 mai 2005 13:02

Message par franek »

c'est bon j'ai trouve mon erreur. il ne faut pas que le nom du fichier soit identique au projet

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

Message par sabord »

piged:




vu le message d'erreur tu as du appeler un fichier "cpt.vhd" et le définir comme l'entitée principale du projet mais oublier de créer une entitée nommée "cpt".
Le fichier TOP_Level doit être de la forme suivante:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;


entity cpt is port ( --déclaration de l'entitée principale(ce qui doit manquer à mon avis)
--entrées sorties
);
end cpt;

architecture comportement of cpt is
--définition signaux

--référence à l'entitée compteur que tu as écris(et qui est correcte)....
component compteur is
port(...

--signaux de ton entitée "compteur" entrées et sorties
);
end component;

begin

---et une structure port map ex:

compt : compteur

port map(
signal =>signal,
signal2=>signal2
);

Répondre