สารบัญ:
- ขั้นตอนที่ 1: VHDL และ Modelsim
- ขั้นตอนที่ 2: รหัส VHDL สำหรับการออกแบบและม้านั่งทดสอบ
- ขั้นตอนที่ 3: ไฟล์ที่แนบมา
- ขั้นตอนที่ 4: Mini-Cordic IP Core - 16 บิต
วีดีโอ: Cordic Algorithm ใช้ VHDL: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
โดย AmCoderhttps://www.linkedin.com/in/mituติดตามเพิ่มเติมโดยผู้เขียน:
เกี่ยวกับ: Mitu Raj - เป็นเพียงงานอดิเรกและผู้เรียน - นักออกแบบชิป - นักพัฒนาซอฟต์แวร์ - ผู้ที่ชื่นชอบฟิสิกส์และคณิตศาสตร์ ข้อมูลเพิ่มเติมเกี่ยวกับ AmCoder »
##นี่คือลิงก์ที่ได้รับความนิยมและคลิกมากที่สุดใน Google สำหรับการนำ VHDL ของ CORDIC ALGORITHM ไปใช้เพื่อสร้างคลื่นไซน์และโคไซน์## ในปัจจุบัน อัลกอริธึมที่มีประสิทธิภาพด้านฮาร์ดแวร์จำนวนมากมีอยู่ แต่สิ่งเหล่านี้ไม่เป็นที่ทราบแน่ชัดเนื่องจากการครอบงำของระบบซอฟต์แวร์มากกว่า หลายปี CORDIC เป็นอัลกอริธึมที่ไม่มีอะไรเลยนอกจากชุดของ shift และเพิ่มตรรกะที่ใช้สำหรับการคำนวณฟังก์ชันที่หลากหลาย รวมถึงฟังก์ชันตรีโกณมิติ ไฮเปอร์โบลิก เชิงเส้น และลอการิทึม นี่คืออัลกอริธึมที่ใช้ในเครื่องคิดเลข เป็นต้น ดังนั้นด้วยการใช้ shifters และ adders แบบง่าย เราก็สามารถออกแบบฮาร์ดแวร์ที่มีความซับซ้อนน้อยกว่า แต่พลังของ DSP โดยใช้อัลกอริธึม Cordic ดังนั้นจึงสามารถออกแบบเป็นการออกแบบ RTL เปล่าใน VHDL หรือ Verilog โดยไม่ต้องใช้หน่วยจุดทศนิยมเฉพาะหรือ IP คณิตศาสตร์ที่ซับซ้อน
ขั้นตอนที่ 1: VHDL และ Modelsim
ที่นี่อัลกอริธึม Cordic ถูกนำมาใช้โดยใช้ VHDL เพื่อสร้างคลื่นไซน์และคลื่นโคส สามารถส่งออกค่าไซน์และโคไซน์ของมุมอินพุตได้อย่างแม่นยำ รหัสนี้สามารถสังเคราะห์ได้บน FPGA Modelsim ใช้เพื่อจำลองการออกแบบและม้านั่งทดสอบ
ขั้นตอนที่ 2: รหัส VHDL สำหรับการออกแบบและม้านั่งทดสอบ
เทคนิคการปรับขนาดแบบไบนารีใช้เพื่อแสดงตัวเลขทศนิยม
โปรดผ่านเอกสารที่แนบมาก่อนที่จะรหัส
ผ่านการจำลอง cordic_v4.vhd - การออกแบบ - อินพุตเป็นมุมใน 32 บิต + บิตเครื่องหมาย; สามารถประมวลผลมุมใดก็ได้ตั้งแต่ 0 ถึง +/-360 องศาด้วยความแม่นยำในการป้อนข้อมูล 0.000000000233 องศา เมื่อให้อินพุต -> MSB เป็นบิตเครื่องหมาย และ 32 บิตที่เหลือแสดงขนาด.-เอาต์พุตของการออกแบบคือค่าไซน์และ cos ใน 16 บิต + บิตเครื่องหมาย.ie; ด้วยความแม่นยำ 0.00001526 โปรดทราบว่าผลลัพธ์จะแสดงในรูปแบบคำชมเชยของ 2 หากค่าไซน์หรือค่าคอสตามลำดับเป็นค่าลบ การจำลอง testb.vhd - ม้านั่งทดสอบสำหรับการออกแบบ (1) มุมอินพุตและการรีเซ็ตการดึง ='0' หลังจากสองขั้นตอนของการจำลองดึงให้รีเซ็ตเป็น '1' และ " run all ".(2) ในหน้าต่างการจำลอง ตั้งค่าสัญญาณฐานของ sin และ cos เป็นทศนิยมและรูปแบบ > อนาล็อก (อัตโนมัติ).(3) ซูมออกเพื่อดูรูปคลื่น อย่างถูกต้อง.
ขั้นตอนที่ 3: ไฟล์ที่แนบมา
(1) cordic_v4.vhd - Design.(2) testb.vhd - ม้านั่งทดสอบสำหรับการออกแบบ
(3) เอกสารเกี่ยวกับวิธีการบังคับอินพุตมุมและแปลงผลลัพธ์ไบนารี
อัปเดต: ไฟล์เหล่านี้เลิกใช้แล้วและไม่ได้ให้บริการอีกต่อไป โปรดใช้ไฟล์จากขั้นตอนต่อไป
ขั้นตอนที่ 4: Mini-Cordic IP Core - 16 บิต
ข้อ จำกัด ของการใช้งานข้างต้นคือ - ช้าและความถี่สัญญาณนาฬิกาต่ำกว่าของการทำงานเนื่องจากการคำนวณในรอบสัญญาณนาฬิกาเดียวMini-Cordic IP Core - 16 บิต
- เส้นทางที่สำคัญกระจายไปยังหลายรอบเพื่อปรับปรุงประสิทธิภาพ- เร็วขึ้น - การออกแบบที่ได้รับการพิสูจน์แล้ว FPGA สังเคราะห์นาฬิกาได้มากถึง 100 Mhz- พื้นที่ที่ปรับให้เหมาะสมมากขึ้นใน HDL ฮาร์ดแวร์น้อยลง- เพิ่มสัญญาณสถานะโหลดและเสร็จสิ้น- ข้อเสียเพียงอย่างเดียวคือความละเอียดน้อยกว่าเมื่อเทียบกับ ก่อนหน้านี้ Testbench:
อัตโนมัติอย่างสมบูรณ์จากอินพุตมุม 0 ถึง 360 องศา
ไฟล์แนบ:1) ไฟล์ vhdl หลักมินิคอร์ดิก2) ม้านั่งทดสอบคอร์ดิกขนาดเล็ก3) คู่มือมินิคอร์ดิกไอพีคอร์4) เอกสารเกี่ยวกับวิธีการบังคับมุมและแปลงผลลัพธ์
สำหรับข้อสงสัยใด ๆ โปรดติดต่อฉัน:
มิตู ราจ
ติดตามฉัน:
เมล: [email protected]
###ดาวน์โหลดทั้งหมด: 325 ณ วันที่ 01-05-2021###
### Code แก้ไขล่าสุด: กรกฎาคม-07-2020 ###
แนะนำ:
[2020] ใช้ Micro:bits สองตัว (x2) เพื่อควบคุมรถ RC: 6 ขั้นตอน (พร้อมรูปภาพ)
[2020] การใช้ Micro:bits (x2) สองอันเพื่อควบคุมรถ RC: หากคุณมี micro:bits (x2) สองตัว คุณเคยคิดที่จะใช้พวกมันเพื่อควบคุมรถ RC จากระยะไกลหรือไม่? คุณสามารถควบคุมรถ RC ได้โดยใช้ micro:bit ตัวหนึ่งเป็นตัวส่งสัญญาณ และอีกตัวหนึ่งเป็นตัวรับ เมื่อคุณใช้ตัวแก้ไข MakeCode เพื่อเข้ารหัส micro:b
ใช้ Ultrasonic Sensor กับ Magicbit [Magicblocks]: 5 ขั้นตอน
ใช้ Ultrasonic Sensor กับ Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Ultrasonic Sensor กับ Magicbit ของคุณโดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
ใช้ Buzzer บน Magicbit [Magicblocks]: 4 ขั้นตอน
ใช้ Buzzer บน Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Buzzer บน Magicbit โดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
ใช้ Fusion เพื่อสร้างเครื่องมือไม้นี้!: 4 ขั้นตอน
ใช้ Fusion เพื่อสร้างเครื่องมือที่ทำจากไม้!: นี่เป็นหนึ่งในโครงการที่ง่ายที่สุดที่ฉันทำโดยใช้ Fusion 360 เพื่อช่วยผู้เริ่มต้นใช้งานซอฟต์แวร์ มันแสดงฟังก์ชันพื้นฐานบางอย่างของซอฟต์แวร์และใช้เวลามากง่ายเกินไป ซอฟต์แวร์ที่จำเป็น: Fusion 360 โดย Autodesk ข้อกำหนดเบื้องต้น
Tic Tac Toe บน Arduino พร้อม AI (Minimax Algorithm): 3 ขั้นตอน
Tic Tac Toe บน Arduino ด้วย AI (Minimax Algorithm): ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างเกม Tic Tac Toe ด้วย AI โดยใช้ Arduino คุณสามารถเล่นกับ Arduino หรือดู Arduino เล่นกับตัวเอง ฉันกำลังใช้อัลกอริธึมที่เรียกว่า "อัลกอริธึมขั้นต่ำ",