กลับไปหน้าบทความ

อ่าน 17 นาที

อาร์เรย์เกตที่ตั้งโปรแกรมได้ฟิลด์

วงจร เกตแบบโปรแกรมได้ ( FPGA ) เป็น วงจรรวมแบบ กำหนดค่าได้ชนิดหนึ่งที่สามารถโปรแกรมซ้ำได้หลังจากการผลิต FPGA เป็นส่วนหนึ่งของอุปกรณ์ลอจิกที่เรียกว่า อุปกรณ์ลอจิกแบบโปรแกรมได้...

อาร์เรย์เกตที่ตั้งโปรแกรมได้ฟิลด์

ชิป FPGA รุ่น Stratix IVจากAltera

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

โดยทั่วไป การกำหนดค่า FPGA จะเขียนโดยใช้ภาษาอธิบายฮาร์ดแวร์ (HDL) เช่นVHDLซึ่งคล้ายกับที่ใช้สำหรับวงจรรวมเฉพาะงาน (ASIC) ในอดีตนั้น จะใช้ แผนภาพวงจรในการเขียนการกำหนดค่า

บล็อกตรรกะของ FPGA สามารถกำหนดค่าให้ทำงานฟังก์ชันเชิงผสม ที่ซับซ้อน หรือทำหน้าที่เป็นเกตตรรกะ อย่างง่าย เช่นANDและXORได้ ใน FPGA ส่วนใหญ่ บล็อกตรรกะยังรวมถึงองค์ประกอบหน่วยความจำซึ่งอาจเป็นฟลิปฟลอป อย่างง่าย หรือบล็อกหน่วยความจำที่ซับซ้อนกว่า[ 1 ] FPGA จำนวนมากสามารถตั้งโปรแกรมใหม่เพื่อใช้งานฟังก์ชันตรรกะ ที่แตกต่างกันได้ ทำให้สามารถประมวลผลที่ปรับเปลี่ยนได้ อย่างยืดหยุ่น เช่นเดียวกับที่ใช้ในซอฟต์แวร์คอมพิวเตอร์

FPGA ยังมีบทบาทใน การพัฒนา ระบบฝังตัวเนื่องจากความสามารถในการเริ่มต้นการพัฒนาซอฟต์แวร์ระบบพร้อมกับฮาร์ดแวร์พร้อมกัน ช่วยให้สามารถจำลองประสิทธิภาพของระบบได้ตั้งแต่ช่วงเริ่มต้นของการพัฒนา และอนุญาตให้ทดลองระบบและออกแบบซ้ำหลายครั้งก่อนที่จะสรุปสถาปัตยกรรมของระบบ[ 2 ]

นอกจากนี้ FPGA ยังถูกนำมาใช้กันอย่างแพร่หลายในระหว่างการพัฒนา ASIC เพื่อเร่งกระบวนการจำลองให้เร็วขึ้น

ประวัติศาสตร์

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

Alteraก่อตั้งขึ้นในปี 1983 และส่งมอบอุปกรณ์ลอจิกที่สามารถตั้งโปรแกรมใหม่ได้เป็นครั้งแรกของอุตสาหกรรมในปี 1984 ซึ่งก็คือ EP300 ซึ่งมีหน้าต่างควอตซ์ในแพ็คเกจที่ช่วยให้ผู้ใช้สามารถส่องหลอดไฟอัลตราไวโอเลตไปที่ไดเพื่อลบ เซลล์ EPROMที่เก็บการกำหนดค่าของอุปกรณ์[ 4 ]

Xilinx (ปัจจุบันเป็นของAMD ) ผลิตอาร์เรย์เกต แบบโปรแกรมได้ภาคสนามที่ใช้งานได้จริงเชิงพาณิชย์เป็นครั้งแรก ในปี 1985 [ 3 ]  – XC2064 [ 5 ] XC2064 มีเกตแบบโปรแกรมได้และการเชื่อมต่อระหว่างเกตแบบโปรแกรมได้ ซึ่งเป็นจุดเริ่มต้นของเทคโนโลยีและตลาดใหม่[ 6 ] XC2064 มีบล็อกตรรกะที่กำหนดค่าได้ (CLB) จำนวน 64 บล็อก พร้อม ตารางค้นหา (LUT) สามอินพุตสองตาราง[ 7 ]

ในปี พ.ศ. 2530 ศูนย์ปฏิบัติการสงครามผิวน้ำของกองทัพเรือได้ให้ทุนสนับสนุนการทดลองที่เสนอโดย Steve Casselman เพื่อพัฒนาคอมพิวเตอร์ที่จะใช้เกตที่ตั้งโปรแกรมใหม่ได้ 600,000 ตัว Casselman ประสบความสำเร็จและได้รับสิทธิบัตรที่เกี่ยวข้องกับระบบดังกล่าวในปี พ.ศ. 2535 [ 3 ]

Altera และ Xilinx ยังคงครองตลาดโดยไม่มีคู่แข่งและเติบโตอย่างรวดเร็วตั้งแต่ปี 1985 จนถึงกลางทศวรรษ 1990 เมื่อคู่แข่งเริ่มปรากฏตัวขึ้น ทำให้ส่วนแบ่งการตลาดของพวกเขาลดลงอย่างมาก ในปี 1993 Actel (ต่อมาคือMicrosemiปัจจุบันคือ Microchip ) ให้บริการส่วนแบ่งการตลาดประมาณ 18 เปอร์เซ็นต์[ 6 ]

ทศวรรษ 1990 เป็นช่วงเวลาแห่งการเติบโตอย่างรวดเร็วของ FPGA ทั้งในด้านความซับซ้อนของวงจรและปริมาณการผลิต ในช่วงต้นทศวรรษ 1990 FPGA ถูกนำมาใช้เป็นหลักในด้านโทรคมนาคมและเครือข่ายในช่วงปลายทศวรรษ FPGA ก็ได้เข้ามามีบทบาทในแอปพลิเคชันสำหรับผู้บริโภค ยานยนต์ และอุตสาหกรรม[ 8 ]

ภายในปี 2013 Altera (31 เปอร์เซ็นต์), Xilinx (36 เปอร์เซ็นต์) และ Actel (10 เปอร์เซ็นต์) รวมกันคิดเป็นประมาณ 77 เปอร์เซ็นต์ของตลาด FPGA [ 9 ]

