ID bài viết: 000077859 Loại nội dung: Thông tin sản phẩm & Tài liệu Lần duyệt cuối: 23/04/2013

Làm cách nào để triển khai hệ số nhân phức tạp 25x18 chỉ trong 3 khối DSP chính xác với độ chính xác 3 varialbe?

Môi Trường

    Phiên bản đăng ký Intel®Intel® Quartus® II
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Mô tả

Tất cả các dòng thiết bị 28 nm, bao gồm Stratix® V, Arria® V và Cyclone® V, có thể hỗ trợ cấu trúc nhân phức tạp 25x18 sử dụng 3 khối DSP chính xác thay đổi.

Có một giới hạn trong phần mềm Quartus® II khi sử dụng Megacore® triển khai cấu trúc này bằng cách sử dụng 4 khối DSP.

Độ phân giải

Để giải quyết giới hạn này, hãy sử dụng mẫu mã Complex 25x18 Multiply được tìm thấy trong các mẫu phần mềm Quartus II để suy ra hệ số nhân phức tạp của bạn.  Để sử dụng mẫu mã này, trước tiên bạn sẽ cần mở một tệp thiết kế mới, sau đó chọn mẫu này từ các mẫu có sẵn trong phần mềm Quartus II.  Mẫu này được tìm thấy trong các mẫu Verilog hoặc VHDL trong phần Các tính năng DSP > số học > thiết kế đầy đủ (Stratix-V, Arria-V và Cyclone-V).

Để thuận tiện cho bạn, mẫu mã này dành cho Verilog là bên dưới:

Mẫu Quartus II Verilog
Nhân 25x18 phức tạp
Để sử dụng với các Stratix V, Arria-V, Cyclone-V và các dòng thiết bị sau này

mô-đun complex_25x18(x_r, x_i, y_r, y_i, đồng hồ, ena1, ena0, đặt lại, p_r, p_i);
Mẫu này áp dụng cho chế độ 25x18 phức tạp trên Stratix-V
đầu vào [24:0] x_r;
đầu vào [24:0] x_i;
đầu vào [17:0] y_r;
đầu vào [17:0] y_i;
Stratix-V DSP hỗ trợ tối đa 3 cặp đồng hồ/ena và 2 tín hiệu đặt lại async
đồng hồ đầu vào;
ena1 đầu vào;
ena0 đầu vào;
đặt lại đầu vào;
đầu ra [43:0] p_r;
đầu ra [43:0] p_i;

Tất cả đầu vào/đầu ra phải được ký.
Tất cả các thanh ghi đầu vào phải sử dụng cùng {clock, ena, reset}
Tất cả thanh ghi đầu ra phải sử dụng cùng {clock, ena, reset}
reg đã ký [24:0] x_r_reg, x_i_reg;
reg đã ký [17:0] y_r_reg, y_i_reg;
reg đã ký [43:0] p_r, p_i;

dây có chữ ký [25:0] a1;
dây có chữ ký [18:0] a2;
dây có chữ ký [18:0] a3;
dây có chữ ký [43:0] p1;
dây có chữ ký [43:0] p2;
dây có chữ ký [43:0] p3;

gán a1 = x_r_reg - x_i_reg;
gán p1 = a1 * y_i_reg;
gán a2 = y_r_reg - y_i_reg;
gán p2 = a2 * x_r_reg;
gán a3 = y_r_reg y_i_reg;
gán p3 = a3 * x_i_reg;

luôn @(xung giờ đặt tư thế hoặc đặt lại đặt tên)
Bắt đầu
nếu (đặt lại == 1\'b1)
Bắt đầu
x_r_reg <= 0;
x_i_reg <= 0;
y_r_reg <= 0;
y_i_reg <= 0;
p_r <= 0;
p_i <= 0;
Cuối
Khác
Bắt đầu
nếu (ena0 == 1\'b1)
Bắt đầu
x_r_reg <= x_r;
x_i_reg <= x_i;
y_r_reg <= y_r;
y_i_reg <= y_i;
Cuối
nếu (ena1 == 1\'b1)
Bắt đầu
p_r <= p1 p2;
p_i <= p1 p3;
Cuối
Cuối
Cuối

nội bộ

Các sản phẩm liên quan

Bài viết này áp dụng cho 13 sản phẩm

FPGA Stratix® V GX
FPGA Cyclone® V GX
FPGA Stratix® V GT
FPGA Stratix® V GS
FPGA Arria® V GZ
FPGA SoC Arria® V SX
FPGA SoC Cyclone® V ST
FPGA SoC Arria® V ST
FPGA Arria® V GX
FPGA Arria® V GT
FPGA Cyclone® V E
FPGA Stratix® V E
FPGA SoC Cyclone® V SE

1

Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.