ฉันทำแบบนี้สองสามครั้ง
โดยทั่วไปเครื่องมือออกแบบจะเลือกระหว่างการนำแฟบริคไปใช้กับชิ้นส่วน DSP ตามการตั้งค่าการสังเคราะห์
ตัวอย่างเช่นสำหรับ Xilinx ISE ในการตั้งค่ากระบวนการสังเคราะห์ตัวเลือก HDL จะมีการตั้งค่า "-use_dsp48" พร้อมตัวเลือก: อัตโนมัติ, AutoMax, ใช่, ไม่ใช่อย่างที่คุณจินตนาการการควบคุมเครื่องมือจะพยายามอย่างหนัก DSP ชิ้น ฉันเคยมีปัญหาเมื่อฉันคูณจำนวนเต็มด้วย 3 ซึ่งอนุมาน DSP slice - ยกเว้นว่าฉันได้อนุมาน DSP DSP ทุกชิ้นในชิปด้วยตนเองแล้วดังนั้น synth จึงล้มเหลว! ฉันเปลี่ยนการตั้งค่าเป็นไม่ใช่เพราะฉันใช้ชิ้นส่วน dsp ทุกครั้งแล้ว
นี่น่าจะเป็นกฎง่ายๆที่ดี (ฉันเพิ่งทำไป): ถ้าการออกแบบของคุณมีสัญญาณนาฬิกาที่น้อยกว่า 50 MHz และคุณอาจจะใช้ DSP น้อยกว่า 50% ของชิป DSP ในชิปจากนั้นก็ใช้ *, +, และ - ตัวดำเนินการ สิ่งนี้จะอนุมานว่าตัวแบ่ง DSP นั้นไม่มีการลงทะเบียนไปป์ไลน์ นี่เป็นการ จำกัด ความเร็วสูงสุดจริงๆ (ฉันไม่รู้ว่าจะเกิดอะไรขึ้นเมื่อคุณใช้การหาร)
อย่างไรก็ตามหากดูเหมือนว่าคุณจะเรียกใช้ชิ้นส่วนที่ใกล้เคียงกับความเร็วสูงสุดของชิ้น DSP (333 MHz สำหรับเกรดความเร็วปกติ Spartan 6) คุณจะใช้ชิ้นส่วนทั้งหมดด้วยตนเองคุณควรสรุปด้วยตนเอง .
ในกรณีนี้คุณมีสองตัวเลือก
ตัวเลือก 1: ใช้เทมเพลตการสร้างอินสแตนซ์ดิบ DSP ด้วยตนเอง ตัวเลือกที่ 2: ใช้บล็อก IP จาก Xilinx Core Generator (ฉันจะใช้ตัวเลือกนี้ในเวลาเดียวกันคุณจะได้เรียนรู้เกี่ยวกับ core gen ซึ่งจะช่วยในอนาคต)
ก่อนที่คุณจะทำอย่างใดอย่างหนึ่งให้อ่านหน้าแรกของคู่มือผู้ใช้งานชิ้น DSP ในกรณีของ Spartan 6 (DSP48A1) นั่นจะเป็น Xilinx doc UG389:
http://www.xilinx.com/support/documentation/user_guides/ug389.pdf
พิจารณาตัวเลือก Core Generator ก่อน ฉันมักจะสร้างโครงการทดสอบใน Core Generator สำหรับส่วนที่ฉันทำงานด้วยซึ่งฉันจะสร้างบล็อก IP จำนวนเท่าใดก็ได้เพื่อเรียนรู้ระบบ จากนั้นเมื่อฉันพร้อมที่จะเพิ่มการออกแบบของฉันใน ISE ฉันคลิกขวาในลำดับชั้นการออกแบบคลิกแหล่งที่มาใหม่และเลือก "IP (CORE Generator & Architecture Wizard)" เพื่อให้ฉันสามารถแก้ไขและสร้างบล็อกใหม่ได้โดยตรง จากโครงการของฉัน
ใน Core Gen ลองดูที่บล็อก IP ต่างๆที่คุณสามารถเลือกได้ - มีไม่กี่โหลซึ่งส่วนใหญ่ค่อนข้างเท่ห์
The Multiplier Core คือสิ่งที่คุณควรพิจารณาก่อน ลองดูทุกหน้าแล้วคลิกปุ่มแผ่นข้อมูล ส่วนสำคัญคือความกว้างบิตจำนวนเต็มขั้นตอนไปป์ไลน์ (เวลาแฝง) และสัญญาณควบคุมใด ๆ สิ่งนี้สร้างบล็อกที่เป็นไปได้ง่ายที่สุดโดยนำพอร์ตทั้งหมดที่คุณไม่ต้องการออกไป
เมื่อฉันสร้างตัวกรอง IIR ลำดับ 5 โดย 3 เมื่อปีที่แล้วฉันต้องใช้เทมเพลตการสร้างอินสแตนซ์แบบแมนนวลตั้งแต่ฉันสร้างการใช้งานที่กำหนดเองด้วย DSP DSP 2 แผ่นที่โอเวอร์คล็อกได้เร็วกว่าอัตราตัวอย่าง 4 เท่า มันเป็นความเจ็บปวดทั้งหมด