บริษัทต่างๆ เช่น ไมโครซอฟต์ เริ่มใช้ FPGA เพื่อเร่งความเร็วระบบที่มีประสิทธิภาพสูงและใช้การคำนวณอย่างหนัก (เช่นศูนย์ข้อมูลที่ให้บริการเครื่องมือค้นหา Bing ของพวกเขา ) เนื่องจากFPGA มีข้อได้เปรียบด้านประสิทธิภาพต่อวัตต์[ 10 ]ไมโครซอฟต์เริ่มใช้ FPGA เพื่อเร่งความเร็ว Bing ในปี 2014 และในปี 2018 ก็เริ่มใช้งาน FPGA กับเวิร์กโหลดศูนย์ข้อมูลอื่นๆ สำหรับแพลตฟอร์มคลาวด์คอมพิวติ้งAzure ของพวกเขา [ 11 ]

ตั้งแต่ปี 2019 เป็นต้นมา FPGA รุ่นใหม่ได้ถูกรวมเข้ากับสถาปัตยกรรมอื่นๆ เช่นเอ็นจิ้น AIเพื่อกำหนดเป้าหมายงานในโดเมนปัญญาประดิษฐ์[ 12 ]

การเจริญเติบโต

แผนภูมิแสดงลำดับเวลาต่อไปนี้แสดงถึงความคืบหน้าในด้านต่างๆ ของการออกแบบ FPGA

ประตู

  • พ.ศ. 2530: 9,000 เกต, Xilinx [ 6 ]
  • พ.ศ. 2535: 600,000 กรมสงครามผิวน้ำของกองทัพเรือ[ 3 ]
  • ช่วงต้นปี 2000: หลายล้าน[ 8 ]
  • 2013: 50 ล้าน, Xilinx [ 13 ]

ขนาดตลาด

  • พ.ศ. 2528: FPGA เชิงพาณิชย์ตัวแรก: Xilinx XC2064 [ 5 ] [ 6 ]
  • พ.ศ. 2530: 14 ล้านดอลลาร์สหรัฐ[ 6 ]
  • ประมาณปี 1993 : >385 ล้านเหรียญสหรัฐ[ 6 ]
  • 2548: 1.9 พันล้านดอลลาร์[ 14 ]
  • ประมาณการปี 2010: 2.75 พันล้านดอลลาร์สหรัฐ[ 14 ]
  • 2013: 5.4 พันล้านดอลลาร์[ 15 ]
  • ประมาณการปี 2020: 9.8 พันล้านดอลลาร์สหรัฐ[ 15 ]
  • ประมาณการปี 2030: 23.34 พันล้านดอลลาร์สหรัฐ[ 16 ]

การออกแบบเริ่มต้น

การเริ่มต้นออกแบบคือการออกแบบใหม่ตามสั่งเพื่อนำไปใช้งานบน FPGA

ออกแบบ

FPGA ในปัจจุบันมีเกตตรรกะและบล็อก RAM จำนวนมากพอที่จะใช้ในการคำนวณดิจิทัลที่ซับซ้อน FPGA สามารถใช้ในการดำเนินการฟังก์ชันตรรกะใดๆ ก็ได้ที่ASICสามารถทำได้ ความสามารถในการอัปเดตฟังก์ชันการทำงานหลังจากการจัดส่งการกำหนดค่าใหม่บางส่วนของการออกแบบ[ 19 ]และต้นทุนทางวิศวกรรมที่ไม่เกิดขึ้นซ้ำต่ำเมื่อเทียบกับการออกแบบ ASIC (แม้ว่าต้นทุนต่อหน่วยโดยทั่วไปจะสูงกว่า) ถือเป็นข้อได้เปรียบสำหรับแอปพลิเคชันจำนวนมาก[ 1 ]

เนื่องจากการออกแบบ FPGA ใช้ความเร็ว I/O ที่รวดเร็วมากและบัส ข้อมูลแบบสองทิศทาง จึงกลายเป็นความท้าทายในการตรวจสอบจังหวะเวลาที่ถูกต้องของข้อมูลที่ถูกต้องภายในเวลาตั้งค่าและเวลาคงค่า[ 20 ]การวางผังพื้นช่วยในการจัดสรรทรัพยากรภายใน FPGA เพื่อให้ตรงตามข้อจำกัดด้านเวลาเหล่านี้

FPGA บางตัวมีคุณสมบัติแบบอนาล็อกนอกเหนือจากฟังก์ชันดิจิทัล คุณสมบัติแบบอนาล็อกที่พบได้บ่อยที่สุดคืออัตราการเปลี่ยนแปลง ที่ตั้งโปรแกรมได้ บนพินเอาต์พุตแต่ละตัว ซึ่งช่วยให้ผู้ใช้สามารถตั้งค่าอัตราต่ำบนพินที่มีโหลดเบาซึ่งมิฉะนั้นจะ เกิด การสั่นหรือการเชื่อมต่อที่ไม่สามารถยอมรับได้ และตั้งค่าอัตราที่สูงขึ้นบนช่องสัญญาณความเร็วสูงที่มีโหลดมากซึ่งมิฉะนั้นจะทำงานช้าเกินไป[ 21 ] [ 22 ]นอกจากนี้ยังพบ วงจรขับออสซิ ลเล เตอร์คริสตัลควอตซ์ ออสซิลเลเตอร์ RCบนชิปและลูปเฟสล็อก ที่มีออสซิ ลเลเตอร์ควบคุมแรงดันไฟฟ้าแบบฝังที่ใช้สำหรับการสร้างและการจัดการสัญญาณนาฬิกา ตลอดจนสัญญาณนาฬิกาส่งและกู้คืนสัญญาณนาฬิกาตัวรับของซีเรียลไลเซอร์และดีซีเรียลไลเซอร์ความเร็วสูง (SERDES) ที่ค่อนข้างพบได้ทั่วไปตัวเปรียบเทียบแบบดิฟเฟอเรนเชียลบนพินอินพุตที่ออกแบบมาเพื่อเชื่อมต่อกับช่องสัญญาณแบบดิฟเฟอเรน เชียลก็ค่อนข้างพบได้ทั่วไปเช่นกัน FPGA แบบผสมสัญญาณบางตัวได้รวมตัวแปลงอนาล็อกเป็นดิจิทัล (ADC) และตัวแปลงดิจิทัลเป็นอนาล็อก (DAC) เข้ากับบล็อกปรับสภาพสัญญาณอนาล็อก ทำให้สามารถทำงานเป็นระบบบนชิป (SoC) ได้[ 23 ]อุปกรณ์ดังกล่าวทำให้เส้นแบ่งระหว่าง FPGA ซึ่งส่งค่าดิจิทัลหนึ่งและศูนย์บนโครงสร้างเชื่อมต่อภายในที่ตั้งโปรแกรมได้ และอาร์เรย์อนาล็อกที่ตั้งโปรแกรมได้ (FPAA) ซึ่งส่งค่าอนาล็อกบนโครงสร้างเชื่อมต่อภายในที่ตั้งโปรแกรมได้ นั้นเลือนหายไป

