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

อ่าน 4 นาที

การสร้างต้นแบบ FPGA

การสร้างต้นแบบด้วยอาร์เรย์เกตที่ตั้งโปรแกรมได้ภาคสนาม ( FPGA prototyping ) หรือที่เรียกอีกอย่างว่า การสร้างต้นแบบโดยใช้ FPGA, การสร้างต้นแบบ ASIC หรือ การสร้าง ต้นแบบระบบบนชิป...

การสร้างต้นแบบ FPGA

การสร้างต้นแบบด้วยอาร์เรย์เกตที่ตั้งโปรแกรมได้ภาคสนาม ( FPGA prototyping ) หรือที่เรียกอีกอย่างว่า การสร้างต้นแบบโดยใช้ FPGA, การสร้างต้นแบบ ASIC หรือ การสร้าง ต้นแบบระบบบนชิป (SoC) คือวิธีการสร้างต้นแบบ การออกแบบ ระบบบนชิปและวงจรรวมเฉพาะแอปพลิเคชันบนFPGAเพื่อการตรวจสอบ ฮาร์ดแวร์ และการพัฒนาซอฟต์แวร์ ในระยะเริ่ม ต้น

วิธีการตรวจสอบสำหรับ การออกแบบ ฮาร์ดแวร์รวมถึง การออกแบบร่วม ซอฟต์แวร์และเฟิร์มแวร์ ในยุคแรก เริ่ม ได้กลายเป็นเรื่องที่น่าสนใจ เนื่องจากการออกแบบ SoC และ ASIC สามารถประเมินได้ด้วย FPGA และ ซอฟต์แวร์ การออกแบบอัตโนมัติทางอิเล็กทรอนิกส์ (EDA) [ 1 ]

ความสำคัญ

  1. การรันการออกแบบ SoC บนต้นแบบ FPGA เป็นวิธีที่เชื่อถือได้ในการรับรองว่าการทำงานถูกต้อง ซึ่งแตกต่างจากการที่นักออกแบบอาศัยเพียงการจำลองซอฟต์แวร์เพื่อตรวจสอบว่าการออกแบบฮาร์ดแวร์ของพวกเขานั้นถูกต้อง ประมาณหนึ่งในสามของการออกแบบ SoC ในปัจจุบันไม่มีข้อผิดพลาดในระหว่างการผลิตซิลิคอนครั้งแรก โดยเกือบครึ่งหนึ่งของการแก้ไขทั้งหมดเกิดจากข้อผิดพลาดทางตรรกะในการทำงาน[ 2 ]แพลตฟอร์มการสร้างต้นแบบเดียวสามารถให้การตรวจสอบการทำงานของการออกแบบฮาร์ดแวร์ เฟิร์มแวร์ และซอฟต์แวร์แอปพลิเคชันก่อนการผลิตซิลิคอนครั้งแรก[ 3 ]
  2. เวลาในการนำผลิตภัณฑ์ออกสู่ตลาด (TTM) ลดลงจากการสร้างต้นแบบด้วย FPGA: ในสังคมที่ขับเคลื่อนด้วยเทคโนโลยีในปัจจุบัน ผลิตภัณฑ์ใหม่ๆ ถูกนำเสนออย่างรวดเร็ว และการที่ผลิตภัณฑ์ไม่พร้อมในช่วงเวลาตลาดที่กำหนดอาจทำให้บริษัทสูญเสียรายได้จำนวนมาก[ 4 ]หากผลิตภัณฑ์ออกสู่ตลาดช้าเกินไป ผลิตภัณฑ์นั้นอาจไร้ประโยชน์ทำให้บริษัทสูญเสียเงินทุนในการลงทุนในผลิตภัณฑ์นั้น หลังจากกระบวนการออกแบบ FPGA ก็พร้อมสำหรับการผลิต ในขณะที่ASIC เซลล์มาตรฐานต้องใช้เวลามากกว่าหกเดือนกว่าจะถึงขั้นตอนการผลิต[ 4 ]
  3. ต้นทุนการพัฒนา: ต้นทุนการพัฒนาการออกแบบ ASIC/SoC ขนาด 90 นาโนเมตรอยู่ที่ประมาณ 20 ล้านดอลลาร์ โดยชุดหน้ากากมีราคาสูงกว่า 1 ล้านดอลลาร์[ 2 ]คาดว่าต้นทุนการพัฒนาการออกแบบขนาด 45 นาโนเมตรจะสูงถึง 40 ล้านดอลลาร์ ด้วยต้นทุนของชุดหน้ากากที่เพิ่มขึ้น และขนาดของ IC ที่ลดลงอย่างต่อเนื่อง การลดจำนวนการหมุนซ้ำจึงมีความสำคัญต่อกระบวนการพัฒนา

