누적기 (부호있음)
- 업데이트 날짜:2023-02-17
- 5분 (읽기 시간)
누적기 (부호있음)
x를 누적하거나 감소시킵니다. 이 노드는 여러 채널 작업 및 피드백 스케일링을 지원합니다.
이 노드는 정수 및 고정 소수점 데이터 타입의 스칼라 값과 불리언 배열만 지원합니다.
입력/출력

x
합계 값에 더하거나 뺄 데이터. x가 고정된 크기의 불리언 배열인 경우, 첫번째 배열 원소는 최하위 비트(LSB)를, 마지막 원소는 최상위 비트(MSB)를 나타냅니다.

서브?
빼기 또는 더하기 중 어느 것을 수행할지 지정하는 불리언. 이 입력을 사용하여 프로그램적으로 연산을 변경합니다.
| 참 | 합계 - x를 계산합니다. |
| 거짓 | 합계 + x를 계산합니다. |
Default value: 거짓

로드
0에서부터 새로 누적하기 시작할지 지정하는 불리언.
| 참 | 합계의 모든 이전 값을 무시하고 x의 값을 로드하여 새로 누적을 시작합니다. |
| 거짓 | 이전 실행에서부터 계속하여 누적합니다. |
Default value: 거짓
특정 채널에서 누적 다시 시작하기
여러 채널이 있는 어플리케이션에서 이 입력은 로드가 변경될 때 클럭 사이클에서 x에 데이터가 도달하는 채널에 영향을 미칩니다. 예를 들어 8개의 클럭 사이클에서 두 개의 채널로부터 데이터를 누적한 경우, x는 첫번째, 세번째, 다섯번째 및 일곱번째 클럭 사이클에서 채널 1로부터 데이터를 받습니다. 채널 1에 대해 누적을 다시 시작하려면 클럭 사이클에서 로드를 참으로 설정합니다. 채널 2로부터의 누적값은 변경되지 않습니다.

활성화
x의 값에서 작업할지 지정하는 불리언. 이 입력을 사용하여 x의 유효한 값에서만 작업합니다. 예를 들어, 높은 처리량 수학 노드의 출력 유효 출력을 이 입력에 연결하여 [누적기]가 업스트림 노드가 유효한 결과를 산출할 때만 작동하도록 할 수 있습니다.
| 참 | x의 현재값을 누적합니다. |
| 거짓 | x를 무시하고 합계를 변경하지 않습니다. |
Default value: 참
특정 채널의 값 무시하기
여러 채널이 있는 어플리케이션에서 이 입력은 활성화가 변경될 때 클럭 사이클에서 x에 데이터가 도달하는 채널에 영향을 미칩니다. 예를 들어 8개의 클럭 사이클에서 두 개의 채널로부터 데이터를 누적한 경우, x는 첫번째, 세번째, 다섯번째 및 일곱번째 클럭 사이클에서 채널 1로부터 데이터를 받습니다. 채널 1로부터의 값 중 두번째 값만 무시하려면, 세번째 클럭 사이클에서 활성화를 거짓으로 설정하고, 다섯번째 클럭 사이클에서 다시 참으로 변경합니다. 채널 2로부터의 누적값은 변경되지 않습니다.

캐리 입력/역 빌림 입력
[어큐뮬레이터]가 합계를 계산할 때 추가적인 최하위 비트(LSB)를 고려하는지 지정하는 불리언.
| 참 | 서브? 역시 참인 경우 —sum - x를 계산합니다. 서브?가 거짓인 경우—sum + x + 1(LSB)을 계산합니다. |
| 거짓 | 서브?가 참인 경우—sum - x - 1(LSB)을 계산합니다. 서브? 역시 거짓인 경우 —sum + x를 계산합니다. |

합계
이 노드가 계산한 결과.
이 결과는 x의 값 뿐 아니라, 로드와 활성화와 같은 노드에 있는 모든 불리언 입력의 값에 따라 다릅니다. 여러 채널이 있는 어플리케이션에서 합계는 각 채널마다 별도로 누적합니다.
오버플로우가 합계에 미치는 영향
오버플로우가 참을 반환하는 경우, LabVIEW는 값이 출력 타입의 범위 안에 올 때까지 합계의 유효 비트를 버립니다.