บล็อกตรรกะ

ภาพประกอบตัวอย่างแบบง่ายของเซลล์ตรรกะ (LUT – ตารางค้นหา , FA – ตัวบวกเต็ม , DFF – ฟลิปฟลอปชนิด D )

สถาปัตยกรรม FPGA ที่พบได้ทั่วไปประกอบด้วยอาร์เรย์ของบล็อกตรรกะที่เรียกว่าบล็อกตรรกะที่กำหนดค่าได้ (CLB) หรือบล็อกอาร์เรย์ตรรกะ (LAB) (ขึ้นอยู่กับผู้ผลิต) แผ่น I/Oและช่องทางการกำหนดเส้นทาง[ 1 ]โดยทั่วไป ช่องทางการกำหนดเส้นทางทั้งหมดจะมีขนาดความกว้างเท่ากัน (จำนวนสัญญาณ) แผ่น I/O หลายแผ่นอาจพอดีกับความสูงของแถวหนึ่งหรือความกว้างของคอลัมน์หนึ่งในอาร์เรย์

“วงจรแอปพลิเคชันจะต้องถูกแมปเข้ากับ FPGA ที่มีทรัพยากรเพียงพอ ในขณะที่จำนวนบล็อกตรรกะและ I/O ที่ต้องการนั้นสามารถกำหนดได้ง่ายจากการออกแบบ แต่จำนวนช่องทางการกำหนดเส้นทางที่ต้องการอาจแตกต่างกันอย่างมากแม้ในการออกแบบที่มีตรรกะในปริมาณเท่ากัน ตัวอย่างเช่นสวิตช์ครอสบาร์ต้องการการกำหนดเส้นทางมากกว่าอาร์เรย์ซิสโตลิกที่มีจำนวนเกตเท่ากัน เนื่องจากช่องทางการกำหนดเส้นทางที่ไม่ได้ใช้จะเพิ่มต้นทุน (และลดประสิทธิภาพ) ของ FPGA โดยไม่ให้ประโยชน์ใดๆ ผู้ผลิต FPGA จึงพยายามจัดหาช่องทางให้เพียงพอเพื่อให้การออกแบบส่วนใหญ่ที่เหมาะสมในแง่ของตารางค้นหา (LUT) และ I/O สามารถกำหนดเส้นทางได้ซึ่งกำหนดโดยการประมาณการเช่นที่ได้มาจากกฎของ Rentหรือโดยการทดลองกับการออกแบบที่มีอยู่” [ 24 ]

โดยทั่วไป บล็อกตรรกะประกอบด้วยเซลล์ตรรกะไม่กี่เซลล์ เซลล์ทั่วไปประกอบด้วย LUT 4 อินพุตตัวบวกเต็ม (FA) และฟลิปฟลอปแบบ D LUT อาจถูกแบ่งออกเป็น LUT 3 อินพุตสองตัว ใน โหมดปกติ LUT เหล่านั้นจะถูกรวมเข้าเป็น LUT 4 อินพุตผ่านมัลติเพล็กเซอร์ (mux) ตัวแรก ใน โหมด เลขคณิตเอาต์พุตของ LUT เหล่านั้นจะถูกป้อนไปยังตัวบวก การเลือกโหมดจะถูกตั้งโปรแกรมไว้ในมัลติเพล็กเซอร์ตัวที่สอง เอาต์พุตอาจเป็นแบบซิงโครนัสหรืออะซิงโครนัสขึ้นอยู่กับการตั้งโปรแกรมของมัลติเพล็กเซอร์ตัวที่สาม ในทางปฏิบัติ ตัวบวกทั้งหมดหรือบางส่วนของตัวบวกจะถูกจัดเก็บเป็นฟังก์ชันใน LUT เพื่อประหยัดพื้นที่[ 25 ] [ 26 ] [ 27 ]

บล็อกแข็ง

ตระกูล FPGA สมัยใหม่ได้ขยายขีดความสามารถข้างต้นเพื่อรวมฟังก์ชันการทำงานระดับสูงที่ฝังอยู่ในซิลิคอน การฝังฟังก์ชันทั่วไปเหล่านี้ไว้ในวงจรช่วยลดพื้นที่ที่ต้องการและเพิ่มประสิทธิภาพการทำงานของฟังก์ชันเหล่านั้นเมื่อเทียบกับการสร้างจากหน่วยตรรกะพื้นฐาน ตัวอย่างเช่นตัวคูณบล็อก DSPทั่วไปโปรเซสเซอร์แบบฝังตัวตรรกะ I/O ความเร็วสูง และหน่วยความจำแบบ ฝังตัว

FPGA ระดับสูงสามารถมีทรานซีฟเวอร์ความเร็วสูงระดับมัลติกิกะบิตและคอร์ IP แบบฮาร์ดแวร์เช่นคอร์ประมวลผลหน่วยควบคุมการเข้าถึงสื่ออีเธอร์เน็ต คอนโทรลเลอร์PCIหรือPCI Expressและคอนโทรลเลอร์หน่วยความจำ ภายนอก คอร์เหล่านี้อยู่ร่วมกับโครงสร้างโปรแกรมได้ แต่สร้างขึ้นจากทรานซิสเตอร์แทนที่จะเป็น LUT ดังนั้นจึงมีประสิทธิภาพและการใช้พลังงานในระดับ ASIC โดยไม่ใช้ทรัพยากรโครงสร้างมากนัก ทำให้มีโครงสร้างเหลือว่างมากขึ้นสำหรับตรรกะเฉพาะแอปพลิเคชัน ทรานซีฟเวอร์มัลติกิกะบิตยังประกอบด้วย วงจร ปรับสภาพสัญญาณ ประสิทธิภาพสูง พร้อมกับตัวแปลงอนุกรมและตัวแปลงอนุกรมความเร็วสูง ซึ่งเป็นส่วนประกอบที่ไม่สามารถสร้างจาก LUT ได้ ฟังก์ชันการทำงานของเลเยอร์ทางกายภาพ (PHY) ระดับสูง เช่นการเข้ารหัสสายอาจถูกนำไปใช้ร่วมกับตัวแปลงอนุกรมและตัวแปลงอนุกรมในตรรกะแบบฮาร์ดแวร์หรือไม่ก็ได้ ขึ้นอยู่กับ FPGA

