การออกแบบ ASIC แตกต่างจากการสังเคราะห์ FPGA HDL อย่างไร


42

ฉันเคยมีประสบการณ์กับชุดเครื่องมือ FPGA / HDL เช่น Xilinx ISE, Lattice Diamond เป็นต้นขั้นตอนการทำงานทั่วไปคือการเขียน Verilog / VHDL การจำลองการทดสอบและการเขียนโปรแกรม FPGA

ฉันได้ยินคนสองคนกล่าวว่าการออกแบบ ASIC นั้นแตกต่างกันมาก ชุดเครื่องมือใดที่ใช้สำหรับ ASIC สองประเภทหลักระดับ ASIC ระดับประตูและระดับทรานซิสเตอร์ ASIC ฉันได้ดูเครื่องมือการสังเคราะห์ระดับสูงเช่น Catapult C และ Cadence C ถึง Silicon แต่ฉันยังไม่เคยลองเลย คุณสามารถอธิบายเครื่องมือชนิดต่าง ๆ ที่มีในฟิลด์ ASIC / FPGA ที่สามารถเปลี่ยน / เร่งเวิร์กโฟลว์ HDL ทั่วไปได้เร็วขึ้นหรือไม่

คำตอบ:


39

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

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

  2. ลักษณะห้องสมุดเซลล์ (หากคุณมีห้องสมุดประตูบุคคลที่สามสิ่งนี้มักจะทำเพื่อคุณ) แต่ละเซลล์ในห้องสมุดของคุณจะต้องจำลองเพื่อสร้างตารางเวลาสำหรับการวิเคราะห์เวลาแบบคงที่ (STA) สิ่งนี้เกี่ยวข้องกับการใช้เซลล์เสร็จแล้วการแยกเค้าโครง parasitics โดยใช้Assura , DivaหรือCaliberและจำลองวงจรภายใต้เงื่อนไขอินพุตที่แตกต่างกันและโหลดเอาต์พุต สิ่งนี้จะสร้างโมเดลเวลาสำหรับแต่ละประตูที่เข้ากันได้กับแพ็คเกจ STA ของคุณ โมเดลเวลามักอยู่ในรูปแบบไฟล์Liberty ฉันใช้Silicon SmartและLiberty-NCXเพื่อจำลองเงื่อนไขที่จำเป็นทั้งหมด โปรดทราบว่าคุณอาจต้องใช้ตัวแบบเวลาใน "กรณีที่แย่ที่สุด", "เล็กน้อย" และ "กรณีที่ดีที่สุด" เพื่อให้ซอฟต์แวร์ส่วนใหญ่ทำงานได้อย่างถูกต้อง

  3. สังเคราะห์การออกแบบของคุณ ฉันไม่มีประสบการณ์กับคอมไพเลอร์ระดับสูง แต่ในตอนท้ายของวันคอมไพเลอร์หรือคอมไพเลอร์เชนจะต้องใช้การออกแบบระดับสูงของคุณและสร้างเน็ตลิสต์ระดับประตู ผลลัพธ์ของการสังเคราะห์นั้นเป็นสิ่งแรกที่คุณจะได้รับจากการทำงานของระบบเชิงทฤษฎี ฉันใช้ตัวออกแบบคอมไพเลอร์สำหรับรหัส RTL

  4. วางและกำหนดเส้นทางการออกแบบของคุณ สิ่งนี้จะใช้ netlist ระดับเกตจากซินธิไซเซอร์และเปลี่ยนเป็นการออกแบบทางกายภาพ โดยหลักการแล้วสิ่งนี้จะสร้างเลย์เอาต์แบบ pad-to-pad ที่พร้อมสำหรับการประดิษฐ์ เป็นเรื่องง่ายมากที่จะตั้งค่าซอฟต์แวร์ P&R ของคุณเพื่อให้เกิดข้อผิดพลาด DRC หลายพันรายการโดยอัตโนมัติดังนั้นจึงไม่ใช่เรื่องสนุกและเกมในขั้นตอนนี้ ซอฟต์แวร์ส่วนใหญ่จะจัดการปัญหาเกี่ยวกับความแข็งแรงของไดรฟ์และสร้างทรีนาฬิกาตามที่กำหนดไว้ แพคเกจซอฟต์แวร์บางชุดประกอบด้วยAstro, IC Compiler, Silicon EncounterและSilicon Ensemble ผลลัพธ์ที่ได้จากสถานที่และเส้นทางคือรายการสุดท้าย, โครงร่างสุดท้าย, และปรสิตเค้าโครงที่แยกออกมา

  5. การวิเคราะห์เวลาแบบคงที่ Post-Layout เป้าหมายที่นี่คือการตรวจสอบว่าการออกแบบของคุณตรงตามเวลาที่กำหนดและไม่มีปัญหาการตั้งค่าพักหรือระบุปัญหา หากข้อกำหนดการออกแบบของคุณแน่นคุณอาจใช้เวลาส่วนใหญ่ในการแก้ไขข้อผิดพลาดและอัปเดตการแก้ไขในเครื่องมือ P&R ของคุณ เครื่องมือ STA สุดท้ายที่เราใช้เป็นPrimeTime

  6. การตรวจสอบทางกายภาพของเค้าโครง เมื่อสร้างเค้าโครงโดยเครื่องมือ P&R คุณต้องตรวจสอบว่าการออกแบบเป็นไปตามกฎการออกแบบกระบวนการ (Design Rule Check / DRC) และเค้าโครงนั้นตรงกับแผนผัง (Layout กับ Schematic / LVS) ควรทำตามขั้นตอนเหล่านี้เพื่อให้แน่ใจว่าโครงร่างนั้นต่อสายได้อย่างถูกต้องและสามารถผลิตได้ อีกครั้งบางเครื่องมือตรวจสอบทางกายภาพมีAssura , DivaหรือCaliber

  7. การจำลองการออกแบบขั้นสุดท้าย ทั้งนี้ขึ้นอยู่กับความซับซ้อนของคุณอาจจะสามารถที่จะทำแบบจำลองระดับทรานซิสเตอร์โดยใช้อสุรกายหรือHSPICEเป็น "เครื่องเทศอย่างรวดเร็ว" จำลองโดยใช้HSIMหรือจำลองดิจิตอลอย่างสมบูรณ์โดยใช้ModelSimหรือVCS คุณควรสร้างการจำลองด้วยความล่าช้าที่สมจริงด้วยความช่วยเหลือของเครื่องมือ STA หรือ P&R ของคุณ

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


