โดยปกติแล้ว เราจะใช้ภาษา VHDL หรือ Verilog ในการพัฒนาแอพพลิเคชั่นบน FPGA ซึ่งค่อนข้างมีความซับซ้อนในการพัฒนา เพื่อให้การพัฒนาแอพพลิเคชั่นบน FPGA มีความสะดวกรวดเร็วมากขึ้น เราสามารถใช้ IP และ Block Design ในการพัฒนาแอพพลิเคชั่นบน FPGA ด้วย Vivado
โดย IP (intellectual property) นั้นจะเป็นไลบรารี่บน FPGA ที่ถูกพัฒนาไว้แล้วโดยเราสามารถเอามาใช้ได้ทันทีโดยทำการเชื่อมต่อกับโมดูลหลัก ทั้งนี้ IP บางตัวมีค่าใช้จ่ายในการใช้งาน โดยเราสามารถดูข้อมูลของ IP แต่ละตัวได้จาก IP Catalog ใน Vivado
สำหรับ block design คือ การพัฒนาโปรแกรมโดยการเชื่อมต่อ IP ซึ่งมีลักษณะเป็นบล็อก แต่ละบล็อกจะมีจุดเชื่อมต่อซึ่งสามารถต่อกับจุดเชื่อมต่อบนบล็อกอื่น ๆ เพื่อทำการส่งข้อมูลหากันได้ โดยขั้นตอนในการพัฒนาโดยใช้ IP และ block design มีดังต่อไปนี้
1. เปิด Vivado และสร้างโปรเจกต์ตามปกติ หากมีไฟล์ xdc และซอร์สโค้ด verilog และ vhdl อยู่แล้วสามารถเพิ่มเข้าไปในโปรเจกต์ได้ทันที โดยซอร์สโค้ด verilog และ vhdl ต้องทำการระบุอินพุตและเอาท์พุตให้เรียบร้อย
2. เลือก Flow Navigator>IP INTEGRATOR>Create Block Design เพื่อสร้างบล็อก
3. กด + และค้นหา IP ต่าง ๆ ที่ต้องการใช้งาน ใช้ Block Automation และ Connection Automation ในการเชื่อมต่อและตั้งค่า
4. ดับเบิ้ลคลิก IP เพื่อทำการตั้งค่าเพิ่มเติม
5. หากต้องการใช้ซอร์สโค้ด vhdl และ verilog ให้ลากจาก Sources มาวางในบล็อก
6. ทำการเชื่อมต่อพอร์ตที่เหลือเข้าด้วยกันหากต้องการ
7. กด Validate Design เพื่อตรวจสอบข้อผิดพลาดและแก้ไขก่อนบันทึกบล็อก รูปด้านล่างแสดงตัวอย่างบล็อกที่แก้ไขเสร็จแล้ว

8. คลิกขวาที่บล็อก (*.bd) เลือก Generate Output Products เมื่อเสร็จเรียบร้อยแล้วให้คลิกขวาอีกทีแล้วเลือก Create HDL Wrapper เพื่อสร้างโมดูลหลัก
9. แก้ไขไฟล์ XDC เพื่อเชื่อมต่อกับโมดูลหลัก
10. Generate bitstream ตามปกติ โดยให้ทำการตรวจสอบ Metrodology เพื่อแก้ไข Critical Warning ก่อนไปยังขั้นตอนถัดไป
หวังว่าบทความนี้จะเป็นประโยชน์สำหรับผู้ที่กำลังมองแนวทางในการพัฒนาแอพพลิเคชั่นบน FPGA ท่านสามารถติดต่อทีมงาน ติดต่อ ทีมงาน เทคสแควร์ เพื่อสอบถามข้อมูลเพิ่มเติมเกี่ยวกับบอร์ดพัฒนา FPGA ของ Digilent หรือผลิตภัณฑ์อื่น ๆ ได้ครับ
บทความที่เกี่ยวข้อง
การติดตั้ง Vivado Design Suite และไฟล์บอร์ด Digilent
การใช้ไมโครคอนโทรลเลอร์บนบอร์ดพัฒนา FPGA ของ Digilent
การใช้งานบอร์ดเสริม Pmod I2S2 ร่วมกับบอร์ด FPGA ของ Digilent
การใช้งานบอร์ดเสริม Pmod USBUART ร่วมกับบอร์ด FPGA ของ Digilent
