Stratix®V, Arria®V, Cyclone®V를 포함한 모든 28nm 장치 제품군은 3개의 가변 정밀 DSP 블록을 사용하여 25x18 복합 체배기 구조를 지원할 수 있습니다.
Quartus® II 소프트웨어는 4개의 DSP 블록을 사용하여 이 구조를 구현하는 Megacore®를 사용할 때 제한이 있습니다.
이 제한을 해결하려면 Quartus II 소프트웨어 템플릿에 있는 복잡한 25x18 곱셈 코드 템플릿을 사용하여 복잡한 승수를 추론하십시오. 이 코드 템플릿을 사용하려면 먼저 새 설계 파일을 연 다음 Quartus II 소프트웨어에서 사용할 수 있는 템플릿에서 이 템플릿을 선택해야 합니다. 이 템플릿은 Verilog 또는 VHDL 템플릿의 전체 설계 > 산술 > DSP 기능(Stratix-V, Arria-V 및 Cyclone-V)에서 찾을 수 있습니다.
편의를 위해 Verilog에 대한 이 코드 템플릿은 다음과 같습니다.
Quartus II Verilog 템플릿
복잡한 25x18 곱셈
Stratix V, Arria-V, Cyclone-V 이상 장치 제품군과 함께 사용
모듈 complex_25x18(x_r, x_i, y_r, y_i, 클록, ena1, ena0, 리셋, p_r, p_i);
이 템플릿은 Stratix-V의 복잡한 25x18 모드에 적용할 수 있습니다.
입력 [24:0] x_r;
입력 [24:0] x_i;
입력 [17:0] y_r;
입력 [17:0] y_i;
Stratix-V DSP는 최대 3개의 클록/ENA 쌍 및 2개의 비동기 리셋 신호를 지원합니다.
입력 클럭;
입력 ena1;
입력 ena0;
입력 재설정;
출력 [43:0] p_r;
출력 [43:0] p_i;
모든 입력/출력에 서명해야 합니다.
모든 입력 레지스터는 동일한 {clock, ena, reset}을 사용해야 합니다.
모든 출력 레지스터는 동일한 {clock, ena, reset}을 사용해야 합니다.
Reg 서명 [24:0] x_r_reg, x_i_reg;
Reg 서명 [17:0] y_r_reg, y_i_reg;
Reg 서명 [43:0] p_r, p_i;
와이어 서명 [25:0] A1;
와이어 서명 [18:0] A2;
와이어 서명 [18:0] A3;
와이어 서명 [43:0] P1;
와이어 서명 [43:0] P2;
와이어 서명 [43:0] P3;
할당 A1 = x_r_reg - x_i_reg;
P1 = A1 * y_i_reg 할당;
할당 A2 = y_r_reg - y_i_reg;
P2 = A2 * x_r_reg 할당;
A3 = y_r_reg y_i_reg를 할당합니다.
P3 = A3 * x_i_reg 할당;
항상 @(posedge 시계 또는 posedge 재설정)
시작
if (리셋 == 1\'B1)
시작
x_r_reg <= 0;
x_i_reg <= 0;
y_r_reg <= 0;
y_i_reg <= 0;
p_r <= 0;
p_i <= 0;
끝
다른
시작
if (ena0 == 1\'b1)
시작
x_r_reg <= x_r;
x_i_reg <= x_i;
y_r_reg <= y_r;
y_i_reg <= y_i;
끝
if (ena1 == 1\'b1)
시작
p_r <= p1 p2;
p_i <= p1 p3;
끝
끝
끝
endmodule