แกนอ่อน

ชิปประมวลผลแบบโปรแกรมได้ทั้งหมด Xilinx Zynq - 7000

แนวทางอื่นนอกเหนือจากการใช้โปรเซสเซอร์มาโครแบบฮาร์ดแวร์ คือการใช้คอร์ IP โปรเซสเซอร์แบบซอฟต์แวร์ ที่ถูกนำมาใช้ภายในตรรกะของ FPGA Nios II , MicroBlazeและMico32เป็นตัวอย่างของโปรเซสเซอร์แบบซอฟต์คอร์ที่ได้รับความนิยม FPGA สมัยใหม่จำนวนมากได้รับการตั้งโปรแกรมในระหว่างการทำงานซึ่งนำไปสู่แนวคิดของการประมวลผลที่ปรับเปลี่ยนได้หรือระบบที่ปรับเปลี่ยนได้ – CPUที่ปรับเปลี่ยนตัวเองให้เหมาะสมกับงานที่ทำ นอกจากนี้ สถาปัตยกรรมที่ไม่ใช่ FPGA ใหม่ๆ ก็เริ่มปรากฏขึ้น ไมโครโปรเซสเซอร์ที่กำหนดค่าได้ด้วยซอฟต์แวร์ เช่น Stretch S5000 ใช้แนวทางแบบไฮบริดโดยการจัดเตรียมอาร์เรย์ของคอร์โปรเซสเซอร์และคอร์ที่ตั้งโปรแกรมได้แบบ FPGA บนชิปเดียวกัน

การบูรณาการ

ในปี 2012 แนวทางสถาปัตยกรรมแบบหยาบได้รับการพัฒนาไปอีกขั้นโดยการรวมบล็อกตรรกะและการเชื่อมต่อของ FPGA แบบดั้งเดิมเข้ากับไมโครโปรเซสเซอร์ แบบฝังตัว และอุปกรณ์ต่อพ่วงที่เกี่ยวข้องเพื่อสร้างระบบที่สมบูรณ์บนชิปที่ตั้งโปรแกรมได้ตัวอย่างของเทคโนโลยีไฮบริดดังกล่าวสามารถพบได้ในXilinx Zynq-7000 SoC ที่ตั้งโปรแกรมได้ ทั้งหมด [ 28 ]ซึ่ง รวมถึงโปรเซสเซอร์ ARM Cortex-A9 MPCore แบบ dual-core 1.0  GHz ที่ฝังอยู่ภายในโครงสร้างตรรกะของ FPGA [ 29 ]หรือในAltera Arria V FPGA ซึ่งรวมถึงARM Cortex-A9 MPCore แบบ dual-core 800 MHz Atmel FPSLIC เป็นอุปกรณ์อีกตัวหนึ่งที่ใช้ โปรเซสเซอร์ AVRร่วมกับสถาปัตยกรรมตรรกะที่ตั้งโปรแกรมได้ของ Atmel อุปกรณ์Microsemi SmartFusion ประกอบด้วยแกนประมวลผลฮาร์ดแวร์ ARM Cortex-M3 (พร้อมหน่วย ความจำแฟลชสูงสุด 512 kB และ RAM 64 kB) และอุปกรณ์ต่อพ่วง แบบอนาล็อก เช่นตัวแปลงอนาล็อกเป็นดิจิทัล แบบหลายช่องสัญญาณ และตัวแปลงดิจิทัลเป็นอนาล็อกในโครงสร้าง FPGA ที่ใช้ หน่วยความจำแฟลช

การจับเวลา

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

สถาปัตยกรรม 3 มิติ

เพื่อลดขนาดและการใช้พลังงานของ FPGA ผู้ผลิตเช่นTabulaและXilinxได้นำสถาปัตยกรรม 3 มิติหรือแบบเรียงซ้อน มา ใช้[ 30 ] [ 31 ]หลังจากการเปิดตัว FPGA ซีรีส์ 7 ขนาด 28 นาโนเมตร Xilinx กล่าวว่าชิ้นส่วนที่มีความหนาแน่นสูงสุดหลายชิ้นในกลุ่มผลิตภัณฑ์ FPGA เหล่านั้นจะถูกสร้างขึ้นโดยใช้ไดหลายตัวในแพ็คเกจเดียว โดยใช้เทคโนโลยีที่พัฒนาขึ้นสำหรับการสร้างแบบ 3 มิติและการประกอบไดแบบเรียงซ้อน

แนวทางของ Xilinx คือการวางชิป FPGA ที่ใช้งานอยู่หลายตัว (สามหรือสี่ตัว) เรียงกันบนแผ่น ซิลิคอนตัวกลาง  ซึ่งเป็นแผ่นซิลิคอนชิ้นเดียวที่ทำหน้าที่เชื่อมต่อแบบพาสซีฟ[ 31 ] [ 32 ]โครงสร้างแบบหลายชิปยังช่วยให้สามารถสร้างส่วนต่างๆ ของ FPGA ด้วยเทคโนโลยีการผลิตที่แตกต่างกันได้ เนื่องจากข้อกำหนดของกระบวนการแตกต่างกันระหว่างโครงสร้าง FPGA เองกับตัวรับส่งสัญญาณแบบอนุกรมความเร็วสูง28 Gbit/s FPGA ที่สร้างขึ้นในลักษณะนี้เรียกว่าFPGAแบบเฮเทอโรจีนัส[ 33 ]

แนวทางแบบเฮเทอโรจีนัสของ Altera เกี่ยวข้องกับการใช้ชิป FPGA แบบโมโนลิธิกตัวเดียว และเชื่อมต่อชิปและเทคโนโลยีอื่นๆ เข้ากับ FPGA โดยใช้เทคโนโลยี Embedded Multi-Die Interconnect Bridge (EMIB) ของ Intel [ 34 ]

