แนวทางการเรียนรู้การออกแบบวงจรด้วยชิป FPGA#


ระบบสมองกลฝังตัวและชิป FPGA#

โดยทั่วไป การออกแบบระบบสมองกลฝังตัว (Embedded System Design) มักเกี่ยวข้องกับการใช้งานฮาร์ดแวร์หลายประเภท เช่น ชิปหรือไอซีประเภทต่าง ๆ รวมถึงซอฟต์แวร์ เพื่อใช้เป็นเครื่องมือในการออกแบบและพัฒนาระบบ

ถ้าพูดถึงการเขียนโปรแกรมระบบสมองกลฝังตัว คนส่วนใหญ่ก็จะนึกถึงชิปที่มี "ซีพียู" (CPU: Central Processing Unit) หรือ "โพรเซสเซอร์" (Processor) อยู่ภายใน เช่น ชิปประเภทไมโครคอนโทรลเลอร์ (หรือ เรียกว่า MCU: Microcontroller Unit) มีการใช้ภาษาคอมพิวเตอร์ เช่น C/C++ ในการเขียนโปรแกรมเพื่อกำหนดพฤติกรรมการทำงานของฮาร์ดแวร์ และให้ทำงานตามสถาปัตยกรรมของชุดคำสั่ง (ISA: Instruction Set Architecture) ที่ได้กำหนดไว้แล้ว ในหลายกรณี ก็มีการใช้ระบบปฏิบัติการร่วมด้วย เช่น RTOS (Real-time OS) สำหรับชิปไมโครคอนโทรลเลอร์ ขนาด 32 บิต

ชิปประเภทโพรเซสเซอร์ แบบหลายแกน (Multi-Core MPU: Microprocessor Unit) มักมีความสามารถในการประมวลผลสูงกว่า ความถี่ของซีพียูสูงกว่า และมีความจุของหน่วยความจำมากกว่าชิปไมโครคอนโทรลเลอร์ และสามารถใช้ Embedded Linux หรือ Android OS ได้

การเขียนโค้ด C/C++ สำหรับไมโครคอนโทรลเลอร์หรือซีพียู จะต้องมีการใช้คอมไพล์เลอร์ (Compiler) หรือ ชุดเครื่องมือที่เรียกว่า C/C++ Toolchain เพื่อทำหน้าที่แปลงซอร์สโค้ด ให้เป็นเฟิร์มแวร์ ซึ่งเป็นไฟล์แบบไบนารีที่ประกอบด้วยคำสั่งต่าง ๆ ตามชุดคำสั่งของซีพียูเป้าหมาย

การทำงานของซีพียูจะต้องอาศัยคำสั่ง (Instructions) ที่ได้มาจากหน่วยความจำสำหรับโปรแกรม (Program Memory) แต่ละคำสั่งจะมีส่วนที่ระบุว่า จะให้ซีพียูทำงานในลักษณะใด เช่น คำสั่งบวกหรือลบค่าตัวเลขที่อยู่ในรีจิสเตอร์โดยใช้วงจรที่เรียกว่า ALU (Arithmetic-Logic Unit) หรือการย้ายข้อมูลระหว่างรีจิสเตอร์และหน่วยความจำ เป็นต้น

การคำสั่งของซีพียูประเภท RISC (Reduced Instruction Set Computer) อาจแบ่งได้เป็นขั้นตอนย่อยหลายขั้นตอนเรียกว่า Pipeline Stages และทำงานในลักษณะที่เรียกว่า "ไปป์ไลน์ของการทำคำสั่ง" (Instruction Pipelining) ซึ่งเป็นวิธีการหนึ่งที่ช่วยเพิ่มประสิทธิภาพการทำงานให้กับซีพียู

ในเชิงเปรียบเทียบ ชิปประเภท FPGA (Field-Programmable Gate Array) เป็นชิปที่มีทรัพยากรในระดับของฮาร์ดแวร์ที่โปรแกรมได้เชิงลอจิกโดยผู้ใช้ เช่น สามารถใช้ในการสร้างฟังก์ชันตรรกะเหมือนลอจิกเกต (Logic Gates) หรือ เก็บข้อมูลชั่วคราวได้ในฟลิปฟลอป (Flip-Flops) หรือ เชื่อมต่อกับวงจรภายในชิปได้ โดยใช้วงจรอินพุต-เอาต์พุต (I/O Blocks) เป็นต้น การโปรแกรมได้เชิงลอจิกนี้ แตกต่างจากการโปรแกรมการทำงานของซีพียูด้วยชุดคำสั่ง เนื่องจากไม่ได้มีการสร้างวงจรซีพียูและวงจรรอบข้างที่เกี่ยวข้องเอาไว้เช่นกรณีของชิปไมโครคอนโทรลเลอร์