การออกแบบเพื่อการสร้างต้นแบบ

การออกแบบเพื่อการสร้างต้นแบบ[ 5 ] ( DFP ) หมายถึงการออกแบบระบบที่เอื้อต่อการสร้างต้นแบบอุปสรรคมากมายที่ทีมพัฒนาต้องเผชิญเมื่อนำต้นแบบ FPGA มาใช้ สามารถสรุปได้เป็น "กฎ" สามข้อ:

  • SoC มีขนาดใหญ่กว่า FPGA
  • SoC เร็วกว่า FPGA
  • การออกแบบ SoC ไม่เป็นมิตรกับ FPGA

การนำการออกแบบ SoC ไปสร้างต้นแบบบน FPGA นั้น จำเป็นต้องมีการวางแผนอย่างรอบคอบเพื่อให้บรรลุเป้าหมายการสร้างต้นแบบโดยใช้ความพยายามน้อยที่สุด แนวทางปฏิบัติที่ดีที่สุดที่เรียกว่า การออกแบบเพื่อการสร้างต้นแบบ (Design-for-Prototyping หรือ DFP) มีอิทธิพลต่อทั้ง รูปแบบ การออกแบบ SoCและขั้นตอนการทำงานของทีมออกแบบ เพื่อช่วยให้การพัฒนาต้นแบบง่ายขึ้น ข้อแนะนำด้านขั้นตอนการทำงาน ได้แก่ การเพิ่มข้อกำหนด DFP ลงในมาตรฐานการเขียนโค้ด RTL การใช้สภาพแวดล้อมการจำลองที่เข้ากันได้กับต้นแบบ และการกำหนดกลยุทธ์การดีบักระบบร่วมกับทีมซอฟต์แวร์

ปัญหาการแบ่งพาร์ติชัน

เนื่องจากความซับซ้อนของวงจรที่เพิ่มขึ้นและเวลาในการวางจำหน่ายที่สั้นลง ความต้องการในการตรวจสอบการออกแบบวงจรรวมเฉพาะแอปพลิเคชัน (ASIC) และระบบบนชิป (SoC) จึงเพิ่มมากขึ้น แพลตฟอร์มฮาร์ดแวร์กำลังได้รับความนิยมมากขึ้นในหมู่วิศวกรตรวจสอบ เนื่องจากความสามารถในการทดสอบการออกแบบระบบด้วยความเร็วสูงโดยใช้สัญญาณนาฬิกาบัสบนชิป เมื่อเทียบกับสัญญาณนาฬิกาจำลองซึ่งอาจไม่ให้การอ่านพฤติกรรมของระบบที่แม่นยำ[ 6 ]การออกแบบที่มีเกตหลายล้านตัวเหล่านี้มักจะถูกวางไว้ในแพลตฟอร์มต้นแบบแบบหลาย FPGA ที่มี FPGA หกตัวขึ้นไป เนื่องจากไม่สามารถใส่ลงใน FPGA ตัวเดียวได้ทั้งหมด ยิ่งจำนวน FPGA ที่ต้องแบ่งการออกแบบน้อยลงเท่าใด ก็ยิ่งลดภาระงานของวิศวกรออกแบบลงเท่านั้น[ 7 ]ทางด้านขวาเป็นภาพของแพลตฟอร์มต้นแบบแบบ FPGA ที่ใช้การกำหนดค่าแบบ dual-FPGA