การเขียนโปรแกรม

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

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

ภาษา HDL ที่พบบ่อยที่สุดคือVHDLและVerilog ภาษาการเขียนโปรแกรมกราฟิก LabVIEWของNational Instruments (บางครั้งเรียกว่าG ) มีโมดูลเสริม FPGA ที่พร้อมใช้งานเพื่อกำหนดเป้าหมายและ เขียนโปรแกรมฮาร์ดแวร์ FPGA Verilog ถูกสร้างขึ้นเพื่อลดความซับซ้อนของกระบวนการ ทำให้ HDL มีความแข็งแกร่งและยืดหยุ่นมากขึ้น Verilog มีไวยากรณ์คล้าย C [ 35 ] ซึ่งแตกต่างจาก VHDL ที่ มีพื้นฐานมาจากAda

เพื่อลดความซับซ้อนของการออกแบบระบบที่ซับซ้อนใน FPGA จึงมีไลบรารีของฟังก์ชันและวงจรที่ซับซ้อนที่กำหนดไว้ล่วงหน้า ซึ่งผ่านการทดสอบและปรับให้เหมาะสมแล้วเพื่อเร่งกระบวนการออกแบบ วงจรที่กำหนดไว้ล่วงหน้าเหล่านี้มักเรียกว่าคอร์ทรัพย์สินทางปัญญา (IP cores)และมีให้ใช้งานจากผู้จำหน่าย FPGA และผู้จัดหา IP จากภายนอก โดยทั่วไปแล้วจะไม่ฟรี และมักเผยแพร่ภายใต้ใบอนุญาตกรรมสิทธิ์ นอกจากนี้ยังมีวงจรที่กำหนดไว้ล่วงหน้าจากชุมชนนักพัฒนา เช่นOpenCores (โดยทั่วไปเผยแพร่ภายใต้ ใบอนุญาต ฟรีและโอเพนซอร์สเช่นGPL , BSDหรือใบอนุญาตที่คล้ายกัน) การออกแบบดังกล่าวเรียกว่าฮาร์ดแวร์โอเพนซอร์ส

ในขั้นตอนการออกแบบ ทั่วไป นักพัฒนาแอปพลิเคชัน FPGA จะจำลองการออกแบบในหลายขั้นตอนตลอดกระบวนการออกแบบ ในขั้นแรกจะจำลอง คำอธิบาย RTLในVHDLหรือVerilog โดยการสร้าง test benchเพื่อจำลองระบบและสังเกตผลลัพธ์ จากนั้น หลังจากที่ กลไก การสังเคราะห์ได้แมปการออกแบบไปยัง netlist แล้ว netlist จะถูกแปลงเป็น คำอธิบาย ระดับเกตซึ่งจะทำการจำลองซ้ำอีกครั้งเพื่อยืนยันว่าการสังเคราะห์ดำเนินไปโดยไม่มีข้อผิดพลาด สุดท้าย การออกแบบจะถูกจัดวางใน FPGA ซึ่งในขั้นตอนนี้ ค่า ความหน่วงในการแพร่กระจายสามารถใส่กลับเข้าไปใน netlist ได้ และสามารถเรียกใช้การจำลองอีกครั้งด้วยค่าเหล่านี้

เมื่อไม่นานมานี้OpenCL (Open Computing Language) ถูกนำมาใช้โดยโปรแกรมเมอร์เพื่อใช้ประโยชน์จากประสิทธิภาพและประสิทธิภาพการใช้พลังงานที่ FPGA มอบให้ OpenCL ช่วยให้โปรแกรมเมอร์สามารถพัฒนาโค้ดในภาษาการเขียนโปรแกรม Cได้[ 36 ]สำหรับข้อมูลเพิ่มเติม โปรดดูการสังเคราะห์ระดับสูงและC เป็น HDL

FPGA ส่วนใหญ่ใช้ แนวทางการเขียนโปรแกรมแบบ SRAM FPGA เหล่านี้สามารถเขียนโปรแกรมและเขียนโปรแกรมซ้ำได้ภายในระบบ แต่ต้องใช้อุปกรณ์บูตภายนอก ตัวอย่างเช่นหน่วยความจำแฟลชหรือEEPROMอาจโหลดเนื้อหาลงใน SRAM ภายในที่ควบคุมการกำหนดเส้นทางและตรรกะ แนวทาง SRAM นี้ใช้เทคโนโลยีCMOSเป็น พื้นฐาน

ทางเลือกอื่นที่พบได้น้อยกว่าวิธีการของ SRAM ได้แก่:

  • ฟิวส์ : ตั้งโปรแกรมได้ครั้งเดียว แบบสองขั้ว ล้าสมัยแล้ว
  • แอนติฟิวส์ : ตั้งโปรแกรมได้ครั้งเดียว CMOS ตัวอย่างเช่น ตระกูล Actel SX และ Axcelerator; ตระกูล Quicklogic Eclipse II [ 37 ]
  • PROM : เทคโนโลยีหน่วยความจำแบบอ่านอย่างเดียวที่ตั้งโปรแกรมได้ ตั้งโปรแกรมได้เพียงครั้งเดียวเนื่องจากบรรจุภัณฑ์เป็นพลาสติก ล้าสมัยแล้ว
  • EPROM : เทคโนโลยีหน่วยความจำแบบอ่านอย่างเดียวที่สามารถลบและเขียนโปรแกรมใหม่ได้ สามารถเขียนโปรแกรมได้ครั้งเดียว แต่มีช่องหน้าต่างเพื่อให้สามารถลบข้อมูลได้ด้วยแสงอัลตราไวโอเลต (UV) ใช้เทคโนโลยี CMOS ปัจจุบันล้าสมัยแล้ว
  • EEPROM : เทคโนโลยีหน่วยความจำแบบอ่านอย่างเดียวที่สามารถลบและเขียนโปรแกรมใหม่ได้ด้วยไฟฟ้า สามารถลบข้อมูลได้แม้ในบรรจุภัณฑ์พลาสติก อุปกรณ์ EEPROM บางชนิดสามารถเขียนโปรแกรมภายในระบบได้ แต่ไม่ใช่ทั้งหมด ใช้เทคโนโลยี CMOS
  • แฟลช : เทคโนโลยี EPROM แบบลบด้วยแฟลช สามารถลบได้แม้ในแพ็คเกจพลาสติก อุปกรณ์แฟลชบางตัว แต่ไม่ใช่ทั้งหมด สามารถตั้งโปรแกรมในระบบได้ โดยปกติแล้ว เซลล์แฟลชจะมีขนาดเล็กกว่าเซลล์ EEPROM ที่เทียบเท่ากัน ดังนั้นจึงมีต้นทุนการผลิตที่ต่ำกว่า CMOS ตัวอย่างเช่น ตระกูล Actel ProASIC [ 37 ]

