DSP48E2
- 업데이트 날짜:2023-02-17
- 9분 (읽기 시간)
DSP48E2
일부 Xilinx FPGA 타겟에서 사용 가능한 DSP48E2 슬라이스에서 사용자 정의가 가능한 산술식 또는 로직 연산을 계산합니다.
아이템 탭에서 노드 인터페이스를 설정하여 런타임에 노드가 실행하는 산술식 또는 로직 연산을 사용자 정의합니다.
입력/출력

a
슬라이스에서 산술 계산 또는 로직 연산에 사용할 값.
고정 소수점 숫자 정밀도 유지하기
고정 소수점 값은 다른 데이터 타입을 가진 컨트롤과 인디케이터에 따라 변경되지 않습니다. 그 대신, 프로그램은 값을 강제 변환하며 이 결과 정밀도가 떨어집니다. 정밀도를 유지하려면, 일치하는 데이터 타입을 가진 고정 소수점 값을 입력에 연결하거나 입력의 정수 워드 길이를 변경합니다.

acin
슬라이스에서 산술 계산 또는 로직 연산에 사용할 값으로 이전 [DSP48] 노드로부터 전달받은 a의 값.
이 입력을 디스플레이하려면, 아이템 탭의 커넥터 팬 변경을 클릭하고, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 acin 옵션 버튼을 선택합니다.
종속형 입력 연결
이 종속형 입력은 다른 [DSP48] 노드의 acout 출력에만 연결할 수 있습니다.

b
슬라이스에서 산술 계산 또는 로직 연산에 사용할 값.
고정 소수점 숫자 정밀도 유지하기
고정 소수점 값은 다른 데이터 타입을 가진 컨트롤과 인디케이터에 따라 변경되지 않습니다. 그 대신, 프로그램은 값을 강제 변환하며 이 결과 정밀도가 떨어집니다. 정밀도를 유지하려면, 일치하는 데이터 타입을 가진 고정 소수점 값을 입력에 연결하거나 입력의 정수 워드 길이를 변경합니다.

bcin
슬라이스에서 산술 계산 또는 로직 연산에 사용할 값으로 이전 [DSP48] 노드로부터 전달받은 b의 값.
이 입력을 디스플레이하려면, 아이템 탭의 커넥터 팬 변경을 클릭하고, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 bcin 옵션 버튼을 선택합니다.
종속형 입력 연결
이 종속형 입력은 다른 [DSP48] 노드의 bcout 출력에만 연결할 수 있습니다.

c
슬라이스에서 산술 계산 또는 로직 연산에 사용할 값.
고정 소수점 숫자 정밀도 유지하기
고정 소수점 값은 다른 데이터 타입을 가진 컨트롤과 인디케이터에 따라 변경되지 않습니다. 그 대신, 프로그램은 값을 강제 변환하며 이 결과 정밀도가 떨어집니다. 정밀도를 유지하려면, 일치하는 데이터 타입을 가진 고정 소수점 값을 입력에 연결하거나 입력의 정수 워드 길이를 변경합니다.

inmode
a, b, d 및 입력 레지스터와 함께 사전 가산기의 기능을 선택하는 컨트롤 비트.
이 입력은 아이템 탭에서 계산 옵션에 사용자를 선택할 경우에만 나타납니다.

pcin
슬라이스에서 산술 계산 또는 로직 연산에 사용할 값으로 이전 DSP48 노드로부터 전달받은 p의 값.
이 입력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 pcin 확인란을 선택합니다.
종속형 입력 연결
이 종속형 입력은 다른 [DSP48] 노드의 pcout 출력에만 연결할 수 있습니다.

carryin
FPGA 로직의 캐리 입력을 나타내는 불리언 값.
| 참 | DSP48 슬라이스의 외부 산술 연산 종속형 캐리 입력은 1로 설정됩니다. |
| 거짓 | DSP48 슬라이스의 외부 산술 연산 종속형 캐리 입력은 0으로 설정됩니다. |
이 입력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 carryin 확인란을 선택합니다.

carrycascin
이전 DSP48 노드의 종속형 캐리 입력을 나타내는 불리언 값.
| 참 | DSP48 슬라이스의 외부 산술 연산 종속형 캐리 입력은 1로 설정됩니다. |
| 거짓 | DSP48 슬라이스의 외부 산술 연산 종속형 캐리 입력은 0으로 설정됩니다. |
이 입력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 carrycascin 확인란을 선택합니다.
종속형 입력 연결
이 종속형 입력은 다른 [DSP48] 노드의 carrycascout 출력에만 연결할 수 있습니다.

