2017-05-10 7 views
1

현재 의사 랜덤 비트 시퀀스 기능을 위해 Kintex 7과 microblaze로 작업하고 있습니다. HLS에서 PRBS를 실행하고 HLS IP를 만든 다음 HLS IP를 vivado와 통합하고 비트 스트림을 생성하여 SDK에 내 보냈습니다.HLS IP와 SDK 간의 데이터 통신을 어떻게 실행합니까?

사실, 나는 HLS IP를 통해 XSDK에 0과 1 같은 Pseudo_random 비트 시퀀스를 반환해야합니다.

그러나 SDK에서 임의 비트 시퀀스 대신 "단일 비트"값 (0 또는 1) 만 표시됩니다. HLS IP와 SDK 사이에서 무작위 비트 시퀀스를 얻는 방법?

+0

문제의 예제 코드를 게시 할 수 있습니까? 최소한 상위 함수 시그니처와 인터페이스 지시문은 무엇입니까? –

+0

이 [link] (https://forums.xilinx.com/t5/Welcome-Join/How-to-rand-random-bit-sequence-in-XSDK-from-HLS-IP/mp/763597#)를 참조하십시오. M44714) int PRBS_prj() { int start_state = 0xCD; int lfsr = start_state; bool 비트; 부호없는 기간 = 0; do { /* 도청 : 3, 2 및 1; 피드백 다항식 : x^3 + x^2 + 1 */ bit = ((lfsr >> 0)^(lfsr >> 3)^(lfsr >> 4)) & 1; printf "% d", bit); lfsr = (lfsr >> 1) | (비트 << 7); ++ 기간; } while (lfsr! = start_state); 리턴 비트; }' – Thaus

답변

0

구현 한 함수와 같이 반환 값으로 단일 비트가있는 것처럼 보입니다. 즉, 모든 호출에서 단일 비트를 생성 할 것으로 예상됩니다. 각 호출마다 둘 이상의 비트가 필요한 경우 아마도 너비가 ap_uint이 될 수 있습니다.

+0

답변 해 주셔서 감사합니다. ** C++ Arbitrary Precision Types **를 사용하여 PRBS 용 프로그램을 작성하라고 말한 것입니다. – Thaus

+0

예, 한 번에 64 비트 만 필요하거나 32 비트가 필요한 경우 일반 C 유형을 사용할 수 있습니다. –

+0

나는 32 비트 또는 64 비트만을 시도하고있다. hls에서, 나는 비트의 순서를 얻는 반면, UART에서는 HLS IP와 XSDK 사이의 통신을 통해 단일 비트 리턴 만 얻고 있습니다. 왜 내가이 문제에 직면 해 있습니까? UART 반환 문제 – Thaus