1
วิธีการทำงาน FPGA
รูปด้านล่างมาจากสิทธิบัตร FPGA ดั้งเดิมและแสดงโครงสร้างพื้นฐานของ FPGA ใน FPGA ที่เรียบง่ายนี้มี 9 บล็อกตรรกะ (สีน้ำเงิน) และหมุด I / O 12 อัน เชื่อมต่อเครือข่ายเชื่อมต่อคอมโพเนนต์เข้าด้วยกัน
โดยการตั้งค่าสวิตช์ (แนวทแยง) บนการเชื่อมต่อระหว่างกัน (แนวทแยง) บล็อกตรรกะเชื่อมต่อกันและเชื่อมต่อกับ PIN I / O องค์ประกอบตรรกะแต่ละชิ้นสามารถตั้งโปรแกรมได้โดยใช้ฟังก์ชั่นตรรกะที่จำเป็นเป็นผลให้ชิปที่ตั้งโปรแกรมได้สูงสามารถบรรลุวงจรที่เหมาะสม
สิทธิบัตร FPGA แสดงบล็อกตรรกะ (LE) เชื่อมต่อผ่านการเชื่อมต่อระหว่างกัน
CLB: บล็อกตรรกะที่กำหนดค่าได้
แม้ว่ารูปข้างต้นจะแสดงบล็อกตรรกะที่กำหนดค่าได้เก้าบล็อก (CLB), XC2064 มี 64 clbs รูปด้านล่างแสดงโครงสร้างของแต่ละ clbแต่ละ clb มีสี่อินพุต (A, B, C, D) และสองเอาต์พุต (x และ y)ระหว่างตรรกะการผสมคุณสามารถตั้งโปรแกรมฟังก์ชั่นตรรกะที่ต้องการได้
CLB ยังมีทริกเกอร์ที่ช่วยให้ FPGA ใช้เคาน์เตอร์การลงทะเบียนกะเครื่องสเตตและวงจรไร้สัญชาติอื่น ๆ สี่เหลี่ยมคางหมูเป็นมัลติเพล็กซ์ที่สามารถตั้งโปรแกรมผ่านอินพุตใด ๆMultiplexer อนุญาตให้มีการกำหนดค่า CLB สำหรับงานที่เฉพาะเจาะจงซึ่งเป็นสัญญาณที่ต้องการสำหรับการควบคุมทริกเกอร์และเอาต์พุต
บล็อกตรรกะที่กำหนดค่าได้ใน XC2064
ดังนั้นตรรกะการผสมใช้ฟังก์ชั่นตรรกะใด ๆ มันจะใช้ตรรกะด้วยประตูหรือประตูที่แตกต่างหรือประตูหรือไม่?
ไม่มันใช้เคล็ดลับที่ชาญฉลาดที่เรียกว่าตารางการค้นหา (LUT) ในความเป็นจริงมันมีตารางค่าที่แท้จริงของฟังก์ชั่นตรรกะตัวอย่างเช่นฟังก์ชั่นของตัวแปรสามตัวถูกกำหนดโดย 8 บรรทัดในตารางค่าที่แท้จริง LUT ประกอบด้วยหน่วยความจำ 8 บิตและวงจรมัลติเพล็กซ์เพื่อเลือกค่าที่ถูกต้อง คุณสามารถใช้งานฟังก์ชั่นตรรกะอินพุต 3 ตัวใด ๆ โดยการจัดเก็บค่าในหน่วยความจำ 8 บิตนี้
ฟอรัมอิเล็กทรอนิกส์ EDA365
2
การเชื่อมต่อโครงข่าย
บินส่วนสำคัญที่สองของ PGA คือการเชื่อมต่อระหว่างกันซึ่งสามารถตั้งโปรแกรมให้เชื่อมต่อกับ CLB ในรูปแบบที่แตกต่างกันการเชื่อมต่อระหว่างกันค่อนข้างซับซ้อน แต่คำอธิบายคร่าวๆเป็นเส้นแนวนอนและแนวตั้งไม่กี่เส้นระหว่างแต่ละ CLB การเชื่อมต่อระหว่าง CLB ช่วยให้คุณสามารถสร้างการเชื่อมต่อระหว่างบรรทัดแนวนอนและแนวตั้งเพื่อให้สามารถสร้างเส้นทางใด ๆ ได้
การเชื่อมต่อที่ซับซ้อนมากขึ้นเสร็จสมบูรณ์โดย "SwitchMatrices)สวิตช์แต่ละสวิตช์มี 8 พินและสามารถเชื่อมต่อกันได้ในทางใดทางหนึ่ง
รูปด้านล่างแสดงโครงสร้างการเชื่อมต่อระหว่างกันของ XC2064 ให้บล็อกตรรกะ (สีฟ้า) และการเชื่อมต่อ I / O PIN (สีเหลือง) ตัวเลขนี้แสดงให้เห็นถึงระยะใกล้ของการกำหนดเส้นทาง กล่องสีเขียวเป็นสวิตซ์สวิตซ์ 8 พินและสี่เหลี่ยมเล็ก ๆ เป็นจุดเชื่อมต่อที่ตั้งโปรแกรมได้
XC2064 FPGA มีกริด 8x8 CLB
แต่ละ CLB มีชื่อตัวอักษรจาก AA ถึง HHInterconnects สามารถเชื่อมต่อเช่นเอาท์พุทของบล็อก DC ไปยังอินพุตของบล็อก de ดังที่แสดงด้านล่าง สายสีแดงหมายถึงเส้นทางการกำหนดเส้นทางและ Cottage สีแดงหมายถึงจุดที่เปิดใช้งาน หลังจากออกจากโมดูล DC สัญญาณจะมุ่งเน้นจากเส้นทางแรกไปยังสวิตช์ 8 พิน (สีเขียว) ซึ่งถูกนำไปยังอีกสองเส้นทางและสวิตช์อื่นอีก 8 พิน (เส้นทางแนวตั้งและแนวนอนที่ไม่ได้ใช้จะไม่ปรากฏขึ้น)
โปรดทราบว่าการเดินสายค่อนข้างซับซ้อนแม้ว่าจะใช้เส้นทางสั้น ๆ นี้สี่เส้นทางและสวิตช์สองสวิตช์
ตัวอย่างสัญญาณจากเส้นทางเอาต์พุตเพื่อบล็อก de จากบล็อก DC
ภาพหน้าจอด้านล่างแสดงภายนอกของเส้นทางในโปรแกรม Xact เส้นสีเหลืองหมายถึงเส้นทางระหว่างบล็อกตรรกะ
เมื่อมีการเพิ่มสัญญาณความท้าทายคือวิธีการเส้นทางที่มีประสิทธิภาพโดยไม่ทำให้เกิดเส้นทาง แพคเกจ XACT ดำเนินการเส้นทางอัตโนมัติ แต่คุณสามารถแก้ไขเส้นทางด้วยตนเองได้ด้วยตนเอง
สกรีนช็อตของโปรแกรม Xact
โปรแกรม MS-DOS นี้ถูกควบคุมโดยแป้นพิมพ์และเมาส์
ฟอรัมอิเล็กทรอนิกส์ EDA365
3
วงจรภายในของ XC2064
วิศวกรรมย้อนกลับจากภาพถ่ายตาย
รูปต่อไปนี้แสดงเค้าโครงของชิป XC2064 ส่วนหลักของ FPGA คือ 8 × 8 กริด แต่ละกระเบื้องมีบล็อกตรรกะและวงจรการกำหนดเส้นทางที่อยู่ติดกัน
แม้ว่าภาพจะแสดงบล็อกตรรกะ (CLB) เป็นเอนทิตีที่แตกต่างจากเส้นทางรอบตัวพวกเขานี่ไม่ใช่การใช้งาน FPGA
แต่แต่ละบล็อกตรรกะและเส้นทางที่อยู่ติดกันจะถูกนำมาใช้เป็นเอนทิตีเดียวนั่นคือไทล์(โดยเฉพาะกระเบื้องรวมถึงเส้นทางเหนือแต่ละ clb และด้านซ้าย)
เค้าโครงชิป XC2064
โมดูล I / O ให้การสื่อสารกับโลกภายนอกรอบ ๆ ขอบของวงจรรวม พวกเขาเชื่อมต่อกับแผ่นสี่เหลี่ยมสีเขียวขนาดเล็กที่เชื่อมต่อกับพินภายนอกของชิป
Die ถูกหารด้วยบัฟเฟอร์ (สีเขียว): สองแนวตั้งและสองระดับ บัฟเฟอร์เหล่านี้สามารถขยายสัญญาณที่แพร่กระจายระยะทางไกลในวงจรจึงลดความล่าช้า การลงทะเบียนกะแนวตั้ง (สีชมพู) และวงจรการเลือกคอลัมน์แนวนอน (สีน้ำเงิน) ใช้ในการโหลดบิตสตรีมลงในชิปตามที่อธิบายไว้ด้านล่าง
โครงสร้างภายในกระเบื้อง
รูปด้านล่างแสดงเค้าโครงของไทล์เดียวใน XC2064 ตามที่แสดงด้านบนชิปมี 64 กระเบื้องดังกล่าว แต่ละกระเบื้องมีพื้นที่ 40% ที่ถูกครอบครองโดยเซลล์หน่วยความจำ (สีเขียว) ของบิตการกำหนดค่า
หนึ่งในสามของด้านบนเชื่อมต่อกันโดยสองเมทริกซ์สลับและสวิตช์การกำหนดเส้นทางแยกต่างหากต่อไปนี้เป็นบล็อกตรรกะส่วนสำคัญของบล็อกตรรกะคือตารางอินพุตทริกเกอร์และการค้นหา (LUT)
แต่ละบล็อกเชื่อมต่อกับบล็อกที่อยู่ติดกันโดยการเดินสายแนวตั้งและแนวนอนเพื่อให้เกิดการเชื่อมต่อระหว่างกันพลังงานและพื้นดิน บิตข้อมูลการกำหนดค่าจะป้อนในแนวนอนไปยังหน่วยเก็บข้อมูลในขณะที่สัญญาณแนวตั้งเลือกคอลัมน์เฉพาะของเซลล์หน่วยความจำที่จะโหลด
เค้าโครงกระเบื้องเดี่ยวใน XC2064
ฟอรัมอิเล็กทรอนิกส์ EDA365
4
ทรานซิสเตอร์
FPGA ถูกนำไปใช้โดย CMOS Logic ซึ่งสร้างขึ้นจากทรานซิสเตอร์ NMOS และ PMOS
ทรานซิสเตอร์มีสองบทบาทหลักใน FPGA:
ก่อนอื่นพวกเขาสามารถรวมกันเพื่อสร้างประตูตรรกะ
ประการที่สองทรานซิสเตอร์ใช้เป็นสวิตช์ผ่านตัวอย่างเช่นเพื่อควบคุมเส้นทาง ภายใต้นี้ทรานซิสเตอร์เรียกว่าทรานซิสเตอร์เกียร์
โครงสร้าง MOSFET
ภาพโคลสอัพภาพตายแสดงลักษณะของทรานซิสเตอร์ใต้กล้องจุลทรรศน์ประตู Polysilicon เป็นสายคดเคี้ยวระหว่างสองภูมิภาคซิลิคอนเจือปน
MOSFET ใน FPGA