Bonjour,

je désire affecter le résultat d'une opération à un signal. voici le programme :

Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sc_uint<37> fifo; // signal sur qui sera effectuée l'opération.
sc_uint<32> msb; // signal qui recevra le résultat de l'opération
 
// 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.