ตัวอย่างนี้สาธิตวิธีการใช้ตัวกรองการปฏิเสธอัตราตัวแปรหลายแชนเนลใน Intel® DSP Builder Advanced Blockset สําหรับระบบการสร้างภาพทางการแพทย์มากมาย รวมถึงการสร้างภาพอัลตร้าซาวน์และการสร้างภาพแบบแม่เหล็กสะท้อน (MRI) จําเป็นต้องใช้ตัวกรองการคาดเดาที่กําหนดค่าใหม่ได้เพื่อลดอัตราตัวอย่างข้อมูล Echo ข้อมูลอินพุตมีอัตราตัวอย่างคงที่ แต่ต้องเปลี่ยนอัตราการลอจิกจํานวนเต็มแบบเรียลไทม์ นอกจากนี้ ความยาวตัวกรองทั้งหมดจะเพิ่มขึ้นเป็นแนวเดียวกันกับอัตราการลดจํานวน ข้อกําหนดที่คล้ายกันนี้อาจนําไปใช้ในแอปพลิเคชันการสื่อสารไร้สายและระบบอื่นๆ โครงสร้างโพลีเฟสได้รับการปรับให้เหมาะสมอย่างยิ่งสําหรับแอปพลิเคชันประเภทนี้ เนื่องจากจํานวนตัวคูณได้รับการแก้ไขในเวลาคอมไพล์และไม่เพิ่มขึ้นตามอัตราที่เพิ่มขึ้น คุณสมบัติหลักของการออกแบบนี้คือก๊อกหน่วงเวลาแบบความยาวผันแปรและอุปกรณ์จัดเก็บข้อมูลสัมประสิทธิ์ตัวกรองที่มีประสิทธิภาพ
คุณสมบัติ
ตัวอย่างการออกแบบนี้มีคุณสมบัติหลักดังต่อไปนี้:
- รองรับอัตราการลอกแบบจํานวนเต็มตามอําเภอใจ รวมถึงกรณีที่ไม่มีการเปลี่ยนแปลงอัตราตัวอย่าง
- รองรับช่องสัญญาณตามอําเภอใจ, อัตราสัญญาณนาฬิกาตามอําเภอใจ, และอัตราตัวอย่างอินพุต, ตราบเท่าที่อัตราสัญญาณนาฬิกามีค่าสูงพอที่จะประมวลผลช่องสัญญาณทั้งหมดใน Datapath เดียว, หรือกล่าวอีกนัยหนึ่ง, ไม่มีการทําซ้ําฮาร์ดแวร์
- รองรับการกําหนดค่าอัตราการลอจิกในขณะทํางานใหม่
- ใช้สองธนาคารหน่วยความจําสําหรับที่เก็บข้อมูลสัมประสิทธิ์ตัวกรองแทนการจัดเก็บค่าสัมประสิทธิ์ล่วงหน้าสําหรับอัตราทั้งหมดในหน่วยความจํา คุณสมบัตินี้ช่วยให้ธนาคารหน่วยความจําหนึ่งสามารถอัปเดตในขณะที่การออกแบบกําลังอ่านค่าสัมประสิทธิ์จากธนาคารอื่น
- การควบคุมการปรับขนาดในดาต้าพาธการตอบสนองของแรงกระตุ้น (FIR) แบบรีลไทม์
คําอธิบายฟังก์ชัน
การออกแบบนี้ใช้โครงสร้างตัวกรองการปฏิเสธโพลีเฟสฟอร์มโดยตรงและแสดงไว้ในรูปภาพที่ 1 แอดเดรสคอนโทรลเลอร์จะสร้างแอดเดรสอ่านของหน่วยความจําสัมประสิทธิ์ ตัวเลือกธนาคาร และที่อยู่สําหรับการเขียนของตัวแปรการแตะหน่วงเวลาแบบผันแปร ค่าสัมประสิทธิ์จะถูกจัดเก็บไว้ในบล็อก RAM บนชิป นอกจากนี้ การแตะความล่าช้าแบบผันแปรยังนําไปใช้ในหน่วยความจําแบบพอร์ตคู่ และตัวชี้ถูกควบคุมโดยอัตราการลดจํานวนในปัจจุบัน ใช้ตัวคูณจํานวนคงที่
บล็อคหน่วงเวลาการแตะแบบผันแปรในตัวอย่างนี้มีระยะชัดลึกที่สามารถกําหนดค่าใหม่ได้ในขณะทํางาน ดังนั้นจึงถูกนําไปใช้งานเป็นหน่วยความจําแบบยืดหยุ่นโดยใช้บล็อก RAM บนชิป การแตะล่าช้าแต่ละครั้งได้รับการจัดสรรตามกรณีที่แย่ที่สุด จํานวนการหน่วงเวลาจริงผ่านบล็อกการแตะล่าช้าอิงตามอัตราการปฏิเสธในปัจจุบัน ใช้ตัวชี้หรือสัญญาณแอดเดรสเดียวสําหรับทั้งการอ่านและการเขียนในการแตะการหน่วงเวลา ดังนั้นคุณจะอ่านและเขียนในตําแหน่งหน่วยความจําเดียวกัน RAM สองพอร์ตได้รับการกําหนดค่าให้อ่านเนื้อหาหน่วยความจําเก่าซึ่งทําให้ตระหนักถึงความล่าช้าของรอบที่แน่นอน
การออกแบบนี้ใช้เพียงสองธนาคารหน่วยความจําโดยมีธนาคารหนึ่งถูกอัปเดตในขณะที่อีกธนาคารหนึ่งกําลังอ่าน จําเป็นต้องมีอินเทอร์เฟซโปรเซสเซอร์เพื่อให้ได้การโหลดสัมประสิทธิ์ใหม่ในขณะทํางาน
ในสคริปต์การตั้งค่าสําหรับการออกแบบนี้ เราได้กําหนดอัตรานาฬิกา, อัตราการปฏิเสธ, ความยาวตัวกรอง, เอนจินตัวคูณ ฯลฯ การจัดการบิตความกว้างยังได้รับการเขียนสคริปต์สําหรับพารามิเตอร์อีกด้วย พารามิเตอร์หลักและคําจํากัดความของพารามิเตอร์จะแสดงอยู่ในตารางต่อไปนี้
พารามิเตอร์ทั้งหมดสามารถถูกแก้ไขเพื่อมุ่งเป้าไปที่การออกแบบที่แตกต่างกัน รหัส HDL ใหม่จะถูกสร้างขึ้นตามพารามิเตอร์ที่อัปเดต
ตารางที่ 1 ตัวอย่างพารามิเตอร์สําหรับตัวกรอง Decimation Rate Variable
คํานิยามพารามิเตอร์ | |
---|---|
ตอกบัตร | อัตรานาฬิกาFPGAที่ควรเป็นเป้าหมายMAX |
ตัวอย่าง | อัตราตัวอย่างข้อมูลอินพุต |
รอบ ระยะ เวลา | จํานวนรอบที่มีอยู่ระหว่างตัวอย่างอินพุตเฉพาะ Equals ClockRate/SampleRate และเป็นพารามิเตอร์คอมไพล์เวลา |
ChanCount | จํานวนช่องสัญญาณอินพุตและไม่ควรเกินระยะเวลา |
Rmax | อัตราการลดลงสูงสุดที่การออกแบบรองรับ |
R | อัตราการลอจิกปัจจุบันและไม่ควรเกิน Rmax |
L | ขนาดเคอร์เนล FIR หรือขนาดเอ็นจินตัวคูณ ซึ่งแสดงถึงความยาวตัวกรอง Polyphase FIR |
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบตัวกรองการสุ่มตัวอย่างใหม่ใน DSP Builder Advanced Blockset โปรดดูAN 623: การใช้ DSP Builder Advanced Blockset เพื่อใช้งานตัวกรองการสุ่มตัวอย่างซ้ํา (PDF)
ดาวน์โหลดไฟล์ที่ใช้ในตัวอย่างนี้:
ไฟล์ในการดาวน์โหลด zip นี้รวมถึง:
- vardownsampler.mdl – การวัดประสิทธิภาพการทดสอบขั้นสูงของ DSP Builder Advanced Blockset และไฟล์การออกแบบสําหรับตัวกรองการเสื่อมสภาพที่กําหนดค่าใหม่ได้
- สคริปต์ setup_vardownsampler.m – MATLAB* เพื่อกําหนดค่าการเริ่มต้นและพารามิเตอร์ของ vardownsampler.mdl
- vardownsampler_bare.mdl – ไฟล์ออกแบบบน vardownsampler.mdl บล็อกการทดสอบแบบสังเคราะห์บางตัวจะถูกลบออกสําหรับเจนเนอเรชั่นการถ่ายโอนการลงทะเบียน (RTL)
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติที่เกี่ยวข้องที่ใช้ในตัวอย่างการออกแบบนี้ในโครงการของคุณ ไปที่: