Tôi đã làm điều này một vài lần bản thân mình.
Nói chung, các công cụ thiết kế sẽ chọn giữa triển khai vải và lát DSP dựa trên các cài đặt tổng hợp.
Chẳng hạn, đối với Xilinx ISE, trong cài đặt quy trình tổng hợp, Tùy chọn HDL, có cài đặt "-use_dsp48" với các tùy chọn: Tự động, Tự động, Có, Không. Như bạn có thể tưởng tượng, điều này kiểm soát mức độ khó của các công cụ Các lát DSP. Tôi đã từng gặp một vấn đề khi tôi nhân một số nguyên với 3, suy ra một lát DSP - ngoại trừ tôi đã tự suy ra từng lát DSP trong chip, vì vậy synth đã thất bại! Tôi đã thay đổi cài đặt thành Không, vì tôi đã sử dụng mọi lát cắt dsp.
Đây có lẽ là một quy tắc tốt (tôi vừa mới tạo ra): nếu thiết kế của bạn có tốc độ dưới 50 MHz và có lẽ bạn sẽ sử dụng ít hơn 50% các lát DSP trong chip, sau đó chỉ cần sử dụng *, + và - toán tử. điều này sẽ suy ra các lát DSP không có thanh ghi đường ống. Điều này thực sự giới hạn tốc độ tối đa. (Tôi không biết điều gì xảy ra khi bạn sử dụng phép chia)
Tuy nhiên, nếu có vẻ như bạn sẽ chạy các lát gần với tốc độ tối đa của lát DSP (333 MHz cho cấp tốc độ bình thường Spartan 6) Bạn sẽ sử dụng tất cả các lát, bạn nên tự suy luận chúng .
Trong trường hợp này, bạn có hai lựa chọn.
Tùy chọn 1: sử dụng thủ công mẫu khởi tạo DSP thô. Tùy chọn 2: sử dụng khối IP từ Xilinx Core Generator. (Tôi sẽ sử dụng tùy chọn này. Đồng thời, bạn sẽ tìm hiểu tất cả về gen cốt lõi, sẽ giúp ích trong tương lai)
Trước khi bạn thực hiện một trong những điều này, hãy đọc một vài trang đầu tiên của hướng dẫn sử dụng lát DSP. Trong trường hợp của Spartan 6, (DSP48A1), đó sẽ là Xilinx doc UG389:
http://www.xilinx.com/support/documentation/user_guides/ug389.pdf
Trước tiên hãy xem xét tùy chọn Core Generator. Tôi thường tạo một dự án thử nghiệm trong Core Generator cho phần tôi đang làm việc, nơi tôi tạo bất kỳ số lượng khối IP nào chỉ để tìm hiểu hệ thống. Sau đó, khi tôi sẵn sàng thêm một thiết kế vào ISE, tôi nhấp chuột phải vào Phân cấp thiết kế, nhấp vào nguồn mới và chọn "IP (CORE Generator & Architecture Wizard)" để tôi có thể chỉnh sửa và tạo lại khối trực tiếp từ dự án của tôi.
Trong Core gen, hãy xem các khối IP khác nhau mà bạn có thể chọn - có một vài chục, hầu hết đều khá tuyệt.
Lõi nhân là thứ bạn nên xem xét đầu tiên. Kiểm tra mỗi trang và nhấp vào nút biểu dữ liệu. Các phần quan trọng là độ rộng bit nguyên, các giai đoạn đường ống (độ trễ) và bất kỳ tín hiệu điều khiển nào. Điều này tạo ra khối đơn giản nhất có thể bằng cách lấy đi tất cả các cổng bạn không cần.
Khi tôi đang xây dựng bộ lọc IIR 5 bậc 3 vào năm ngoái, tôi đã phải sử dụng mẫu khởi tạo thủ công vì tôi đang xây dựng một triển khai rất tùy chỉnh, với 2 lát DSP có tốc độ gấp 4 lần tốc độ mẫu. Đó là một nỗi đau hoàn toàn.