ชิปไมโครคอนโทรลเลอร์ มีวงจรดิจิทัลที่ได้ออกแบบให้ทำงานตามชุดคำสั่ง และสร้างไว้สำเร็จแล้วโดยผู้ผลิต รูปแบบการทำงานจึงถูกกำหนดด้วยโปรแกรมหรือชุดคำสั่ง แต่ถ้าเป็นชิป FPGA ผู้ใช้สามารถโปรแกรมชิป โดยใช้ทรัพยากรที่เป็นองค์ประกอบพื้นฐานภายใน (Buidling Blocks) ให้กลายเป็นวงจรดิจิทัลที่มีฟังก์ชันตามต้องการได้ การสร้างซีพียูในรูปแบบที่เรียกว่า Soft IP Processor และวงจรที่เกี่ยวข้องโดยใช้ทรัพยากรภายในชิป FPGA ก็ทำได้เช่นกัน

ผู้ผลิตชิป FPGA ได้พัฒนาเชิงสถาปัตยกรรมและเลือกใช้เทคโนโลยีการผลิตชิปที่มีความทันสมัยมาตามลำดับ ชิป FPGA บางรุ่น มีวงจรที่ประกอบด้วยตัวประมวลผล หรือ ซีพียูแบบหลายแกนรวมไว้ภายใน (เรียกว่า Hard-IP Processor Cores) เช่น ซีพียูตระกูล Arm-Cortex A Series สามารถติดตั้งและใช้งาน Linux OS ได้ เป็นต้น และมักเรียกชิปประเภทนี้ว่า "SoC FPGA"

การออกแบบวงจรสำหรับชิป FPGA ก็จะใช้ภาษาคอมพิวเตอร์ในประเภท HDL (Hardware Description Language) และที่นิยมใช้กันแพร่หลายคือ ภาษา VHDL และ Verilog / SystemVerilog

ชิป FPGA มีการใช้งานแพร่หลายน้อยกว่าชิป MCU / MPU โดยเฉพาะอย่างยิ่ง ถ้าพิจารณากลุ่ม DIY / Makers เนื่องด้วยหลายสาเหตุ เช่น

  • ชิป FPGA และผู้ผลิตชิป (FPGA Vendors) มีตัวเลือกน้อยกว่ากรณีของชิป MCU / MPU
  • ราคาต่อหน่วย (Unit Price) ของชิป FPGA หรือบอร์ด FPGA มีราคาสูงกว่าตัวเลือกสำหรับไมโครคอนโทรลเลอร์
  • การออกแบบ PCB สำหรับบอร์ด FPGA มักมีความซับซ้อนและราคาสูงกว่าบอร์ดไมโครคอนโทรลเลอร์โดยทั่วไป
  • การออกแบบวงจร ต้องอาศัยภาษา VHDL / Verilog ซึ่งแตกต่างจากภาษา C/C++ นักพัฒนาจึงต้องเรียนรู้ภาษาคอมพิวเตอร์หลายภาษา และต้องทำความเข้าใจหลักการทำงานของวงจรดิจิทัลในรูปแบบต่าง ๆ ที่ต้องการออกแบบด้วย

การโปรแกรมฮาร์ดแวร์ได้เชิงลอจิก#

ความสามารถที่จะโปรแกรมในระดับลอจิกหรือกำหนดรูปแบบการทำงานของฮาร์ดแวร์ต่าง ๆ ภายในชิป FPGA เพื่อให้ได้ฟังก์ชันการทำงานที่ต้องการ แบ่งออกได้เป็น

  • ส่วนที่ใช้ในการสร้างลอจิก (Logic)
  • ส่วนที่ใช้เก็บข้อมูล (Memory / Storage)
  • ส่วนที่เป็นอินพุต-เอาต์พุต (I/O)
  • ส่วนที่ใช้เชื่อมต่อส่วนต่าง ๆ เข้าด้วยกัน (Interconnect)

