From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



Memory Read 노드를 SCTL에 위치시키면 Code Generation Errors를 반출합니다.



주요한 소프트웨어:
주요한 소프트웨어 버전: 1.0
문제가 해결된 소프트웨어 버전: N/A
부차적인 소프트웨어: N/A

문제점: LabVIEW FPGA VI에서, Memory Read 노드를 Single-Cycle Timed Loop (SCTL)안에 위치시킨 상태로 컴파일을 수행하면 다음과 같은 에러가 발생합니다:

Internally pipelined object(s) not connected to a feedback node

왜 이런 문제가 발생하며고 어떻게 해결할 수 있습니까?



솔루션: 이 에러가 발생하는 이유는 Memory Read 메소드는 실행하는데 1 클럭 사이클이 필요하기 때문입니다.(LabVIEW FPGA Module Help: Read (Memory Method) Details). 만약 SCTL안에 사용을 해야 한다면 코드를  Pipeline 으로 만드는 것이 필요합니다. 이는 1 클럭 사이클 동안 데이터를 읽고, 데이터 인디케이터가 다음 사이클에서 업데이트 될 수 있도록 합니다. 결과적으로, 1 사이클의 지연이 생깁니다. Figure 1을 보시면 Pipeline된 코드를 확인하실 수 있습니다.


Figure 1. Memory Node in SCTL.

Pipeline 된 코드를 사용하려면, Memory 노드의 출력 부분을 SCTL의 가장자리에 붙이고 우클릭하여 "시프트 레지스터로 대체"라는 항목을 선택해야 합니다. 그리고 시프트 레지스터의 왼쪽 부분에 생성되는 부분에 우클릭을 하고 생성>>인디케이터를 눌러 인디케이터를 생성해 주어야 합니다.

Note: Feedback node 를 시프트 레지스터 대신 사용하여 같은 기능을 구현할 수 있습니다.

Note: Pipelining을 이용하여 코드에 지연을 추가할 때,  Handshaking 터미널을 고려하여 코드가 어떻게 다른 부분과 상호 작용할 수 있는지 생각해야 합니다.
Note: 분주된 타이밍 소스로 SCTL를 천천히 돌게 하는 것으로는 이 에러를 해결할 수 없습니다.



관련 링크:
LabVIEW 2013 FPGA Module Help: Pipelining to Optimize FPGA VIs (FPGA Module)
LabVIEW 2013 FPGA Module Help: Read (Memory Method)
LabVIEW 2013 FPGA Module Help: Sheduling Timing Using Handshaking Signals (FPGA Module)
LabVIEW 2013 FPGA Module Help: Storing Data between Loop Iterations (FPGA Module)

첨부:





리포트 날짜: 03/21/2009
마지막 업데이트: 02/04/2015
문서 번호: 4VKJ23DK