> 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.md).

# 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