ผู้ผลิต

ในปี 2016 Xilinx (ปัจจุบันเป็นส่วนหนึ่งของAMD ) และAlteraซึ่งเป็นคู่แข่งในอุตสาหกรรมมายาวนานเป็นผู้นำตลาด FPGA [ 38 ]ในเวลานั้น พวกเขาควบคุมตลาดเกือบ 90 เปอร์เซ็นต์

ทั้ง Xilinx และ Altera ต่างก็มี ซอฟต์แวร์ การออกแบบอัตโนมัติทางอิเล็กทรอนิกส์ที่เป็นกรรมสิทธิ์ สำหรับWindowsและLinux ( ISE / VivadoและQuartus ) ซึ่งช่วยให้วิศวกรสามารถออกแบบวิเคราะห์จำลองและสังเคราะห์ ( คอมไพล์ ) การออกแบบของตนได้[ 39 ] [ 40 ]

ในเดือนมีนาคม พ.ศ. 2553 Tabulaประกาศเทคโนโลยี FPGA ที่ใช้ ตรรกะ แบบมัลติเพล็กซ์เวลาและการเชื่อมต่อ ซึ่งอ้างว่าสามารถประหยัดต้นทุนได้สำหรับแอปพลิเคชันที่มีความหนาแน่นสูง[ 41 ]เมื่อวันที่ 24 มีนาคม พ.ศ. 2558 Tabula ได้ปิดตัวลงอย่างเป็นทางการ[ 42 ]

เมื่อวันที่ 1 มิถุนายน 2558 อินเทลประกาศว่าจะเข้าซื้อกิจการอัลเทราในราคาประมาณ 16.7 พันล้าน ดอลลาร์สหรัฐและดำเนินการซื้อกิจการเสร็จสิ้นในวันที่ 30 ธันวาคม 2558 [ 43 ]

เมื่อวันที่ 27 ตุลาคม พ.ศ. 2563 AMD ประกาศว่าจะเข้าซื้อกิจการ Xilinx [ 44 ]และดำเนินการซื้อกิจการเสร็จสิ้นโดยมีมูลค่าประมาณ 50 พันล้านดอลลาร์สหรัฐในเดือนกุมภาพันธ์ พ.ศ. 2565 [ 45 ]

ในเดือนกุมภาพันธ์ พ.ศ. 2567 Altera ได้แยกตัวเป็นอิสระจาก Intel อีกครั้ง[ 46 ]

ผู้ผลิตรายอื่น ๆ ได้แก่:

แอปพลิเคชัน

FPGA สามารถใช้แก้ปัญหาใดๆ ที่สามารถคำนวณได้ FPGA สามารถใช้ในการสร้างไมโครโปรเซสเซอร์แบบซอฟต์แวร์เช่น Xilinx MicroBlazeหรือ Altera Nios IIแต่ข้อได้เปรียบของ FPGA คือมีความเร็วมากกว่าอย่างเห็นได้ชัดสำหรับบางแอปพลิเคชันเนื่องจากลักษณะการทำงานแบบขนานและความเหมาะสมที่สุดในแง่ของจำนวนเกตที่ใช้สำหรับกระบวนการบางอย่าง[ 52 ]

เดิมที FPGA ถูกนำมาใช้เป็นคู่แข่งกับอุปกรณ์ลอจิกที่ตั้งโปรแกรมได้ซับซ้อน (CPLD) เพื่อใช้เป็นลอจิกเชื่อมต่อสำหรับแผงวงจรพิมพ์เมื่อขนาด ความสามารถ และความเร็วเพิ่มขึ้น FPGA จึงรับหน้าที่เพิ่มเติมมากขึ้น จนกระทั่งบางรุ่นวางจำหน่ายในรูป แบบ ระบบบนชิป (SoC) เต็มรูปแบบ โดยเฉพาะอย่างยิ่งกับการนำตัวคูณ เฉพาะ มาใช้ในสถาปัตยกรรม FPGA ในช่วงปลายทศวรรษ 1990 แอปพลิเคชันที่แต่เดิมสงวนไว้สำหรับตัวประมวลผลสัญญาณดิจิทัล (DSP) เท่านั้น ก็เริ่มใช้ FPGA แทน[ 53 ] [ 54 ]

วิวัฒนาการของ FPGA ได้กระตุ้นให้มีการใช้งานอุปกรณ์เหล่านี้เพิ่มมากขึ้น ซึ่งสถาปัตยกรรมของอุปกรณ์เหล่านี้ช่วยให้สามารถพัฒนาโซลูชันฮาร์ดแวร์ที่เหมาะสมที่สุดสำหรับงานที่ซับซ้อน เช่น การแบ่งส่วนภาพ MRI 3 มิติ การแปลงเวฟเล็ตแบบไม่ต่อเนื่อง 3 มิติ การสร้างภาพโทโมกราฟิก หรือระบบ PET/MRI [ 55 ] [ 56 ]โซลูชันที่พัฒนาขึ้นสามารถทำงานคำนวณที่เข้มข้นด้วยการประมวลผลแบบขนาน สามารถตั้งโปรแกรมใหม่ได้แบบไดนามิก และมีต้นทุนต่ำ ในขณะเดียวกันก็ตรงตามข้อกำหนดแบบเรียลไทม์ที่เข้มงวดซึ่งเกี่ยวข้องกับการถ่ายภาพทางการแพทย์

