การทดลองที่
1
ออกแบบวงจรดิจิทัลสร้างสัญญาณ PWM ควบคุมการทำงานของ RGB LED โดยใช้ภาษา VHDL
ออกแบบวงจรดิจิทัลสร้างสัญญาณ PWM ควบคุมการทำงานของ RGB LED โดยใช้ภาษา VHDL
รายการอุปกรณ์
1.
บอร์ด Altera FPGA (WARRIOR CYCLONE3 DEV) ชิปหมายเลข
EP3C10E144C8 1
บอร์ด
2.
สายดาวน์โหลด ByteBlaster II Cable หรือ
สายดาวน์โหลดUSB Blaster Cable 1 ชุด
3.
เครื่องคอมพิวเตอร์ 1 ชุด
4. ออสซิลโลสโคป 1 เครื่อง
5. สายวัด Logic Analyzer 1 เส้น
วิธีการทดลอง
ออกแบบวงจรดิจิลัทโดยใช้ภาษา VHDL สำหรับนำไปสร้างเป็นวงจรในชิป FPGA
โดยวงจรดิจิทัลมี I/O ดังนี้
-
CLK (input) มีความถี่ 50MHz ใช้สำหรับกำหนดจังหวะการทำงานของวงจรทั้งหมด
(เป็นการออกแบบวงจรดิจิทัลแบบ Synchronous Design)
-
RST_B (input) เป็นอินพุตสำหรับใช้รีเซตแบบ Asynchronous สำหรับการทำงานของวงจรโดยรวม (ทำงานแบบ Active-Low)
ซึ่งได้จากวงจรปุ่มกด (Push Button)
-
PB[2:0] (input) เป็นอินพุตจากปุ่มกด 3 ปุ่ม
ทำงานแบบ Active-low เพื่อใช้ในการเปลี่ยนค่า Duty
Cycle โดยเพิ่มทีละ 10 ในช่วง 0 ถึง 100 สำหรับสัญญาณ PWM(2:0) ที่มี 3 ช่องสัญญาณ
-
PWM[2:0] (output) เป็นเอาต์พุตสำหรับนำไปควบคุมการทำงานของ RGB
LED จำนวน 1 ดวง
วงจรดิจิทัลพฤติกรรมการทำงานเป็นดังนี้
- เมื่อเริ่มต้นหรือกดปุ่มรีเซต RST_B
ค่า PWM[2:0] จะเป็นลอจิก 0 ทั้ง 3 ช่องสัญญาณ และมีค่า Duty Cycle สำหรับสัญญาณ PWM[i], i=0,1,2 เป็น 0
- เมื่อกดปุ่มใดๆ PB[i],
i=0,1,2, แล้วปล่อยในแต่ละครั้ง จะเพิ่มค่า Duty Cycle ของสัญญาณ PWM สำหรับช่องสัญญาณ i ทีละ 10 แต่ถ้าถึง 100 จะกลับไปเริ่มต้นที
0 ใหม่
- สัญญาณ PWM แต่ละช่อง
ต้องมีความถี่เท่ากันและคงที่ และสามารถเลือกใช้ความถี่ได้ในช่วง 500Hz ถึง 1kHz
แนวทางการออกแบบและทดสอบ
-
ออกแบบวงจรโดยใช้ภาษา VHDL
-
เขียน VHDL Testbench เพื่อทดสอบการทำงาน
และจำลองการทำงาน
-
ทดสอบการทำงานในบอร์ด FPGA แล้ววัดสัญญาณโดยใช้ออสซิลโลสโคป
-
บันทึกผลและเขียนรายงานการทดลอง
แนวทางการออกแบบ
รูปแผนภาพ Finite State Machine ออกแบบวงจรปุ่มกด
รูปแผนภาพ Block Diagram การทำงานของวงจร
โค้ดวงจรดิจิทัลที่ได้จากการออกแบบ
โค้ดวงจรดิจิทัลภาษา VHDL
โค้ด Testbench ภาษา VHDL
ผลการทดลอง
ผลการสังเคราะห์ VHDL เป็นวงจรในชิปและการใช้ทรัพยากรของบอร์ด FPGA
ผลการจำลองการทำงานด้วย Modelsim
หมายเหตุ – ในการจำลองใช้ค่าการหน่วงปุ่มกด PB[2:0] เท่ากับ 1,000
ผลการทดลองบนบอร์ด FPGA
ภาพโดยรวมการทดลอง
การเปลี่ยนแปลงลักษณะสัญญาณเมื่อกดปุ่ม PB ช่องสัญญาณ D2 1 ครั้ง
การเปลี่ยนแปลงลักษณะสัญญาณเมื่อกดปุ่ม PB ช่องสัญญาณ D2 5 ครั้ง
การเปลี่ยนแปลงลักษณะสัญญาณเมื่อกดปุ่ม PB ช่องสัญญาณ D2 8 ครั้ง
การเปลี่ยนแปลงลักษณะสัญญาณเมื่อกดปุ่ม
PB ช่องสัญญาณ D2 10 ครั้ง
การเปลี่ยนแปลงลักษณะสัญญาณเมื่อกดปุ่ม
PB ช่องสัญญาณ D0,D1 และ D2
การเปลี่ยนแปลงลักษณะสัญญาณเมื่อกดปุ่ม
RST_B












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