오버플로우
이론상의 계산된 합계가 데이터 타입의 유효한 범위를 초과하는지 나타내는 불리언.
| 참 | 이 노드는 합계 값의 유효자리를 줄입니다. |
| 거짓 | 이 노드는 합계 값의 유효자리를 줄이지 않습니다. |
레지스터 오버플로우
이 노드가 오버플로우 앞에 내부 레지스터를 추가하는지 지정합니다.
이 확인란은 기본으로 확인표시가 되어 있지 않기 때문에 노드는 합계값보다 한 클럭 사이클 전에 오버플로우 결과를 반환합니다.
합계값과 같은 클럭 사이클에 오버플로우의 값을 반환하려면 이 확인란에 확인 표시를 합니다.
Examples
다음 테이블은 두 채널에서 인터리브된 데이터를 누적하는 어플리케이션에서 이 노드가 합계 + x를 계산하는 방법의 예를 보여줍니다.
| 클럭 사이클 | x 입력 | x의 설명 | 합계 출력 | 합계의 설명 |
|---|---|---|---|---|
| 1 | 6 | 채널 1, 샘플 1 | - | [누적기]는 한 클럭 사이클의 실행을 필요로 하므로, 첫번째 클럭 사이클에서는 합계를 반환하지 않습니다. |
| 2 | 8 | 채널 2, 샘플 1 | 6 (채널 1의 누적) | x가 채널 2로부터 데이터를 받지만, 합계는 클럭 사이클 1 동안 받은 채널 1 데이터의 계산 결과를 반환합니다. 사이클 1 동안 합계는 0이었고 x는 6이었으므로, 이 노드는 6을 반환합니다. |
| 3 | 44 | 채널 1, 샘플 2 | 8 (채널 2의 누적) | x가 채널 1로부터 데이터를 받지만, 합계는 클럭 사이클 2 동안 받은 채널 2 데이터의 계산 결과를 반환합니다. 사이클 2 동안 채널 2의 합계는 0이었고 x는 8이었으므로, 이 노드는 8을 반환합니다. |
| 4 | 5 | 채널 2, 샘플 2 | 50 (채널 1의 누적) | 6 (클럭 사이클 2의 합계) + 44 (클럭 사이클 3으로부터의 x) |
| 5 | 2 | 채널 1, 샘플 3 | 13 (채널 2의 누적) | 8 (클럭 사이클 3의 합계) + 5 (클럭 사이클 4로부터의 x) |
| 6 | 3 | 채널 2, 샘플 3 | 52 (채널 1의 누적) | 50 (클럭 사이클 4의 합계) + 2 (클럭 사이클 5로부터의 x) |
| 7 | - | 채널 1로부터의 데이터가 더 이상 없습니다. | 16 (채널 2의 누적) | 13 (클럭 사이클 5의 합계) + 3 (클럭 사이클 6으로부터의 x) |
누적 리셋하기
새롭게 누적을 시작하려면 로드 입력을 참으로 설정합니다. 그 후, 합계가 값을 누적하도록 하려면 로드를 거짓으로 리셋합니다.
여러 채널 작업
이 노드가 여러 채널의 데이터에서 어떻게 작동하는지는 두 개 요소에 의해 정의됩니다.
- 이 노드는 합계의 값을 계산하는데 항상 한 사이클을 필요로 합니다.
- 각 채널에서 이 노드는 합계의 별도의 내부값을 유지합니다.
두 채널로부터 인터리브된 데이터 세트가 있을 때, 이 동작은 x가 채널 1에서 온 경우, 한 사이클 동안에 노드는 채널 2의 합계값을 반환합니다. 이 동작에 대한 더 자세한 예는 이 노드의 예제 탭을 참조하십시오.
시뮬레이션의 성능에 미치는 영향
이 노드는 FPGA VI 다운로드, 정지 또는 실행 동작을 함께하는 경우, 시뮬레이션 실행 시간을 크게 증가시킬 수 있습니다.