Problème de simulation avec Xilinx

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

Modérateur : Modérateur

stefou
NOUVEAU
NOUVEAU
Messages : 1
Inscription : 02 juin 2006 9:26

Problème de simulation avec Xilinx

Message par stefou »

Bonjour à tous,

je suis novice en VHDL et je me heurte à un problème auquel je n'ai toujours pas compris.

Je me suis amusé à créer un diviseur de fréquence en VHDL, dont le code est le suivant:

Code : Tout sélectionner

library IEEE;
library UNISIM;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use UNISIM.VComponents.all;


entity diviseur is
    Port ( clk : in  STD_LOGIC;
             frequency : out STD_LOGIC);
end diviseur;

architecture Behavioral of diviseur is

signal counter: STD_LOGIC_VECTOR(3 downto 0):="0000";
constant n: integer := 10-1;

begin

compteur: process(clk,counter)	-- diviseur de fréquence
begin

 if clk'event and clk='1' then
  if counter >= n then
   counter <= "0000";	-- réinitialisation du compteur lorsque n est atteint
  else
   counter <= counter + 1;
  end if;		
 end if;
	
 if counter >= 5 then	-- rapport cyclique de 1/2
  frequency <= '0';
 else frequency <= '1';
 end if;
	
end process compteur;

end Behavioral;

Lorsque je le compile avec Xilinx ISE, je n'obtiens aucune erreur, un point d'exclamation apparaît juste à côté de "Synthesize" mais aucun warning n'apparaît nul part.
Je crée un fichier testbench waveform pour simuler mon code avec ISE Simulator, le simulateur intégré de Xilinx ISE.

Et là il se passe quelque chose d'étrange: parfois ça marche, parfois ça marche pas...

Y a-t-il un hic dans mon code ? Xilinx ISE ou du moins le simulateur est-il capricieux ?

Merci d'avance !
steph
Avatar de l’utilisateur
marsu
INSATIABLE
INSATIABLE
Messages : 155
Inscription : 13 juin 2005 11:08
Localisation : Paris
Contact :

Message par marsu »

Counter est un std_logic_vector donc il ne faudrait pas que tu mette 5 mais "0101".
Quartus fait la différence.
Sinon je pense qu'il est plus simple de faire des diviseur de puissance de 2.
Mais apres cela depend de l'application...
topix
NOUVEAU
NOUVEAU
Messages : 4
Inscription : 05 juil. 2006 16:15

Message par topix »

il y a le test post simulation si tu le connais, je te propose de continuer jusqu'à voir le RTL de ton bloc. et regarde bien tout les log window(les imprimés bien attendu) car je pense que tu dois simplement ajouter des contraites pour certains signaux afin que les conditions dans la simulation soit plus indiquées
Avatar de l’utilisateur
NNCORE
NOUVEAU
NOUVEAU
Messages : 4
Inscription : 12 août 2006 14:43

Message par NNCORE »

essaye de faire la simulation avec modelsim ou modelsim deseigner :-D
Répondre