ดีบัก FPGA ในวงจร Microsemi
ข้อมูลสินค้า
ข้อมูลจำเพาะ
- ประเภทอุปกรณ์: Microsemi SmartFusion2 SoC FPGA
- วันที่วางจำหน่าย: พฤษภาคม 2014
- ความสามารถในการแก้ไขข้อบกพร่อง: การดีบัก FPGA ในวงจร, ตัววิเคราะห์ลอจิกแบบฝังตัว
- ความถี่การจับข้อมูลสูงสุด: สูงสุด 100MHz
เชิงนามธรรม
FPGA เป็นองค์ประกอบการออกแบบอันทรงพลังในระบบฝังตัวที่มีความก้าวหน้าด้านการออกแบบมากมายtagแต่เครื่องมือเหล่านี้อาจมีการออกแบบที่ซับซ้อนและมีปัญหาในการออกแบบที่ซับซ้อนซึ่งจำเป็นต้องแก้ไข การติดตามปัญหาในการออกแบบ เช่น ข้อผิดพลาดในการกำหนด ปัญหาการโต้ตอบของระบบ และข้อผิดพลาดเกี่ยวกับเวลาของระบบอาจเป็นเรื่องท้าทาย การรวมความสามารถในการแก้ไขข้อบกพร่องในวงจรใน FPGA สามารถปรับปรุงการแก้ไขข้อบกพร่องฮาร์ดแวร์ได้อย่างมาก และหลีกเลี่ยงความหงุดหงิดที่กินเวลานานหลายชั่วโมง เอกสารนี้บรรยายถึงแนวทางต่างๆ ที่แตกต่างกันในการแก้ไขข้อบกพร่องในวงจรสำหรับ FPGA ระบุข้อแลกเปลี่ยนที่สำคัญ และผ่านตัวอย่างampการออกแบบที่มุ่งเป้าไปที่อุปกรณ์ FPGA Microsemi SmartFusion®2 SoC จะแสดงให้เห็นว่าความสามารถใหม่ๆ สามารถนำมาใช้เพื่อเพิ่มความเร็วในการดีบักและการทดสอบได้อย่างไร
การแนะนำ
FPGA เป็นองค์ประกอบการออกแบบที่แพร่หลายและทรงพลัง และปัจจุบันพบได้ในระบบฝังตัวแทบทุกระบบ ด้วยความจุที่เพิ่มขึ้น การรวมบล็อกฟังก์ชันบนชิปที่ซับซ้อนและอินเทอร์เฟซแบบอนุกรมขั้นสูง อุปกรณ์เหล่านี้อาจมีปัญหาการออกแบบที่ซับซ้อนซึ่งจำเป็นต้องแก้ไข การติดตามปัญหา เช่น ข้อผิดพลาดในการกำหนดฟังก์ชัน (ที่ FPGA หรือระดับระบบ) ปัญหาการโต้ตอบของระบบฟังก์ชัน ปัญหาการกำหนดเวลาของระบบ และปัญหาความเที่ยงตรงของสัญญาณระหว่าง IC (เช่น สัญญาณรบกวน สัญญาณรบกวนข้าม หรือการสะท้อน) ล้วนซับซ้อนมากขึ้นเมื่อใช้ FPGA ขั้นสูง การจำลองช่วยได้มากในการระบุปัญหาการออกแบบมากมาย แต่การโต้ตอบในโลกแห่งความเป็นจริงหลายอย่างจะไม่ปรากฏขึ้นจนกว่าจะนำการออกแบบไปใช้งานในฮาร์ดแวร์ มีการพัฒนาเทคนิคต่างๆ มากมายสำหรับการดีบักปัญหาการออกแบบที่ซับซ้อนเพื่อลดความซับซ้อนของกระบวนการ การทำความเข้าใจเทคนิคสำคัญเหล่านี้แต่ละเทคนิคอย่างรอบคอบ รวมถึงคำแนะนำต่างๆtages และ disadvantagมีประโยชน์ในการพิจารณาว่าเทคนิคใดหรือการผสมผสานเทคนิคใดเหมาะสมกับการออกแบบเฉพาะ
อดีตampการออกแบบ FPGA ที่กำหนดเป้าหมายไปที่อุปกรณ์ FPGA Microsemi SmartFusion2 SoC สามารถใช้เพื่อสาธิตข้อดีบางประการtages และ disadvantagเทคนิคมาตรฐานเหล่านี้รวมถึงความสามารถในการแก้ไขข้อบกพร่องในวงจรใหม่ล่าสุด ตัวอย่างที่เป็นตัวอย่างนี้ampจะแสดงให้เห็นว่าเทคนิคต่างๆ เหล่านี้สามารถนำมาใช้เพื่อเพิ่มความเร็วในการระบุและขจัดปัญหาฮาร์ดแวร์ในระหว่างการดีบักฮาร์ดแวร์ได้อย่างไร
เหตุใดการดีบัก FPGA จึงถือเป็นส่วนสำคัญของการออกแบบและการพัฒนาระบบ
FPGA มีรูปแบบการใช้งานหลักสองแบบที่แตกต่างจากองค์ประกอบการออกแบบอื่นๆ FPGA สามารถใช้ในผลิตภัณฑ์การผลิตหรือสามารถใช้เป็นยานพาหนะในการพัฒนาเพื่อพิสูจน์หรือสร้างต้นแบบแนวคิดการออกแบบการผลิต เมื่อใช้เป็นยานพาหนะการผลิต FPGA อาจเป็นเป้าหมายที่ยืดหยุ่นได้มากกว่ายานพาหนะการผลิตที่ใช้ ASIC หรือ CPU สิ่งนี้มีความสำคัญโดยเฉพาะอย่างยิ่งสำหรับการออกแบบใหม่ ซึ่งยังไม่ได้นำไปใช้ในฮาร์ดแวร์ การออกแบบที่มีตัวเลือกสถาปัตยกรรมที่แตกต่างกันสามารถสร้างและทดสอบได้อย่างง่ายดายเพื่อระบุการออกแบบที่เหมาะสมที่สุด FPGA ที่มีโปรเซสเซอร์บนชิป (FPGA SoC) ทำให้สามารถแลกเปลี่ยนการประมวลผลที่ใช้ CPU กับฟังก์ชันการเร่งความเร็วที่ใช้ FPGA ที่ได้รับความช่วยเหลือจากฮาร์ดแวร์ได้ ข้อดีเหล่านี้tagสามารถลดเวลาที่ต้องใช้ในการออกแบบ การตรวจสอบ การทดสอบ และการวิเคราะห์ความล้มเหลวสำหรับการพัฒนาผลิตภัณฑ์ใหม่ได้อย่างมาก
เมื่อนำมาใช้เพื่อสร้างต้นแบบการออกแบบ เช่น ASIC การผลิต ความยืดหยุ่นของ FPGA ถือเป็นประโยชน์สำคัญ แพลตฟอร์มฮาร์ดแวร์จริง แม้จะไม่ทำงานด้วยความเร็วเต็มที่ ก็ทำให้การได้รับเมตริกประสิทธิภาพของระบบโดยละเอียด ข้อมูลการวิเคราะห์ปริมาณงาน และผลการพิสูจน์แนวคิดสถาปัตยกรรมง่ายขึ้นมาก การสนับสนุน FPGA สำหรับการนำไปใช้งานมาตรฐานอุตสาหกรรมที่เข้มแข็ง (เช่น PCIe®, Gigabit Ethernet, XAUI, USB, CAN และอื่นๆ) ทำให้การทดสอบที่เกี่ยวข้องกับอินเทอร์เฟซเหล่านี้ง่ายขึ้น ตระกูลใหม่ล่าสุดของ FPGA ที่มีโปรเซสเซอร์ ARM บนชิป (SoC FPGA) ทำให้การสร้างต้นแบบการใช้งานด้วยโปรเซสเซอร์ฝังตัวเป็นเรื่องง่าย โค้ดโปรเซสเซอร์ที่พัฒนาก่อนหน้านี้สามารถพอร์ตไปยังต้นแบบและสร้างโค้ดใหม่ควบคู่ไปกับความพยายามออกแบบฮาร์ดแวร์
การผสมผสานระหว่างโปรเซสเซอร์มาตรฐานกับบัสอินเทอร์เฟซมาตรฐานทำให้สามารถใช้ประโยชน์จากระบบนิเวศขนาดใหญ่ของไลบรารีโค้ด ไดรเวอร์ API ฟังก์ชัน ระบบปฏิบัติการแบบเรียลไทม์ และแม้แต่ระบบปฏิบัติการเต็มรูปแบบเพื่อสร้างต้นแบบที่ใช้งานได้รวดเร็วยิ่งขึ้น นอกจากนี้ เมื่อการออกแบบเสร็จสมบูรณ์แล้ว สามารถใช้ต้นแบบ FPGA เพื่อรวบรวมชุดการทดสอบจำลองที่ครอบคลุม (สำหรับทั้งตัวกระตุ้นและการตอบสนอง) ที่สะท้อนถึงข้อมูลระบบจริง ชุดข้อมูลเหล่านี้อาจมีค่าอย่างยิ่งในการสร้างการจำลองขั้นสุดท้ายสำหรับ ASIC หรือการใช้งานการผลิตอื่นๆtagการใช้ FPGA เป็นต้นแบบการออกแบบสามารถลดเวลาในการออกแบบ การตรวจสอบ การทดสอบ และการวิเคราะห์ความล้มเหลวในการนำผลิตภัณฑ์ขั้นสุดท้ายไปใช้อย่างมาก
ในโมเดลการใช้งาน FPGA ทั่วไปทั้งสองนี้ ความยืดหยุ่นของ FPGA ในฐานะเป้าหมายการออกแบบถือเป็นข้อดีสำคัญtage. ซึ่งหมายความว่าการเปลี่ยนแปลงและการวนซ้ำในการออกแบบหลายๆ ครั้งจะเป็นเรื่องปกติ ดังนั้นความสามารถในการแก้ไขข้อผิดพลาดในการออกแบบอย่างรวดเร็วจึงมีความสำคัญอย่างยิ่งในการเปิดใช้งานตัวเลือกการออกแบบให้ได้มากที่สุด หากไม่มีความสามารถในการแก้ไขข้อผิดพลาดที่มีประสิทธิภาพ ความก้าวหน้าส่วนใหญ่tagความยืดหยุ่นในการออกแบบ FPGA จะลดลงเนื่องจากต้องใช้เวลาในการแก้ไขข้อบกพร่องเพิ่มเติม โชคดีที่ FPGA สามารถให้คุณสมบัติฮาร์ดแวร์เพิ่มเติมที่ทำให้การแก้ไขข้อบกพร่องแบบเรียลไทม์ง่ายขึ้นอย่างมาก ก่อนที่จะดูความสามารถเหล่านี้ มาดูปัญหาทั่วไปที่มักเกิดขึ้นกับการออกแบบ FPGA ก่อน เพื่อให้เรามีพื้นฐานที่เหมาะสมในการประเมินประสิทธิภาพและการแลกเปลี่ยนที่เกี่ยวข้องของเครื่องมือแก้ไขข้อบกพร่องต่างๆ
ปัญหาทั่วไปเมื่อดีบักการออกแบบ FPGA
ควบคู่ไปกับความสามารถที่เพิ่มขึ้นของ FPGA สมัยใหม่ ความซับซ้อนที่เพิ่มขึ้นที่เกี่ยวข้องทำให้การสร้างการออกแบบที่ปราศจากข้อผิดพลาดทำได้ยากขึ้น ในความเป็นจริง มีการประเมินว่าการดีบักอาจใช้เวลามากกว่า 50% ของวงจรการออกแบบระบบฝังตัว ด้วยแรงกดดันด้านเวลาในการนำผลิตภัณฑ์ออกสู่ตลาดที่ยังคงบีบวงจรการพัฒนา การดีบักฮาร์ดแวร์ของระบบเริ่มต้นจึงถูกลดความสำคัญลงโดยมักจะถือว่าการตรวจสอบ (ซึ่งตัวมันเองใช้เวลามากกว่า XNUMX เปอร์เซ็นต์)tage ของกำหนดการพัฒนาจะตรวจจับจุดบกพร่องทั้งหมดก่อนที่จะนำระบบมาใช้ในเบื้องต้น มาดูปัญหาของระบบทั่วไปเพียงไม่กี่ประเภทเพื่อทำความเข้าใจความท้าทายที่การออกแบบทั่วไปจะเผชิญในระหว่างนำระบบมาใช้เบื้องต้นได้ดียิ่งขึ้น
ข้อผิดพลาดในการกำหนดฟังก์ชันอาจพบได้ยากเป็นสองเท่า เนื่องจากผู้ออกแบบเข้าใจข้อกำหนดเฉพาะบางอย่างผิด ดังนั้นข้อผิดพลาดจึงอาจมองข้ามได้ แม้จะดูรายละเอียดของการออกแบบอย่างละเอียดแล้วก็ตามampข้อผิดพลาดในการกำหนดฟังก์ชันทั่วไปคือการเปลี่ยนสถานะของเครื่องจักรไม่จบลงในสถานะที่ถูกต้อง ข้อผิดพลาดอาจปรากฏในอินเทอร์เฟซระบบเป็นปัญหาการโต้ตอบ เช่น ความหน่วงของอินเทอร์เฟซample อาจระบุไม่ถูกต้อง ส่งผลให้เกิดบัฟเฟอร์ล้นหรือล้นเกินที่ไม่คาดคิด
ปัญหาเรื่องเวลาในระดับระบบเป็นอีกสาเหตุหนึ่งที่มักเกิดข้อผิดพลาดในการออกแบบ เหตุการณ์ที่ไม่ซิงโครไนซ์เป็นอีกสาเหตุหนึ่งที่มักเกิดข้อผิดพลาดเมื่อไม่ได้พิจารณาอย่างรอบคอบถึงผลกระทบของการซิงโครไนซ์หรือการข้ามโดเมนเวลา เมื่อทำงานด้วยความเร็วสูง ข้อผิดพลาดประเภทนี้อาจก่อให้เกิดปัญหาได้มากและอาจปรากฏขึ้นไม่บ่อยนัก อาจปรากฏขึ้นเฉพาะเมื่อรูปแบบข้อมูลเฉพาะปรากฏขึ้นเท่านั้น การละเมิดเวลาทั่วไปหลายประการจัดอยู่ในหมวดหมู่นี้และมักจะจำลองได้ยากมากหรืออาจเป็นไปไม่ได้เลย
การละเมิดเวลาอาจเกิดจากความเที่ยงตรงของสัญญาณต่ำระหว่างวงจรรวม โดยเฉพาะอย่างยิ่งในระบบที่มีรางจ่ายไฟหลายรางสำหรับแต่ละวงจร ความเที่ยงตรงของสัญญาณต่ำอาจส่งผลให้เกิดสัญญาณรบกวน สัญญาณครอสทอล์ค การสะท้อน โหลดเกิน และปัญหาคลื่นแม่เหล็กไฟฟ้ารบกวน (EMI) ซึ่งมักปรากฏเป็นการละเมิดเวลา ปัญหาแหล่งจ่ายไฟ เช่น การเปลี่ยนแปลงชั่วขณะ (โดยเฉพาะอย่างยิ่งในระหว่างการเริ่มต้นหรือปิดระบบ) การเปลี่ยนแปลงโหลด และความเครียดจากการกระจายพลังงานสูง อาจส่งผลให้เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ ซึ่งมักไม่สามารถติดตามกลับไปยังแหล่งจ่ายไฟได้อย่างง่ายดาย แม้ว่าการออกแบบจะถูกต้องอย่างสมบูรณ์ ปัญหาการผลิตบอร์ดก็อาจส่งผลให้เกิดข้อผิดพลาดได้ เช่น ข้อต่อบัดกรีที่ผิดพลาดและขั้วต่อที่ต่อไม่ถูกต้อง เป็นต้นampอาจเป็นแหล่งที่มาของข้อผิดพลาดและอาจขึ้นอยู่กับอุณหภูมิหรือตำแหน่งของบอร์ด การใช้เทคนิคการบรรจุ FPGA ขั้นสูงอาจทำให้ยากต่อการตรวจสอบสัญญาณบนแผงวงจรพิมพ์ ดังนั้นการเข้าถึงสัญญาณที่ต้องการจึงมักเป็นปัญหาได้ บ่อยครั้งปัญหาการออกแบบจำนวนมากไม่ได้สร้างข้อผิดพลาดทันทีและต้องส่งผลกระทบไปทั่วการออกแบบจนกว่าข้อผิดพลาดจะแสดงออกมา การติดตามข้อผิดพลาดเริ่มต้นไปยังสาเหตุหลักมักจะเป็นงานที่น่าหงุดหงิด ยากลำบาก และใช้เวลานาน
เช่นampข้อผิดพลาดเพียงเล็กน้อยในตารางการแปลอาจไม่ส่งผลให้เกิดข้อผิดพลาดจนกว่าจะผ่านไปหลายรอบ เครื่องมือบางตัวที่เราจะพูดถึงในภายหลังในเอกสารนี้ ซึ่งใช้ฮาร์ดแวร์ดีบักในวงจรโดยเฉพาะ มีเป้าหมายเฉพาะเพื่อให้การ "ค้นหาข้อบกพร่อง" เหล่านี้รวดเร็วและง่ายขึ้น ก่อนที่จะลงรายละเอียดเกี่ยวกับเครื่องมือเหล่านี้ มาดูการจำลองเทคนิคการดีบักที่ใช้ซอฟต์แวร์ยอดนิยมก่อน เพื่อทำความเข้าใจขั้นสูงได้ดีขึ้นtages และ disadvantagประโยชน์ของการใช้จำลองในการแก้จุดบกพร่อง
การใช้การจำลองเพื่อแก้ไขจุดบกพร่อง
โดยทั่วไปในการจำลองการออกแบบ ส่วนประกอบในชีวิตจริงทั้งหมดภายในและภายนอกการออกแบบจะถูกจำลองทางคณิตศาสตร์เป็นกระบวนการซอฟต์แวร์ที่ดำเนินการตามลำดับบน CPU มาตรฐาน การใช้สิ่งเร้าที่หลากหลายในการออกแบบและการตรวจสอบผลลัพธ์ที่คาดหวังเทียบกับผลลัพธ์ของการออกแบบจำลองเป็นวิธีง่ายๆ ในการตรวจจับข้อผิดพลาดในการออกแบบที่เห็นได้ชัดที่สุด หน้าต่างที่แสดงการทำงานจำลองทั่วไปแสดงอยู่ในรูปที่ 1 ด้านล่างtagข้อดีของการจำลองแบบเทียบกับการดีบักแบบใช้ฮาร์ดแวร์ คือ การจำลองสามารถทำได้ในซอฟต์แวร์ ไม่จำเป็นต้องมีการออกแบบและการทดสอบบนฮาร์ดแวร์จริง การจำลองสามารถตรวจจับข้อผิดพลาดในการออกแบบได้อย่างรวดเร็ว โดยเฉพาะข้อผิดพลาดที่เกี่ยวข้องกับข้อกำหนดที่ไม่ถูกต้อง ความเข้าใจผิดเกี่ยวกับข้อกำหนดของอินเทอร์เฟซ ข้อผิดพลาดของฟังก์ชัน และข้อผิดพลาดร้ายแรงอื่นๆ อีกมากมายที่ตรวจพบได้ง่ายผ่านเวกเตอร์ตัวกระตุ้นอย่างง่าย
การจำลองมีประสิทธิผลอย่างยิ่งเมื่อนักออกแบบสามารถใช้ชุดตัวกระตุ้นที่หลากหลายได้ และทราบผลลัพธ์ที่ได้ ในกรณีเหล่านี้ การจำลองสามารถทำการทดสอบการออกแบบได้เกือบหมดสิ้น น่าเสียดายที่การออกแบบส่วนใหญ่ไม่สามารถเข้าถึงชุดทดสอบที่ครอบคลุมได้อย่างง่ายดาย และกระบวนการสร้างชุดทดสอบเหล่านี้อาจใช้เวลานานมาก การสร้างชุดทดสอบที่ครอบคลุมการออกแบบ 100% นั้นแทบจะเป็นไปไม่ได้สำหรับการออกแบบที่ใช้ FPGA ขนาดใหญ่ และต้องใช้ทางลัดเพื่อพยายามครอบคลุมองค์ประกอบสำคัญของการออกแบบ ความยากลำบากอีกประการหนึ่งของการจำลองคือ การจำลองไม่ใช่การใช้งานใน "โลกแห่งความเป็นจริง" และไม่สามารถตรวจจับเหตุการณ์ที่ไม่ซิงโครไนซ์ การโต้ตอบของระบบที่ความเร็ว หรือการละเมิดเวลาได้ สุดท้าย กระบวนการจำลองอาจช้ามาก และหากจำเป็นต้องทำซ้ำหลายครั้ง การจำลองจะกลายเป็นส่วนที่ใช้เวลานานที่สุด และมักจะเป็นส่วนที่มีค่าใช้จ่ายสูงที่สุดของกระบวนการพัฒนา
นักออกแบบ FPGA พบว่าสามารถเพิ่มฮาร์ดแวร์ดีบักลงในการออกแบบ FPGA เพื่อสังเกตและควบคุมสัญญาณสำคัญภายในอุปกรณ์ได้ (หรืออาจกล่าวได้ดีกว่าว่าเป็นการเพิ่มเข้าไปในการจำลอง) เทคนิคเหล่านี้พัฒนาขึ้นในตอนแรกเป็นแนวทางเฉพาะกิจ แต่ค่อยๆ พัฒนาเป็นกลยุทธ์ดีบักฮาร์ดแวร์มาตรฐาน การใช้ความสามารถในการดีบักในวงจรนี้ให้ประโยชน์อย่างมากtagสำหรับการออกแบบตาม FPGA และส่วนถัดไปจะสำรวจกลยุทธ์สามประการที่พบได้บ่อยที่สุดและข้อดีต่างๆ ของกลยุทธ์เหล่านั้นtages และ disadvantagใช่
แนวทางการดีบักในวงจรทั่วไปสำหรับ FPGA
เทคนิคที่ใช้กันทั่วไปในการนำความสามารถในการดีบักในวงจรไปใช้งานใน FPGA จะใช้เครื่องวิเคราะห์ลอจิกแบบฝัง อุปกรณ์ทดสอบภายนอก หรือฮาร์ดแวร์โพรบสัญญาณเฉพาะที่ฝังอยู่ในโครงสร้าง FPGA โดยทั่วไปแล้ว เครื่องวิเคราะห์ลอจิกแบบฝังจะนำไปใช้งานโดยใช้โครงสร้าง FPGA และแทรกเข้าไปในการออกแบบ JTAG พอร์ตนี้ใช้สำหรับเข้าถึงเครื่องวิเคราะห์และสามารถแสดงข้อมูลที่จับได้บนพีซี เมื่อใช้อุปกรณ์ทดสอบภายนอก การออกแบบ FPGA ที่กำลังทดสอบจะถูกปรับเปลี่ยนเพื่อให้สัญญาณ FPGA ภายในที่เลือกไว้ถูกส่งไปยังพินเอาต์พุต จากนั้นจึงสามารถสังเกตพินเหล่านี้ได้ผ่านอุปกรณ์ทดสอบภายนอก เมื่อใช้ฮาร์ดแวร์โพรบสัญญาณเฉพาะ จะสามารถอ่านสัญญาณภายในที่เลือกไว้จำนวนมากได้แบบเรียลไทม์ การนำโพรบไปใช้บางประเภทยังสามารถใช้เพื่อเขียนลงในตำแหน่งรีจิสเตอร์หรือหน่วยความจำเพื่อเพิ่มความสามารถในการดีบักได้อีกด้วย มาดูรายละเอียดเพิ่มเติมที่ advantages และ disadvantagของแต่ละเทคนิคเหล่านี้แล้วลองดูตัวอย่างampออกแบบเพื่อดูว่าแนวทางที่แตกต่างกันเหล่านี้ส่งผลกระทบต่อเวลาการดีบักโดยรวมอย่างไร
เครื่องวิเคราะห์ลอจิกฝังตัวดีบัก FPGA ในวงจร
แนวคิดของเครื่องวิเคราะห์ลอจิกแบบฝังตัวเป็นผลโดยตรงจากความสามารถในการแก้ไขข้อบกพร่องในวงจรเฉพาะกิจที่นักออกแบบนำมาใช้เมื่อใช้งาน FPGA ครั้งแรก เครื่องวิเคราะห์ลอจิกแบบฝังตัวเพิ่มความสามารถใหม่ ๆ และขจัดความจำเป็นที่นักออกแบบจะต้องพัฒนาเครื่องวิเคราะห์ของตนเอง FPGA ส่วนใหญ่มีฟีเจอร์เหล่านี้และบริษัทอื่น ๆ ก็เสนอเครื่องวิเคราะห์มาตรฐาน (Identify® จาก Synopsys เป็นตัวอย่างหนึ่งที่ได้รับความนิยม)ample) ที่สามารถเชื่อมต่อกับเครื่องมือระดับสูงได้อย่างง่ายดายเพื่อปรับปรุงประสิทธิภาพการผลิตต่อไป
ฟังก์ชันการทำงานของเครื่องวิเคราะห์ลอจิกถูกแทรกเข้าไปในการออกแบบโดยใช้โครงสร้าง FPGA และบล็อกหน่วยความจำแบบฝังเป็นบัฟเฟอร์ร่องรอย ดังที่แสดงในรูปที่ 2 นอกจากนี้ ยังสร้างทรัพยากรการทริกเกอร์เพื่อให้สามารถเลือกและจับภาพการโต้ตอบสัญญาณที่ซับซ้อนได้อย่างง่ายดาย โดยทั่วไป การเข้าถึงเครื่องวิเคราะห์เพื่อการควบคุมและถ่ายโอนข้อมูลจะทำผ่าน J มาตรฐานTAG พอร์ตเพื่อลดความซับซ้อนของข้อกำหนดอินเทอร์เฟซ ข้อมูลที่บันทึกไว้สามารถแสดงบนพีซีได้โดยใช้พอร์ตทั่วไป viewซอฟต์แวร์ ing และโดยทั่วไปจะสะท้อนเอาต์พุตคลื่นจำลองลอจิก viewสไตล์การไอเอ็นจี
แอดแวนtagแนวทางนี้คือไม่มีการใช้พิน FPGA I/O เพิ่มเติม แต่ใช้พินมาตรฐาน J เท่านั้นTAG สัญญาณ คอร์ IP ของเครื่องวิเคราะห์ลอจิกแบบฝังตัวมักจะมีราคาไม่แพงนัก และในบางกรณีอาจเป็นตัวเลือกสำหรับการสังเคราะห์ FPGA ที่มีอยู่หรือเครื่องมือจำลอง ในบางกรณี เครื่องวิเคราะห์ลอจิกแบบฝังตัวยังสามารถให้เอาต์พุตเพิ่มเติมบน I/O ที่ไม่ได้ใช้ หากสะดวกกว่า ข้อเสียประการหนึ่งtagวิธีนี้ต้องใช้ทรัพยากร FPGA จำนวนมาก โดยเฉพาะอย่างยิ่ง หากใช้บัฟเฟอร์ติดตาม จะทำให้จำนวนหน่วยความจำบล็อกที่พร้อมใช้งานลดลง หากจำเป็นต้องใช้บัฟเฟอร์ขนาดใหญ่ ก็ต้องแลกมาด้วยความลึกของหน่วยความจำ (เนื่องจากการใช้หน่วยความจำขนาดใหญ่กว่าจะทำให้ความลึกของหน่วยความจำตื้นกว่า) ซึ่งเป็นข้อเสียที่สำคัญtagเมื่อใช้อุปกรณ์ขนาดเล็ก ข้อเสียที่ใหญ่ที่สุดของเทคนิคนี้อาจเป็นว่าทุกครั้งที่มีการปรับตำแหน่งโพรบ จำเป็นต้องคอมไพล์และเขียนโปรแกรมการออกแบบใหม่ เมื่อใช้อุปกรณ์ขนาดใหญ่ กระบวนการนี้อาจใช้เวลานานมาก เนื่องจากวิธีการวางโพรบสัญญาณในการออกแบบ จึงอาจเชื่อมโยงความสัมพันธ์ของเวลาสัญญาณได้ยาก นอกจากนี้ ความล่าช้าระหว่างโพรบสัญญาณไม่สอดคล้องกัน จึงเปรียบเทียบความสัมพันธ์ของเวลาได้ยาก ซึ่งเป็นปัญหาเฉพาะเมื่อเปรียบเทียบสัญญาณอะซิงโครนัสหรือสัญญาณจากโดเมนเวลาที่แตกต่างกัน
การดีบัก FPGA ในวงจร – อุปกรณ์ทดสอบภายนอก
การใช้รหัสดีบักในวงจรร่วมกับอุปกรณ์ทดสอบภายนอกถือเป็นการพัฒนาตามธรรมชาติเมื่อมีเครื่องวิเคราะห์ลอจิกภายนอกสำหรับการทดสอบระบบอยู่แล้ว โดยการสร้างรหัสดีบักง่ายๆ เพื่อระบุและเลือกสัญญาณทดสอบภายในและนำไปใช้กับ I/O ของ FPGA ตามที่แสดงในรูปที่ 3 ทำให้สามารถใช้ประโยชน์จากความสามารถขั้นสูงของเครื่องวิเคราะห์ได้ (เช่น บัฟเฟอร์การติดตามขนาดใหญ่ ลำดับการทริกเกอร์ที่ซับซ้อน และหลาย viewตัวเลือก ing) เพื่อสร้างสภาพแวดล้อมการดีบักที่เรียบง่ายแต่ทรงพลัง ความสามารถในวงจรที่ซับซ้อนยิ่งขึ้นสำหรับตัวเลือกการทริกเกอร์ขั้นสูงสามารถลดจำนวนเอาต์พุตที่จำเป็นได้ ตัวอย่างเช่นampการเลือกที่อยู่เฉพาะบนบัสขนาดกว้างอาจเป็นการห้ามถ้าจำเป็นต้องใช้พินภายนอก
การใช้ลอจิก FPGA ภายในช่วยลดความต้องการ I/O ลงอย่างมาก และยังสามารถค้นหารูปแบบที่อยู่เฉพาะ (อาจเป็นลำดับการเรียกและการส่งคืน) เพื่อแก้ไขปัญหาที่ซับซ้อนมากขึ้นได้ หากมีอินเทอร์เฟซผู้ใช้ทั่วไป ก็จะช่วยลดความยุ่งยากในการเรียนรู้และปรับปรุงประสิทธิภาพการทำงานได้
แอดแวนtagข้อดีของแนวทางนี้คือช่วยให้ต้นทุนของอุปกรณ์ทดสอบภายนอกเพิ่มขึ้น ดังนั้นจึงไม่ต้องเสียค่าใช้จ่ายเพิ่มเติมสำหรับเครื่องมือใดๆ คอร์ IP ของวงจรดีบักบางคอร์หาซื้อได้จากผู้ผลิตอุปกรณ์หรือผู้ผลิต FPGA และอาจมีต้นทุนต่ำมากหรือฟรีด้วยซ้ำ ทรัพยากร FPGA ที่จำเป็นในการนำตรรกะการเลือกสัญญาณไปใช้มีน้อยมาก และเนื่องจากฟังก์ชันการติดตามทำโดยใช้ตัววิเคราะห์ตรรกะภายนอก จึงไม่จำเป็นต้องใช้หน่วยความจำแบบบล็อก เนื่องจากตรรกะการเลือกมีราคาไม่แพง จึงสามารถรองรับช่องสัญญาณจำนวนมากที่มีการทริกเกอร์กว้างได้เช่นกัน ตัววิเคราะห์ตรรกะสามารถทำงานได้ทั้งในโหมดจับเวลาและโหมดสถานะ ซึ่งช่วยแยกปัญหาการจับเวลาบางส่วนได้
ข้อเสียtagแนวทางนี้อาจรวมถึงความจำเป็นในการซื้อเครื่องวิเคราะห์ตรรกะ หากยังไม่มีการจัดสรรให้กับโครงการ ข้อเสียประการนี้tage อาจเพียงพอที่จะทำให้ไม่สนับสนุนแนวทางนี้ในหลายกรณี อย่างไรก็ตาม โปรดทราบว่ามีตัววิเคราะห์ลอจิกราคาประหยัดบางตัวที่สามารถใช้พีซีหรือแท็บเล็ตในการแสดงผล ทำให้ตัวเลือกนี้คุ้มต้นทุนมากขึ้นสำหรับความต้องการการดีบักแบบง่ายๆ
จำนวนพิน FPGA ที่ใช้ไปอาจเป็นข้อเสียอีกประการหนึ่งtagและหากจำเป็นต้องสังเกตบัสขนาดใหญ่ จำเป็นต้องมีการวางแผนสำหรับเค้าโครงบอร์ดและการเพิ่มตัวเชื่อมต่อดีบัก ข้อกำหนดนี้มักคาดเดาได้ยากในช่วงเริ่มต้นของขั้นตอนการออกแบบและความซับซ้อนที่ไม่ต้องการอื่นๆ คล้ายกับแนวทางการวิเคราะห์ลอจิกแบบฝังตัว กลยุทธ์การทดสอบภายนอกจำเป็นต้องคอมไพล์และเขียนโปรแกรมการออกแบบใหม่เมื่อจำเป็นต้องมีการทดลองใหม่แต่ละครั้ง
ข้อเสียทั่วไปtagเทคนิคทั้งสองนี้ ได้แก่ การใช้ทรัพยากรบนชิป (ซึ่งอาจส่งผลต่อประสิทธิภาพการจับเวลาของการออกแบบและสร้างข้อกำหนดการดีบักเพิ่มเติม) ความจำเป็นในการคอมไพล์และเขียนโปรแกรมการออกแบบใหม่ (ซึ่งอาจเพิ่มเวลาหรือแม้กระทั่งหลายวันในการกำหนดตารางการดีบัก) การวางแผนล่วงหน้าที่จำเป็นสำหรับการระบุสถานการณ์การทดสอบที่เป็นไปได้ และการใช้ทรัพยากรชิป I/O เพิ่มเติม ทำให้จำเป็นต้องใช้แนวทางที่ไม่มีข้อเสียเหล่านี้ การตอบสนองอย่างหนึ่งคือการเพิ่มตรรกะการดีบักเฉพาะลงในโครงสร้าง FPGA บนอุปกรณ์บางรุ่น ผลลัพธ์ที่ได้คือการดีบักในวงจรโดยใช้โพรบฮาร์ดแวร์
การดีบัก FPGA ในวงจร – โพรบฮาร์ดแวร์
การใช้โพรบฮาร์ดแวร์ช่วยลดความซับซ้อนของเทคนิคการดีบักในวงจรสำหรับ FPGA ได้อย่างมาก เทคนิคนี้ถูกนำไปใช้เป็นฟีเจอร์ Live Probe บนอุปกรณ์ FPGA SmartFusion2®SoC และ IGLOO®2 FPGA โดยจะเพิ่มสายโพรบเฉพาะให้กับโครงสร้าง FPGA เพื่อสังเกตเอาต์พุตของบิตรีจิสเตอร์องค์ประกอบลอจิกใดๆ ก็ได้ ตามที่แสดงในแผนผังบล็อกในรูปที่ 4 โพรบฮาร์ดแวร์มีให้เลือกใช้ในช่องโพรบ XNUMX ช่อง คือ A และ B
เอาต์พุตรีจิสเตอร์ที่เลือก (จุดตรวจสอบ) เช่น เอาต์พุตที่อยู่ด้านล่างของภาพ จะถูกส่งไปเหนือช่องตรวจสอบทั้งสองช่อง และหากเลือกแล้ว สามารถนำไปใช้กับช่อง A หรือ B ก็ได้ จากนั้นสัญญาณช่องเรียลไทม์เหล่านี้สามารถส่งไปยังพินเฉพาะของ Probe A และ Probe B บนอุปกรณ์ได้ นอกจากนี้ สัญญาณของ Probe A และ Probe B ยังสามารถส่งไปยังเครื่องวิเคราะห์ลอจิกแบบฝังภายในได้อีกด้วย
โปรดทราบว่าลักษณะการกำหนดเวลาของพินโพรบนั้นสม่ำเสมอและมีการเบี่ยงเบนเล็กน้อยจากจุดโพรบหนึ่งไปยังอีกจุดหนึ่ง ทำให้เปรียบเทียบลักษณะการกำหนดเวลาของสัญญาณแบบเรียลไทม์ได้ง่ายขึ้นมาก สามารถจับข้อมูลได้ที่ความถี่สูงสุด 100MHz จึงเหมาะสำหรับการออกแบบเป้าหมายส่วนใหญ่
ที่สำคัญที่สุด ตำแหน่งของจุดตรวจสอบอาจเปลี่ยนแปลงได้อย่างรวดเร็ว เนื่องจากไม่ได้เลือกเป็นส่วนหนึ่งของการออกแบบที่นำไปใช้งาน (เลือกผ่านฮาร์ดแวร์เฉพาะในขณะที่การออกแบบทำงานบน FPGA) โดยเพียงแค่ส่งข้อมูลการเลือกไปยังอุปกรณ์ ไม่จำเป็นต้องคอมไพล์และเขียนโปรแกรมการออกแบบใหม่
เพื่อให้การใช้ความสามารถของ Live Probe ง่ายขึ้นอีก เครื่องมือซอฟต์แวร์ดีบักที่เกี่ยวข้องสามารถเข้าถึงตำแหน่งสัญญาณโพรบทั้งหมดได้ผ่านระบบดีบักที่สร้างขึ้นโดยอัตโนมัติ fileตามที่แสดงในรูปที่ 5 สามารถเลือกชื่อสัญญาณจากรายการสัญญาณและนำไปใช้กับช่องสัญญาณที่ต้องการได้ ซึ่งสามารถทำได้แม้ในขณะที่การออกแบบกำลังทำงานอยู่ เพื่อให้การตรวจสอบกิจกรรมภายในการออกแบบเป็นไปอย่างราบรื่นและมีประสิทธิภาพมาก
ในหลายกรณี ความสามารถในการตรวจสอบฮาร์ดแวร์ เช่น Live Probe สามารถใช้งานร่วมกับเครื่องวิเคราะห์ลอจิกแบบฝังตัวที่อธิบายไว้ก่อนหน้านี้ และเทคนิคการทดสอบภายนอกได้
ตามที่แสดงในรูปที่ 6 ความสามารถของ Live Probe ในการเลือกสัญญาณ 'on the fly' ทำให้สามารถเปลี่ยนสัญญาณที่สังเกตได้อย่างรวดเร็วและง่ายดายโดยไม่จำเป็นต้องคอมไพล์การออกแบบใหม่ ตัววิเคราะห์ลอจิกภายนอกหรือสโคปสามารถสังเกตสัญญาณที่ตรวจสอบได้อย่างง่ายดาย ดังแสดงในส่วนบนขวาของภาพบนพินเอาต์พุตของโพรบเฉพาะ หรืออาจใช้ตัววิเคราะห์ลอจิกภายใน (บล็อก ILA Identify ที่แสดงในภาพ) เพื่อสังเกตพินของโพรบก็ได้ สัญญาณของโพรบสามารถจับได้โดย ILA และสังเกตได้จากหน้าต่างรูปคลื่น สามารถเปลี่ยนตำแหน่งของโพรบได้โดยไม่ต้องคอมไพล์การออกแบบเป้าหมายใหม่
โปรดทราบว่าความสามารถเพิ่มเติมในการทริกเกอร์และการติดตามสามารถใช้เพื่อเพิ่มประสิทธิภาพการทำงานของโพรบ ทำให้ตรวจพบปัญหาการออกแบบที่ซับซ้อนได้ง่าย
นอกจากนี้ ยังมีความสามารถในการดีบักฮาร์ดแวร์เพิ่มเติมบนอุปกรณ์ SmartFusion2 SoC FPGA และ IGLOO2 FPGA หนึ่งในความสามารถเหล่านี้เรียกว่า Active Probe ซึ่งสามารถอ่านหรือเขียนไปยังบิตรีจิสเตอร์องค์ประกอบตรรกะใดๆ ก็ได้แบบไดนามิกและแบบอะซิงโครนัส ค่าที่เขียนจะคงอยู่เป็นเวลาหนึ่งรอบสัญญาณนาฬิกา ดังนั้นการทำงานปกติจึงสามารถดำเนินต่อไปได้ ทำให้เป็นเครื่องมือดีบักที่มีประโยชน์มาก Active Probe มีประโยชน์เป็นพิเศษหากต้องการสังเกตสัญญาณภายในอย่างรวดเร็ว (บางทีอาจเพียงเพื่อตรวจสอบว่าสัญญาณนั้นทำงานอยู่หรืออยู่ในสถานะที่ต้องการ เช่น สัญญาณรีเซ็ต) หรือหากจำเป็นต้องทดสอบฟังก์ชันตรรกะอย่างรวดเร็วโดยการเขียนลงในจุดตรวจสอบ
(บางทีอาจเริ่มการเปลี่ยนแปลงสถานะเครื่องจักรโดยตั้งค่าค่าอินพุตอย่างรวดเร็วเพื่อแยกปัญหาการไหลของการควบคุม)
ความสามารถในการดีบักอีกประการหนึ่งที่ Microsemi จัดเตรียมให้คือการดีบักหน่วยความจำ คุณลักษณะนี้ช่วยให้ผู้ออกแบบสามารถอ่านหรือเขียนไปยังบล็อก SRAM ของ FPGA Fabric ที่เลือกได้แบบไดนามิกและแบบอะซิงโครนัส ดังที่แสดงในภาพหน้าจอของเครื่องมือดีบัก (รูปที่ 7) เมื่อเลือกแท็บ Memory Blocks ผู้ใช้สามารถเลือกหน่วยความจำที่ต้องการอ่าน ดำเนินการจับภาพหน่วยความจำ แก้ไขค่าหน่วยความจำ จากนั้นจึงเขียนค่ากลับไปยังอุปกรณ์ ซึ่งอาจมีประโยชน์อย่างยิ่งสำหรับการตรวจสอบหรือตั้งค่าบัฟเฟอร์ข้อมูลที่ใช้ในพอร์ตการสื่อสารสำหรับการคำนวณแบบสแครชแพดหรือแม้แต่สำหรับโค้ดที่ดำเนินการโดย CPU แบบฝังตัว การดีบักข้อผิดพลาดที่ซับซ้อนซึ่งขึ้นอยู่กับข้อมูลจะเร็วขึ้นและง่ายขึ้นอย่างมากเมื่อสามารถสังเกตและควบคุมหน่วยความจำได้อย่างรวดเร็ว
เมื่อดีบักการออกแบบแล้ว อาจจำเป็นต้องปิดความสามารถในการดีบักฮาร์ดแวร์เพื่อปกป้องข้อมูลที่ละเอียดอ่อน ผู้โจมตีอาจใช้สิ่งอำนวยความสะดวกเดียวกันนี้เพื่ออ่านข้อมูลสำคัญหรือเปลี่ยนการตั้งค่าระบบที่อาจให้เข้าถึงส่วนที่ละเอียดอ่อนของระบบได้อย่างง่ายดาย Microsemi ได้เพิ่มคุณสมบัติเพื่อให้ผู้ออกแบบสามารถรักษาความปลอดภัยของอุปกรณ์ได้หลังจากการดีบักเสร็จสิ้น ตัวอย่างเช่นampการเข้าถึง Live Probe และ Active Probe สามารถล็อกได้เพื่อปิดการใช้งานฟังก์ชันนี้โดยสมบูรณ์ เนื่องจากอาจเป็นช่องทางการโจมตีได้ (นอกจากนี้ยังช่วยขจัดความเป็นไปได้ที่กิจกรรมของโพรบจะสร้างรูปแบบใดๆ ในกระแสไฟฟ้าที่จ่ายไป ซึ่งอาจใช้เพื่อพยายามสังเกตข้อมูลโพรบโดยอ้อม) อีกวิธีหนึ่งคือสามารถล็อกการเข้าถึงส่วนที่เลือกของการออกแบบเพื่อป้องกันการเข้าถึงเฉพาะส่วนเหล่านั้นได้ วิธีนี้อาจสะดวกหากจำเป็นต้องรักษาความปลอดภัยเพียงบางส่วนของการออกแบบ ทำให้ส่วนที่เหลือของการออกแบบยังคงสามารถเข้าถึงได้สำหรับการทดสอบภาคสนามหรือการวิเคราะห์ข้อผิดพลาด
ตารางเปรียบเทียบการดีบักในวงจร
ตอนนี้รายละเอียด review เทคนิคการดีบักฮาร์ดแวร์ในวงจรหลักสามเทคนิคได้รับการอธิบายไว้แล้ว โดยได้สร้างแผนภูมิสรุปดังที่แสดงในรูปที่ 8 ขึ้น โดยให้รายละเอียดเกี่ยวกับเทคนิคต่างๆtages และ disadvantagของแต่ละวิธี โปรดจำไว้ว่าเทคนิคบางอย่างสามารถใช้ร่วมกันได้ (Live Probe และ Internal Logic Analyzer (ILA) เช่น Synopsys Identify เป็นต้นample) เราสามารถเห็นจุดแข็งและจุดอ่อนที่สำคัญของเทคนิคแต่ละเทคนิคได้ ความสามารถในการดีบักฮาร์ดแวร์ในวงจร (Live Probe, Active Probe และ Memory Debug ซึ่งเรียกรวมกันว่า SmartDebug) ถือว่าอ่อนแอที่สุดเมื่อเปรียบเทียบกับเทคนิคอื่นๆ เมื่อพูดถึงจำนวนโพรบทั้งหมดที่มี (วงกลมสีแดง) และอ่อนแอกว่าเทคนิคที่ดีที่สุด (วงกลมสีเหลือง) เมื่อพิจารณาถึงความเร็วในการจับภาพ (อุปกรณ์ทดสอบภายนอกอาจเร็วกว่าได้)
เทคนิคที่ใช้ ILA เช่น Synopsys Identify ถือว่าอ่อนแอที่สุดเมื่อเปรียบเทียบกับเทคนิคอื่นๆ และเมื่อพิจารณาถึงความต้องการทรัพยากรของ FPGA เทคนิคที่ใช้เครื่องมือทดสอบภายนอกถือว่าอ่อนแอที่สุดเมื่อพิจารณาจากหลายๆ ประเด็น โดยต้นทุน ผลกระทบต่อระยะเวลาในการออกแบบ และค่าใช้จ่ายในการเคลื่อนย้ายโพรบ (เนื่องจากต้องคอมไพล์การออกแบบใหม่) ถือเป็นภาระหนักที่สุด บางทีวิธีแก้ปัญหาที่ดีที่สุดคือการใช้ SmartDebug ร่วมกับเทคนิคอื่นๆ ร่วมกัน เพื่อลดจุดอ่อนของ SmartDebug ในด้านจำนวนช่องสัญญาณและลดจุดอ่อนในการเคลื่อนที่ของโพรบtagเทคนิคอื่น ๆ ก็ลดลงเช่นกัน
การจำแนกประเภทสัญญาณ
สามารถแยกความแตกต่างที่มีประโยชน์ระหว่างสัญญาณประเภททั่วไปบางประเภทได้ และสิ่งนี้อาจช่วยในการวางแผนแนวทางการแก้ไขข้อบกพร่อง ตัวอย่างเช่นampสัญญาณที่ไม่เปลี่ยนแปลงนอกเหนือจากระหว่างการสตาร์ทระบบ เช่น การรีเซ็ตระบบ การรีเซ็ตบล็อก หรือรีจิสเตอร์การเริ่มต้นระบบ สามารถจัดเป็นสัญญาณคงที่ได้ สัญญาณประเภทเหล่านี้เข้าถึงได้อย่างมีประสิทธิภาพมากที่สุดผ่านเครื่องมือที่สามารถสังเกตและควบคุมสัญญาณได้อย่างง่ายดาย โดยไม่ต้องใช้เวลาคอมไพล์ซ้ำนาน Active Probe เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการดีบักสัญญาณคงที่ ในทำนองเดียวกัน สัญญาณที่เปลี่ยนแปลงบ่อยกว่าแต่ยังคงคงที่ในช่วงเวลาส่วนใหญ่ สามารถจัดเป็นสัญญาณคงที่เทียมได้ และดีบักได้อย่างมีประสิทธิภาพมากที่สุดโดยใช้ Active Probe สัญญาณที่เปลี่ยนแปลงบ่อย เช่น สัญญาณนาฬิกา สามารถจัดเป็นสัญญาณแบบไดนามิกและไม่สามารถเข้าถึงได้ง่ายผ่าน Active Probe Live Probe เป็นตัวเลือกที่ดีกว่าสำหรับการสังเกตสัญญาณเหล่านี้
กรณีการใช้งานดีบักแบบง่ายๆ
ตอนนี้เรามีความเข้าใจที่ดีขึ้นเกี่ยวกับตัวเลือกการดีบักในวงจรต่างๆ แล้ว มาดูตัวอย่างการออกแบบที่เรียบง่ายกันampเพื่อดูประสิทธิภาพของเทคนิคเหล่านี้ รูปที่ 9 แสดงการออกแบบ FPGA แบบง่ายในอุปกรณ์ FPGA SmartFusion2 SoC ระบบย่อยไมโครคอนโทรลเลอร์ (MSS) จะถูกรีเซ็ตโดยบล็อก CoreSF2Reset Soft IP อินพุตไปยังบล็อกนี้ ได้แก่ Power On Reset, User Fabric Reset และ External Reset เอาต์พุต ได้แก่ การรีเซ็ตไปยัง User Fabric, MSS reset และ M3 reset อาการข้อผิดพลาดคือไม่มีกิจกรรมใดๆ บน I/O แม้ว่าอุปกรณ์จะออกจากสถานะ POR ได้สำเร็จก็ตาม ตัวเลือกที่แตกต่างกันสามแบบสำหรับการดีบักข้อผิดพลาดนี้แสดงอยู่ในรูปภาพด้วยเช่นกัน: กล่องสีน้ำเงิน (มีป้ายกำกับว่า ETE) ใช้สำหรับวิธี External Test Equipment กล่องสีเขียว (มีป้ายกำกับว่า ILA) ใช้สำหรับวิธี Internal Logic Analyzer และกล่องสีส้ม (มีป้ายกำกับว่า AP) ใช้สำหรับวิธี Active Probe เราจะถือว่าสาเหตุหลักที่เป็นไปได้ของข้อผิดพลาดคืออินพุตรีเซ็ตที่ยืนยันไม่ถูกต้องไปยังบล็อก CoreSF2Reset Soft IP
ตอนนี้มาดูกระบวนการดีบักสำหรับสามวิธีในวงจรที่อธิบายไว้ก่อนหน้านี้
อุปกรณ์ทดสอบภายนอก
เมื่อใช้วิธีนี้ จะถือว่าอุปกรณ์ทดสอบพร้อมใช้งานและไม่ได้ใช้งานโดยโครงการที่มีความสำคัญสูงกว่า นอกจากนี้ ยังเป็นสิ่งสำคัญที่จะต้องวางแผนล่วงหน้าเพื่อให้ I/O ของ FPGA บางส่วนพร้อมใช้งานและสามารถเชื่อมต่อกับอุปกรณ์ทดสอบได้อย่างง่ายดาย การมีส่วนหัวบน PCB เช่นample จะเป็นประโยชน์มากและลดเวลาที่ใช้ในการพยายามระบุและเชื่อมต่อกับ 'ผู้ต้องสงสัย' หรือการลัดวงจรที่อาจเกิดขึ้นระหว่างการตรวจสอบ การออกแบบจะต้องถูกคอมไพล์ใหม่เพื่อเลือกสัญญาณที่เราต้องการตรวจสอบ หวังว่าเราจะไม่ 'ลอกเปลือกหัวหอม' และต้องเลือกสัญญาณเพิ่มเติมสำหรับการตรวจสอบเพิ่มเติม เนื่องจากการตรวจสอบเบื้องต้นของเรามักจะส่งผลให้เกิดคำถามมากขึ้น ไม่ว่าในกรณีใด กระบวนการคอมไพล์ใหม่และการเขียนโปรแกรมใหม่อาจใช้เวลานานมาก และหากส่งผลให้เกิดการละเมิดเวลา จำเป็นต้องออกแบบใหม่ (เราทุกคนต่างทราบดีว่าการพยายามแก้ไขปัญหาการปิดเวลาเป็นเรื่องน่าหงุดหงิดเพียงใด โดยเฉพาะอย่างยิ่งเมื่อคุณทำการเปลี่ยนแปลงการออกแบบเพื่อค้นหาจุดบกพร่องในการออกแบบ ซึ่งกระบวนการทั้งหมดอาจใช้เวลาตั้งแต่นาทีไปจนถึงชั่วโมง)! สิ่งสำคัญคือต้องจำไว้ว่าหากการออกแบบไม่มี I/O ของผู้ใช้ฟรี วิธีนี้จะไม่สามารถนำไปใช้ได้ ยิ่งไปกว่านั้น วิธีการนี้ยังแทรกแซงโครงสร้างการออกแบบ และจุดบกพร่องที่เกี่ยวข้องกับเวลาอาจหายไปหรือปรากฏขึ้นใหม่ระหว่างการวนซ้ำ
เครื่องวิเคราะห์ลอจิกภายใน
การใช้วิธีนี้ จะต้องแทรก ILA เข้าไปในการออกแบบโดยใช้ทรัพยากรของโครงสร้าง จากนั้นจึงจำเป็นต้องคอมไพล์ใหม่ โปรดทราบว่าหากสร้าง ILA เสร็จแล้ว สัญญาณที่เราต้องการตรวจสอบอาจยังไม่ได้ถูกติดตั้งเครื่องมือ ซึ่งจะต้องคอมไพล์ใหม่ด้วย กระบวนการนี้มีความเสี่ยงที่จะเปลี่ยนแปลงการออกแบบดั้งเดิมและละเมิดข้อจำกัดด้านเวลา หากตรงตามเวลา จำเป็นต้องเขียนโปรแกรมและเริ่มต้นการออกแบบใหม่ กระบวนการทั้งหมดนี้อาจใช้เวลาหลายนาทีหรือหลายชั่วโมงหากเวลาในการคอมไพล์ใหม่ยาวนานและต้องทำซ้ำหลายครั้ง วิธีนี้รบกวนโครงสร้างและอาจส่งผลให้เกิดปัญหาที่คล้ายคลึงกันกับที่อธิบายไว้เมื่อใช้วิธีการข้างต้น
โพรบที่ใช้งานอยู่
การใช้วิธีนี้ทำให้สามารถระบุ Active Probe ไปยังแหล่งที่มาของสัญญาณรีเซ็ตต่างๆ ได้ ซึ่งทั้งหมดมาจากเอาต์พุตของรีจิสเตอร์ (ซึ่งเป็นเรื่องปกติในแนวทางการออกแบบดิจิทัลที่ดี) โดยจะเลือกสัญญาณทีละรายการจากเมนู Active Probe ที่แสดงในรูปที่ 10 ด้านล่าง สามารถอ่านค่าสัญญาณที่เลือกได้และแสดงบนหน้าต่างข้อมูล Active Probe การระบุข้อผิดพลาดใดๆ ก็สามารถระบุได้ง่าย การทดสอบนี้สามารถทำได้ทันทีโดยไม่จำเป็นต้องคอมไพล์และตั้งโปรแกรมอุปกรณ์ใหม่ และไม่รบกวนโครงสร้างหรือขั้นตอนใดๆ กระบวนการทั้งหมดใช้เวลาเพียงไม่กี่วินาที นอกจากนี้ วิธีนี้ยังสามารถสร้างความสามารถในการควบคุม (การเปลี่ยนแปลงค่าแบบอะซิงโครนัส) ซึ่งอีกสองวิธีจะไม่อนุญาต ในกรณีตัวอย่างเฉพาะนี้ampสัญญาณรีเซ็ตที่มาจากรีจิสเตอร์สามารถตรวจสอบได้ง่ายและค้นพบว่าอยู่ในสถานะใช้งานอยู่
การสลับสัญญาณรีเซ็ตชั่วขณะสามารถทำได้โดยการจัดการรีจิสเตอร์ที่สร้างสัญญาณส่วนที่เหลือแบบอะซิงโครนัส
กรณีการใช้งานดีบักที่ซับซ้อนมากขึ้น
การออกแบบข้างต้นนั้นเรียบง่ายมากและมีประโยชน์ในการเป็นบทนำในการใช้เทคนิคการออกแบบที่อธิบายไว้ แต่ตัวอย่างที่ซับซ้อนกว่านั้นampอาจเป็นภาพประกอบได้มากกว่านี้ หลายครั้งสัญญาณของความสนใจไม่ใช่สัญญาณคงที่เหมือนในอดีตที่ผ่านมาampแต่เป็นแบบไดนามิก สัญญาณไดนามิกทั่วไปคือสัญญาณนาฬิกากลาง ซึ่งอาจใช้สำหรับจับเวลาการจับมือสำหรับอินเทอร์เฟซแบบอนุกรม รูปที่ 11 แสดงการออกแบบดังกล่าวด้วยแกน Soft IP ของผู้ใช้ ในกรณีนี้คืออินเทอร์เฟซแบบอนุกรมที่กำหนดเองซึ่งเชื่อมต่อกับบัส APB ของระบบ อาการของข้อผิดพลาดคือไม่มีกิจกรรมใดๆ บนอินเทอร์เฟซแบบอนุกรมที่กำหนดเองของผู้ใช้ และเมื่อมาสเตอร์บัส APB ออกธุรกรรมเพื่อเข้าถึงอินเทอร์เฟซแบบอนุกรม ก็จะเข้าสู่เงื่อนไขข้อยกเว้นซึ่งบ่งชี้ว่ามีการจับมือที่ไม่ถูกต้อง เงื่อนไขเหล่านี้ดูเหมือนจะตัดสาเหตุคงที่ เช่น สัญญาณรีเซ็ตที่ไม่ถูกต้องออกไป เนื่องจากเครื่องสถานะธุรกรรมดูเหมือนจะไม่ทำงานในอัตราที่คาดไว้และทำให้เกิดข้อยกเว้น สาเหตุหลักนั้นเชื่อว่าเป็นเครื่องกำเนิดความถี่สัญญาณนาฬิกาภายในแกน IP ของผู้ใช้
หากไม่ได้ทำงานที่ความถี่ที่ถูกต้อง จะส่งผลให้เกิดข้อผิดพลาดตามที่อธิบายไว้
ในสถานการณ์นี้ อาจเป็นกลยุทธ์ที่ดีกว่าที่จะแทนที่วิธี Active Probe ด้วย Live Probe ซึ่งแสดงไว้ในรูปด้านบนด้วยกล่อง LP สีส้ม โดยใช้ JTAG สัญญาณสำหรับการเลือกแหล่งโพรบ
อุปกรณ์ทดสอบภายนอก
สำหรับกรณีนี้ วิธีการจะคล้ายคลึงกันมากกับตัวอย่างง่ายๆ ที่อธิบายไว้ก่อนหน้านี้ampสัญญาณนาฬิกาของผู้ใช้จะถูกนำออกมาที่จุดทดสอบ (หวังว่าจะอยู่ในส่วนหัว) และจำเป็นต้องคอมไพล์ใหม่ซึ่งใช้เวลานาน อาจมีประโยชน์หากนำสัญญาณอ้างอิงออกมา เช่น สัญญาณนาฬิกาของระบบที่ใช้เพื่อบันทึกเวลา IP ของผู้ใช้เป็นสัญญาณเปรียบเทียบ เราจะต้องเผชิญกับความจำเป็นในการคอมไพล์และเขียนโปรแกรมใหม่อีกครั้ง ดังนั้นกระบวนการทั้งหมดจึงอาจใช้เวลานานมาก
เครื่องวิเคราะห์ลอจิกภายใน
กรณีนี้มีความคล้ายคลึงกับตัวอย่างง่ายๆ มากampต้องแทรก ILA หรือกำหนดสัญญาณที่ต้องการ จากนั้นจึงดำเนินการคอมไพล์และโปรแกรมใหม่อีกครั้ง ปัญหาทั้งหมดที่อธิบายไว้ก่อนหน้านี้ยังคงส่งผลให้ระยะเวลาในการดีบักนานขึ้น อย่างไรก็ตาม มีความซับซ้อนเพิ่มเติมด้วย สัญญาณนาฬิกาที่ควบคุม ILA จะต้องซิงโครนัส และในอุดมคติ ควรเร็วกว่ามากเมื่อเทียบกับสัญญาณนาฬิกาที่สังเกตได้จากคอร์ Soft IP ของผู้ใช้ หากสัญญาณนาฬิกาเหล่านี้ไม่ซิงโครนัสหรือไม่มีความสัมพันธ์ของเวลาที่ถูกต้อง การจับข้อมูลจะคาดเดาไม่ได้และอาจเป็นแหล่งของความสับสนในกระบวนการดีบัก
โปรดทราบว่าหากนาฬิกา Soft IP ของผู้ใช้ไม่ได้สร้างบนชิป (อาจกู้คืนจากอินเทอร์เฟซแบบอนุกรม) นักออกแบบอาจต้องเพิ่มโมดูลนาฬิกาเพื่อสร้างนาฬิกา ILA ที่เร็วขึ้นโดยใช้ทรัพยากรเพิ่มเติม และอาจสร้างการละเมิดเวลาขึ้นด้วย
โพรบสด
การใช้วิธีนี้ทำให้สามารถระบุแหล่งที่มาของนาฬิกาผู้ใช้และแหล่งที่มาของนาฬิกาอื่นๆ จากรีจิสเตอร์ได้อย่างรวดเร็วเพื่อค้นหาสาเหตุของข้อผิดพลาด Live Probe จะแสดงเอาต์พุตสัญญาณที่เลือกแบบเรียลไทม์ ทำให้สามารถระบุความสัมพันธ์ของเวลาระหว่างสัญญาณได้ง่ายขึ้นมาก โดยกระบวนการทั้งหมดใช้เวลาเพียงไม่กี่วินาที
คุณสมบัติการดีบักอื่น ๆ สำหรับอินเทอร์เฟซแบบอนุกรม
สิ่งสำคัญอีกประการหนึ่งที่ต้องชี้ให้เห็นก็คือมีความสามารถในการดีบักเพิ่มเติมมากมายในอุปกรณ์ SmartFusion2 SoC FPGA และ IGLOO2 FPGA ที่สามารถใช้กับอินเทอร์เฟซแบบอนุกรมได้ เช่นเดียวกับตัวอย่างก่อนหน้านี้ampการออกแบบที่ข้อผิดพลาดมีความซับซ้อนมากยิ่งขึ้น SERDES Debug เช่นample ให้ความสามารถในการดีบักเฉพาะสำหรับอินเทอร์เฟซแบบอนุกรมความเร็วสูงเฉพาะ คุณลักษณะการดีบักของ SERDES บางส่วนได้แก่ การสนับสนุนการทดสอบ PMA (เช่น การสร้างรูปแบบ PRBS และการทดสอบลูปแบ็ก) การสนับสนุนการกำหนดค่าการทดสอบ SERDES หลายรายการพร้อมการกำหนดค่าใหม่ในระดับรีจิสเตอร์เพื่อหลีกเลี่ยงการใช้กระแสการออกแบบทั้งหมดเพื่อทำการเปลี่ยนแปลงการกำหนดค่า และรายงานข้อความที่แสดงโปรโตคอลที่กำหนดค่าแล้ว รีจิสเตอร์การกำหนดค่า SERDES และรีจิสเตอร์การกำหนดค่าเลน คุณลักษณะเหล่านี้ทำให้การดีบักของ SERDES ง่ายขึ้นมากและสามารถใช้ร่วมกับ Live Probe และ Active Probe เพื่อเร่งความเร็วในการดีบักวงจรที่ซับซ้อนยิ่งขึ้น
เครื่องมือ Memory Debug ที่อธิบายไว้ข้างต้นยังสามารถใช้ร่วมกับ SERDES Debug เพื่อเร่งความเร็วในการทดสอบได้ เนื่องจากสามารถตรวจสอบและเปลี่ยนแปลงบัฟเฟอร์หน่วยความจำได้อย่างรวดเร็วและง่ายดายด้วย Memory Debug จึงสามารถสร้าง "แพ็กเก็ตทดสอบ" และสังเกตผลลัพธ์ของลูปแบ็กหรือการสื่อสารระหว่างระบบได้อย่างรวดเร็ว นักออกแบบสามารถใช้ประโยชน์จากความสามารถเหล่านี้ได้ และลดความจำเป็นในการใช้ "ชุดทดสอบ" เฉพาะทางที่ใช้ FPGA Fabric เพิ่มเติม และอาจส่งผลกระทบต่อการจับเวลาของชิป
บทสรุป
เอกสารนี้ได้อธิบายรายละเอียดแนวทางต่างๆ หลายวิธีในการนำการดีบักในวงจรไปใช้กับ FPGA และ FPGA แบบ SoC ไม่ว่าจะเป็นการใช้ Integrated Logic Analyzer การใช้เครื่องมือทดสอบภายนอก และการใช้วงจรโพรบเฉพาะที่รวมอยู่ในโครงสร้าง FPGA การเพิ่มวงจรโพรบเฉพาะและเฉพาะ เช่น Active Probe และ Live Probe ที่ Microsemi นำเสนอบนอุปกรณ์ FPGA แบบ SoC ของ SmartFusion2 และ IGLOO2 ของ FPGA แสดงให้เห็นว่าสามารถเร่งความเร็วและลดความซับซ้อนของกระบวนการดีบักได้อย่างมาก ความสามารถในการปรับเปลี่ยนการเลือกสัญญาณภายในอย่างรวดเร็ว (โดยไม่จำเป็นต้องดำเนินการคอมไพล์ซ้ำและตั้งโปรแกรมใหม่ซึ่งใช้เวลานานมาก) และความสามารถในการตรวจสอบสัญญาณภายใน (โดยไม่จำเป็นต้องใช้โครงสร้าง FPGA และอาจเกิดการละเมิดเวลา) ถือเป็นข้อได้เปรียบที่สำคัญtagเมื่อทำการดีบักการออกแบบ FPGA นอกจากนี้ ยังได้มีการอธิบายถึงการใช้วิธีการหลายวิธี ซึ่งสามารถทำงานร่วมกันเพื่อให้มีความสามารถในการดีบักที่ครอบคลุมมากยิ่งขึ้น ในที่สุด ได้มีการอธิบายวิธีการสองวิธีampกรณีการใช้งานการดีบักได้รับการกำหนดให้แสดงการแลกเปลี่ยนระหว่างวิธีการที่อธิบายไว้
เพื่อเรียนรู้เพิ่มเติม
- FPGA IGLOO2 ไมโครโปรเซสเซอร์
- FPGA SoC SmartFusion2
Microsemi Corporation (Nasdaq: MSCC) นำเสนอผลิตภัณฑ์เซมิคอนดักเตอร์และระบบโซลูชันที่ครอบคลุมสำหรับตลาดการสื่อสาร การป้องกันประเทศและความปลอดภัย การบินและอวกาศ และอุตสาหกรรม ผลิตภัณฑ์ได้แก่ วงจรรวมสัญญาณผสมแอนะล็อกประสิทธิภาพสูงและป้องกันรังสี FPGA, SoC และ ASIC ผลิตภัณฑ์จัดการพลังงาน อุปกรณ์จับเวลาและการซิงโครไนซ์ และโซลูชันเวลาที่แม่นยำ ซึ่งกำหนดมาตรฐานเวลาของโลก อุปกรณ์ประมวลผลเสียง โซลูชัน RF ส่วนประกอบแยกส่วน เทคโนโลยีความปลอดภัย และการป้องกันรังสีที่ปรับขนาดได้ampผลิตภัณฑ์ er IC และมิดสแปน Power-over-Ethernet รวมถึงความสามารถในการออกแบบและบริการที่กำหนดเอง Microsemi มีสำนักงานใหญ่ในเมืองอลิโซเวียโฮ รัฐแคลิฟอร์เนีย และมีพนักงานประมาณ 3,400 คนทั่วโลก เรียนรู้เพิ่มเติมได้ที่ www.microsemi.com.
© 2014 ไมโครเซมิ คอร์ปอเรชั่น สงวนลิขสิทธิ์. Microsemi และโลโก้ Microsemi เป็นเครื่องหมายการค้าของ Microsemi Corporation เครื่องหมายการค้าและเครื่องหมายบริการอื่นๆ ทั้งหมดเป็นทรัพย์สินของเจ้าของที่เกี่ยวข้อง
สำนักงานใหญ่ของ บริษัท Microsemi
- หนึ่ง องค์กร, Aliso Viejo CA 92656 สหรัฐอเมริกา
- ภายใน สหรัฐอเมริกา: +1 800-713-4113
- ข้างนอก สหรัฐอเมริกา: +1 949-380-6100
- ฝ่ายขาย: +1 949-380-6136
- โทรสาร: +1 949-215-4996
- อีเมล: sales.support@microsemi.com
คำถามที่พบบ่อย
- ถาม: ความถี่ในการจับข้อมูลสูงสุดของอุปกรณ์คือเท่าใด
A: อุปกรณ์นี้รองรับการจับข้อมูลได้สูงถึง 100MHz เหมาะกับการออกแบบเป้าหมายส่วนใหญ่ - ถาม: ฉันจำเป็นต้องคอมไพล์การออกแบบใหม่หรือไม่เมื่อใช้วงจรโพรบเพื่อแก้ไขข้อบกพร่อง?
ตอบ ไม่ สามารถเปลี่ยนตำแหน่งจุดตรวจสอบได้อย่างรวดเร็วโดยไม่ต้องคอมไพล์การออกแบบใหม่หรือเขียนโปรแกรมใหม่
เอกสาร / แหล่งข้อมูล
![]() |
ดีบัก FPGA ในวงจร Microsemi [พีดีเอฟ] คำแนะนำ ดีบัก FPGA ในวงจร, ดีบัก FPGA, ดีบัก |