ค้นพบว่าตัวชี้วัดความสามารถในการควบคุมและความสามารถในการสังเกตทําให้การทดสอบวงจรเป็นเรื่องง่ายและมีประสิทธิภาพได้อย่างไร
ในการทดสอบแบบดิจิทัล การรู้ว่าอาจมีข้อบกพร่องใดอยู่นั้นไม่เพียงพอ เราต้องเข้าใจว่าการกระตุ้นข้อบกพร่องนั้นง่ายเพียงใดและความเป็นไปได้ที่อิทธิพลของข้อบกพร่องจะแพร่กระจายไปยังจุดที่สังเกตได้ นี่คือจุดที่การวัดการควบคุมและการสังเกตเข้ามามีบทบาท การวัดเหล่านี้เป็นแพลตฟอร์มเชิงปริมาณสําหรับการประเมินและปรับปรุงความสามารถในการทดสอบในวงจรลอจิกแบบผสมผสานและตามลําดับ.
ตัวชี้วัดเหล่านี้เป็นแนวทางสําหรับเครื่องมือ ATPG กลยุทธ์การแทรกจุดทดสอบ การออกแบบลําดับการสแกน และแม้กระทั่งมีอิทธิพลต่อแนวทางการเข้ารหัส RTL สําหรับการออกแบบที่เป็นมิตรกับการทดสอบ.
เพื่อให้การทดลองสามารถตรวจจับข้อผิดพลาดได้ต้องมีสามสิ่งเกิดขึ้น:
ความสามารถในการควบคุมและสังเกตช่วยให้เราคาดการณ์ได้ว่าการปฏิบัติตามเงื่อนไขเหล่านี้จะยากหรือง่ายเพียงใด การควบคุมที่ไม่ดีหมายความว่าข้อผิดพลาดบางอย่างจะทริกเกอร์ได้ยาก ทัศนวิสัยไม่ดีหมายความว่าแม้แต่ข้อบกพร่องที่เปิดใช้งานแล้วก็อาจตรวจไม่พบ.
ในการหาปริมาณความสามารถในการทดสอบของสัญญาณผู้เชี่ยวชาญอาศัยตัวชี้วัดที่กําหนดไว้จํานวนหนึ่งรวมถึง:
เพื่อปรับปรุงความสามารถในการทดสอบของการออกแบบอย่างเป็นระบบเราจําเป็นต้องมีวิธีการวัดว่าการสร้างค่าตรรกะสําหรับสัญญาณภายในแต่ละสัญญาณนั้นง่ายเพียงใด (ความสามารถในการควบคุม) และง่ายต่อการสังเกตข้อผิดพลาดที่สัญญาณนั้นที่เอาต์พุต (ความสามารถในการสังเกต) ตัวบ่งชี้ SCOAP (Sandia Controllability/Observability Analysis Program) ให้สิ่งนี้: ค่าสเกลาร์สามค่า CC0, CC1 และ CO กําหนดคะแนน "ความยาก" ให้กับแต่ละโหนดในรายการเครือข่ายระดับพอร์ต.
CC0, CC1 และ CO คืออะไร?
เมตริกแต่ละตัวจะแสดงเป็น "ต้นทุน" จํานวนเต็มที่ไม่เป็นลบ และคํานวณโดยการเรียกดูเน็ตลิสต์:
ความสามารถในการควบคุมการคํานวณ (CC0 & CC1)
ความสามารถในการสังเกตการณ์เชิงคํานวณ (CO))
การตีความค่า SCOAP
ตัวอย่าง
ลองพิจารณาตรรกะเล็กๆ 2 ระดับ:
ค่าเหล่านี้ให้ข้อมูลเชิงลึกที่ถูกต้องว่าโหนดใดสามารถทดสอบได้และโหนดใดที่ต้องการการแทรกแซง DFT.
Control-Observability Product หรือ COP รวมความยากของโหนดเพื่อให้ได้ค่าตรรกะกับความยากในการสังเกตข้อผิดพลาดที่โหนดนั้น มันถูกกําหนดง่ายๆ ดังนี้:
COP (n) = นาที (CC0 (n), CC1 (n)) × CO (n)
ค่า COP สูงระบุฮอตสปอตที่มีความสามารถในการทดสอบที่แท้จริง ซึ่งเป็นโหนดที่ควบคุมได้ยากและสังเกตได้ยาก.
วิธีคํานวณ CC0, CC1 และ CO
ก่อนคํานวณ COP คุณต้องรับเมตริก SCOAP สําหรับแต่ละโหนด:
การเริ่มต้นต้นทุน I/O หลัก
การคํานวณ CC0 และ CC1 ในการเปลี่ยนผ่าน
การคํานวณ CO ในการวิ่งย้อนกลับ
ตัวอย่างของ COP
ลองพิจารณาโหนด n ที่เราพบ:
ขั้นแรก ให้ใช้ต้นทุนในการควบคุมที่น้อยลง:
นาที (CC0, CC1) = 8
จากนั้นคูณด้วยค่าใช้จ่ายในการสังเกต:
COP (n) = 8 × 10 = 80
COP 80 ทําเครื่องหมายโหนด n เป็นตัวเลือกหลักสําหรับการแทรกจุดตรวจสอบหรือการปรับโครงสร้างเชิงตรรกะ เนื่องจากเป็นการยากที่จะครอบคลุมด้วยรูปแบบการทดสอบที่มีอยู่.
ในขณะที่เมตริก SCOAP ให้มุมมองที่มีโครงสร้างของการควบคุมและการสังเกต แต่ดิฟเฟอเรนเชียลบูลีนให้มุมมองการทํางานว่าการเปลี่ยนแปลงที่โหนดหนึ่งส่งผลต่ออีกโหนดหนึ่งอย่างไร ประมาณความน่าจะเป็นที่การแปลงสัญญาณภายในเฉพาะจะทําให้เกิดการเปลี่ยนแปลงที่เอาต์พุตหลักตามนิพจน์บูลีนของวงจร.
ความแตกต่างของบูลีนคืออะไร?
ด้วยฟังก์ชันตรรกะ F(X₁, X₂, ..., Xn) และโหนด Xi ความแตกต่างของบูลีน ∂F/∂Xi ถูกกําหนดเป็น:
• ∂F/∂Xi = F(X₁,..., Xi=0,...,Xn) ⊕ F(X₁,..., Xi=1,...,Xn)
กล่าวอีกนัยหนึ่งเราประเมิน F ด้วย Xi บีบเป็น 0 และอีกครั้งด้วย Xi บีบเป็น 1 การยกเว้นหรือการดําเนินการของผลลัพธ์ทั้งสองนี้บอกเราว่าการเปลี่ยนแปลงที่ Xi สามารถย้อนกลับผลลัพธ์ได้หรือไม่.
ความแตกต่างของบูลีนเป็นค่าประมาณความสามารถในการสังเกตการณ์
ด้วยการหาค่าเฉลี่ย ∂F/∂Xi ในการกําหนดอินพุตที่เป็นไปได้ทั้งหมด เราจึงได้ความน่าจะเป็นของ Pi ที่การพลิกที่โหนด Xi จะแพร่กระจายไปยังเอาต์พุต Pi สูงหมายความว่า Xi สามารถสังเกตได้ตามฟังก์ชัน ในขณะที่ Pi ต่ําหมายถึงความคลุมเครือหรือไม่ไว.
ในทางปฏิบัติ:
คํานวณความแตกต่างของบูลีนในรายการเครือข่ายระดับพอร์ต
ที่ระดับเกต ความแตกต่างของบูลีนสามารถคํานวณแบบเรียกซ้ําได้โดยใช้กฎท้องถิ่น:
ด้วยการส่งความแตกต่างในท้องถิ่นเหล่านี้ผ่านเน็ตลิสต์ไปยังทุกเอาต์พุตหลักและรวม (ตรรกะ OR) ในหลายเอาต์พุต เราจะได้∂F/∂Xi โดยรวมสําหรับแต่ละโหนดภายใน.
ตัวอย่าง
พิจารณาฟังก์ชันตรรกะขนาดเล็ก:
Y = (A และ B) หรือ C
คํานวณ ∂Y/∂A
การสุ่มตัวอย่างชุดอินพุตทั้งสี่จะให้ผลสองกรณีที่ ∂Y/∂A = 1 และสองกรณีที่ ∂Y/∂A = 0 ดังนั้น P_A ประมาณการ = 0.5 ดังนั้นโหนด A มีโอกาส 50% ที่จะเกิดข้อผิดพลาดในการแปลงที่ Y.
นอกเหนือจากการวัด SCOAP เชิงโครงสร้างและการวัดออฟเซ็ตบูลีนที่ใช้งานได้แล้วการวัดระยะทางยังเป็นวิธีการที่อ่อนโยนในการประมาณระยะทาง "ไกล" ของโหนดภายในจากเอาต์พุตที่สังเกตได้ ด้วยการนับระดับตรรกะหรือเพิ่มน้ําหนักพอร์ตการวัดระยะทางจะทําหน้าที่เป็นตัวแทนอย่างรวดเร็วของความสามารถในการสังเกตของโหนดโหนดที่มีความลึกหลายระดับมักจะแพร่กระจายข้อผิดพลาดได้ยากกว่าในขณะที่โหนดที่อยู่ห่างออกไปเพียงหนึ่งหรือสองพอร์ตจะง่ายกว่า.
หน่วยวัดระยะทางคืออะไร?
การวัดระยะทางจะกําหนดจํานวนเต็มที่ไม่เป็นลบให้กับแต่ละโหนดซึ่งสะท้อนถึงความยาวเส้นทางที่สั้นที่สุดไปยังเอาต์พุตหลักหรือการสแกนฟลิปฟล็อป รูปแบบทั่วไป ได้แก่:
วิธีคํานวณระยะทาง
การเริ่มต้นจุดสังเกตการณ์
ตั้งค่าระยะห่างของทุกเอาต์พุตหลัก (และทุกปุ่มชัตเตอร์ scan-FF) เป็น 0 .
ความกว้างเป็นอันดับแรก)
เริ่มจากทุกมุมมอง เรียกดูรายการเครือข่ายย้อนกลับผ่านขอบพัดลม ด้วยโหนดก่อนหน้าแต่ละโหนด p:
ทําซ้ําจนกว่าปุ่มทั้งหมดจะถูกกําหนด
เรียกดูย้อนกลับต่อไปจนกว่าทุกโหนดในรายการเครือข่ายจะมีค่าระยะทาง.
เหตุใดเมตริกระยะทางจึงมีความสําคัญ
ตัวอย่าง
ลองนึกภาพลําดับตรรกะสามระดับ:
A → G1 → G2 → G3 → Y (เอาต์พุต)
ความผิดพลาดบน N1 (ระยะทาง 3) จะต้องแพร่กระจายผ่านพอร์ตทั้งสามเพื่อไปถึง Y ซึ่งบ่งชี้ว่าต้องใช้ความพยายามสูงกว่าความผิดพลาดบน N3 (ระยะทาง 1).
ออกแบบเพื่อความสามารถในการทดสอบตามตัวชี้วัดเชิงปริมาณเพื่อระบุตําแหน่งข้อบกพร่องที่ตรวจจับได้ยากที่สุดและกําหนดเป้าหมายตําแหน่งการปรับปรุงที่จะให้ประโยชน์สูงสุด ด้วยการรวมการวัด SCOAP ความคลาดเคลื่อนบูลีน และระยะทาง วิศวกรจะได้รับมุมมองที่ครอบคลุมของความสามารถในการทดสอบ ซึ่งจะช่วยสนับสนุน ATPG การแทรกจุดทดสอบ และเพิ่มประสิทธิภาพการออกแบบ.
1. แนวทางของ ATPG และการตั้งค่าตัวอย่าง
เครื่องมือ ATPG ใช้การควบคุม SCOAP (CC0, CC1) เพื่อตัดสินใจว่าจะกําหนดเป้าหมายข้อบกพร่องใดก่อนข้อผิดพลาดบนโหนดที่ควบคุมง่ายมักจะถูกทริกเกอร์อย่างรวดเร็วในขณะที่ข้อผิดพลาดที่มีค่า CC สูงอาจต้องมีการจัดการเป็นพิเศษ ความสามารถในการสังเกตการณ์ SCOAP (CO) ช่วยในการเลือกสายส่งเพื่อเพิ่มโอกาสที่ความผิดพลาดจะไปถึงเอาต์พุต ด้วยการรวมปัจจัยเหล่านี้เข้ากับ COP ATPG สามารถจัดอันดับข้อผิดพลาดตามความยากในการทดสอบและจัดสรรความพยายามในการค้นหาไปยังสถานที่ที่สําคัญที่สุด.
สเปรดบูลีนช่วยปรับแต่งกระบวนการนี้ให้ดียิ่งขึ้น โหนดที่มีความน่าจะเป็นของความแตกต่างบูลีนสูงมีความไวต่อการทํางาน ซึ่งหมายความว่าโหนดจะสลับที่จุดเหล่านั้นมักจะส่งผลต่อเอาต์พุตตามการแจกแจงอินพุตจริง ข้อผิดพลาดบนโหนดที่มีความแตกต่างของบูลีนต่ําอาจล่าช้าหรืออยู่ภายใต้รูปแบบ "ละเอียดอ่อน" เฉพาะ การวัดระยะทาง—การวัดความยาวเส้นทางที่ระดับเกตถึงเอาต์พุต—นําทาง ATPG ไปยังเส้นทางที่สั้นลงและบดบังน้อยลง.
2. ปรับปรุงการแทรกจุดทดสอบและ DFT
เมื่อค่า COP สูง จุดความแตกต่างบูลีนต่ํา หรือค่าระยะทางขนาดใหญ่ทําเครื่องหมายโหนดว่าเป็นคอขวดในการทดสอบ นักออกแบบสามารถแทรกจุดควบคุม (เพื่อปรับปรุงความสามารถในการควบคุม) หรือจุดสังเกตการณ์ (เพื่อปรับปรุงความสามารถในการสังเกต) ตัวอย่าง:
ด้วยการคํานวณเมตริกทั้งสามใหม่หลังจากการเปลี่ยนแปลง DFT แต่ละครั้ง วิศวกรสามารถยืนยันได้ว่าการแทรกจุดทดสอบแต่ละจุดหรือการปรับโครงสร้างลอจิกให้ผลการปรับปรุงที่วัดได้.
3. ข้อเสนอแนะการออกแบบเบื้องต้นและการแสดงภาพ
ในระหว่างขั้นตอน RTL และเกตเวย์ การเรียกใช้การวิเคราะห์ความสามารถในการทดสอบแบบไฮบริดจะเน้น "พื้นที่มืด" ในการออกแบบ — คลัสเตอร์โหนดที่ให้คะแนนต่ําในทุกเมตริก เครื่องมือสร้างภาพสามารถกําหนดรหัสสีกรวยลอจิกตาม COP, ความน่าจะเป็นออฟเซ็ตบูลีน หรือระยะทาง ทําให้ง่ายต่อการตรวจจับพัดลมที่หลอมรวมกัน ตรรกะที่ซ้อนกันอย่างลึกซึ้ง หรือโครงสร้างเกตที่ต้องใช้ความพยายาม ATPG ขนาดใหญ่.
ด้วยข้อมูลเชิงลึกเหล่านี้ สถาปนิกสามารถปรับโครงสร้างบล็อกที่สําคัญใหม่ เช่น การทําให้ตรรกะแบนราบ การปรับสมดุลพัดลม หรือการปรับประตูนาฬิกา เพื่อสร้างการออกแบบที่ทดสอบได้มากขึ้นก่อนซิลิกอน.
4. วงปิดต่อเนื่อง
สุดท้าย เมตริกการทดสอบเหล่านี้จะถูกป้อนเข้าสู่ลูป DFT แบบวนซ้ํา :