การทดลองที่ 2
ออกแบบวงจรดิจิทัลควบคุมการทำงานของ RGB LED
ออกแบบวงจรดิจิทัลควบคุมการทำงานของ RGB LED
วิธีการทดลอง
จงออกแบบวงจรดิจิทัลโดยใช้ภาษา VHDL สำหรับนำไปสร้างเป็นวงจรในชิป FPGA โดยวงจรดิจิทัลมี I/O ดังนี้
- CLK (input) มีความถี่ 50MHz ใช้สำหรับกำหนดจังหวะการทำงานของวงจรทั้งหมด (เป็นการออก แบบวงจรดิจิทัลแบบ Synchronous Design)
- CLK (input) มีความถี่ 50MHz ใช้สำหรับกำหนดจังหวะการทำงานของวงจรทั้งหมด (เป็นการออก แบบวงจรดิจิทัลแบบ Synchronous Design)
- RST_B (input) เป็นอินพุตสำหรับใช้รีเซตแบบ Asynchronous สำหรับการทำงานของวงจรโดย รวม (ทำงานแบบ Active-Low) ซึ่งได้จากวงจรปุ่มกด (Push Button)
- PB (input) เป็นอินพุตจากปุ่มกด 1 ปุ่ม ทำงานแบบ Active-low เพื่อใช้ในการเปลี่ยน สีของ WS2812 RGB LED จำนวน 1ดวง
- DATA (output) เป็นเอาต์พุตสำหรับนำไปควบคุมการทำงานของ WS2812 RGB LED เพียง 1 ดวง ซึ่งเป็นสัญญาณตาม ข้อกำหนดของชิป WS2812 เพื่อส่งข้อมูลจำนวน 24 บิต
พฤติกรรมการทำงานเป็นดังนี้
- เมื่อเริ่มต้นหรือกดปุ่มรีเซต (RST_B) จะทำให้ค่าสีเป็น 0x000000 (24 บิต) และส่งออกไป ยัง WS2812 RGB LED หนึ่งครั้ง
- เมื่อเริ่มต้นหรือกดปุ่มรีเซต (RST_B) จะทำให้ค่าสีเป็น 0x000000 (24 บิต) และส่งออกไป ยัง WS2812 RGB LED หนึ่งครั้ง
- เมื่อมีการกดปุ่ม PB แล้วปล่อยในแต่ละครั้ง จะมีการเปลี่ยนค่าสี 24 บิต แล้วส่งออกไปยัง RGB LED ใหม่หนึ่งครั้ง ตามลำดับดังนี้ 0x000000 -> 0x0000FF -> 0x00FF00 -> 0xFF0000 แล้ววนซ้ำ
แนวทางการออกแบบและทดสอบ
- ออกแบบวงจรโดยใช้ภาษา VHDL
- เขียน VHDL Testbench เพื่อทดสอบการทำงาน และจำลองการทำงาน
- ทดสอบการทำงานในบอร์ด FPGA แล้ววัดสัญญาณโดยใช้ออสซิลโลสโคป(ยังไม่ต้องต่อ วงจร RGB LED จริง)
- เขียน VHDL Testbench เพื่อทดสอบการทำงาน และจำลองการทำงาน
- ทดสอบการทำงานในบอร์ด FPGA แล้ววัดสัญญาณโดยใช้ออสซิลโลสโคป(ยังไม่ต้องต่อ วงจร RGB LED จริง)
- บันทึกผลและเขียนรายงานการทดลอง
รายการอุปกรณ์
1. บอร์ด FPGA (Altra WARRIOR CYCLONE 3 EP3C10E144C) 1 บอร์ด
2. Byte Blaster II Cable หรือ USB Blaster Cable 1 ชุด
3. ออปซิโลสโคป 1 เครื่อง
4. สายวัด Logic Analzer 1 ชุด
5. เครื่องคอมพิวเตอร์ 1 เครื่อง
6. RGB LED 1 ชุด
จะต้องกำหนดให้การส่งค่าทั้ง 3 สัญญาณที่รับค่าจากปุ่มกดแต่ละปุ่มเป็นสัญญาณ PMW ที่ความถี่ 500 Hz เนื่องจากสัญญาณที่ส่งออกทาง output ทั้ง 3 สัญญาณ รูปแบบการส่งคือ จะส่งเป็น 24 บิตแบ่งเป็น 3 ชุด ชุดละ 8 บิตและเมื่อมีการกดปุ่มแล้วปล่อยในแต่ละครั้ง จะมีการเปลี่ยนค่าสี 24 บิตแล้วส่งออกไปยัง RGB LED ใหม่หนึ่งครั้ง ตามลำดับดังนี้ 0x000000 -> 0x0000FF -> 0x00FF00 -> 0xFF0000 แล้ววนซ้ำ และต้องมีการหน่วงเวลาของการกดปุ่ม ตัวเลขในการตรวจสอบเงื่อนไขจึงต้องกำหนดอย่างเหมาะสม
6. RGB LED 1 ชุด
แนวทางการออกแบบ
ผลการสังเคราะห์วงจร
![]() |
| Compilation Report |
![]() |
| RTL View |
ผลการทดลอง


ไม่มีความคิดเห็น:
แสดงความคิดเห็น