ریسک(منطق)

در منطق دیجیتال، **مخاطره** (hazard) به اثر نامطلوبی اطلاق میشود که ناشی از نقص در سیستم یا تأثیرات خارجی در هر دو مدار همزمان (synchronous)  و مدارهای ناهمزمان(asynchronous) می‌باشد. خطرات منطقی نشان دهنده مشکلاتی هستند که در آن تغییرات در متغیرهای ورودی به درستی در خروجی منعکس نمیشوند، این اتفاق معمولا به دلیل تأخیرهای  ناشی از عملکرد عناصر منطقی  (NOT, AND, OR Gates و غیره) رخ میدهد و باعث می‌شود مدار نتواند عملکرد خود را به درستی انجام دهد. سه نوع رایج از خطرات معمولاً به عنوان خطرات ایستا یا ساکن (static)، دینامیک یا پویا (dynamic) و عملکردی (function) شناخته می‌شوند. Glitch به عنوان نویز منطقی نیز شناخته می شود. خطرات در مدار ترکیبی به دلیل وجود اشکال ایجاد می شوند در حالت کلی مداری که احتمال ایجاد Glitch در آن هست، هازارد دارد.

خطرات معمولا مشکلاتی موقتی و غیر دائم هستند، زیرا مدار منطقی در نهایت به عملکرد مورد نظر خود می‌رسد. به همین دلیل، در طراحی‌های همزمان(سنکرون) ، این یک رویه استاندارد است که خروجی یک مدار قبل از استفاده در دامنه ساعت متفاوت یا خروج از سیستم ثبت شود تا از ایجاد مشکلات ناشی از خطرات جلوگیری گردد. اما اگر این کار انجام نشود، ضروری است که خطرات حذف شوند زیرا می‌توانند بر سایر سیستم‌های متصل تأثیر بگذارند.

به عبارت دیگر یک سیستم دیجیتالی سنکرون به خوبی طراحی شده است به گونه ای که تحلیل خطر برای اکثر مدارهای آن مورد نیاز نیست.در یک سیستم سنکرون، تمام ورودی‌های یک مدار ترکیبی در یک زمان خاص تغییر می‌کنند و خروجی‌ها تا زمانی که زمان لازم برای تثبیت یک مقدار حالت پایدار را نداشته باشند، «نگاه نمی‌شوند».تجزیه و تحلیل و حذف خطر معمولاً فقط در طراحی مدارهای متوالی ناهمزمان مورد نیاز است.

## مخاطره های(خطرات) استاتیک یا ایستا
یک خطر استاتیک (Static Hazard) زمانی رخ می‌دهد که وضعیت یک سیگنال به‌طور متوالی دو بار تغییر کند، در حالی که انتظار می‌رود سیگنال ثابت باقی بماند.  زمانی که یکی از سیگنال‌های ورودی تغییر می‌کند، خروجی به طور موقت تغییر می‌کند قبل از اینکه به مقدار صحیح خود پایدار شود.  بر اساس مقدار صحیح، دو نوع خطر استاتیک وجود دارد:

* Static-1 Hazard:  خروجی در حال حاضردر حالت منطقی 1 است و پس از اینکه تغییر ورودی‌ها به طور موقت و لحظه ای به 0 قبل از اینکه روی 1 قرار گیرد، در این صورت یک خطر Static-1 است. در پاسخ به تغییر ورودی و برای ترکیبی از تاخیر انتشار، یک مدار منطقی ممکن است به صفر (0) برود، زمانی که باید در یک (1) ثابت بماند.
* Static-0 Hazard: در مدار POS (PRODUCT-OF-SUM) رخ می دهد. اگر خروجی در حال حاضر در حالت منطقی 0 باشد و پس از اینکه ورودی حالت خود را تغییر داد، خروجی به طور لحظه ای به 1 تغییر می کند قبل از اینکه روی 0 ثابت شود، در این صورت یک خطر Static-0 است. در پاسخ به یک تغییر ورودی و برای ترکیبی از تاخیر انتشار، یک مدار منطقی ممکن است به یک (1) برود، زمانی که باید در صفر (0) ثابت بماند.

