ด้วยความนิยมที่เพิ่มขึ้นของวิศวกรไมโครคอนโทรลเลอร์จึงใช้ไมโครคอนโทรลเลอร์มากกว่า FPGA ไมโครคอนโทรลเลอร์ได้กลายเป็นที่โดดเด่นกว่าFPGAเนื่องจากค่าใช้จ่ายราคาถูกของพวกเขาสนับสนุนที่ดีพร้อมใช้งานง่าย, ชุมชนขนาดใหญ่เก่งกาจโปรแกรม ฯลฯ แต่นอกเหนือจากไมโครโปรเซสเซอร์ที่มีข้อ จำกัด บางอย่างเช่นคำแนะนำในการตั้งค่าการดำเนินการตามลำดับของโปรแกรม (การประมวลผลตามลำดับ) ขาดความยืดหยุ่นและการนำกลับมาใช้ใหม่เป็นต้นอย่างไรก็ตาม FPGA สามารถเอาชนะข้อ จำกัด เหล่านี้ได้เนื่องจาก FPGA มีการทำงานของโปรแกรมแบบขนานและมีความยืดหยุ่นและนำกลับมาใช้ใหม่ได้หมายความว่าสามารถตั้งโปรแกรมซ้ำได้สำหรับงานต่างๆ
FPGA คืออะไรและแตกต่างจากไมโครคอนโทรลเลอร์อย่างไร
เอฟพีจีเอเป็นซิลิคอนชิปวงจรรวมที่มีอาร์เรย์ของประตูตรรกะและอาร์เรย์นี้สามารถตั้งโปรแกรมในสนามเช่นผู้ใช้สามารถเขียนทับการกำหนดค่าที่มีอยู่กับการกำหนดค่าที่กำหนดใหม่และสามารถสร้างวงจรดิจิตอลของตัวเองในสนาม FPGA ถือได้ว่าเป็นกระดานชนวนว่าง FPGAs ทำอะไรด้วยตัวเองในขณะที่มันขึ้นอยู่กับนักออกแบบในการสร้างแฟ้มการกำหนดค่ามักจะเรียกว่าไฟล์บิตสำหรับ FPGA FPGA จะทำงานเหมือนกับวงจรดิจิทัลเมื่อโหลดด้วยไฟล์บิต
ในขณะที่ไมโครคอนโทรลเลอร์ไม่เป็นเช่นนั้นเนื่องจากไมโครคอนโทรลเลอร์ไม่สามารถตั้งโปรแกรมหรือปรับโครงสร้างในภาคสนามได้ ผู้ใช้ไม่ได้รับอนุญาตให้เขียนทับการกำหนดค่าที่มีอยู่และไม่สามารถสร้างวงจรดิจิทัลบนสนามได้ ไมโครคอนโทรลเลอร์นั้นง่ายต่อการเขียนโปรแกรมและชุมชนก็กว้างเช่นกัน ไมโครคอนโทรลเลอร์เป็นคอมพิวเตอร์ขนาดเล็กที่สร้างขึ้นเองซึ่งมาในรูปแบบ IC ในขณะที่ FPGA มีเฉพาะบล็อกลอจิกที่สามารถเดินสายไฟฟ้าได้อีกครั้ง นอกจากนี้ในแง่ของไมโครคอนโทรลเลอร์ยังใช้พลังงานน้อยกว่า FPGA FPGA เป็นที่ทราบกันดีว่ามีราคาแพงและต้องใช้ต้นทุนมากกว่าไมโครคอนโทรลเลอร์ในการสร้างอุปกรณ์ใด ๆ FPGA ใช้เวลาในการตั้งค่ามากกว่ามากในขณะที่ไมโครคอนโทรลเลอร์มีให้พร้อมสำหรับการใช้งานเฉพาะ
สถาปัตยกรรม FPGA
FPGA มีโครงสร้างปกติของเซลล์ลอจิกหรือโมดูลและการเชื่อมโยงระหว่างกันซึ่งอยู่ภายใต้การควบคุมของนักพัฒนาและนักออกแบบ FPGA ถูกสร้างขึ้นด้วยส่วนใหญ่เป็นสามช่วงตึกที่สำคัญเช่นการกำหนดค่าลอจิกบล็อก (CLB), I / O บล็อกหรือกายและสวิทช์เมทริกซ์ / สายไฟเชื่อมต่อโครงข่าย แต่ละบล็อกจะกล่าวถึงโดยสังเขปด้านล่าง
- CLB (Configurable Logic Block):เป็นเซลล์พื้นฐานของ FPGA ประกอบด้วยเครื่องกำเนิดฟังก์ชัน 8 บิตหนึ่งเครื่องกำเนิดฟังก์ชัน 16 บิตสองตัวรีจิสเตอร์สองตัว (ฟลิปฟล็อปหรือสลัก) และระบบควบคุมการกำหนดเส้นทางที่ตั้งโปรแกรมได้ CLB ถูกนำไปใช้เพื่อใช้ฟังก์ชันและมาโครอื่น ๆ ที่ออกแบบไว้ แต่ละ CLB มีอินพุตในแต่ละด้านซึ่งทำให้ยืดหยุ่นได้สำหรับการแมปและการแบ่งพาร์ติชันของตรรกะ
- I / O Pads หรือ Blocks:แผ่นอินพุต / เอาต์พุตใช้สำหรับอุปกรณ์ต่อพ่วงภายนอกเพื่อเข้าถึงฟังก์ชันของ FPGA และการใช้ I / O Pads ยังสามารถสื่อสารกับ FPGA สำหรับแอปพลิเคชันต่างๆโดยใช้อุปกรณ์ต่อพ่วงที่แตกต่างกัน
- Switch Matrix / Interconnection Wires: Switch Matrix ใช้ใน FPGA เพื่อเชื่อมต่อสายเชื่อมต่อโครงข่ายที่ยาวและสั้นเข้าด้วยกันแบบยืดหยุ่น นอกจากนี้ยังมีทรานซิสเตอร์เพื่อเปิด / ปิดการเชื่อมต่อระหว่างสายต่างๆ
เมื่อจำเป็นต้องใช้ FPGA
ดังที่ได้กล่าวไว้ข้างต้นว่าไมโครคอนโทรลเลอร์มีข้อ จำกัด บางประการและไม่สามารถใช้เพื่อทำงานควบคู่กันได้เนื่องจากไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ทำงานบนการดำเนินการตามลำดับของโปรแกรมซึ่งทำให้บางแอปพลิเคชันทำงานช้าลงเล็กน้อยในสถานการณ์สมมตินี้ FPGA มีข้อได้เปรียบและสามารถใช้งานได้อย่างมีประสิทธิภาพ. นอกจากนี้ไมโครคอนโทรลเลอร์สามารถดำเนินการที่ จำกัด เพราะพวกเขามาพร้อมคำแนะนำและวงจรของพวกเขาโปรแกรมเมอร์ต้องปฏิบัติตามข้อ จำกัด ในขณะที่พัฒนาโค้ด ดังนั้นในสถานการณ์นี้ FPGA จึงมีข้อได้เปรียบ
อย่างไรก็ตามในกรณีของไมโครคอนโทรลเลอร์โปรเซสเซอร์จะสลับจากรหัสหนึ่งไปยังอีกรหัสหนึ่งเพื่อให้ได้ระดับความขนานกัน คุณจะพบว่าการเขียนโค้ดบนไมโครคอนโทรลเลอร์ทำได้ง่ายกว่า FPGA ความสามารถในการประมวลผลแบบขนานของ FPGAs ช่วยให้คุณสามารถควบคุมการหยุดชะงักอย่างมีประสิทธิภาพโดยใช้ไฟไนต์รัฐ Machines (FSMs)
ในกรณีของไมโครคอนโทรลเลอร์คุณต้องคำนึงถึงเวลาที่ ISR ใช้เพื่อแก้ไขปัญหาการหยุดชะงัก คุณสามารถสร้าง FPGA ใหม่ได้อย่างง่ายดายเพียงแค่ตั้งโปรแกรมใหม่ การกำหนดค่าใน FPGA ถูกโหลดบนเซลล์ลอจิกที่กำหนดค่าได้เมื่อเปิดเครื่อง
คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงใด ๆ ในฮาร์ดแวร์เพื่อตั้งโปรแกรม FPGA ใหม่ FPGAs มีความเหมาะสมสำหรับการประมวลผลความเร็วสูงของข้อมูลแบบขนานและมาพร้อมกับระดับสูงของ customizability อย่างไรก็ตามพวกเขายังมีข้อเสียของการทำงานของต้นแบบและความซับซ้อนของการกำหนดค่า ดังนั้น FPGA จึงสามารถเลือกได้ด้วยข้อดีเหล่านี้เหนือไมโครคอนโทรลเลอร์ มาเริ่มการเขียนโปรแกรม FPGA และเน้นย้ำ