multsignin
이전 DSP48 노드 계산을 곱한 결과의 부호를 나타내는 불리언 값.
| 참 | 이전 DSP48 노드의 결과를 곱한 값은 음수이고, DSP48 슬라이스의 입력은 1로 설정됩니다. |
| 거짓 | 이전 DSP48 노드의 결과를 곱한 값은 양수이고, DSP48 슬라이스의 입력은 0으로 설정됩니다. |
이 입력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 multsignin 확인란을 선택합니다.
종속형 입력 연결
이 종속형 입력은 다른 [DSP48] 노드의 multsignin 출력에만 연결할 수 있습니다.

alumode
슬라이스가 평가하는 산술식 또는 로직 연산을 선택하는 컨트롤 비트.
이 입력은 아이템 탭에서 계산 옵션에 사용자를 선택할 경우에만 나타납니다.

opmode
슬라이스에서 X, Y, Z 멀티플렉서의 입력을 선택하는 컨트롤 비트.
이 입력은 아이템 탭에서 계산 옵션에 사용자를 선택할 경우에만 나타납니다.

carryinsel
캐리 소스를 선택하는 컨트롤 비트.
이 입력은 아이템 탭에서 계산 옵션에 사용자를 선택할 경우에만 나타납니다.

acout
다른 [DSP48] 노드에 종속될 a의 값.
이 출력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 acout 확인란을 선택합니다.
종속형 출력 연결
이 종속형 출력은 다른 [DSP48] 노드의 acin 입력에만 연결할 수 있습니다.

bcout
다른 DSP48 노드에 종속될 b의 값.
이 출력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 bcout 확인란을 선택합니다.
종속형 출력 연결
이 종속형 출력은 다른 [DSP48] 노드의 bcin 입력에만 연결할 수 있습니다.

p
슬라이스가 실행한 작업의 결과.
고정 소수점 숫자 정밀도 유지하기
고정 소수점 값은 다른 데이터 타입을 가진 컨트롤과 인디케이터에 따라 변경되지 않습니다. 그 대신 프로그램은 값을 강제 변환하며 그 결과로 정밀도가 떨어지게 됩니다. 정밀도를 유지하려면, 일치하는 데이터 타입을 가진 고정 소수점 값을 출력에 연결하거나 출력의 정수 워드 길이를 변경합니다.

pcout
다른 DSP48 노드에 종속될 p의 값.
이 출력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 pcout 확인란을 선택합니다.
종속형 출력 연결
이 종속형 출력은 다른 [DSP48] 노드의 pcin 입력에만 연결할 수 있습니다.

carryout
DSP48 슬라이스로부터의 4비트 캐리 출력.
이 출력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 carryout 확인란을 선택합니다.

carrycascout
다른 DSP48 노드에 종속될 캐리 출력에 대한 컨트롤 비트를 나타내는 불리언 값.
| 참 | DSP48 슬라이스의 외부 산술 연산 종속형 캐리 출력은 1로 설정됩니다. |
| 거짓 | DSP48 슬라이스의 외부 산술 연산 종속형 캐리 출력은 0으로 설정됩니다. |
이 출력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 carrycascout 확인란을 선택합니다.
종속형 출력 연결
이 종속형 출력은 다른 [DSP48] 노드의 carrycascout 입력에만 연결할 수 있습니다.

