이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
Add, Subtract, Sum of Elements, Sum
입력에 대한 덧셈 또는 뺄셈
라이브러리:
Simulink /
Math Operations
HDL Coder /
HDL Floating Point Operations
HDL Coder /
Math Operations
설명
Sum 블록은 입력에 대해 덧셈 또는 뺄셈을 수행합니다. Add 블록, Subtract 블록, Sum of Elements 블록, Sum 블록은 동일한 블록입니다. 이 블록은 스칼라, 벡터 또는 행렬 입력을 더하거나 뺄 수 있습니다. 또한 신호의 요소들을 축약하고 합산을 수행할 수도 있습니다.
부호 목록 파라미터에 덧셈(+
), 뺄셈(-
), 스페이서(|
)를 사용하여 블록 연산을 지정할 수 있습니다.
+
및-
문자 개수는 입력 개수와 같습니다. 예를 들어+-+
에는 세 개의 입력이 필요합니다. 블록은 첫 번째(맨 위) 입력에서 두 번째(중간) 입력을 뺀 다음, 세 번째(맨 아래) 입력을 더합니다.스페이서 문자는 블록 아이콘의 포트 사이에 추가 공간을 생성합니다.
덧셈만 수행할 경우 입력 개수와 동일한 숫자형 값을 사용할 수 있습니다.
입력 포트가 하나만 있는 경우 한 개의
+
또는-
는 모든 차원 또는 지정된 차원에서 요소를 더하거나 뺍니다.
Sum 블록은 먼저 입력 데이터형을 누산기 데이터형으로 변환한 다음, 지정된 연산을 수행합니다. 이 블록은 지정된 반올림과 오버플로 모드를 사용하여 그 결과를 출력 데이터형으로 변환합니다.
블록 출력 계산
Sum 블록의 출력 계산은 블록 입력 개수와 입력 포트 부호에 따라 다릅니다.
Sum 블록 입력 포트 개수 | 입력 포트 부호 | 블록 출력 계산식 | 출력 공식 변수 |
---|---|---|---|
입력 포트 한 개 | 입력 포트 부호가 +임 |
y = e[0] + e[1] + e[2] ... + e[m] |
|
입력 포트 부호가 –임 |
y = 0.0 – e[0] – e[1] – e[2] ... – e[m] | ||
입력 포트 2개 이상 | 모든 입력 포트 부호가 –임 |
y = 0.0 – u[0] – u[1] – u[2] ... – u[n] |
|
k번째 입력 포트가 부호가 +인 첫 번째 포트임 |
y = u[k] – u[0] – u[1] – u[2] – u[k–1] (+/–) u[k+1] ... (+/–) u[n] |
예제
Sum 블록의 입력 재정렬
이 예제에서는 Sum 블록이 입력을 재정렬하는 방식을 보여줍니다. 첫 번째 연산으로 -
부호를 사용하는 경우 블록은 가능한 경우 +
연산을 사용하도록 입력을 재정렬합니다. 예를 들어, Sum 블록은 표현식 output = -a-b+c
를 output = c-a-b
가 되도록 입력을 재정렬합니다. Sum 블록은 누산기를 초기화하기 위해 첫 번째 +
입력 포트를 사용합니다.
이 블록은 첫 번째 피연산자 a
에 대한 단항 마이너스 연산 수행을 방지하는데, 단항 마이너스 연산을 수행하면 고정소수점 데이터형의 경우 a
값이 변경될 수 있기 때문입니다. 그러한 경우 출력값은 a
, b
, c
에 대한 값을 누적한 결과와 다릅니다.
두 상수 입력 모두 int8
데이터형을 사용합니다. 또한 Sum 블록은 누산기와 출력 데이터형으로 int8
을 사용하며 정수 오버플로 시 포화가 켜져 있습니다. Sum 블록은 이상적인 결과(127
)를 제공하도록 입력을 재정렬합니다.
(-Input1 + Input2)
를(Input2 - Input1)
로 입력을 재정렬합니다.첫 번째
+
입력 포트를 사용하여 누산기를 초기화합니다.Accumulator = int8(-1) = -1
값을 계속 누적합니다.
Accumulator = Accumulator - int8(-128) = 127
블록의 출력을 계산합니다.
Output = int8(127) = 127
Sum 블록이 입력을 재정렬하지 않으면 이상적이지 않은 결과(126
)를 얻게 됩니다.
첫 번째 입력 포트를 사용하여 누산기를 초기화합니다.
Accumulator = int8(-(-128)) = 127
포화가 켜져 있기 때문에 누산기의 초기값은
127
에서 포화되고 래핑되지 않습니다.값을 계속 누적합니다.
Accumulator = Accumulator + int8(-1) = 126
블록의 출력을 계산합니다.
Output = int8(126) = 126
output = -a-b+c
에 대한 단항 마이너스 연산을 명시적으로 지정하려면 Math Operations 라이브러리의 Unary Minus 블록을 사용하면 됩니다.
포트
입력
모든 입력의 데이터형이 동일해야 함 파라미터를 선택하지 않으면 입력의 데이터형이 서로 다를 수 있습니다.
Port_1 — 첫 번째 입력 피연산자 신호
스칼라 | 벡터 | 행렬
덧셈 또는 뺄셈 연산에 대한 입력 신호입니다. 입력 신호가 하나만 있는 경우 덧셈 또는 뺄셈은 모든 차원 또는 지정된 차원에서 요소에 대해 수행됩니다.
데이터형: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Port_n — n번째 입력 피연산자 신호
스칼라 | 벡터 | 행렬
연산에 대한 n번째 입력 신호입니다. 입력 개수는 부호 목록 파라미터의 부호 개수와 일치합니다. 블록은 연산을 나열된 순서대로 입력에 적용합니다. 입력 포트 개수와 동일한 숫자형 값을 부호 목록 파라미터로 사용할 수도 있습니다. 블록은 입력 포트를 생성하고 모든 입력에 덧셈을 적용합니다. 예를 들어 부호 목록 파라미터에 5
를 할당할 경우 블록은 입력 포트를 5
개 생성하고 이를 더해 출력을 생성합니다.
모든 비 스칼라 입력은 차원이 동일해야 합니다. 스칼라 입력은 다른 입력과 같은 차원을 갖도록 확장됩니다.
데이터형: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
출력
Port_1 — 출력 신호
스칼라 | 벡터 | 행렬
덧셈 및/또는 뺄셈 연산의 결과로 생성된 출력 신호입니다. 출력 신호는 입력 신호와 동일한 차원을 가집니다.
데이터형: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
파라미터
기본
아이콘 형태 — 블록 아이콘 형태
사각형 (디폴트 값) | 원형
블록 아이콘의 형태를 사각형 또는 원형으로 지정합니다.
사각형 블록의 경우 맨 위 포트가 첫 번째 입력 포트입니다. 원형 Sum 블록의 경우 블록을 중심으로 반시계 방향으로 움직일 때 12시 위치에 가장 가까운 포트가 첫 번째 입력 포트입니다. 마찬가지로 다른 입력 포트도 블록을 중심으로 반시계 방향 순서로 표시됩니다.
프로그래밍 방식의 사용법
블록 파라미터: IconShape |
유형: 문자형 벡터 |
값: 'rectangular' | 'round' |
디폴트 값: 'round' |
부호 목록 — 입력에 대해 수행되는 연산
++
(디폴트 값) | +
| -
| |
| integer
입력에 대해 수행할 덧셈 및 뺄셈 연산을 입력합니다. 연산마다 입력 포트가 생성됩니다. 스페이서(|
)는 블록 아이콘의 입력 포트 사이에 추가 공간을 생성합니다. 덧셈이 디폴트 연산입니다. 입력에 대해 덧셈만 수행하려는 경우 입력 포트의 개수를 입력합니다. 나열된 순서대로 연산이 수행됩니다.
요소를 한 개만 입력할 경우 블록은 다음을 따라 합산 파라미터를 활성화합니다. 벡터 입력이 하나만 있는 경우 +
또는 -
는 모든 차원 또는 지정된 차원에서 요소를 더하거나 뺍니다.
팁
부호 목록 파라미터의 기호 사이에 스페이서(|
)를 삽입하여 블록에서 입력 포트의 위치를 조절할 수 있습니다. 예를 들어 “++|--
”는 두 번째 입력 포트와 세 번째 입력 포트 사이에 추가 공간을 생성합니다.
프로그래밍 방식의 사용법
블록 파라미터: Inputs |
유형: 문자형 벡터 |
값: '+' | '-' | | | 정수 |
디폴트 값: '++' |
적용 범위 — 지정된 차원을 따라 함수를 적용하는 방법
모든 차원
(디폴트 값) | 지정된 차원
지정된 차원에 따라 함수를 적용하는 방법을 지정합니다.
모든 차원
— 모든 차원의 모든 입력값에 함수를 적용합니다.예를 들어, 이 모델에서 부호 목록은
+
로 설정되고 적용 범위는모든 차원
으로 설정되어 있다고 가정하겠습니다. 블록은 모든 차원의 모든 입력값의 합을 반환합니다.구성 파라미터 행 우선 배열 레이아웃에 최적화된 알고리즘 사용을 선택할 경우, Simulink®는 시뮬레이션에 대해 행 우선 알고리즘을 활성화합니다. 행 우선 코드를 생성하려면 구성 파라미터 배열 레이아웃 (Simulink Coder)을
행 우선
으로 설정하고 행 우선 배열 레이아웃에 최적화된 알고리즘 사용을 선택하십시오. 열 우선 알고리즘과 행 우선 알고리즘은 합산 순서만 다릅니다. 경우에 따라 동일한 데이터 세트의 서로 다른 연산 순서로 인해 열 우선 알고리즘과 행 우선 알고리즘의 출력 간에 미미한 수치 차이가 발생할 수 있습니다.지정된 차원
— 지정된 차원의 모든 입력값에 함수를 적용합니다.
종속성
이 파라미터를 활성화하려면 부호 목록 파라미터에 부호를 한 개만 입력합니다.
프로그래밍 방식의 사용법
블록 파라미터: CollapseMode |
유형: 문자형 벡터 |
값: 'All dimensions' | 'Specified dimension' |
디폴트 값: 'All dimensions' |
차원 — 합산을 적용할 차원
1
(디폴트 값) | positive integer
합산을 적용할 차원을 양의 정수로 지정합니다.
블록은 MATLAB® sum
함수와 동일한 합산 규칙을 따릅니다. 자세한 내용은 알고리즘 항목을 참조하십시오.
예를 들어, 아래 모델에서 부호 목록은 +
로 설정되고 적용 범위는 지정된 차원
으로 설정되며 차원은 2
로 설정되어 있다고 가정하겠습니다. 블록은 각 행 입력값의 합을 반환합니다.
지정된 차원이 입력 차원보다 크면 오류 메시지가 표시됩니다.
종속성
이 파라미터를 활성화하려면 적용 범위를 지정된 차원
으로 설정합니다.
프로그래밍 방식의 사용법
블록 파라미터: CollapseDim |
유형: 문자형 벡터 |
값: integer |
디폴트 값: '1' |
샘플 시간(상속된 경우 -1) — 샘플 간의 간격
-1
(디폴트 값) | 스칼라 | 벡터
샘플 간의 시간 간격을 지정합니다. 샘플 시간을 상속하려면 이 파라미터를 -1
로 설정하십시오. 자세한 내용은 샘플 시간 지정하기 항목을 참조하십시오.
종속성
이 파라미터는 -1
이외의 값으로 설정한 경우에만 표시됩니다. 자세한 내용은 Blocks for Which Sample Time Is Not Recommended 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: SampleTime |
유형: string형 스칼라 또는 문자형 벡터 |
디폴트 값: "-1" |
신호 특성
데이터형 도우미를 사용하면 데이터 특성을 쉽게 설정할 수 있습니다. 데이터형 도우미를 사용하려면 을 클릭하십시오. 자세한 내용은 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.
출력 최솟값 — 범위 검사를 위한 최소 출력값
[]
(디폴트 값) | 스칼라
Simulink에서 검사하는 출력 범위의 하한 값입니다.
Simulink는 이 최솟값을 사용하여 다음 작업을 수행합니다.
일부 블록에 대해 파라미터 범위 검사(Specify Minimum and Maximum Values for Block Parameters 참조).
시뮬레이션 범위 검사(Specify Signal Ranges 및 Enable Simulation Range Checking 참조).
고정소수점 데이터형의 자동 스케일링.
모델에서 생성한 코드 최적화. 이 최적화 작업은 알고리즘의 코드를 제거하고, SIL 또는 외부 모드 같은 일부 시뮬레이션 모드의 결과에 영향을 줄 수 있습니다. 자세한 내용은 Optimize using the specified minimum and maximum values (Embedded Coder) 항목을 참조하십시오.
참고
출력 최솟값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.
프로그래밍 방식의 사용법
블록 파라미터: OutMin |
유형: 문자형 벡터 |
값: '[ ]' | 스칼라 |
디폴트 값: '[ ]' |
출력 최댓값 — 범위 검사를 위한 최대 출력값
[]
(디폴트 값) | 스칼라
Simulink에서 검사하는 출력 범위의 상한 값입니다.
Simulink는 이 최댓값을 사용하여 다음 작업을 수행합니다.
일부 블록에 대해 파라미터 범위 검사(Specify Minimum and Maximum Values for Block Parameters 참조).
시뮬레이션 범위 검사(Specify Signal Ranges 및 Enable Simulation Range Checking 참조).
고정소수점 데이터형의 자동 스케일링.
모델에서 생성한 코드 최적화. 이 최적화 작업은 알고리즘의 코드를 제거하고, SIL 또는 외부 모드 같은 일부 시뮬레이션 모드의 결과에 영향을 줄 수 있습니다. 자세한 내용은 Optimize using the specified minimum and maximum values (Embedded Coder) 항목을 참조하십시오.
참고
출력 최댓값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.
프로그래밍 방식의 사용법
블록 파라미터: OutMax |
유형: 문자형 벡터 |
값: '[ ]' | 스칼라 |
디폴트 값: '[ ]' |
출력 데이터형 — 출력 데이터형 지정
상속: 내부 규칙을 통해 상속
(디폴트 값) | 상속: MSB 유지
| 상속: LSB 유지
| 상속: 역전파를 통해 상속
| 상속: 첫 번째 입력과 동일
| 상속: 누산기와 동일
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <데이터형 표현식>
출력의 데이터형을 선택합니다. 유형은 상속되거나 직접 지정되거나 Simulink.NumericType
과 같은 데이터형 객체로 표현될 수 있습니다.
상속된 옵션을 선택하면 블록은 다음과 같이 동작합니다.
상속: 내부 규칙을 통해 상속
—Simulink는 임베디드 타깃 하드웨어의 속성을 고려하면서도 수치적 정확도와 성능, 생성된 코드 크기 간에 균형을 이루도록 데이터형을 선택합니다.참고
누산기 내부 규칙은 가능한 한 생성된 코드의 효율성을 덜 저하시키면서 수치적 정확도를 높이려고 합니다. 출력에 대해 동일한 정확도를 얻으려면 출력 데이터형을
상속: 누산기와 동일
로 설정하십시오.참고
입력값이 단정밀도보다 작은 부동소수점 데이터형인 경우
상속: 내부 규칙을 통해 상속
출력 데이터형은 Inherit floating-point output type smaller than single precision 구성 파라미터의 설정에 따라 다릅니다. 데이터형을 인코딩하는 데 필요한 비트 수가 단정밀도 데이터형을 인코딩하는 데 필요한 32비트보다 작으면 데이터형은 단정밀도보다 작습니다. 예를 들어,half
형과int16
형은 단정밀도보다 작습니다.상속: MSB 유지
– Simulink는 전체 연산 범위를 유지하는 데이터형을 선택한 다음, 출력 정밀도를 임베디드 타깃 하드웨어에 적합한 크기로 줄입니다.팁
생성된 코드의 효율성을 높이려면 누산기 데이터형을
상속: 내부 규칙을 통해 상속
으로 설정한 후 정수 오버플로 시 포화 파라미터를 선택 취소합니다.이 규칙으로 인해 오버플로가 생성되는 일은 없습니다.
상속: LSB 유지
– Simulink는 연산 정밀도를 유지하는 데이터형을 선택합니다. 하지만 전체 유형이 임베디드 타깃 하드웨어에 적합하지 않은 경우 범위를 줄입니다.팁
생성된 코드의 효율성을 높이려면 누산기 데이터형을
상속: 내부 규칙을 통해 상속
으로 설정한 후 정수 오버플로 시 포화 파라미터를 선택 취소합니다.이 규칙으로 인해 오버플로가 생성될 수 있습니다.
임베디드 타깃 설정을 변경할 경우 그러한 내부 규칙을 통해 선택된 데이터형이 변경될 수 있습니다. 항상 코드 효율성과 수치적 정확도를 동시에 최적화할 수 있는 것은 아닙니다. 규칙이 수치적 정확도 또는 성능의 특정 요건에 부합되지 않으면 다음 옵션 중 하나를 사용하십시오.
명시적으로 출력 데이터형을 지정합니다.
상속: 첫 번째 입력과 동일
이라는 간단한 옵션을 사용합니다.명시적으로
fixdt(1,32,16)
같은 디폴트 데이터형을 지정한 다음, 모델의 데이터형을 제안하는 고정소수점 툴을 사용합니다. 자세한 내용은fxptdlg
(Fixed-Point Designer) 항목을 참조하십시오.고유한 상속 규칙을 지정하려면
상속: 역전파를 통해 상속
을 사용한 후 Data Type Propagation 블록을 사용합니다. 이 블록의 사용 방법에 대한 예는 Signal Attributes 라이브러리의 Data Type Propagation Examples 블록에서 볼 수 있습니다.
상속: 역전파를 통해 상속
— 구동 블록의 데이터형을 사용합니다.상속: 첫 번째 입력과 동일
— 첫 번째 입력 신호의 데이터형을 사용합니다.상속: 누산기와 동일
— 누산기의 데이터형을 사용합니다.
프로그래밍 방식의 사용법
블록 파라미터: OutDataTypeStr |
유형: 문자형 벡터 |
값: 'Inherit: Inherit via internal rule |'Inherit: Keep MSB' |'Inherit: Keep LSB' | 'Inherit: Inherit via back propagation' 'Inherit: Same as first input' | 'Inherit: Same as accumulator' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' , 'int32' | 'uint32' | 'int64' | 'uint64' |'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
디폴트 값: 'Inherit: Inherit via internal rule' |
누산기 데이터형 — 누산기의 데이터형
상속: 내부 규칙을 통해 상속
(디폴트 값) | 상속: 첫 번째 입력과 동일
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <데이터형 표현식>
누산기의 데이터형을 선택합니다. 유형은 상속되거나 직접 지정되거나 Simulink.NumericType
과 같은 데이터형 객체로 표현될 수 있습니다. 상속: 내부 규칙을 통해 상속
을 선택할 경우, Simulink는 임베디드 타깃 하드웨어의 속성을 고려하면서도 수치적 정확도와 성능, 생성된 코드 크기 간에 균형을 이루도록 데이터형을 선택합니다.
프로그래밍 방식의 사용법
블록 파라미터: AccumDataTypeStr |
유형: 문자형 벡터 |
값: 'Inherit: Inherit via internal rule | 'Inherit: Same as first input' | 'double' 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' , 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
디폴트 값: 'Inherit: Inherit via internal rule' |
모든 입력의 데이터형이 동일해야 함 — 모든 입력의 데이터형이 동일해야 함
off
(디폴트 값) | on
입력 신호의 데이터형이 모두 동일해야 하는지 여부를 지정합니다. 이 파라미터를 활성화할 경우 입력 신호 유형이 다르면 시뮬레이션 중에 오류가 발생합니다.
프로그래밍 방식의 사용법
블록 파라미터: InputSameDT |
유형: 문자형 벡터 |
값: 'off' | 'on' |
디폴트 값: 'off' |
고정소수점 툴에 의해 변경되지 않도록 데이터형 설정 잠금 — 고정소수점 툴에 의해 데이터형이 재정의되지 않도록 방지
off
(디폴트 값) | on
고정소수점 툴과 고정소수점 어드바이저에 의해 변경되지 않도록 이 블록의 데이터형 설정을 잠그려면 선택합니다. 자세한 내용은 Lock the Output Data Type Setting (Fixed-Point Designer) 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: LockScale |
값: 'off' | 'on' |
디폴트 값: 'off' |
정수 반올림 모드 — 고정소수점 연산의 반올림 모드
내림(Floor)
(디폴트 값) | 올림(Ceiling)
| 수렴(Convergent)
| 최근접(Nearest)
| 반올림(Round)
| 최대단순(Simplest)
| 0 방향(Zero)
고정소수점 연산의 반올림 모드를 지정합니다. 자세한 내용은 반올림 (Fixed-Point Designer) 항목을 참조하십시오.
블록 파라미터는 표현 가능한 가장 가까운 값으로 항상 반올림됩니다. 블록 파라미터의 반올림 동작을 제어하려면 마스크 필드에 MATLAB 반올림 함수를 사용하여 표현식을 입력하십시오.
프로그래밍 방식의 사용법
블록 파라미터: RndMeth |
유형: 문자형 벡터 |
값: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
디폴트 값: 'Floor' |
정수 오버플로 시 포화 — 오버플로 동작 방법
off
(디폴트 값) | on
오버플로 시 포화시킬지 아니면 래핑할지를 지정합니다.
동작 | 근거 | 오버플로 시 영향 | 예 |
---|---|---|---|
이 체크박스를 선택합니다( | 모델에 오버플로가 발생할 가능성이 있어 생성된 코드에서 포화 보호를 명시적으로 지정하려고 합니다. | 오버플로 시 데이터형이 표현할 수 있는 최솟값 또는 최댓값으로 포화됩니다. |
|
이 체크박스를 선택하지 않습니다( | 생성된 코드의 효율성을 최적화하려고 합니다. 블록이 범위를 벗어난 신호를 처리하는 방법을 과도하게 지정하는 일을 방지하려고 합니다. 자세한 내용은 Troubleshoot Signal Range Errors 항목을 참조하십시오. | 오버플로 시 데이터형이 표현할 수 있는 적절한 값으로 래핑됩니다. |
|
이 체크박스를 선택하는 경우 출력이나 결과뿐만 아니라 블록의 모든 내부 연산에 포화가 적용됩니다. 대개 코드 생성 프로세스는 오버플로가 발생할 가능성이 없는 경우를 감지할 수 있습니다. 이 경우, 코드 생성기는 포화 코드를 생성하지 않습니다.
프로그래밍 방식의 사용법
블록 파라미터: SaturateOnIntegerOverflow |
유형: 문자형 벡터 |
값: 'off' | 'on' |
디폴트 값: 'off' |
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|
알고리즘
블록은 MATLAB sum
함수와 동일한 합산 규칙을 따릅니다.
2×3 행렬 U가 있다고 가정하겠습니다.
차원을
1
로 설정하면 출력 Y가 다음과 같이 계산됩니다.차원을
2
로 설정하면 출력 Y가 다음과 같이 계산됩니다.
확장 기능
C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.
HDL Coder™는 HDL 구현과 합성된 논리에 영향을 주는 추가 구성 옵션을 제공합니다.
디폴트 선형
아키텍처는 N개 입력에 대해 N개 연산(가산기)의 체인을 생성합니다.
Sum of Elements 블록의 경우 HDL Coder는 여러 개의 요소가 있는 단일 벡터 입력을 갖는 Sum of Elements 블록에 대해 트리
아키텍처를 지원합니다.
이 블록은 생성 코드에 추가 대기 시간을 야기하는 다중 사이클 구현을 갖습니다. 추가된 대기 시간을 보려면 생성된 모델 또는 검증 모델을 확인하십시오. Generated Model and Validation Model (HDL Coder) 항목을 참조하십시오.
아키텍처 | 추가 대기 시간 사이클 | 설명 |
---|---|---|
선형 | 0 | 곱의 합을 계산하기 위해 가산기들의 선형 체인이 생성됩니다. 여러 입력의 비트 너비가 서로 다른 경우 |
트리 | 0 | 곱의 합을 계산하기 위해 가산기가 트리 구조로 생성됩니다. |
참고
HDL 블록 속성 대화 상자의 네이티브 부동소수점 탭에서 LatencyStrategy 설정을 사용하려면 선형
또는 트리
를 HDL 아키텍처로 지정하십시오.
일반 | |
---|---|
ConstrainedOutputPipeline | 기존 지연을 설계 내부로 이동하여 출력에 배치하는 레지스터 개수입니다. 분산된 파이프라이닝은 이러한 레지스터를 다시 분산하지 않습니다. 디폴트 값은 |
InputPipeline | 생성된 코드에 삽입할 입력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
OutputPipeline | 생성된 코드에 삽입할 출력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
참고
Sum of Elements 블록에서는 네이티브 부동소수점 모드에서 double 데이터형으로 HDL 코드를 생성할 수 없습니다.
네이티브 부동소수점 | |
---|---|
LatencyStrategy | 부동소수점 연산자인 경우 설계 내 블록을 |
NFPCustomLatency | 값을 지정하려면 LatencyStrategy를 |
디폴트 선형
구현은 복소수 데이터를 지원합니다.
트리
구현은 부호 목록 블록 파라미터에서 +
를 사용한 복소수 데이터를 지원합니다. 네이티브 부동소수점을 지원하는 트리
구현은 부호 목록에서 +
및 -
를 모두 사용한 복소수 데이터를 지원합니다.
스칼라 입력과 벡터 입력이 혼합된 다중 입력 Sum 블록에 대해 HDL 코드를 생성하려면, Sum 블록의 처음 두 입력 중 하나에 벡터 입력을 지정해야 합니다.
PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.
고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.
버전 내역
R2006a 이전에 개발됨R2024a: Sum, Sum of Elements, Subtract, Add 블록에 새로운 파라미터 이름이 추가됨
Sum, Sum of Elements, Subtract, Add 블록에 대해 다음을 따라 합산 파라미터의 이름이 적용 범위로 변경되었습니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)