แนวโน้มอีกประการหนึ่งในการใช้ FPGA คือการเร่งความเร็วฮาร์ดแวร์ซึ่งสามารถใช้ FPGA เพื่อเร่งความเร็วบางส่วนของอัลกอริทึมและแบ่งปันส่วนหนึ่งของการคำนวณระหว่าง FPGA และโปรเซสเซอร์อเนกประสงค์ เครื่องมือค้นหาBingได้รับการกล่าวถึงว่าใช้การเร่งความเร็ว FPGA สำหรับอัลกอริทึมการค้นหาในปี 2014 [ 57 ]ณ ปี 2018 FPGA มีการใช้งานเพิ่มมากขึ้นในฐานะตัวเร่งความเร็ว AIรวมถึง Project Catapult ของ Microsoft [ 11 ]และสำหรับการเร่งความเร็วเครือข่ายประสาทเทียมสำหรับแอป พลิเคชัน การเรียนรู้ของเครื่อง

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

การใช้งาน FPGA อื่นๆ ได้แก่:

การใช้งานโดยกองทัพสหรัฐอเมริกา

FPGA มีบทบาทสำคัญในการสื่อสารทางทหารสมัยใหม่ โดยเฉพาะในระบบต่างๆ เช่นระบบวิทยุยุทธวิธีร่วม (JTRS) และในอุปกรณ์จากบริษัทต่างๆ เช่นThalesและHarris Corporationความยืดหยุ่นและความสามารถในการตั้งโปรแกรมทำให้ FPGA เหมาะอย่างยิ่งสำหรับการสื่อสารทางทหาร โดยนำเสนอการประมวลผลสัญญาณที่ปรับแต่งได้และปลอดภัย ใน JTRS ที่กองทัพสหรัฐฯ ใช้ FPGA ให้ความสามารถในการปรับตัวและการประมวลผลแบบเรียลไทม์ ซึ่งมีความสำคัญต่อการตอบสนองมาตรฐานการสื่อสารและวิธีการเข้ารหัสต่างๆ[ 64 ]

ความปลอดภัย

ในส่วนของความปลอดภัยของฮาร์ดแวร์ FPGA มีทั้งข้อดีและข้อเสียเมื่อเทียบกับ ASIC หรือไมโครโปรเซสเซอร์ที่มีความปลอดภัย ความยืดหยุ่นของ FPGA ทำให้ความเสี่ยงต่อการแก้ไขที่เป็นอันตรายระหว่างการผลิตลดลง[ 65 ]ก่อนหน้านี้ สำหรับ FPGA จำนวนมากบิตสตรีม การออกแบบ จะถูกเปิดเผยในขณะที่ FPGA โหลดจากหน่วยความจำภายนอก ซึ่งโดยทั่วไปจะเกิดขึ้นระหว่างการเปิดเครื่อง ปัจจุบันผู้จำหน่าย FPGA รายใหญ่ทั้งหมดได้นำเสนอโซลูชันด้านความปลอดภัยที่หลากหลายให้กับนักออกแบบ เช่นการเข้ารหัส บิตสตรีม และการตรวจสอบความถูกต้องตัวอย่างเช่นAlteraและXilinxนำเสนอ การเข้ารหัส AES (สูงสุด 256 บิต) สำหรับบิตสตรีมที่จัดเก็บไว้ในหน่วยความจำแฟลชภายนอกฟังก์ชันที่ไม่สามารถลอกเลียนแบบได้ทางกายภาพ (PUF) เป็นวงจรรวมที่มีลายเซ็นเฉพาะของตนเองและสามารถใช้เพื่อรักษาความปลอดภัยของ FPGA ในขณะที่ใช้พื้นที่ฮาร์ดแวร์น้อยมาก[ 66 ]

FPGA ที่จัดเก็บการกำหนดค่าภายในในหน่วยความจำแฟลชแบบไม่ลบเลือน เช่นProAsic 3 ของMicrosemi หรือ XP2 ของLattice จะไม่เปิดเผยบิตสตรีมและไม่จำเป็นต้องมี การเข้ารหัสลูกค้าที่ต้องการการรับประกันความทนทานต่อการแก้ไขดัดแปลงที่สูงขึ้น สามารถใช้ FPGA แบบเขียนได้ครั้งเดียวและมีสารป้องกันฟิวส์จากผู้จำหน่ายเช่นMicrosemiได้

ด้วย FPGA และ SoC รุ่น Stratix 10 ของAltera บริษัทได้แนะนำ Secure Device Manager และฟังก์ชันที่ไม่สามารถคัดลอกทางกายภาพได้เพื่อให้การป้องกันการโจมตีทางกายภาพในระดับสูง[ 67 ]

ในปี 2012 นักวิจัย Sergei Skorobogatov และ Christopher Woods ได้แสดงให้เห็นว่า FPGA บางตัวอาจเสี่ยงต่อเจตนาร้าย พวกเขาค้นพบช่องโหว่ร้ายแรงที่ถูกสร้างขึ้นในซิลิคอนซึ่งเป็นส่วนหนึ่งของ Actel/Microsemi ProAsic 3 ทำให้มีความเสี่ยงในหลายระดับ เช่น การเขียนโปรแกรมคีย์เข้ารหัสและคีย์การเข้าถึงใหม่การเข้าถึงบิตสตรีมที่ไม่ได้เข้ารหัส การแก้ไข คุณสมบัติซิลิคอน ระดับต่ำและการดึงข้อมูลการกำหนดค่า[ 68 ]

ในปี 2020 มีการค้นพบช่องโหว่ร้ายแรง (ชื่อ Starbleed) ใน FPGA ซีรีส์ 7 ของ Xilinx ทั้งหมด ซึ่งทำให้การเข้ารหัสบิตสตรีมไร้ประโยชน์ ไม่มีวิธีแก้ไข Xilinx ไม่ได้ผลิตฮาร์ดแวร์เวอร์ชันแก้ไข อุปกรณ์ Ultrascale และอุปกรณ์รุ่นต่อมาที่วางจำหน่ายในตลาดในขณะนั้นไม่ได้รับผลกระทบ[ 69 ]

เทคโนโลยีที่คล้ายคลึงกัน

ในอดีต FPGA ทำงานช้ากว่า ประหยัดพลังงานน้อยกว่า และโดยทั่วไปแล้วมีฟังก์ชันการทำงานน้อยกว่า ASIC ที่มีโครงสร้างคงที่ การศึกษาในปี 2549 แสดงให้เห็นว่าการออกแบบที่นำไปใช้บน FPGA ต้องการพื้นที่โดยเฉลี่ยมากกว่า 40 เท่า ใช้พลังงานแบบไดนามิกมากกว่า 12 เท่า และทำงานด้วยความเร็วเพียงหนึ่งในสามของการใช้งาน ASIC ที่เทียบเท่ากัน[ 70 ]