แพลตฟอร์มการสร้างต้นแบบ Aldec ที่ใช้ FPGA พร้อมการกำหนดค่า FPGA คู่
โซลูชันการสร้างต้นแบบ ASIC HES-7 ของ Aldec

การออกแบบ RTL ของระบบหรือเน็ตลิสต์จะต้องถูกแบ่งย่อยลงบน FPGA แต่ละตัวเพื่อให้สามารถวางการออกแบบลงบนแพลตฟอร์มต้นแบบได้[ 8 ]ซึ่งนำมาซึ่งความท้าทายใหม่สำหรับวิศวกร เนื่องจากการแบ่งย่อยด้วยตนเองต้องใช้ความพยายามอย่างมากและมักส่งผลให้ความเร็วต่ำ (ของการออกแบบที่กำลังทดสอบ) [ 7 ]หากสามารถลดจำนวนการแบ่งย่อยหรือวางการออกแบบทั้งหมดลงบน FPGA ตัวเดียวได้ การนำการออกแบบไปใช้บนแพลตฟอร์มต้นแบบก็จะง่ายขึ้น

จัดสมดุลทรัพยากร FPGA ในขณะที่สร้างพาร์ทิชันการออกแบบ

เมื่อสร้างพาร์ทิชันวงจร วิศวกรควรสังเกตทรัพยากรที่มีอยู่ของ FPGA ก่อน เนื่องจากงานออกแบบจะถูกวางลงบนโครงสร้าง FPGA [ 7 ]สถาปัตยกรรมของ FPGA แต่ละตัวขึ้นอยู่กับผู้ผลิต แต่เป้าหมายหลักในการแบ่งพาร์ทิชันการออกแบบคือการใช้ทรัพยากร FPGA อย่างสมดุล ทรัพยากร FPGA ต่างๆ ได้แก่ตารางค้นหา (LUTs), ฟลิปฟลอป D , บล็อกRAM , ตัวประมวลผลสัญญาณดิจิทัล (DSPs), บัฟเฟอร์นาฬิกา ฯลฯ ก่อนที่จะปรับสมดุลพาร์ทิชันการออกแบบ ผู้ใช้ควรดำเนินการเพิ่มประสิทธิภาพตรรกะโดยรวมเพื่อลบตรรกะที่ซ้ำซ้อนหรือไม่ใช้งาน ปัญหาทั่วไปที่เกิดขึ้นกับการสร้างพาร์ทิชันที่สมดุลคือ อาจนำไปสู่ความขัดแย้งด้านเวลาหรือทรัพยากรหากมีการตัดบนสายสัญญาณหลายเส้น เพื่อให้มีกลยุทธ์การแบ่งพาร์ทิชันที่ได้รับการปรับให้เหมาะสมอย่างเต็มที่ วิศวกรต้องพิจารณาประเด็นต่างๆ เช่น ข้อจำกัดด้านเวลา/พลังงาน การจัดวาง และการกำหนดเส้นทาง ในขณะที่ยังคงรักษาสมดุลของพาร์ทิชันระหว่าง FPGA การมุ่งเน้นเฉพาะประเด็นเดียวในระหว่างการแบ่งพาร์ทิชันอาจสร้างปัญหาหลายอย่างในพาร์ทิชันอื่น

การจัดวางและการกำหนดเส้นทางพาร์ติชัน

