2017-05-11 8 views
0

全体的な検索はスタックオーバーフローで行われます。私がヒントだ:memcpyのVIVADO HLSのC言語 - memcpyにPseudo_randomバイナリシーケンスを格納して生成する方法

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

を使用してバイナリデータの場合をしかし、コードが動作していなくても、かかわらず、私は以下のコードではどのような間違いを提案してください。

コード

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));  
} 

答えて

0

ローカル変数としてbuff配列を宣言した場合、HLSは、あなたの一番上の関数にメモリポートを生成しません。関数の引数にする必要があります。

+0

私はHLS UG902ユーザーガイドと他のWebサイトを参照しましたが、通常はbuff配列をローカル変数として宣言しています。私はそれが私のコードのエラーではないと思う。どうかお勧めします – Thaus

+0

ローカルに宣言することはできますが、HLSはそれを内部メモリと同様にポートとして生成しません。 –

+0

私は試してみるよ。私のコードが論理的に正しいかどうか? – Thaus

関連する問題