FPGA : FPGA คืออะไร

FPGA คืออะไร และข้อดีข้อเสียของ FPGA

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

ประกอบกับทางเรานั้นได้รับคำถามเกี่ยวกับข้อดีข้อเสีย FPGA มาบ่อยครั้งครับ  ทางเราก็เลยเขียนเรื่องนี้ขึ้นมา  ซึ่งก่อนที่เราจะไปรู้ว่าข้อดีข้อเสียของ FPGA คืออะไร  เราก็ควรที่จะรู้จักกับ FPGA ก่อนว่า FPGA นั้นคืออะไร

FPGA คืออะไร

  FPGA ก็คือชิปอุปกรณ์อิเล็กทรอนิกส์( IC )รูปแบบหนึ่ง  ซึ่งภายในนั้นจะมี Logic Gate ( ที่เอาไว้ทำ AND OR Gate ต่างๆ ) จำนวนมากมาย  โดยที่เราสามารถโปรแกรมลงไปเพื่อกำหนดการเชื่อมต่อของ Logic Gate ต่าง  ว่าเชื่อมต่อกันอย่างไร  การทำงานกันอย่างไรได้  ซึ่งในทางทฤษฏีนั้นเมื่อสามารถกำหนดการต่อ Logic Gate ได้ตามต้องการ  เราก็สามารถสร้างวงจรทางด้านดิจิตอลอะไรก็ได้  ไม่เว้นแม้กระทั่ง Micro Controller Unit  เพราะวงจรทางด้านดิจิตอลทั้งหลายก็คือการเอา Logic Gate มากต่อๆกันนั่นเอง

ดังนั้นจะเห็นได้ว่าข้อดีข้อหนึ่งของ FPGA ก็คือเราสามารถสร้างวงจรอะไรก็ได้ตามที่เราต้องการ  และการที่สามารถ reprogram ได้ทำให้ถึงแม้ว่าเราจะออกแบบวงจรมาผิด  เราก็จะยังสามารถที่จะแก้ไขใหม่ได้เรื่อยๆนั่นเอง ซึ่งจะแตกต่างจากการออกแบบ Hardware PCB หรือ ASIC ที่ถ้าเกิดผิดพลาด  ทางแก้ไขก็คือการสั่งทำใหม่ซึ่งจะมี ค่าใช้จ่ายที่เพิ่มสูงมากนั่นเอง  ซึ่งมันนำไปสู่การเป็นอุปกรณ์ที่เอาไว้ออกแบบทดสอบ technology ใหม่ๆว่ามันเป็นไปได้หรือไม่  ทำให้ FPGA จึงยังมีใช้งานอยู่เรื่อยๆ  เพราะว่า Technology ใหม่ๆพัฒนาตลอดเวลา 

นอกจากนั้น  เนื่องด้วย FPGA เป็นวงจร Logic gate ที่มาต่อกันเรื่อย  ไม่ใช่เป็นการบวกคำนวนคำสั่งแบบ CPU ดังนั้นวงจรของ FPGA นั้นทุกวงจรจะทำงานพร้อมกันหมดนั่นเอง  ทำให้วงจร FPGA นั้นมีการทำงานที่เร็วกว่า CPU ที่ Speed clock เท่ากัน

 

อีกข้อหนึ่งที่จะเห็นได้ก็คือการที่เราสามารถโปรแกรมเพื่อออกออกแบบวงจรอะไรก็ได้  และถ้าเราได้ออกแบบบอร์ด FPGA ให้สามารถไปทำงานร่วมกับหลายๆงานได้  จะทำให้ FPGA นั้น Flexible มาก  ยกตัวอย่างเช่น บอร์ดที่ทำเอาไว้ทดสอบงานต่างๆ  ซึ่งเราจะต้องโปรแแกรมเปลี่ยนไปเรื่อยๆตามงานที่เราต้องการทดสอบ  แต่ถ้าเป็นMCU ทั่วๆไปที่เราใช้นั้นจะมีข้อจำกัดอยู่ เช่น UART มี 1 Port

ข้อดี-ข้อเสียของ FPGA 

จากข้อมูลที่ได้กล่าวมา  เราอาจจะสรุปข้อดีข้อเสียของ FPGA หลักๆแบ่งเป็นหัวข้อดังนี้คือ

ข้อดี

1. Flexible เปลี่ยนแปลงตำแหน่งขา output ได้ตามต้องการ
2. Reprogram ได้
3. วงจรที่ออกแบบทำงานพร้อมกันหมด
4. เหมาะกับงานด้าน Technology ใหม่  นอกจากที่เอาไว้ทดสอบแล้ว  มันยัง Fast to market ด้วย

ข้อเสีย

1. ออกแบบยากเพราะเป็นการออกแบบวงจร Hardware digital
2. ต้องคิดถึงเรื่อง Delay time ด้วย  ทำให้ code ที่ออกแบบในวงจรหนึ่งอาจจะทำงานไม่ได้ในอีกวงจรหนึ่ง
3. รูปแบบการเขียนโปรแกรมไม่เหมือนโปรแกรมมิ่งทั่วๆไป  เพราะเราต้องคิดว่าวงจรทั้งหมดทำงานพร้อมกัน
4. มีการกินพลังงานที่สูงกว่า

แต่ว่าการจะบอกว่าเป็นข้อดีหรือข้อเสียได้นั้น  เราต้องมีสิ่งบางอย่างมาเปรียบเทียบกับมัน  ถ้าไม่มีอะไรมาเปรียบเทียบก็จะไม่มีข้อดีข้อเสีย  ดังนั้นทางเราจึงเปรียบเทียบ FPGA กับ ASIC และ MCU ครับ