در یک مدار منطقی دو سطحی AND-OR به‌طور صحیح که بر اساس یک عبارت جمع ضرب ها (Sum Of Products) شکل‌گیری شده است، هیچ خطر استاتیک(static)-0 وجود نخواهد داشت (اما ممکن است هنوز خطر استاتیک(static)-1 وجود داشته باشد). برعکس، در پیاده‌سازی OR-AND یک عبارت ضرب مجموع‌ها (Product Of Sums)، هیچ خطر استاتیک(static)-1 وجود نخواهد داشت (اما ممکن است هنوز خطر استاتیک(static)-0 وجود داشته باشد).

متداول‌ترین روش برای حذف خطرات استاتیک، افزودن منطق اضافی (اصطلاحات اجماع در بیان منطق) است.

### مثالی از مخاطره(خطر) استاتیکی
یک مدار ناقص را در نظر بگیرید که از تأخیر در عناصر منطقی فیزیکی مانند دروازه‌های AND و غیره رنج می‌برد.

مدار ساده عملکردی را انجام می‌دهد که یادداشت می‌کند:

 \overline{f(A,B,C)} = AB + \overline{A}C 

با نگاهی به دیاگرام(نمودار)، واضح است که اگر تأخیری رخ ندهد، مدار به طور عادی عمل خواهد کرد. با این حال، هیچ دو گیت یا دروازه ای دقیقاً مشابه هم ساخته نمی‌شوند. به دلیل این نقص پیش آمده ، تأخیر برای اولین گیت AND کمی متفاوت از مشابه خود خواهد بود. بنابراین زمانی که ورودی از 111 به 011 تغییر می‌کند، یک خطا رخ می‌دهد؛ یعنی زمانی که A تغییر حالت می‌دهد.

حالا که به طور تقریبی می‌دانیم خطر چگونه رخ می‌دهد، برای داشتن تصویری واضح‌تر و راه‌حلی برای حل این مشکل، به نقشه کارنو نگاه خواهیم کرد.

یک قضیه که توسط هافمن اثبات شده است ، به ما می‌گوید که افزودن یک حلقه اضافی 'BC' می‌تواند خطر را از بین ببرد.

تابع اصلاح شده عبارت است از:

 \overline{f(A,B,C)} = AB + \overline{A}C + BC

اکنون می‌توانیم ببینیم که حتی با وجود عناصر منطقی ناقص، مثال ما در هنگام تغییر حالت A نشانه‌هایی از خطرات نشان نخواهد داد. این نظریه می‌تواند به هر سیستم منطقی اعمال شود. برنامه‌های کامپیوتری بیشتر این کار را انجام می‌دهند، اما برای مثال‌های ساده، مشکل یابی به صورت دستی سریع‌تر است. زمانی که تعداد متغیرهای ورودی زیاد باشد (مثلاً 6 یا بیشتر)، مشاهده خطاها در نقشه کارنو سخت خواهد شد.

## مخاطره های (خطرات) دینامیکی یا پویا
یک خطر دینامیک مجموعه‌ای از تغییرات در وضعیت یک سیگنال است که چندین بار به طور متوالی رخ می‌دهد، در حالی که انتظار می‌رود سیگنال تنها یک بار تغییر وضعیت دهد.  خطر دینامیک به این معناست که احتمال دارد خروجی به دلیل یک تغییر ورودی، بیش از یک بار تغییر کند، اگر چندین مسیر با تاخیرهای متفاوت از ورودی در حال تغییر تا خروجی در حال تغییر وجود داشته باشد، انتقال های خروجی چندگانه می تواند رخ دهد.

خطرات دینامیکی معمولاً در مدارهای منطقی بزرگتر رخ می‌دهند که مسیرهای مختلفی به خروجی (از ورودی) وجود دارد. اگر هر مسیر تأخیر متفاوتی داشته باشد، به سرعت مشخص می‌شود که پتانسیل تغییر مقادیر خروجی وجود دارد که با خروجی مورد نیاز/انتظار متفاوت است.

به عنوان مثال، یک مدار منطقی قرار است وضعیت خروجی را از **1** به **0**  تغییر دهد، اما در عوض از **1** به **0** سپس به **1** تغییر می‌کند و در نهایت در مقدار صحیح **0** ثابت می‌شود. این یک خطر دینامیکی است.

به‌طور کلی، حل مشکلات دینامیک پیچیده‌تر است، اما به این مورد توجه کنید که اگر تمام مشکلات استاتیک از مدار حذف شده باشند، در آن صورت مشکلات دینامیکی نمی‌توانند رخ دهند.

