Aucune sortie à partir du code VHDL!?

G

GeekWizard

Guest
Bonjour à tous,

Etant un débutant en VHDL, je suis sûr theres une stupide erreur quelque part.Je ne peux pas obtenir ma tête autour de lui.

Il n'y a pas de sortie pour «F1» et «deltaF" ci-dessous.J'utilise qu Altera (at) rtus que l'outil de compilation et il ne donne aucune erreur lors de la compilation et de simulation.

Quelqu'un peut-il s'il vous plaît aider.

Merci Beaucoup.

Code:IEEE ibrary;

IEEE.std_logic_1164.all utilisation;

IEEE.std_logic_arith.all utilisation;

IEEE.std_logic_unsigned.all utilisation;entité est computation2

port (

Horloge: en STD_LOGIC;reset: en STD_LOGIC;

Digit: en STD_LOGIC_VECTOR (23 downto 0);

DigitValid: en STD_LOGIC;F1: STD_LOGIC_VECTOR à (27 downto 0);deltaF: STD_LOGIC_VECTOR à (27 downto 0));

computation2 fin;architecture computation2 des computation2 est

signal I_WordNumber: integer;

signal I_FC: integer;

signal I_BW: integer;

signal I_BW1: integer;

signal I_WRF: integer;

signal I_F1: integer;

signal I_DF: integer;commencerprocessus (l'horloge, DigitValid, reset)

commencerif (reset = '1 ') puis

I_WordNumber <= 1;

I_BW <= 1;

I_WRF <= 1;

I_FC <= 1;

I_DF <= 0;elsif (DigitValid'Event et DigitValid = '0 '), puis

if (I_WordNumber = 1), puis

I_BW <= CONV_INTEGER (chiffres);

I_WordNumber <= 2;elsif (I_WordNumber = 2) puis

I_BW <* I_BW = 1000;

I_FC <= CONV_INTEGER (chiffres);

I_WordNumber <= 3;elsif (I_WordNumber = 3), puis

I_FC <= * I_FC 1000;

I_WRF <= CONV_INTEGER (chiffres);

I_WordNumber <= 4;elsif (I_WordNumber = 4), puis

I_WordNumber <= 1;

<= I_F1 I_FC - (I_BW / 2);

I_DF <= (* I_BW I_WRF * 114) / 300 000 000 000;fin si;

F1 <= CONV_STD_LOGIC_VECTOR (I_F1, 28);

deltaF <= CONV_STD_LOGIC_VECTOR (I_DF, 28);fin si;processus de bout;computation2 fin;

 
Quand vous dites pas de sortie que vous voulez dire que vos valeurs initiales ne changent jamais ou que vous avez trouvé les valeurs inconnues?

Si elle a dressé ensuite une grande.On dirait que vous parlez de votre simulation.Si vous n'obtenez pas les résultats que vous devez vérifier les données entrées.

E

 
Bonjour,

Je dois avouer que je n'ai pas complètement comprendre les calculs effectués dans la conception, mais qui peuvent être unnecessecary.Je ne sais pas, où les valeurs du signal ont été utilisés pour tester l'opération soit en simulation ou en matériel.

Je vois cependant un point, qui provoque le cadre de la conception à l'échec comportement attendu.

is unconditionally zero.

Cela est dû au type INTEGER ayant un nombre limité de numérique 32 bits, alors integer_value / 300000000000
est inconditionnellement zéro.Il y aurait lieu d'un avertissement de Quartus cours comilation!Utilisation de type non signé pour> = 2 ** 32 valeurs devrait vous aider.En dehors de cela je ne vois pas de problème particulier, à condition que l'arithmétique est destiné codé.

Cordialement,
Franc

 

Welcome to EDABoard.com

Sponsor

Back
Top