โครงการเพื่อเรียนรู้ VHDL


16

ฉันเป็นนักเรียน EE และสามารถเขียนโปรแกรม [อย่างน้อยง่าย ๆ ] ในภาษาที่มากกว่าที่ฉันมี ฉันเพิ่งเริ่มเรียนรู้ VHDL และฉันก็สงสัยว่าโครงการที่ดีจะต้องรู้จักภาษาและเครื่องมือที่เกี่ยวข้องเป็นอย่างไร ฉันมีปัญหาในการเข้าใช้งานเพราะมันเป็นรูปแบบการเขียนโปรแกรมที่แตกต่างกันมากสำหรับฉัน

ฉันได้ทำสิ่งที่เรียบง่ายเช่นตัวเสริม แต่ฉันกำลังมองหาโครงการระยะยาว (เช่นหนึ่งเดือนหรือมากกว่านั้น)

ในกรณีที่มีความเกี่ยวข้องฉันมี Xilinx Webpack และกระดาน Digilent Spartan3

คำตอบ:


7

โครงการ "FPGA Hello" ของฉันเป็นคอนโทรลเลอร์อาเรย์ LED ที่มี PWM และอินพุตสตรีมแบบอนุกรม ผลลัพธ์สุดท้ายก็ดี ( http://lbw.axe-man.org/led1.wmv ) แต่ฉันยอมรับว่าฉันได้ทำส่วนหนึ่งกับ Altera Quartus Schematic Editor เพื่อดูว่าชิ้นส่วน VHDL นั้นถูกอธิบายอย่างไร


นี่เป็นความคิดที่ดี ฉันเพิ่งเลือกเมทริกซ์คอนโทรลเลอร์ที่ไม่มีคอนโทรลเลอร์ขนาด 16x16 และคอนโทรลเลอร์จะยอดเยี่ยม วิดีโอเรียบร้อย!
เจเรมี

วิดีโอสวย! และตัวแก้ไขแผนผังนั้นจะถูกนำมาใช้
โมนิก้า

10

เนื่องจากคุณสนใจเขียนโปรแกรมคุณสามารถสร้างไมโครโปรเซสเซอร์อย่างง่าย


ขอแนะนำ คุณต้องเรียนรู้เกี่ยวกับด้าน FPGA และ VHDL ไม่เพียงเท่านั้น แต่ยังรวมถึงวิธีการทำงานของตัวประมวลผลสิ่งที่จำเป็นในการพัฒนาเครื่องมือเพื่อสนับสนุนโปรเซสเซอร์และอื่น ๆ อีกมากมาย
Chris Stratton

5

คุณควรตรวจสอบopencores.orgและค้นหาโครงการที่น่าสนใจที่นั่น นอกจากนี้คุณยังสามารถดาวน์โหลดSigasi HDTซึ่งจะช่วยให้คุณเรียนไวยากรณ์ VHDL ได้เร็วขึ้น


4

ฉันสนุกกับการทำงานกับฮันส์ที่แฮ็คในปีนี้ในโครงการRekonstruktเพื่อสร้างเครื่องสังเคราะห์พื้นฐานใน FPGA โครงการ LED ก็ดีเช่นกัน แต่ไม่มีอะไรที่เหมือนกับการเสียบ FPGA กับสเตอริโอ มันไม่ได้สร้างมาจากพื้นดินขึ้นมาอย่างที่โครงการ LED ต้องการเพราะโครงการนี้ใช้โปรเซสเซอร์แบบเปิดคอร์ที่รองรับ ดังนั้นในตอนแรกคุณกำลังเรียนรู้วิธีโหลด FPGA โดยทั่วไปกับโครงการจากนั้นคุณสามารถเล่นกับซองจดหมายใน FORTH แต่ที่คุณเริ่มเรียนรู้เพิ่มเติมเกี่ยวกับ FPGA ภายในคือเมื่อคุณต้องการเพิ่มฟังก์ชันการทำงานซึ่งต้องขุดลงใน VHDL


2

โครงการที่ฉันชอบทำคือการนำเกมมิลตันแบรดลีย์ไซม่อนไปใช้ใน FPGA

ที่มหาวิทยาลัยของฉันชั้นเรียน EDA ของเราใช้กระดานเดียวกับที่คุณพูดถึง บางส่วนของโครงการที่ดำเนินการรวมถึง:

  • การประมวลผลภาพ: ตัวกรองค่ามัธยฐานการยืดฮิสโตแกรมการตรวจจับขอบ
  • วิทยาการเข้ารหัสลับ: AES อัลกอริทึมการแปลงแป้นพิมพ์ต่าง ๆ ฯลฯ
  • การสื่อสาร: Ethernet, USB, I2C ฯลฯ
  • เกม: พงษ์ผู้รุกรานพื้นที่และอื่น ๆ

นั่นอาจทำให้คุณมีความคิด

ฉันจะคิดที่สองของ opencores.org รวมถึงการนำไมโครโปรเซสเซอร์ของคุณมาใช้ เนื่องจากคุณมี Xilinx FPGA คุณอาจลองทำอะไรด้วย microblaze หรือ picoblaze

แก้ไข: การจัดรูปแบบ


1

ฉันเขียนโค้ด vhdl สำหรับ xilinx virtex core เมื่อไม่นานมานี้ มันเป็นการใช้งานนาฬิกาปลุก นี่คือสิ่งที่ฉันทำ:

  • อ่านมากผ่านคู่มือ vhdl - ฉันต้องแก้ไขมันตอนนี้ แต่ฉันพบว่ามันค่อนข้างตรงไปตรงมาและใช้งานง่าย hdl :-)
  • ใช้ชุด xilinx (คอมไพเลอร์, ซินธิไซเซอร์) เพื่อรับบิตสตรีม
  • อัปโหลด bitstreams โดยใช้ jtag

