อ่าน 2 นาที
อันตราย (ตรรกะ)
ใน ตรรกะดิจิทัล อันตรายคือผลกระทบที่ไม่พึงประสงค์ที่เกิดจากข้อบกพร่องในระบบหรืออิทธิพลภายนอกใน วงจรทั้งแบบซิงโครนัสและอะซิงโครนัส [ 1 ] : 43 อันตราย ทาง ตรรกะ...
อันตราย (ตรรกะ)
ในตรรกะดิจิทัลอันตรายคือผลกระทบที่ไม่พึงประสงค์ที่เกิดจากข้อบกพร่องในระบบหรืออิทธิพลภายนอกในวงจรทั้งแบบซิงโครนัสและอะซิงโครนัส[ 1 ] : 43อันตรายทางตรรกะ เป็นการแสดงออกของปัญหาที่การเปลี่ยนแปลงในตัวแปรอินพุตไม่ทำให้เอาต์พุตเปลี่ยนแปลงอย่างถูกต้องเนื่องจากความล่าช้าบางรูปแบบที่เกิดจากองค์ประกอบตรรกะ ( เกต NOT , AND , ORเป็นต้น) ส่งผลให้ตรรกะไม่ทำงานอย่างถูกต้อง อันตรายสามประเภทที่พบบ่อยที่สุดมักเรียกว่าอันตรายแบบคงที่ อันตรายแบบไดนามิก และอันตรายจากฟังก์ชัน
อันตรายที่เกิดขึ้นเป็นปัญหาชั่วคราว เนื่องจากวงจรลอจิกจะค่อยๆ ปรับตัวจนทำงานได้ตามที่ต้องการในที่สุด ดังนั้น ในการออกแบบแบบซิงโครนัส จึงเป็นเรื่องปกติที่จะบันทึกเอาต์พุตของวงจร ก่อนที่จะนำไปใช้ในโดเมนสัญญาณนาฬิกาที่แตกต่างกัน หรือส่งออกไปนอกระบบ เพื่อป้องกันไม่ให้เกิดปัญหาจากอันตราย หากไม่เป็นเช่นนั้น ก็จำเป็นอย่างยิ่งที่จะต้องกำจัดอันตรายเหล่านั้น เนื่องจากอาจส่งผลกระทบต่อระบบอื่นๆ ที่เชื่อมต่ออยู่
อันตรายจากไฟฟ้าสถิต
อันตรายจากสัญญาณคงที่คือการเปลี่ยนแปลงสถานะของสัญญาณสองครั้งติดต่อกันเมื่อคาดว่าสัญญาณจะคงที่[ 1 ] : 48 เมื่อสัญญาณอินพุตตัวหนึ่งเปลี่ยนแปลง เอาต์พุตจะเปลี่ยนแปลงชั่วขณะก่อนที่จะคงที่ที่ค่าที่ถูกต้อง อันตรายจากสัญญาณคงที่มีสองประเภท:
- อันตรายแบบคงที่-1: ปัจจุบันเอาต์พุตเป็น 1 และหลังจากอินพุตเปลี่ยนแปลง เอาต์พุตจะเปลี่ยนเป็น 0 หรือ 1 ชั่วขณะก่อนที่จะคงที่ที่ 1
- อันตรายแบบคงที่ - 0: ปัจจุบันเอาต์พุตเป็น 0 และหลังจากอินพุตเปลี่ยนแปลง เอาต์พุตจะเปลี่ยนเป็น 1.0 ชั่วขณะก่อนที่จะคงที่ที่ 0
ในตรรกะ AND-OR สองระดับที่สร้างขึ้นอย่างถูกต้องโดยอิงจากนิพจน์ผลรวมของผลคูณ จะไม่มีอันตรายแบบ static-0 (แต่อาจยังมีอันตรายแบบ static-1 อยู่) ในทางกลับกัน จะไม่มีอันตรายแบบ static-1 ในการใช้งาน OR-AND ของนิพจน์ผลคูณของผลรวม (แต่อาจยังมีอันตรายแบบ static-0 อยู่)
วิธีที่ใช้กันทั่วไปในการกำจัดอันตรายจากไฟฟ้าสถิตคือการเพิ่มตรรกะส่วนเกิน (เงื่อนไขฉันทามติในนิพจน์ตรรกะ)
ตัวอย่างของอันตรายจากไฟฟ้าสถิต
ลองพิจารณาวงจรที่ไม่สมบูรณ์แบบซึ่งมีปัญหาเรื่องความล่าช้าในองค์ประกอบตรรกะทางกายภาพ เช่น ประตู AND เป็นต้น
วงจรอย่างง่ายนี้ทำหน้าที่ดังต่อไปนี้:
จากแผนภาพเริ่มต้น จะเห็นได้ชัดว่าหากไม่มีความล่าช้าเกิดขึ้น วงจรจะทำงานได้ตามปกติ อย่างไรก็ตาม ไม่มีเกตสองตัวใดที่ผลิตออกมาเหมือนกันทุกประการ เนื่องจากความไม่สมบูรณ์นี้ ความล่าช้าของเกต AND ตัวแรกจึงจะแตกต่างจากตัวที่อยู่ตรงข้ามเล็กน้อย ดังนั้นจึงเกิดข้อผิดพลาดขึ้นเมื่ออินพุตเปลี่ยนจาก 111 เป็น 011 กล่าวคือเมื่อ A เปลี่ยนสถานะ
ตอนนี้เรารู้คร่าวๆ แล้วว่าอันตรายเกิดขึ้นได้อย่างไร แต่เพื่อให้ได้ภาพที่ชัดเจนขึ้นและวิธีแก้ปัญหา เราจะต้องพิจารณาแผนที่คาร์โนห์
ทฤษฎีบทที่พิสูจน์โดย Huffman [ 2 ]ระบุว่าการเพิ่มลูปที่ซ้ำซ้อน 'BC' จะช่วยขจัดอันตรายได้
ฟังก์ชันที่แก้ไขแล้วคือ:
ตอนนี้เราจะเห็นได้ว่า แม้จะมีองค์ประกอบตรรกะที่ไม่สมบูรณ์แบบ ตัวอย่างของเราก็จะไม่แสดงสัญญาณของอันตรายเมื่อ A เปลี่ยนสถานะ ทฤษฎีนี้สามารถนำไปใช้กับระบบตรรกะใดๆ ก็ได้ ปัจจุบันโปรแกรมคอมพิวเตอร์จัดการงานส่วนใหญ่เหล่านี้แล้ว แต่สำหรับตัวอย่างง่ายๆ การแก้ไขข้อผิดพลาดด้วยตนเองจะเร็วกว่า เมื่อมีตัวแปรอินพุตจำนวนมาก (เช่น 6 ตัวขึ้นไป) การ "มองเห็น" ข้อผิดพลาดบนแผนที่คาร์โนห์จะทำได้ยากมาก
อันตรายแบบไดนามิก
อันตรายแบบไดนามิกคือชุดของการเปลี่ยนแปลงสถานะของสัญญาณที่เกิดขึ้นหลายครั้งติดต่อกัน ในขณะที่คาดว่าสัญญาณจะเปลี่ยนสถานะเพียงครั้งเดียว[ 1 ] : 48 อันตรายแบบไดนามิกคือความเป็นไปได้ที่เอาต์พุตจะเปลี่ยนแปลงมากกว่าหนึ่งครั้งอันเป็นผลมาจากการเปลี่ยนแปลงอินพุตเพียงครั้งเดียว
อันตรายจากการเปลี่ยนแปลงแบบไดนามิกมักเกิดขึ้นในวงจรลอจิกขนาดใหญ่ที่มีเส้นทางไปยังเอาต์พุต (จากอินพุต) หลายเส้นทาง หากแต่ละเส้นทางมีความล่าช้าต่างกัน ก็จะเห็นได้ชัดเจนว่ามีโอกาสที่ค่าเอาต์พุตจะเปลี่ยนแปลงไป ซึ่งแตกต่างจากเอาต์พุตที่ต้องการ/คาดหวัง
ตัวอย่างเช่น วงจรลอจิกควรจะเปลี่ยนสถานะเอาต์พุตจาก1เป็น0แต่กลับเปลี่ยนจาก1เป็น0แล้ว กลับไป เป็น 1อีกครั้ง และสุดท้ายก็หยุดอยู่ที่ค่าที่ถูกต้องคือ0นี่คืออันตรายแบบไดนามิก
โดยทั่วไปแล้ว อันตรายจากกระแสไฟฟ้าแบบไดนามิกนั้นแก้ไขได้ยากกว่า แต่โปรดทราบว่าหากกำจัดอันตรายจากกระแสไฟฟ้าแบบคงที่ทั้งหมดออกจากวงจรแล้ว อันตรายจากกระแสไฟฟ้าแบบไดนามิกก็จะไม่เกิดขึ้น
อันตรายจากการทำงาน
ตรงกันข้ามกับอันตรายแบบคงที่และแบบไดนามิก อันตรายเชิงฟังก์ชันคืออันตรายที่เกิดจากการเปลี่ยนแปลงที่ใช้กับอินพุตมากกว่าหนึ่งรายการ ไม่มีวิธีแก้ปัญหาเชิงตรรกะเฉพาะเจาะจงที่จะกำจัดอันตรายเหล่านี้ได้ วิธีที่เชื่อถือได้จริงวิธีหนึ่งคือการป้องกันไม่ให้อินพุตเปลี่ยนแปลงพร้อมกัน ซึ่งไม่สามารถทำได้ในบางกรณี ดังนั้นวงจรจึงควรได้รับการออกแบบอย่างระมัดระวังเพื่อให้มีความล่าช้าเท่ากันในแต่ละเส้นทาง[ 3 ]
คนอื่น
- อันตรายจากตรรกะเชิงผสม
- ในตรรกะเชิงผสมนั้นมีอันตรายที่ขึ้นอยู่กับการกระจายของความล่าช้าในการแพร่กระจายสัญญาณในวงจรตรรกะและการออกแบบโดยรวมของฟังก์ชันวงจรตรรกะที่นำไปใช้[ 1 ] : 43
- อันตรายเชิงฟังก์ชันแบบผสมผสาน
- ในตรรกะเชิงผสมนั้นมีอันตรายที่สามารถตรวจจับและระงับได้ในระดับการเขียนโปรแกรมที่สูงขึ้น โดยการศึกษาและแก้ไขฟังก์ชันตรรกะเอาต์พุต[ 1 ] : 43
- อันตรายตามลำดับ
- เป็นการเปลี่ยนแปลงสัญญาณที่ไม่พึงประสงค์ชนิดหนึ่งที่พบในระบบวนซ้ำ[ 1 ] : 43
ดูเพิ่มเติม
- ไม่สนใจ
- ปรากฏการณ์วัตถุลอยตัว (Floating body effect ) เป็นสาเหตุที่เป็นไปได้ของอันตรายจากซิลิคอนบนอุปกรณ์ ฉนวน
- ความผิดพลาด
- อันตราย (สถาปัตยกรรมคอมพิวเตอร์)
- ความซ้ำซ้อนทางตรรกะ
- เงื่อนไขการแข่งขัน
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อันตราย (ตรรกะ)
ใน ตรรกะดิจิทัล อันตรายคือผลกระทบที่ไม่พึงประสงค์ที่เกิดจากข้อบกพร่องในระบบหรืออิทธิพลภายนอกใน วงจรทั้งแบบซิงโครนัสและอะซิงโครนัส [ 1 ] : 43 อันตราย ทาง ตรรกะ...
อันตรายจากไฟฟ้าสถิต
อันตรายจากสัญญาณคงที่คือการเปลี่ยนแปลงสถานะของสัญญาณสองครั้งติดต่อกันเมื่อคาดว่าสัญญาณจะคงที่ [ 1 ] : 48 เมื่อสัญญาณอินพุตตัวหนึ่งเปลี่ยนแปลง เอาต์พุตจะเปลี่ยนแปลงชั่วขณะก่อนที่จะคงที่ที่ค่าที่ถูกต้อง อันตรายจากสัญญาณคงที่มีสองประเภท:
ตัวอย่างของอันตรายจากไฟฟ้าสถิต
ลองพิจารณาวงจรที่ไม่สมบูรณ์แบบซึ่งมีปัญหาเรื่องความล่าช้าในองค์ประกอบตรรกะทางกายภาพ เช่น ประตู AND เป็นต้น
อันตรายแบบไดนามิก
อันตรายแบบไดนามิกคือชุดของการเปลี่ยนแปลงสถานะของสัญญาณที่เกิดขึ้นหลายครั้งติดต่อกัน ในขณะที่คาดว่าสัญญาณจะเปลี่ยนสถานะเพียงครั้งเดียว [ 1 ] : 48...