ข้อดีของ FPGA ได้แก่ ความสามารถในการตั้งโปรแกรมอุปกรณ์ใหม่ในภาคสนามเพื่อแก้ไขข้อบกพร่องหรือทำการปรับปรุงอื่นๆ FPGA บางตัวมีความสามารถในการกำหนดค่าใหม่บางส่วนซึ่งช่วยให้สามารถตั้งโปรแกรมส่วนหนึ่งของอุปกรณ์ใหม่ได้ในขณะที่ส่วนอื่นๆ ยังคงทำงานต่อไป[ 71 ] [ 72 ]ข้อดีอื่นๆ อาจรวมถึงระยะเวลาในการออกสู่ตลาด ที่สั้นลง และ ต้นทุน ทางวิศวกรรมที่ไม่เกิดขึ้นซ้ำ ที่ต่ำลง ผู้ขายยังสามารถเลือกทางสายกลางผ่านการสร้างต้นแบบ FPGAได้ กล่าวคือ พัฒนาฮาร์ดแวร์ต้นแบบบน FPGA แต่ผลิตเวอร์ชันสุดท้ายเป็น ASIC หลังจากที่การออกแบบได้รับการยืนยันแล้ว ซึ่งมักจะเป็นกรณีเดียวกันกับการออกแบบโปรเซสเซอร์ใหม่[ 73 ]

ความแตกต่างหลักระหว่าง CPLD และ FPGA คือโครงสร้างทางสถาปัตยกรรม CPLD มีโครงสร้างที่ค่อนข้างจำกัด ประกอบด้วย อาร์เรย์ลอจิกแบบผลรวม ของผลคูณ ที่ตั้งโปรแกรมได้หนึ่งตัวหรือมากกว่านั้น ซึ่งป้อนข้อมูลไป ยังรีจิสเตอร์แบบมีสัญญาณนาฬิกาจำนวนไม่มากนักส่งผลให้ CPLD มีความยืดหยุ่นน้อยกว่า แต่มีข้อดีคือความหน่วงในการส่งสัญญาณ ที่คาดการณ์ได้มากกว่า ในทางกลับกัน สถาปัตยกรรมของ FPGA นั้นถูกครอบงำด้วยการเชื่อมต่อ ทำให้มีความยืดหยุ่นมากกว่า แต่ก็ซับซ้อนกว่ามากในการออกแบบ หรืออย่างน้อยก็ต้องการ ซอฟต์แวร์ การออกแบบอิเล็กทรอนิกส์อัตโนมัติ (EDA) ที่ซับซ้อนกว่า อีกความแตกต่างหนึ่งระหว่าง FPGA และ CPLD คือขนาด เนื่องจาก FPGA มักจะมีทรัพยากรมากกว่า CPLD มาก โดยทั่วไปแล้ว FPGA เท่านั้นที่มีฟังก์ชันฝังตัวที่ ซับซ้อนกว่า เช่นตัวบวกตัวคูณ หน่วยความจำและตัวแปลงอนุกรม/ตัวถอดรหัสอนุกรม ความแตกต่างทั่วไปอีกประการหนึ่งคือ CPLD มีหน่วยความจำแฟลช แบบฝังตัว เพื่อจัดเก็บการกำหนดค่า ในขณะที่ FPGA โดยทั่วไปจะจัดเก็บการกำหนดค่าไว้ใน SRAM และต้องใช้หน่วยความจำแบบไม่ระเหย ภายนอก เพื่อเริ่มต้นการทำงานเมื่อเปิดเครื่อง เมื่อการออกแบบต้องการการเปิดใช้งานทันทีแบบง่ายๆ โดยทั่วไปจะนิยมใช้ CPLD บางครั้งมีการใช้ทั้ง CPLD และ FPGA ในการออกแบบระบบเดียว ในการออกแบบเหล่านั้น CPLD โดยทั่วไปจะทำหน้าที่เป็นฟังก์ชันตรรกะเชื่อมต่อ[ 74 ]

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • ซาโดรซินสกี้, ฮาร์ทมุท เอฟ.-ว.; วู จินหยวน (2010) การประยุกต์อาร์เรย์เกตที่ตั้งโปรแกรมได้ภาคสนามในการวิจัยทางวิทยาศาสตร์ เทย์เลอร์และฟรานซิส. ไอเอสบีเอ็น 978-1-4398-4133-4.
  • Wirth, Niklaus (1995). การออกแบบวงจรดิจิทัล: ตำราเบื้องต้น . Springer. ISBN 978-3-540-58577-0.
  • Mencer, Oskar และคณะ (2020). "ประวัติ สถานะ และอนาคตของ FPGA". Communications of the ACM. ACM. เล่มที่ 63, ฉบับที่ 10. doi:10.1145/3410669
  • FPGA คืออะไร?บน YouTube
  • การเปลี่ยนจาก MCU เป็น FPGAที่Wayback Machine (เก็บถาวรเมื่อ 16 มีนาคม 2023)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Field-programmable_gate_array&oldid=1360446857 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อาร์เรย์เกตที่ตั้งโปรแกรมได้ฟิลด์

วงจร เกตแบบโปรแกรมได้ ( FPGA ) เป็น วงจรรวมแบบ กำหนดค่าได้ชนิดหนึ่งที่สามารถโปรแกรมซ้ำได้หลังจากการผลิต FPGA เป็นส่วนหนึ่งของอุปกรณ์ลอจิกที่เรียกว่า อุปกรณ์ลอจิกแบบโปรแกรมได้...

ประวัติศาสตร์

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

การเจริญเติบโต

แผนภูมิแสดงลำดับเวลาต่อไปนี้แสดงถึงความคืบหน้าในด้านต่างๆ ของการออกแบบ FPGA

ออกแบบ

FPGA ในปัจจุบันมี เกตตรรกะ และบล็อก RAM จำนวนมากพอที่จะใช้ในการคำนวณดิจิทัลที่ซับซ้อน FPGA สามารถใช้ในการดำเนินการฟังก์ชันตรรกะใดๆ ก็ได้ที่ ASIC สามารถทำได้ ความสามารถในการอัปเดตฟังก์ชันการทำงานหลังจากการจัดส่ง การกำหนดค่าใหม่บาง ส่วนของการออกแบบ [ 19 ]...