# FPGA Design and Development

- [Verilog HDL via Vivado IDE](https://docs.aic-eec.com/fpga-design/basic-fpga.md): LAB00 : Programming digital gate & component by Verilog HDL
- [LAB1: Setting Environment and Create Project](https://docs.aic-eec.com/fpga-design/basic-fpga/step-1-setting-environment-and-create-project.md): การติดตั้งโปรแกรมและการสร้างโปรเจคในการทำงาน
- [Create Vivado Project](https://docs.aic-eec.com/fpga-design/basic-fpga/step-1-setting-environment-and-create-project/create-vivado-project.md): การสร้างโปรเจค Vivado
- [LAB2: Hardware Description Language Work Flow](https://docs.aic-eec.com/fpga-design/basic-fpga/untitled.md): ขั้นตอนนี้จะนำความรู้เบื้องต้นจากวิชาตรรกศาสตร์มาสร้างโมดูลที่ใช้งานจริงๆ เพื่อทำความเข้าใจ Syntax ที่เรียนไป จะได้
- [Simulation code](https://docs.aic-eec.com/fpga-design/basic-fpga/untitled/step-2.2-simulation-code.md): ทดสอบโมดูลที่เขียน
- [LAB3: Design HDL Project](https://docs.aic-eec.com/fpga-design/basic-fpga/step-3-design-hdl-project.md): ขั้นตอนนี้จะทำการทดลองเกี่ยวกับการทำโมดูล OR และ NOT gate เพื่อมารวมกับโมดูล AND gate ที่เขียนบน step 1 แสดงผล ในไฟล์ Simulation และการเขียนโมดูลรวมเพื่อนำไปต่อยอดในการทำโมดูลต่างๆ
- [Top Level Design](https://docs.aic-eec.com/fpga-design/basic-fpga/step-3-design-hdl-project/step-3.2-top-level-design.md): หัวข้อนี้จะเป็นการรวมโมดูล Logic gate ที่เขียนไปข้างต้นเป็น S-R Flip flop 1 ตัว ดังรูป
- [Top-level Simulation](https://docs.aic-eec.com/fpga-design/basic-fpga/step-3-design-hdl-project/step-3.3-top-level-simulation.md): ส่วนนี้จะเป็นการสมมติค่าเพื่อให้ตัวโมดูลตัวที่เราเขียนมาทำงานร่วมกัน สามารถทำงานได้ส่วนนี้จะเป็นการสมมติค่าเพื่อให้ตัวโมดูลที่เราเขียนมาสามารถทำงานได้ ดังนั้นจึงเปรียบเสมือนการใส่ค่าหรือข้อมูลลงบน IC
- [LAB4: Asynchronous VS Synchronous Circuit](https://docs.aic-eec.com/fpga-design/basic-fpga/step-4-asynchronous-vs-synchronous-circuit.md): ในการทดลองนี้คือ การบอกความแตกต่างของ Asynchronous กับ Synchronous circuit
- [Simulation Synchronous counter](https://docs.aic-eec.com/fpga-design/basic-fpga/step-4-asynchronous-vs-synchronous-circuit/step-4.2-simulation-synchronous-counter.md)
- [C/C++ Programming on Ultra96v2 FPGA Board](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board.md)
- [Application C/C++ on Ultra96v2 Part 1](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-1.md): นำภาษา C/C++ ไปประยุกต์บนบอร์ด FPGA Ultra96v2 ด้วยการเร่งประสิทธิภาพของ AI ที่ใช้บนระบบไร้คนขับ
- [Design Overview](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-1/design-overview.md): มาทำความรู้จักส่วนประกอบและโครงสร้างของสิ่งที่จะใช้งานกันเถอะ
- [Step 1 - Burn the image to SD card](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-1/step-1-burn-the-image-to-sd-card.md)
- [Step 2 - Bring up Ultra96v2](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-1/step-2-bring-up-ultra96v2.md): นำ SDcard ที่เราเตรียมไว้เสร็จสิ้น ไปใส่ในบอร์ด FPGA กัน
- [Step 3 - Installing the Vitis-AI runtime packages](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-1/step-3-installing-the-vitis-ai-runtime-packages.md): ทำการเตรียมความพร้อมที่จะใช้งาน Vitis-AI บนบอร์ด FPGA
- [Application C/C++ on Ultra96v2 Part 2](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-2.md): ทำความเข้าใจ code C/C++ และการประยุกต์ใช้งานโปรแกรมและ AI
- [STEP 1 : Setting auto boot Wifi](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-2/step-1-setting-auto-boot-wifi.md): ขั้นตอนนี้จะทำให้เราสามารถใช้งาน Command เดิมๆ ทุกๆครั้งที่ทำการ boot ขึ้นมาใหม่ได้
- [STEP 2 : How to working on Embedded](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-2/step-2-how-to-working-on-embedded.md): ทำงานกับ Embedded board ในทางโปรแกรมยังไงให้ง่ายและมีประสิทธิภาพ
- [STEP 3 : How to run the test code](https://docs.aic-eec.com/fpga-design/c-c++-programming-on-ultra96v2-fpga-board/application-c-c++-on-ultra96v2-part-2/step-3-how-to-run-the-test-code.md): ทำการรัน Application point pillar ด้วย VScode ผ่านการ SSH


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aic-eec.com/fpga-design.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