2
ตั้งแต่คุณพูดถึง Virtuoso, Cadence ให้เครื่องมือที่สมบูรณ์สำหรับการออกแบบ (ฉันคิดว่ามันเรียกว่า Opus) ซึ่งเป็นไปได้ที่จะเริ่มต้นจากแผนงาน, วางเซลล์เดียว, ประเมินผลกระทบของกาฝาก, สร้างลักษณะมันแล้วสร้างมันในระดับบน .
clabacchio

1
ฉันคิดว่าผู้ผลิตรายใหญ่ทุกรายนำเสนอเครื่องมือห่วงโซ่ที่สมบูรณ์ เราลงเอยด้วยการใช้ผู้ค้าหลายรายใน toolchain ของเราและวิธีที่เราสามารถใช้เครื่องมือที่เราคุ้นเคยมากที่สุดหรือมีชื่อเสียงในอุตสาหกรรมที่ดีที่สุด
W5VO

1
การเลือกเครื่องมือสำหรับการสนับสนุนไลบรารีหรือชุดการออกแบบนั้นเป็นสิ่งจำเป็นอย่างยิ่ง หากคุณไม่ได้ใช้ซอฟต์แวร์รุ่นใดรุ่นหนึ่งที่รองรับความเข้ากันไม่ได้บางอย่างอาจทำให้การออกแบบของคุณไม่ทำงานหรือทำให้คุณอ่านผิด ดังที่ได้กล่าวไปแล้วเครื่องมือ EDA ส่วนใหญ่ที่ฉันเห็นบนระบบ Unix / Linux ส่วนใหญ่มีเส้นโค้งการเรียนรู้ที่สูงชัน
W5VO

1
@MartinThompson อย่างแน่นอน ยิ่งคุณผลักดันขอบเขตของเทคโนโลยีของคุณ (ASIC / FPGA) ยิ่งขั้นตอนเหล่านั้นสำคัญยิ่ง ดังที่กล่าวไว้เครื่องมือ ASIC เวอร์ชันเหล่านี้จะช่วยให้คุณมีปัญหามากขึ้น
W5VO

1
โปรดทราบว่า 1 และ 2 ไม่ใช่ส่วนหนึ่งของการออกแบบทั่วไป ขั้นตอนเหล่านี้เป็นส่วนหนึ่งของสิ่งที่เรียกว่า "การรับรองกระบวนการ" และผลลัพธ์ (ห้องสมุดที่มีคุณสมบัติครบถ้วน) จัดทำโดยผู้ขาย FAB แต่บาง บริษัท กำลังทำ "การออกแบบที่กำหนดเองเต็มรูปแบบ" และต้องทำ 1 และ 2 ด้วยตัวเอง
Ale..chenski

7

คำตอบจาก W5VOมีแนวโน้มที่จะมุ่งเน้นไปที่ back-end และนี่คือความแตกต่างที่สำคัญระหว่าง ASIC และ FPGA ไหล; แต่มันก็พลาดส่วนการตรวจสอบการออกแบบดิจิตอล

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


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

สวัสดีอาลีเฉิน หากการออกแบบดิจิทัลและการตรวจสอบดิจิทัลเป็นความคิดที่แยกออกมาแล้วกระแสสำหรับการออกแบบดิจิทัลล้วนๆนั้นใกล้เคียงกับ FPGA กับ ASIC แต่มีการแยกกันอย่างมากในการตรวจสอบตามที่ฉันกล่าวไว้ :-)
Paddy3118
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.