การโปรแกรมวงจรภายในของชิป FPGA จะต้องอาศัยสิ่งที่เรียกว่า "บิตสตรีม" (FPGA Bitstream) ที่ต้องนำไปเขียนลงในหน่วยความจำภายในชิป ชุดข้อมูลบิตเหล่านี้ อาจมีขนาดใหญ่หลายเมกกะบิต จะเป็นตัวกำหนดว่า วงจรภายในชิป มีฟังก์ชันการทำงานและเชื่อมต่อกันอย่างไรให้เป็นวงจรดิจิทัลที่ต้องการ

รูป: โมเดลเชิงสถาปัตยกรรม (Simplified Island-style Model) ของชิป FPGA ที่แสดงองค์ประกอบพื้นฐานภายในชิปที่สามารถโปรแกรมเชิงลอจิกได้

รูป: ตัวอย่างโมเดลสำหรับสวิตช์ที่เชื่อมต่อทางไฟฟ้าและโปรแกรมได้เชิงลอจิกภายในชิป FPGA

รูป: ตัวอย่างโมเดลอย่างง่ายของ Logic Element (LE) ซึ่งประกอบด้วย LUT4 (4-Input Lookup-Table) และ "ฟลิปฟลอป" (D-Type Flip-Flop) สำหรับข้อมูลหนึ่งบิต

ชิป FPGA ส่วนใหญ่จะมี LUTs (Lookup Tables) เช่น LUT4 (4-Input) หรือ LUT5 (5-Input) เป็นองค์ประกอบพื้นฐาน และเป็นส่วนหนึ่งของหน่วยย่อยที่เรียกว่า Logic Elements (LEs) และจะมีจำนวนมากหรือน้อย ก็ขึ้นอยู่กับความจุเชิงลอจิกของชิป FPGA

 


ประเด็นในการเลือกใช้ชิป FPGA สำหรับการเรียนรู้เบื้องต้น#

หากสนใจจะเรียนรู้เกี่ยวกับ FPGA ก็มีประเด็นในการพิจารณา เช่น

  • วิธีการออกแบบวงจร ลำดับขั้นตอนการออกแบบ และซอฟต์แวร์ที่เกี่ยวข้อง
  • ประเภทของชิป FPGA เช่น FPGA และ SoC FPGA
  • ความสามารถของชิป FPGA
  • ราคาและตัวเลือกของบอร์ด FPGA ที่มีจำหน่าย
  • จำนวนขาและลักษณะของแพคเกจของชิป FPGA

ความสามารถของชิป FPGA สามารถจำแนกได้ตามคุณลักษณะต่อไปนี้

  • ความจุเชิงลอจิก (Logic Capacity) — ผู้ผลิตอาจจะระบุจำนวนของสิ่งที่เรียกว่า Logic Elements หรือ Logic Cells ซึ่งองค์ประกอบเชิงลอจิกพื้นฐานของชิป FPGA ถ้ามีความจุเชิงลอจิกมาก ก็สามารถสร้างวงจรดิจิทัลที่มีความซับซ้อนได้สูงขึ้นหรือวงจรมีขนาดใหญ่ขึ้น
  • ความจุของหน่วยความจำภายใน (Embedded RAM) เช่น บล็อกของหน่วยความจำ SRAM
  • วงจรคำนวณเชิงตัวเลข ซึ่งเหมาะสำหรับการคำนวณหรือประมวลผลสัญญาณดิจิทัลเชิงตัวเลข เช่น วงจรตัวคูณ (Multipliers) วงจรคำนวณ DSP (Digital Signal Processing) Blocks
  • วงจรสื่อสารแบบอนุกรมความเร็วสูง (High-Speed Serial Links / Transceivers)
  • วงจร Hard IP Cores อื่นๆ เช่น Embedded Hard IP Processor Core
  • ระดับความเร็วของชิป (Speed Grade): ชิป FPGA ที่มีสถาปัตยกรรมเหมือนกัน จะให้ความเร็วในการทำงานของวงจรได้แตกต่างกัน ขึ้นอยู่กับ Speed Grade ที่ได้เลือกใช้
  • การจำแนกลักษณะในการใช้งาน เช่น Commercial Grade, Industrial Grade, Automotive Grade, Radiation-Hardened Grade เป็นต้น
  • จำนวนขา I/Os ของชิป เช่น ในบางกรณีก็มีความจำเป็นต้องใช้ขา I/Os จำนวนข้างมาก
  • รูปแบบการใช้งาน เช่น บอร์ดทดลอง (Stand-alone FPGA Dev.Kit) บอร์ดทดลองที่ใช้กับเบรดบอร์ดได้ (Breadboard-friendly FPGA Boards) และ PCIe based FPGA Card สำหรับใช้กับคอมพิวเตอร์ประสิทธิภาพสูงหรือเซิร์ฟเวอร์ในดาต้าเซ็นเตอร์