เพื่อให้ได้ตำแหน่งและการกำหนดเส้นทางที่เหมาะสมที่สุดสำหรับการออกแบบแบบแบ่งส่วน วิศวกรต้องให้ความสำคัญกับจำนวนพิน FPGA และสัญญาณระหว่าง FPGA หลังจากแบ่งการออกแบบออกเป็น FPGA ที่แยกจากกัน จำนวนสัญญาณระหว่าง FPGA ต้องไม่เกินจำนวนพินบน FPGA [ 9 ]ซึ่งเป็นเรื่องยากมากที่จะหลีกเลี่ยงเมื่อการออกแบบวงจรมีขนาดใหญ่ ดังนั้นสัญญาณต้องใช้กลยุทธ์ต่างๆ เช่นการมัลติเพล็กซ์แบบแบ่งเวลา (TDM) ซึ่งสามารถส่งสัญญาณหลายสัญญาณผ่านสายเดียวได้[ 10 ]สัญญาณหลายสัญญาณเหล่านี้ เรียกว่าช่องสัญญาณย่อย จะสลับกันส่งผ่านสายในช่วงเวลาหนึ่ง เมื่ออัตราส่วน TDM สูง ความถี่สัญญาณนาฬิกาของบัสจะต้องลดลงเพื่อรองรับช่วงเวลาสำหรับแต่ละช่องสัญญาณย่อย การลดความถี่สัญญาณนาฬิกาจะทำให้ปริมาณงานของระบบลดลง[ 7 ]

ข้อกำหนดด้านเวลา

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

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

การดีบัก

หนึ่งในงานที่ยากและใช้เวลานานที่สุดในการสร้างต้นแบบ FPGA คือการดีบักการออกแบบระบบ คำที่ใช้เรียกสิ่งนี้คือ "นรก FPGA" [ 11 ] [ 12 ]การดีบักกลายเป็นเรื่องยากและใช้เวลานานมากขึ้นด้วยการเกิดขึ้นของ ASIC และ SoC ขนาดใหญ่และซับซ้อน ในการดีบักต้นแบบ FPGA จะมีการเพิ่มโพรบลงในการออกแบบ RTL โดยตรงเพื่อให้สัญญาณเฉพาะพร้อมใช้งานสำหรับการสังเกต สังเคราะห์ และดาวน์โหลดไปยังแพลตฟอร์มต้นแบบ FPGA

ผู้ผลิต FPGA หลายรายนำเสนอเครื่องมือดีบักมาตรฐาน เช่น ChipScope และ SignalTAP เครื่องมือเหล่านี้สามารถตรวจสอบสัญญาณได้สูงสุด 1024 สัญญาณ และต้องการทรัพยากร LUT และหน่วยความจำจำนวนมาก สำหรับ SoC และการออกแบบอื่นๆ การดีบักที่มีประสิทธิภาพมักต้องการการเข้าถึงสัญญาณพร้อมกัน 10,000 สัญญาณขึ้นไป หากไม่สามารถตรวจจับข้อบกพร่องได้ด้วยชุดตรวจสอบเดิม การเข้าถึงสัญญาณเพิ่มเติมจะทำให้ต้อง "กลับบ้าน" เนื่องจากกระบวนการ CAD ที่ยาวและซับซ้อนสำหรับการสังเคราะห์และการจัดวางและกำหนดเส้นทางซึ่งอาจใช้เวลาตั้งแต่ 8 ถึง 18 ชั่วโมงในการดำเนินการให้เสร็จสิ้น

แนวทางการปรับปรุงรวมถึงเครื่องมือต่างๆ เช่น Certus จาก Tektronix [ 13 ]หรือ EXOSTIV จาก Exostiv Labs [ 14 ]

Certus นำเสนอการมองเห็นระดับ RTL ที่ได้รับการปรับปรุงสำหรับการดีบักบน FPGA โดยใช้คอนเซนเทรเตอร์แบบหลายขั้นตอนที่มีประสิทธิภาพเป็นพื้นฐานสำหรับเครือข่ายการสังเกตเพื่อลดจำนวน LUT ที่จำเป็นต่อสัญญาณ เพื่อเพิ่มจำนวนสัญญาณที่สามารถตรวจสอบได้ในพื้นที่ที่กำหนด ความสามารถในการดูการรวมกันของสัญญาณใด ๆ เป็นเอกลักษณ์เฉพาะของ Certus และทำลายข้อจำกัดในการสร้างต้นแบบ[ 15 ]