ข้อดีข้อเสียเมื่อเปรียบเทียบระหว่าง FPGA กับ ASIC

ข้อดี

1. Time to market ของ FPGA นั้นเร็วกว่า
    เพราะว่า ASIC นั้นมีขั้นตอนก่อนที่จะเป็น IC ที่ใช้ได้นั้นต้องผ่านขั้นตอนอีกหลายกระบวนการไม่ว่าจะเป็นการผลิต การทดสอบ  ซึ่งไม่เหมือน FPGA ที่มี IC ขายอยู่แล้ว
2. ราคาถูกกว่า
    ในกรณีที่ไม่ได้สั่งจำนวนมากๆ FPGA ราคาถูกกว่า  เนื่องจาก ASIC นั้นจะมี initial cost ของการผลิตที่สูง  แต่งานบางงานต้องการเพียงแค่ 100 หรือ 1,000 ตัว  การใช้ FPGA ก็จะถูกกว่า ASIC
3. รองรับการเปลี่ยนเปลงได้ง่ายกว่า
    เพราะว่า ASIC นั้นไม่สามารถเปลี่ยนแปลงได้  เว้นแต่ว่าจะผลิตใหม่ซึ่งก็จะมี cost ที่สูง  ผิดกับ FPGA ที่ reprogram ใหม่ได้
4. การใช้งานในระยะยาวนั้นเหมาะสมมากกว่า
    เพราะว่า ASIC นั้นถ้าเลิกผลิตแล้ว  เราอาจจะไม่สามารถหา Chip อื่นมาเปลี่ยนแทนได้  แต่ FPGA ถึงรุ่นที่ใช้อยู่จะเลิกผลิต  แต่ว่าเราสามารถนำ Code ที่เราออกแบบไปใช้กับ FPGA อื่นได้

ข้อเสีย

1. เสียพลังงานเยอะกว่า
    เพราะว่า ASIC นั้นมีการออกแบบเฉพาะมาแล้วให้ดี  นอกจากนั้นจะไม่มีวงจรส่วนที่ไม่จำเป็น  จึงกินพลังงานน้อยกว่า FPGA
2. มีขนาดใหญ่กว่า
    เหตุผลก็เหมือนกับข้อ 1 ที่กล่าวไปแล้ว  เพราะ FPGA ได้ออกแบบมาเพื่อให้มีขนาดใหญ่  เพื่อให้ออกแบบและเปลี่ยนวงจรได้หลากหลายกว่า
3. ราคาแพงกว่าถ้าผลิตจำนวนมาก
    เนื่องจาก initial cost นั้นถูกกระจายไปกับจำนวนการผลิต  ทำให้ถึงจุดๆหนึ่ง ราคา FPGA จะแพงกว่า
4. มี delay time ที่จำกัด
    Timing FPGA นั้นมี delay time ที่จำกัดในการออกแบบอยู่  ซึ่งมันจำกัดที่ FPGA ที่ออกแบบพื้นฐานมาจาก RAM

 ข้อดีข้อเสียเมื่อเปรียบเทียบระหว่าง FPGA กับ MCU

ข้อดี

1. ทำงานได้เร็วกว่า
จากการที่  FPGA นั้นสามารถออกแบบให้ทำงานพร้อมกันได้หมด  ทำให้สามารถออกแบบให้มีการทำงานที่เร็วกว่า MCU ได้  เสมือนมี Core  มากมาย
2. ความยืดหยุ่น(Flexible)
FPGA นั้นสามารถกำหนด pin input/output ให้ออกขาไหนได้ตามต้องการ  ซึ่งต่างจาก MCU ที่จะถูกกำหนดขา Function ต่างๆไว้ ดังนั้นถ้าออกแบบวงจร schematic ถ้าต้องการแก้ไขจะแก้ไขลำบาก หรือต้องทำใหม่เลย
3. ออกแบบ(design)วงจรได้ตามต้องการ
เราสามารถให้มีวงจรได้ตามต้องการ  ไม่เว้นแม้แต่ใส่ MCU ลงไปใน FPGA
4. การใช้งานในระยะยาวเหมาะสมกว่า
เหมือนกับข้อดีเมื่อเทียบกับ ASIC ข้อ 4

ข้อเสีย

1. ขนาดใหญ่กว่า
เหมือนกับข้อดีเมื่อเทียบกับ ASIC ข้อ 2
2. ราคาแพง
ราคา FPGA นั้นจะแพงกว่า MCU อยู่พอสมควร
3. กินพลังงานมากกว่า
เหมือนกับข้อดีเมื่อเทียบกับ ASIC ข้อ 1
4. ความซับซ้อน
เนื่องจากต้องเป็นการออกแบบวงจรดิจิตอลเลยทำให้มันมีความซับซ้อนมากกว่าออกแบบ firmware มาก  และนอกจากนั้น FPGA ยังมีเรื่อง delay time มาเกี่ยวข้องด้วย  ซึ่งทำให้วงจรที่ออกแบบไว้แล้วเรียบร้อยทำงานได้ดี แต่ถ้ามีการแก้ไขบางอย่างไป  สิ่งที่ออกแบบไว้ก็อาจจะมีผลกระทบจนทำงานไม่ได้ก็ได้

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

โดยทาง NDRS มีความรู้จากผู้เชี่ยวชาญมาคอยแบ่งบันเรื่อยๆ  หากกำลังมองหาผู้เชี่ยวชาญเพื่อมาช่วยแก้ปัญหาให้กับผลิตภัณฑ์อิเล็กทรอนิกส์  สามารถติดต่อมาทางอีเมล์ ndrs@ndrsolution.com ได้ครับ