ชิป FPGA ในกลุ่ม High-End / High-Performance จะมีราคาแพงกว่า ชิป FPGA ในกลุ่ม Low Logic Capacity / Low-Cost และมีขนาดเล็ก นอกจากนั้นแล้วยังต้องใช้เวลาในการคอมไพล์โค้ดนานกว่า และมีขนาดของไฟล์ "บิตสตรีม" ใหญ่กว่า

ชิป FPGA มักจะมีแพคเกจ (IC Package) เป็นแบบ BGA (Ball Grid Array) และมีจำนวนขาค่อนข้างมาก (หลายร้อยขา หรือ มากกว่า) และการออกแบบ PCB และสร้างบอร์ด FPGA เพื่อใช้งานตามความต้องการของตัวเอง ก็อาจจะเป็นงานที่ท้าทายกว่าการออกแบบบอร์ดไมโครคอนโทรลเลอร์ขนาดเล็ก ดังนั้นการเลือกบอร์ด FPGA ในลักษณะ FPGA Development Kit จึงเป็นตัวเลือกแรกสำหรับผู้ที่เริ่มต้นและสนใจเรียนรู้เกี่ยวกับ FPGA

 


การจำแนกตามชนิดของหน่วยความจำของ FPGA#

การจำแนกประเภทของชิป FPGA แบ่งเป็นประเภทย่อยตามชนิดของหน่วยความจำในชิป FPGA ได้ดังนี้

  • SRAM-based: เป็นหน่วยความจำแบบ Volatile (เมื่อปิดไฟเลี้ยงให้ชิป FPGA ข้อมูลจะสูญหายไป) เมื่อชิปเริ่มต้นทำงานหรือหลังรีเซตทุกครั้ง จะต้องมีการโหลดบิตสตรีม จากชิปหน่วยความจำภายนอก (เช่น Serial Configuration Flash) เข้าไปในชิป FPGA เพื่อตั้งค่าฟังก์ชันการทำงานให้วงจรก่อนเริ่มทำงานตามที่ได้ออกแบบไว้
  • Flash-based: เป็นหน่วยความจำแบบ Non-volatile แต่เขียนและลบข้อมูลได้หลายครั้ง และเมื่อปิดไฟเลี้ยง ข้อมูลจะไม่สูญหาย
  • Antifuse-based: เป็นหน่วยความจำแบบ Non-volatile และเขียนได้ครั้งเดียว (OTP: One-Time Programmble) คล้ายกับหน่วยความจำแบบ eFuse ในชิปไมโครคอนโทรลเลอร์ เมื่อเขียนข้อมูลลงไปแล้ว จะแก้ไขไม่ได้

ชิป Antifuse FPGA จึงไม่เหมาะกับการนำไปใช้ในการสร้างอุปกรณ์ต้นแบบที่ต้องมีการแก้ไขวงจรหลายครั้ง แต่ก็มีข้อดีเช่นกันในเรื่องความปลอดภัยของบิตสตรีม (มีการป้องกัน ทำให้ไม่สามารถอ่านข้อมูลบิตสตรีมออกมาได้) และการใช้พลังงานในระดับที่ต่ำกว่า FPGA ประเภทอื่น

โดยทั่วไป ก็แนะนำให้เลือกใช้ชิป SRAM-based FPGA สำหรับการเรียนรู้ ฝึกปฏิบัติ หรือลักษณะการใช้งาน ที่ต้องมีการปรับเปลี่ยนวงจรได้ เช่น การโปรแกรมฟังก์ชันการทำงานหลายครั้งในขณะทำงาน (Run-Time Reconfiguration / Device Reprogramming)

