> For the complete documentation index, see [llms.txt](https://docs.aic-eec.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-1/design-overview.md).

# Design Overview

มาทำความรู้จักส่วนประกอบและโครงสร้างของสิ่งที่จะใช้งานกันเถอะ

หลังจากที่เราทราบกันบ้างแล้วในการทำงานของตัว FPGA ที่เราจะใช้กันในวันนี้เราสามารถปรับโครงสร้างภายในเพื่อสร้างการทำงานเฉพาะอย่างได้โดยในวันนี้เราจะพูดถึงโมดูลฮาร์ดแวร์ที่ออกแบบในการประมวลผล AI โดยโมดูลนั้นเรียกว่า DPU \[Deep processing unit] เป็นโมดูลที่ทำหน้าที่ในการประมวลผล AI ให้เร็วขึ้น เพราะว่าปกติในการทำงานของ AI จะใช้งานสิ่งที่เรียกว่า CNN หรือการ Convolution Neural Network เพื่อทำงานของ AI

<figure><img src="https://1856353139-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MClo3nC-1US0rbK8Qau%2Fuploads%2FZ3WYPjBLwd2Z6vz5ZRmg%2F13v54DRQ.jpeg?alt=media&amp;token=d52ba998-8ba5-4c25-9e38-cf8cac1391c8" alt=""><figcaption><p>การทำ Convolution</p></figcaption></figure>

{% hint style="info" %}
**Tips**&#x20;

ผู้ทดลองที่สนใจในเรื่อง CNN อยากให้มาทำความเข้าใจการทำงานของ AI ที่เป็น CNN, RNN และ Fast RNN เพื่อทำความเข้าใจก่อนมาเริ่มแลปนะครับ \[[Link](https://medium.com/@natthawatphongchit/%E0%B8%A2%E0%B9%89%E0%B8%AD%E0%B8%99%E0%B8%A3%E0%B8%AD%E0%B8%A2-object-detection-%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%88%E0%B8%B2%E0%B8%B0%E0%B8%A5%E0%B8%B6%E0%B8%81-retinanet-ea1407ad7325)]
{% endhint %}

โดยการทำงานลักษณะนี้จะใช้การประมวลผลเยอะมากทำให้เกิดเวลาในการทำงานสูงเมื่อใช้เพียง CPU หรือ GPU แต่พอเรามาใช้งานกับฮาร์แวร์โมดูลที่ทำงานเฉพาะอย่าง DPU มันจะเร็วขึ้นมากเพราะมันไม่ต้องแปลภาษาในการทำงาน เปรียบเสมือนเราสั่งให้มันทำงานแล้วเครื่องเข้าใจทันที ไม่ได้ผ่า่นการแปลภาษาเหมือนภาษาระดับสูงในการใช้งานเครื่อง สำหรับผู้ทดลองที่อยู่ในคอร์สของทางมหาวิทยาลัยเราจะได้ลงลึกเกี่ยวกับการทำงาน AI ในช่วงครึ่งหลัง

โดยถ้าพูดถึงการออกแบบภายในชิพ FPGA จะมีการทำงานคร่าวดังภาพ

<figure><img src="https://1856353139-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MClo3nC-1US0rbK8Qau%2Fuploads%2Fa4jzkiZtt6P88cSM9L7U%2Fp1Gp6HRk.png?alt=media&amp;token=d3c56696-9806-49b2-a9a1-aee022a8512c" alt=""><figcaption><p>การประมวลผล FPGA ในการทดลอง</p></figcaption></figure>

โดยการทำงานจะแบ่งออกเป็นสองส่วนดังภาพในส่วนของ APU \[a single cpu] จะทำงานเกี่ยวกับการคอมไพล์โปรแกรมรับคำสั่งแปลงภาษาการทำงาน และตัว DPU จะไปประมวลผลการทำ CNN ของ AI และรับผลลัพธ์ผ่าน AXI bus แล้วมาแสดงผลผ่านทาง APU ออกไปทาง Displayport