## مخاطره های(خطرات) عملکردی
در مقایسه با خطرات استاتیک و دینامیک، خطرات عملکردی ناشی از تغییراتی هستند که بیش از یک متغیر ورودی در یک زمان دستکاری شود. برخلاف خطرات استاتیک و دینامیک، آنها خطرات غیرقابل حلی هستند و حذف آنها با استفاده از منطق غیرممکن است. برای جلوگیری از خطرات عملکردی، بیشتر باید متغیرهای ورودی را از تغییر محدود کنیم و مطمئن شویم که تنها یکی از متغیرهای ورودی تغییر کرده است. با این حال، محدودیت همیشه کار نمی کند. بنابراین، برای کاهش این خطرات، مدارها باید با دقت طراحی شوند تا تأخیرهای مساوی در تمام مسیرها ایجاد شود.

## دیگران

; 
; **گیت های منطقی استفاده شده در سیستم های دیجیتال همواره دارای یک تاخیر بوده که باعث تاخیر در هنگام گذر و انتشار سیگنال ها از سمت ورودی مدار به سمت خروجی می شود.** **در یک مدار ترکیبی هنگامیکه ورودی مدار تغییر وضعیت می دهد،  بدلیل این تاخیر ممکن است یک خروجی ناگهانی و نامطلوب و بصورت موقت در خروجی مدار ایجاد شود که به آن hazard گفته و به آن پالس نامطلوب glitch نیز می گویند. هازارد در یک مدار ترکیبی بستگی به ساختار مدار و مقدار تاخیر در گیت ها می تواند به صورت های مختلفی ( مانند هازارد ایستای 1 ، ایستای 0 ،  دینامیک ) اتفاق بیافتد.** 
;
; 
;  **در یک مدار** **ترکیبی هنگامیکه یکی از ورودی های مدار بصورت معکوس و غیر معکوس، هر کدام از طریق یک گیت مجزا، یعنی از دو مسیر مختلف ( هر مسیر با تعداد گیت و یا زمان تاخیر متفاوت ) به خروجی متصل باشد بطوریکه بعد از تغییر در وضعیت آن ورودی ( تغییر از حالت معکوس به غیر معکوس و یا بالعکس ) خروجی مدار در حالت پایدار تغییر نکند ( یعنی اگر خروجی در حالت فعلی 1 بوده بعد از تغییر ورودی نیز 1 بماند و اگر 0 بوده 0 بماند ) اما گیت موثر در خروجی فعلی، تغییر نموده و از یک گیت به یک گیت دیگر  جابجا شود. در شرایط فوق، ممکن است که هازارد ایستا اتفاق بیافتد بطوریکه در لحظه تغییر ورودی و گذر از یک گیت به گیت دیگر، خروجی مدار بصورت موقت ( به مدت چند نانوثانیه ) ناپایدار شده و تغییر وضعیت دهد. اگر خروجی مدار در حالت پایدار 1  باشد دراینصورت امکان وقوع هازارد ایستای 1  وجود داشته و ممکن است خروجی مدار بصورت نامظلوب یک لحظه  0 شود و اگر خروجی مدار در حالت پایدار  0 باشد امکان وقوع هازارد ایستای 0 وجود داشته و ممکن اسنت خروجی مدار بصورت نامظلوب یک لحظه 1  گردد.**
;
; خطرات منطق ترکیبی
: در منطق ترکیبی خطری است که به توزیع تاخیرهای انتشار سیگنال در مدارهای منطقی و طراحی کلی یک تابع مدار منطقی اجرا شده بستگی دارد. 

; خطرات عملکردی ترکیبی
: در منطق ترکیبی خطراتی وجود دارد که می توان آنها را در سطح بالاتری از برنامه نویسی با مطالعه و اصلاح تابع منطق خروجی شناسایی و کاهش داد.  &#x3A;&#x200A;43&#x200A;
; خطرات ترتیبی
: این خطرات نوعی از تغییرات نامطلوب در سیگنال ها است که در سیستم های حلقه ای یافت می شود.  &#x3A;&#x200A;43&#x200A;

## همچنین ببینید

* حالت بی اهمیت
* اشکال(عیب فنی)
* خطر (معماری کامپیوتر)
* وضعیت رقابتی

* اثر شناور بدن ، احتمالاً دلیلی برای خطر سیلیکون در دستگاه های عایق

## مراجع


* http://www.ee.surrey.ac.uk/Projects/Labview/Sequential/Course/02-Hazards/hazards.htm#FunctionHazards