2017-05-11 4 views
0

스택 오버플로에서 전체 검색을 수행합니다. 방어 적이기에게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 사용자 가이드와 다른 웹 사이트를 언급했지만, 그들은 일반적으로 버프 어레이를 로컬 변수로만 선언했습니다. 나는 그것이 내 코드의 오류가 아닐 것이라고 생각한다. 제발 제안하십시오 – Thaus

+0

로컬로 선언 할 수 있지만 HLS는 내부 메모리처럼 포트로 생성하지 않습니다. –

+0

나는 시도 할 것이다. 내 코드가 논리적으로 올바른지 여부 – Thaus

관련 문제