EXOSTIV ใช้หน่วยเก็บข้อมูลภายนอกขนาดใหญ่และทรานซีฟเวอร์กิกะบิตเพื่อดึงข้อมูลการติดตามเชิงลึกจาก FPGA ที่ทำงานด้วยความเร็วสูง การปรับปรุงอยู่ที่ความสามารถในการมองเห็นข้อมูลการติดตามขนาดใหญ่ในเวลาเป็นสตรีมต่อเนื่องหรือเป็นช่วงๆ ซึ่งช่วยให้สามารถสำรวจสถานการณ์การดีบักที่ขยายออกไปซึ่งไม่สามารถเข้าถึงได้ด้วย เทคนิค การวัดแบบฝังตัวแบบ ดั้งเดิม โซลูชันนี้อ้างว่าสามารถประหยัดทั้งทรัพยากร I/O ของ FPGA และหน่วยความจำของ FPGA โดยแลกกับการใช้ทรานซีฟเวอร์กิกะบิต ส่งผลให้การมองเห็นดีขึ้นถึง 100,000 เท่าขึ้นไป[ 16 ] [ 17 ]

ดูเพิ่มเติม

  • โซลูชันการสร้างต้นแบบ FPGA
    • โซลูชันการสร้างต้นแบบอย่างรวดเร็ว S2C
    • ตระกูล Synopsys HAPS
    • บอร์ดต้นแบบ proFPGA
    • บอร์ดต้นแบบ HyperSilicon
  • เอกสารและบทความเกี่ยวกับการสร้างต้นแบบ FPGA
    • คู่มือวิธีการสร้างต้นแบบโดยใช้ FPGA (FPMM) - เขียนร่วมกับ Xilinx

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การสร้างต้นแบบ FPGA

การสร้างต้นแบบด้วยอาร์เรย์เกตที่ตั้งโปรแกรมได้ภาคสนาม ( FPGA prototyping ) หรือที่เรียกอีกอย่างว่า การสร้างต้นแบบโดยใช้ FPGA, การสร้างต้นแบบ ASIC หรือ การสร้าง ต้นแบบระบบบนชิป...

ความสำคัญ

การรันการออกแบบ SoC บนต้นแบบ FPGA เป็นวิธีที่เชื่อถือได้ในการรับรองว่าการทำงานถูกต้อง ซึ่งแตกต่างจากการที่นักออกแบบอาศัยเพียง การจำลองซอฟต์แวร์ เพื่อตรวจสอบว่าการออกแบบฮาร์ดแวร์ของพวกเขานั้นถูกต้อง ประมาณหนึ่งในสามของการออกแบบ SoC...

การออกแบบเพื่อการสร้างต้นแบบ

การออกแบบเพื่อการสร้างต้นแบบ [ 5 ] ( DFP ) หมายถึงการออกแบบระบบที่เอื้อต่อ การสร้างต้นแบบ อุปสรรคมากมายที่ทีมพัฒนาต้องเผชิญเมื่อนำต้นแบบ FPGA มาใช้ สามารถสรุปได้เป็น "กฎ" สามข้อ:

ปัญหาการแบ่งพาร์ติชัน

เนื่องจากความซับซ้อนของวงจรที่เพิ่มขึ้นและเวลาในการวางจำหน่ายที่สั้นลง ความต้องการในการตรวจสอบการออกแบบวงจรรวมเฉพาะแอปพลิเคชัน (ASIC) และระบบบนชิป (SoC) จึงเพิ่มมากขึ้น แพลตฟอร์มฮาร์ดแวร์กำลังได้รับความนิยมมากขึ้นในหมู่วิศวกรตรวจสอบ...