2017-05-11 8 views
0

Grâce à la recherche globale dans Stack Overflow. Je suis un indice: Pour les données binaires en utilisant memcpyLangage C pour VIVADO HLS - comment stocker et générer des séquences binaires Pseudo_random en memcpy

for (int i=0; i < N; ++i) 
    memcpy(buffer + i * byte_sequence_length, byte_sequence,  
     byte_sequence_length); 

Mais même si, le code ne fonctionne pas, s'il vous plaît me suggérer quelle erreur dans le code ci-dessous.

code

void main (int bit)   
static unsigned lfsr = 0xCD;    
int i,j;   
int buff[];      
for (i = 0; i < 50; i++)     
{      
    bit = ((lfsr >> 0)^(lfsr >> 2)^(lfsr >> 3)^(lfsr >> 4)) & 1;          
    lfsr = (lfsr >> 1) | (bit << 7);    
    buff[i] = bit;   
}  
for (int j=0; j < 50; ++j)  
{   
    memcpy(buff+ j, lfsr, 50*sizeof(int));  
} 

Répondre

0

Si vous déclarez le tableau buff comme une variable locale, HLS ne génère pas un port de mémoire à votre fonction supérieure. Vous devriez en faire un argument de la fonction.

+0

J'ai référé le guide de l'utilisateur HLS UG902 et d'autres sites Web, ils ont normalement déclaré le tableau buff comme une variable locale seulement. Je pense que ce ne sera pas une erreur de mon code. S'il vous plaît me suggérer – Thaus

+0

Vous pouvez le déclarer local, mais HLS ne le génère pas en tant que port, tout comme la mémoire interne. –

+0

ok je vais essayer. Si mon code est logiquement correct? – Thaus