Affecter une opération à un signal

Affecter une opération à un signal - C++ - Programmation

Marsh Posté le 07-08-2008 à 21:18:31    

systemC problème
 
Bonjour,
 
je désire affecter le résultat d'une opération à un signal. voici le programme :
 
sc_uint<37> fifo; // variable  
sc_signal<sc_uint<32> > msb; // signal qui recevra le résultat de l'opération sur la variable fifo
 
// affichage résultat sans affectation, cet affichage donne le résultat attendu
std::cout << std::hex
<< (sc_uint<32> ) ((fifo >> 4) & 0xFF000000);
 
 
// affectation puis affichage
msb = (sc_uint<32> ) ((fifo >> 4) & 0x00FF000000);
 
std::cout << std::hex
<< msb;
 
// l'affichage de msb après affectation du résultat de l'opération, n'est pas correct, car msb contient 0.
 
Comment se fait-il que la même opération donne un résultat différent, selon qu'on l'affiche directement ou qu'on l'affecte ? Ce qui m'intéresse, c'est comment récupérer le résultat correct et l'affecter à un signal tel que msb ?
 
Merci à tous ceux qui peuvent m'aider.
 
Configuration: Linux Red Hat
Firefox 3.0.1


Message édité par asimut le 09-08-2008 à 15:45:54
Reply

Marsh Posté le 07-08-2008 à 21:18:31   

Reply

Marsh Posté le 11-08-2008 à 14:16:11    

Réponse :
 
Problème réglé !!!
Normal que msb n'affiche pas le résultat correct d'une variable.
msb étant un signal, il n'est, par conséquent, mis à jour qu'au prochain front d'horloge alors que pour la variable, la mise à jour est instantanée.


Message édité par asimut le 11-08-2008 à 14:18:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed