Je suis normalement un programmeur C#/Java et j'ai toujours du mal à envelopper complètement ma tête autour de la description du matériel.VHDL: Aide à la compréhension des étapes de temps/états et de la simultanéité
J'ai un registre qui charge dans une valeur. Ensuite, un comparateur compare la sortie du registre avec la valeur '16'. Si la valeur est inférieure ou égale, je vais à State_0, s'il est supérieur à, je vais à State_3.
J'ai un processus 'controlsignals' qui s'exécute en même temps que mon processus stellable. Pour mes signaux de commande, je sais que je dois mettre l'activer pour le registre à haut quand je suis State_2, donc:
controlsignals: PROCESS (Tstep_Q)
BEGIN
.... initialisation ...
CASE Tstep_Q IS
.... other states ....
WHEN T2 => --define signals in time step T2
enRegister = '1';
Pour ma table d'état:
statetable: PROCESS (Tstep_Q, regOutput)
BEGIN
CASE Tstep_Q IS
.... other states ....
WHEN T2 =>
IF ((regOutput - 16) > 0)
THEN Tstep_D <= T3;
ELSE Tstep_D <= T0;
END IF;
Et près de la fin de mon code, j'ai:
fsmflipflops: PROCESS (Clock)
BEGIN
IF Clock'EVENT AND Clock = '1' THEN
Tstep_Q <= Tstep_D;
END IF;
END PROCESS;
reg: regn PORT MAP (somevalue, enReg, Clock, regOutput);
Depuis ma table d'état et mes signaux de contrôle sont des blocs concurrents, ma confusion est ... vais-je activer d'abord le registre, puis exécutez le comparateur pour déterminer mon prochain état, comme je veux mon circuit à exécuter (puisque le statetable est sensible à regOutput)? Ou serait-il plus sûr de créer un nouvel état après T2 où j'ai mon comparateur? Merci d'avance.
Vous n'avez pas affiché de déclaration, ni de fréquence d'horloge spécifiée, ni la cible de votre code. Tout ceci a une incidence sur ce que vous pouvez faire dans un cycle d'horloge, depuis le front montant de l'horloge jusqu'à Tstep_Q et le délai RegOutput pour soustraire 16 et tester le signe du résultat, en sélectionnant une valeur pour l'installation de Tstep_D à Tstep_D. Sans connaître le taux d'horloge, la plate-forme d'implémentation cible et les largeurs, vous obtiendrez des opinions et * vous * pourrez trouver les réponses par une synthèse d'essai sur une plateforme cible. Quelle partie du chemin de retard a une période d'horloge entière avec un état séparé? – user1155120