เราอาจจำแนก FPGA ได้เป็นประเภทย่อย เช่น

  • Stand-alone FPGA: เป็นชิป FPGA ที่มีการจำหน่ายโดยทั่วไป
  • Embedded FPGA (eFPGA): ไม่ได้เป็นไอซีสำเร็จรูป แต่เป็น Hard IP ของบริษัท ในกลุ่ม FPGA Vendors เช่น บริษัท Intel/eASIC, QuickLogic, Efinix, Flex Logic และ Achronix เป็นต้น และจะต้องนำไปใช้งานร่วมกับวงจรอื่นเพื่อนำไปผลิตเป็นไอซีโดยโรงงาน

ตัวอย่างบริษัทในกลุ่ม FPGA / eFPGA Vendors


วิธีการสำหรับ FPGA Design#

วิธีการออกแบบวงจรสำหรับ FPGA จำแนกได้ดังนี้

  • Block-based Graphical Design Entry: การวาดผังวงจรโดยใช้องค์ประกอบพื้นฐาน หรือบล็อกจากไลบรารี เช่น ลอจิกเกตประเภทต่าง ๆ แล้วนำมาสร้างวงจรที่มีความซับซ้อนมากขึ้น เรียกว่า Intellectual Property (IP) Core และนำไปอีกใช้ในวงจรอื่น 
  • HDL-based Design Entry: การใช้ภาษาคอมพิวเตอร์ที่เรียกว่า HDL ตัวเลือกที่เป็นที่นิยมและมีการใช้แพร่หลาย คือ VHDL และ Verilog / SystemVerilog โดยออกแบบวงจรในระดับลอจิกเกต (Gate Level) หรือสูงขึ้นไปในระดับที่เรียกว่า Register-Transfer Level (RTL) แล้วนำไปผ่านขั้นตอนการคอมไพล์โค้ดเพื่อให้ได้วงจรดิจิทัล (เรียกขั้นตอนนี้ว่า FPGA Compilation / Logic Synthesis)
  • C/C++ based Coding: การแปลงโค้ด เช่น ฟังก์ชันในภาษา C/C++ โดยใช้คอมไพล์เลอร์หรือโปรแกรมในประเภทเรียกว่า High-Level Synthesis (HLS) Tools ให้เป็นวงจรดิจิทัลในภาษา VHDL / Verilog
  • High-level Coding: การใช้ภาษาคอมพิวเตอร์อื่น เช่น OpenCL (Open Computing Language for CPU / GPUs/ FPGAs) หรือ การใช้ภาษา Python สำหรับการออกแบบวงจรดิจิทัล ก็เป็นอีกหนึ่งตัวเลือกที่น่าสนใจ

การออกแบบวงจรดิจิทัลด้วยการเขียนโค้ดในภาษา HDL จะช่วยเพิ่มประสิทธิภาพของนักออกแบบวงจรได้อย่างมาก และสามารถนำกลับโค้ดที่เขียนไว้มาใช้ได้อีกในการออกแบบวงจรอื่น

ไม่ว่าจะเริ่มต้นการดีไซน์ด้วยการเขียนโค้ดหรือวาดผังวงจรเชิงกราฟิก จะต้องมีการแปลงดีไซน์ให้เป็นวงจรสำหรับชิป FPGA ซึ่งประกอบด้วยขั้นตอนหลักในกระบวนการออกแบบ (FPGA Design Flow) ดังนี้

  • RTL & Logic Synthesis: การแปลงวงจรจากโค้ด HDLในระดับ RTL ให้เป็นวงจรในระดับลอจิกเกต (Gate-level Netlist)
  • Technology Mapping / Fitting: การแปลงวงจรในลำดับลอจิกเกต ให้เป็นวงจรที่ใช้วงจรพื้นฐานของชิป FPGA เช่น LUTs (Lookup Tables) สำหรับการสร้างฟังก์ชันเชิงลอจิก หน่วยความจำประเภท Flip-Flops และวงจรพื้นฐานประเภทอื่น ๆ เป็นต้น
  • Placement & Routing: การจัดวางหรือเลือกหาตำแหน่งของทรัพยากรพื้นฐานที่ต้องใช้สำหรับวงจร และหาเส้นทางของสัญญาณเชื่อมต่อกันภายในชิป FPGA
  • Bitstream Generation: การสร้างไฟล์ "บิตสตรีม" เป็นขั้นตอนสุดท้าย

