Contre agissant vraiment étrange - l'aide est nécessaire.

O

ohadohad2

Guest
Bonjour à tous, je me demande si quelqu'un peut expliquer pourquoi il me semble pour obtenir la même erreur encore et encore.

J'ai donc été la rédaction d'un code et une partie de celui-ci a été un compteur.

Après avoir achevé l'écriture du code, j'ai remarqué que le comte semblent agir très étrangement, pour une raison quelconque la sortie contre le changement d'heure semble bien que son milieu de front d'horloge déclenché.

Pour vérifier cela que j'ai utilisé le fichier VHDL forme d'onde.

Voici quelques codes différents, j'ai écrit pour le compteur exacte et tous semblent avoir le même problème (Im également attacher une image de l'un des simulations calendrier):

Counter est une entité
génériques (N: integer: = 7);
port (permettre, CLK, RST: à peu;
Count: gamme entière des 0 à N);
Contre la fin;Comptage d'architecture Counter est

Count_State type est (zéro, un, deux, trois, quatre, cinq, six, sept);
signal Current_State: Count_State;

commencer
processus (CLK, RST)
commencer

Si la TVD = '1 'alors Current_State <= zéro;
clk'event elsif et CLK = '1 'alors

Current_State cas est

dès que le zéro => Current_State <= Un;
quand on => Current_State <= Deux;
lorsque deux => Current_State <= Trois;
Lorsque trois => Current_State <= Quatre;
Quand quatre => <= Cinq Current_State;
Lorsque cinq Current_State = <= Six>;
Lorsque Six => <= Current_State Sept;
lorsque Sept => Current_State <= zéro;
Fin de cas;
fin si;
processus de bout;

avec Current_State sélectionnez

Nombre <= 0 lorsque Zero,
1 lorsque One,
2 Lorsque deux,
3 Lorsque Trois,
4 Lorsque Quatre,
5 Lorsque Cinq,
6 Lorsque Six,
7 lorsque Sept;

Compter fin;-------------------------------------------------- --------------------------------------

entité est Dflop
port (D, RST, CLK, permettent: dans peu;
Q: peu en dehors);
Dflop fin;

Comportez-architecture de Dflop est
commencer
processus (CLK, RST)
commencer

Si la TVD = '1 'alors
Q <= '0 ';

elsif (clk'event et CLK = '1 ') puis
Si la case Activer = '1 'alors
Q <= D;
fin si;
fin si;

processus de bout;
Comportez-fin;

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

entité est Struc_Counter
génériques (N: integer: = 7);
port (CLK, RST, permettent: à peu;
Count: gamme entière des 0 à N);
Struc_Counter fin;

l'architecture des Fonds structurels est Struc_Counter

composante Dflop
port (D, RST, CLK, permettent: dans peu;
Q: peu en dehors);
composante fin;
-------------------------------------------------- --------------------------------------

signal inA, INB, Inc, Outa outb, OUTC: peu;
signal ABC: bit_vector (0 à 2);

commencer

inA <= ((outA et (pas outb)) ou (outb et (xor outA OUTC)));
inb <= (xor outb OUTC);
Inc <= (pas OUTC);

A1: la carte du port Dflop (D => INA, rst => RST, CLK => CLK, enable => Activer, Q => outA);
B1: carte port Dflop (D => INB, rst => RST, CLK => CLK, enable => Activer, Q => outb);
C1: la carte du port Dflop (D => inc, rst => RST, CLK => CLK, enable => Activer, Q => OUTC);ABC <= outA & outb & OUTC;

avec ABC sélectionnez

Nombre <= 0 lorsque «000»,
1 lorsque «001»,
2 Lorsque "010",
3 lorsque «011»,
4 lorsque «100»,
5 lorsque "101",
6, lorsque "110",
7 lorsque "111";

Struc fin;Counter est une entité
génériques (N: integer: = 7);
port (permettre, CLK, RST: à peu;
Count: gamme entière des 0 à N);
Contre la fin;Comptage d'architecture Counter est
cnt signal: gamme entière de 0 à N;
commencer
processus (CLK, RST)

commencer

Si la TVD = '1 'alors <cnt = 0;

elsif (clk'event et CLK = '1 ') puis
Si la case Activer = '1 'alors
cnt <= 1 CNT;
si cnt = n alors
cnt <= 0;
fin si;
fin si;
fin si;

processus de bout;

Comte <= cnt;

Compter fin;
Désolé, mais vous avez besoin de connexion pour voir cette pièce jointe

 
Je pense que vous devriez considérer le matériel retardé le temps, même si c'est une horloge déclenché la conception, mais tous les signaux intérieurs FPGA a routage différents, ainsi vous obtenez un-si-jolie forme d'onde non.

 
pwq1999 a écrit:

Je pense que vous devriez considérer le matériel retardé le temps, même si c'est une horloge déclenché la conception, mais tous les signaux intérieurs FPGA a routage différents, ainsi vous obtenez un signal qui n'est pas si jolie.
 

Welcome to EDABoard.com

Sponsor

Back
Top