probleme de "wait for" en VHDL dans Quartus II

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

Modérateur : Modérateur

Elbipsos

probleme de "wait for" en VHDL dans Quartus II

Message par Elbipsos »

Bonjour à tous.

J'ai un petit problème : je suis en train de programmer un FPGA d'Altera avec Quartus II et pour cela j'aurais besoin d'utiliser l'instruction "wait for x ns" de vhdl. Malheureusement, à chaque fois que j'essaie, le compilateur râle et me sort un message d'erreur (comme pour "wait on" d'ailleurs)
Est-ce que quelqu'un sait si quartus reconnaît le 'wait for" ? Et si ce n'est pas le cas que peut-on utiliser à la place ?
Voilà, merci d'avance pour vos réponses !

(s) : un débutant un peu pommé ...

P.S. : voici mon code et l'erreur qui va avec :

Code : Tout sélectionner


LIBRARY ieee;
USE ieee.std_logic_1164.all;


-- Entity Declaration

ENTITY CONTROLEUR IS
-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
PORT
(
DATA : IN STD_LOGIC_VECTOR (5 downto 0);
RXF : IN STD_LOGIC ;
LED : OUT STD_LOGIC_VECTOR (5 downto 0);
RD : OUT STD_LOGIC 
);

-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!

END CONTROLEUR;


-- Architecture Body

ARCHITECTURE CONTROLEUR_architecture OF CONTROLEUR IS

BEGIN

transfert : PROCESS 
BEGIN
IF (RXF ='0')THEN
wait for 30 ns;
LED <= DATA;
wait for 20 ns;
RD <= '0';
wait for 50 ns;
RD <= '1';
END IF;
END process;

END CONTROLEUR_architecture;

[code]

messages d'erreur à la compilation :

Error (10533): VHDL Wait Statement error at CONTROLEUR.vhd(53): Wait Statement must contain condition clause with UNTIL keyword


Error (10442): VHDL Process Statement error at CONTROLEUR.vhd(50): Process Statement must contain either a sensitivity list or a Wait Statement
Wanegain

Message par Wanegain »

Salut !
Ton probleme est très simple en fait... Les durées de temps sont utilisées uniquement pour les test bench, forcément quartus ne peut pas comprendre comment électroniquement tu lui dis d'attendre x ns... Pour faire attendre une durée, tu peux compter le nombre de front montant d'horloge, si l'horloge est fixe évidemment et si tu connais sa fréquence.
Pour récapituler, dans ton programme il faut enlever toutes les fonctions où tu utilises le temps et les remplacer par un compteur de cycles d'horloge.
J'espere avoir résolu ton probleme :wink:
Répondre