รูป: ตัวอย่างวงจร 2-to-1 Multiplexer (MUX2_1) และการสร้างวงจรโดยใช้ทรัพยากรใช้ชิป FPGA ที่เรียกว่า LUT4 (4-Input Lookup Table)

รูป: ตัวอย่างการเขียนโค้ด VHDL สำหรับวงจร MUX2_1 ในรูปแบบ Data Flow

รูป: ตัวอย่างการเขียนโค้ด VHDL สำหรับวงจร MUX2_1 ในรูปแบบ Behavioral Modeling และผลการสังเคราะห์วงจรลอจิกเกตในระดับ Logic Cell โดยใช้ซอฟต์แวร์ Intel / Altea Quartus Prime

รูป: การเปรียบเทียบรูปแบบการเขียนโค้ด VHDL (VHDL Modeling Styles) สำหรับวงจร MUX2_1

รูป: ตัวอย่างการเขียนโค้ด VHDL สำหรับวงจร MUX4_1 ในรูปแบบ Structural Modeling แลผลการสังเคราะห์วงจรลอจิกเกต

 


ซอฟต์แวร์สำหรับ FPGA Design#

ซอฟต์แวร์สำหรับการออกแบบวงจรใน FPGA จะขึ้นอยู่กับผู้ผลิตแต่ละราย ไม่เหมือนกรณีของไมโครคอนโทรลเลอร์ ยกตัวอย่างเช่น ถ้าเลือกใช้ชิปของ Intel / Altera มีตัวเลือก เช่น

  • Intel Quartus Prime Design Software: แบ่งเป็น (1) Standard Edition, (2) Pro Edition และ (3) Lite Edition (free) และมีให้เลือกใช้สำหรับระบบปฏิบัติการ Windows (64-bit) และ Linux (64-bit) เท่านั้น แต่ละตัวเลือก ก็รองรับการใช้ตระกูลชิป FPGA ที่อาจแตกต่างกันไป นอกจากนั้นยังมีซอฟต์แวร์ที่เกี่ยวข้องรายย่อยอีก เช่น
    • Nios II Embedded Design Suite (EDS)
    • Intel SoC FPGA Embedded Development Suite (SoC EDS)
    • Intel DSP Builder (Model-based DSP using MALTAB/Simulink)
    • Intel FPGA SDK for OpenCL (OpenCL-based High-Level Synthesis)
    • Intel FPGA AI Suite (FPGA-based AI / Deep Learning Accelerators)
  • Altera Quartus II: แบ่งเป็น (1) Subscription Edition และ (2) Web Edition (free) — ไม่แนะนำให้ใช้งานแล้ว
  • Altera MAX+PLUS II — ไม่มีจำหน่ายและเลิกใช้งานแล้ว

รูป: ซอฟต์แวร์ Altera Quartus II Web Edition (v13.1)

หากพิจารณาซอฟต์แวร์สำหรับการออกแบบ FPGA เช่น ของบริษัท Intel / Altera และ AMD / Xilinx ก็มีข้อสังเกตดังนี้

  • ถ้าเป็นชิป FPGA ในกลุ่ม High-End / High-Performance จะมีค่าใช้จ่ายสำหรับค่าลิขสิทธิ์ของซอฟต์แวร์ (Software License Fee — paid license required) ราคาค่อนข้างแพง 
  • ถ้าเป็นชิป FPGA บางรุ่น ในกลุ่ม Low-Cost ก็จะมีเวอร์ชันฟรี เช่น ซอฟต์แวร์ Intel Quartus Prime Lite Edition และ AMD-Xilinx Vivado WebPACK Edition และ Vivado ML Standard Edition
  • ไฟล์สำหรับการติดตั้งซอฟต์แวร์ของบริษัท เช่น Intel/Altera และ AMD/Xilinx มักมีขนาดใหญ่และใช้พื้นที่ในการติดตั้งหลายสิบกิกะไบต์ (Gigabytes)