multsignout
다른 DSP48 노드에 종속될 결과를 곱한 값의 부호를 나타내는 불리언 값.
| 참 | 곱해진 결과가 음수이고, DSP48 슬라이스의 출력은 1로 설정되어 있습니다. |
| 거짓 | 곱해진 결과가 양수이고, DSP48 슬라이스의 출력은 0으로 설정되어 있습니다. |
이 출력을 디스플레이하려면 아이템 탭의 커넥터 팬 변경을 클릭한 후, DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 multsignout 확인란을 선택합니다.
종속형 출력 연결
이 종속형 출력은 다른 [DSP48] 노드의 multsignin 입력에만 연결할 수 있습니다.
노드 인터페이스 사용자 정의하기
아이템 탭에서 세가지 계산 옵션 중 하나를 선택하여 런타임 시 노드가 작동하는 방법을 선택합니다.
아이템 탭에서 편집을 클릭하여 수식에 사용할 값을 선택합니다.
아이템 탭에 있는 편집을 클릭하여 불리언 식을 설정합니다.
DSP48 노드는 산술 또는 로직 계산 타입을 선택할 때 opmode, alumode, inmode, carryinsel을 자동으로 설정합니다. opmode, alumode, inmode, carryinsel 입력 설정의 조합이 유효하지 않은 경우, 프로그램은 런타임 시 입력 값의 잘못된 조합을 나타내는 에러를 리포트합니다.
DSP48 노드 입력 및 출력 설정하기
DSP48 노드에는 다이어그램에서 DSP48 슬라이스의 기능을 사용자 정의할 수 있는 몇 가지 선택적 입력 및 출력이 있습니다. 선택 노드 입력 및 출력을 사용하여 노드가 실행하는 계산에 사용할 값을 설정합니다.
다음 단계를 완료하여 다이어그램에 디스플레이할 [DSP48] 노드 입력 및 출력을 선택합니다.
- 다이어그램에서, 설정하려는 DSP48 노드를 선택합니다.
- 아이템 탭에서 커넥터 팬 변경 버튼을 클릭합니다.
- DSP48 커넥터 팬 설정 대화 상자의 터미널 탭에서 다이어그램에 디스플레이할 입력 및 출력을 선택한 후, 확인을 클릭합니다.
DSP48 노드 숫자 정밀도 유지하기
프로그램에서 숫자 정밀도를 유지하려면, 계산에서 입력의 정수 워드 길이를 바르게 설정해야 합니다. 정수 워드 길이를 잘못 선택하는 경우, 계산 결과가 부정확할 수 있습니다.
DSP48 노드에서 입력의 워드 길이는 DSP48 슬라이스의 상응하는 입력의 비트 폭과 일치하는 상수값입니다. DSP48 커넥터 팬 설정 대화 상자의 고정 소수점 설정 탭을 사용하여 DSP 48 노드에서 한 개의 입력 또는 입력 세트의 정수 워드 길이를 조정합니다.
다음 테이블에서는 노드 산술식의 숫자 정밀도를 유지하기 위해 DSP48 노드의 데이터 타입을 어떻게 변경해야할지 보여줍니다.
| 노드 입력 또는 방정식 설정 | 숫자 정밀도를 유지하기 위한 필수 사항 | 예 |
|---|---|---|
|
a, b |
|
b의 소스의 데이터 타입은 I16 <1.15>입니다. 정밀도 유지에 필요한 사항을 충족하도록 b의 정수 워드 길이를 3,2, 또는 1로 설정합니다. |
|
배율기 (p = a * b) |
p의 소수점 워드 길이는 a와 b의 소수점 워드 길이의 합과 같습니다. |
소수점 워드 길이의 총합은 29입니다. 이 경우, a, b, p의 워드 길이를 이에 맞게 설정합니다.
|
|
누적기 (p = p + c) |
p의 소수점 워드 길이는 c의 소수점 워드 길이와 같습니다. |
c의 소스의 데이터 타입은 I16 <3.13>입니다. p의 정수 워드 길이를 35로 설정합니다. |
일반적인 DSP48E2 산술식 설정
DSP48는 아이템 탭의 계산 드롭 다운 메뉴에서 산술을 선택할 때 다음의 일반적인 방정식을 수행합니다.
p = (+/Not z) +/- (x+y + carryin)
z, x+y, carryin은 변수입니다. 상수값, 노드 입력값 또는 계산 결과를 이러한 변수에 할당할 수 있습니다. carryin의 소스는 z와 x+y에 지정한 값에 따라 다릅니다. 아이템 탭에 있는 편집을 클릭하여 방정식을 설정합니다.
아이템 탭의 인터페이스 드롭 다운 메뉴에서 DSP48E1을 선택하면, DSP48 설정 대화 상자에 m에 대한 두번째 방정식이 나타납니다. 이 방정식의 결과를 노드가 실행하는 계산에서 x+y의 입력값으로 사용할 수 있습니다.
DSP48 노드의 DSP48E2 인터페이스는 기본으로 다음 방정식을 수행합니다.
p = c + (m + carryin)
m = a * b
| 산술 연산 | 산술식 | 설정 |
|---|---|---|
|
곱하기 |
p = a*b+carryin |
|
|
사전 가산기로 곱하기 |
p = (d+a)*b+carryin |
|
|
곱하기-누적 |
p = p+(a*b+carryin) |
|
|
곱하기-더하기 |
p = c+ (a*b+carryin) |
|
|
곱하기-빼기 |
p = c-(a*b+carryin) |
|