ล้างซ้ำแล้วซ้ำอีก 1-3 ฉันจะชี้ให้เห็นว่าการสร้างบิตสตรีมนั้นรวมอยู่ใน IDE ของ Xilinx อย่างมาก คุณต้องมีชุดของตรรกะที่ชัดเจนเพื่อนำไปใช้ใน HDL ส่วนที่เหลือทั้งหมดทำโดย IDE


1

Oscillator ที่ควบคุมด้วยตัวเลขจะสนุก ฉันเพิ่งออกแบบด้วยบอร์ดที่เข้ากันได้กับ Arduino ของฉัน (ดูhttp://tinyurl.com/ydmz2su ) แต่นี่จะเหมาะสำหรับ FPGA

นี่คือตัวอย่างของการอ้างอิงการออกแบบ

Snell, John 1988 "การออกแบบออสซิลเลเตอร์แบบดิจิทัลที่จะสร้างคลื่นไซน์ที่มีความเพี้ยนต่ำมากถึง 256 แบบในเวลาจริง" รากฐานของดนตรีคอมพิวเตอร์ Cambridge, Mass: MIT Press

มัวร์เอฟ. ริชาร์ด 2531 "ตารางค้นหาเสียงสำหรับไซออสซิลดัลดิจิตอล" ฐานรากของเพลงคอมพิวเตอร์ Cambridge, Mass: MIT Press


0

สิ่งที่ฉันทำคือการสร้างซีพียูสักหน่อย มันเป็นวิธีการโค้งมนที่ดีในการครอบคลุมพื้นฐานทั้งหมด

คุณจะครอบคลุมพื้นฐานทั้งหมดของโครงการขนาดใหญ่ใน VHDL และสัมผัสกับหัวข้อหลักทั้งหมดในการออกแบบ VHDL (นาฬิกา, อินพุต, เอาต์พุต, ตรรกะ, รถประจำทางและการออกแบบตามลำดับที่เด่นชัดที่สุด) เช่นเดียวกับแกนอิเล็กทรอนิกส์และคอมพิวเตอร์ แนวคิดการออกแบบและสถาปัตยกรรมเช่นการลงทะเบียนการทำงานของข้อมูลหน่วยความจำและคอมพิวเตอร์คณิตศาสตร์

คุณสามารถเริ่มต้นด้วยการบวกและการลบจากนั้นเพิ่มฟังก์ชันการทำงานเพิ่มเติมตามที่คุณเรียนรู้วิธีการทำงานของคุณจนถึงการใช้งานได้อย่างสมบูรณ์ (แม้ว่าจะง่าย ... อย่างน้อยนั่นคือแผนของฉัน

นอกจากนี้การมีคอมพิวเตอร์ที่ออกแบบเองบนชิปก็เจ๋งมาก :) เช่นเดียวกับ 16 บิต Raspberry Pi: P

โครงการ FPGA ทั่วไปอื่น ๆ :

-Music synthesizer

เครื่องกำเนิดผลกระทบ -DSP

-MIDI controller / interrupter

- Bitcoin คนขุด

- เครื่องเล่นวิดีโอเกมจำลองเครื่อง

- โล่ Arduino แบบกำหนดเอง

- ตัวประมวลผลแบบขนาน (มีประโยชน์มากสำหรับปัญหาทางคณิตศาสตร์บางอย่างที่คอมพิวเตอร์ทั่วไปไม่ค่อยดีนัก)

-Robotics / ระบบควบคุม

- การได้มาซึ่งข้อมูล (ออสซิลโลสโคปไม่กี่ตัวที่ออกแบบมาสำหรับ FPGA ถ้าคุณรู้วิธีทำงานกับแอมป์สหกรณ์)

VHDL ด้วยตัวมันเองไม่ซับซ้อนอย่างน่ากลัว สิ่งที่สำคัญที่สุดที่ต้องจำคือคุณกำลังออกแบบวงจรดิจิตอลอิเล็กทรอนิคส์ทางกายภาพไม่ใช่เขียนโปรแกรมสำหรับไมโครคอนโทรลเลอร์ การจำลองของคุณไม่ได้เป็นโปรแกรมที่จะรันทีละบรรทัดดังนั้นอย่าปล่อยให้ความคล้ายคลึงผิวเผินกับ C หลอกคุณ VHDL เป็นกระบวนทัศน์ที่แตกต่างกันมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.