ในช่วงหลายปีที่ผ่านมา นักพัฒนาเริ่มสนใจการใช้ซอฟต์แวร์ประเภท FOSS (Free & Open Source Software) สำหรับการออกแบบวงจรในชิป FPGA และนิยมใช้กับระบบปฏิบัติการ Linux การติดตั้งไฟล์ต่าง ๆ ก็ใช้พื้นที่ในฮาร์ดดิสก์ไม่มาก ยกตัวอย่างเช่น 

  • Lattice Semiconductor: iCE40 & ECP5 FPGA Families (Project IceStorm | Project Trellis)
  • QuickLogic: EOS S3 MCU + eFPGA Family
  • Xilinx: Artix-7 / Kintex-7 FPGAs (Project X-Ray)
  • GOWIN Semiconductor: LittleBee FPGA Family
  • Cologne Chip: GateMate FPGA Family

ดังนั้นซอฟต์แวร์ประเภท FOSS EDA Software สำหรับ FPGA Design ก็เป็นอีกหนึ่งแนวโน้มและทิศทางที่น่าสนใจติดตามสำหรับนักพัฒนา

 


ตระกูลของชิป FPGA / SoC FPGA ของ Intel / Altera#

ลองมาดูรายการของชิป FPGA / SoC FPGA ของบริษัท Intel / Altera จากล่าสุดและย้อนไปในอดีต บริษัท Intel Corp. ได้เข้าซื้อบริษัท Altera Corp. ได้สำเร็จในเดือนธันวาคม ค.ศ. 2015

  • Intel Agilex Series
    • Agilex 3 / 5 / 7 / 9
  • Intel Arria Series
    • Arria 10 GX / GT
    • Arria 10 SX
    • Arria V GX /GT / SX / ST
    • Arria V GZ
    • Arria II GZ / II GX (Not Recommended for New Designs)
    • Aria GX (Discontinued)
  • Altera Cyclone Series
    • Cyclone 10 LP / GX
    • Cyclone V
    • Cyclone IV GX / E
    • Cyclone III (Not Recommended for New Designs)
    • Cyclone II (Not Recommended for New Designs)
    • Cyclone (Discontinued)
  • Altera Stratix Series
    • Stratix 10 GX / SX / TX
    • Stratix V (Not Recommended for New Designs)
    • Stratix IV (Not Recommended for New Designs)
    • Stratix III (Not Recommended for New Designs)
    • Stratix II / GX (Discontinued)
    • Stratix / GX (Discontinued)
  • Altera MAX Series
    • MAX 10
    • MAX V
    • MAX II (Discontinued)
    • MAX 7000 (Discontinued)
    • MAX 3000A (Discontinued)
  • Legacy Devices (Discontinued)
    • ACEX 1K
    • APEX 20K / 20KE
    • FLEX 10K
    • FLEX 6000
    • HardCopy: Stratix / IV / III / II

ตระกูลของชิปที่มีการผลิตและจำหน่ายมาในอดีตหลายสิบปี ก็จะถูกยกเลิกการผลิตไปตามกาลเวลา หรือไม่แนะนำให้เลือกใช้งานอีกต่อไป

ซอฟต์แวร์ Intel Quartus Prime Lite Edition เป็นซอฟต์แวร์ที่ผู้ใช้สามารถดาวน์โหลดมาใช้งานได้ฟรี รองรับชิป FPGA ตระกูลต่อไปนี้

  • Cyclone 10 LP
  • Cyclone IV
  • Cyclone V
  • MAX 10

และไม่รองรับชิปในกลุ่ม High-End เช่น Agilex, Stratix 10, Arria 10 และ Cyclone 10 GX เป็นต้น ซึ่งจะต้องใช้กับ Intel Quartus Prime Pro Edition เท่านั้น

 


กล่าวสรุป#

บทความนี้ได้นำเสนอแนวทางการเลือกใช้ชิป FPGA ในประเด็นต่าง ๆ ที่ควรพิจารณา ก่อนการตัดสินใจเลือกใช้เพื่อการเรียนรู้และฝึกปฏิบัติสำหรับผู้เริ่มต้น

บทความที่เกี่ยวข้อง

 


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Created: 2023-07-01 | Last Updated: 2023-08-06