ریسک(منطق) کیست؟ توضیح بده.
در منطق دیجیتال، مخاطره (hazard) به اثر نامطلوبی اطلاق میشود که ناشی از نقص در سیستم یا تأثیرات خارجی در هر دو مدار همزمان (synchronous) و مدارهای ناهمزمان(asynchronous) می‌باشد. خطرات منطقی نشان دهنده مشکلاتی هستند که در آن تغییرات در متغیرهای ورودی به درستی در خروجی منعکس نمیشوند، این اتفاق معمولا به دلیل تأخیرهای ناشی از عملکرد عناصر منطقی (NOT, AND, OR Gates و غیره) رخ میدهد و باعث می‌شود مدار نتواند عملکرد خود را به درستی انجام دهد. سه نوع رایج از خطرات معمولاً به عنوان خطرات ایستا یا ساکن (static)، دینامیک یا پویا (dynamic) و عملکردی (function) شناخته می‌شوند. Glitch به عنوان نویز منطقی نیز شناخته می شود. خطرات در مدار ترکیبی به دلیل وجود اشکال ایجاد می شوند در حالت کلی مداری که احتمال ایجاد Glitch در آن هست، هازارد دارد.خطرات معمولا مشکلاتی موقتی و غیر دائم هستند، زیرا مدار منطقی در نهایت به عملکرد مورد نظر خود می‌رسد. به همین دلیل، در طراحی‌های همزمان(سنکرون) ، این یک رویه استاندارد است که خروجی یک مدار قبل از استفاده در دامنه ساعت متفاوت یا خروج از سیستم ثبت شود تا از ایجاد مشکلات ناشی از خطرات جلوگیری گردد. اما اگر این کار انجام نشود، ضروری است که خطرات حذف شوند زیرا می‌توانند بر سایر سیستم‌های متصل تأثیر بگذارند.به عبارت دیگر یک سیستم دیجیتالی سنکرون به خوبی طراحی شده است به گونه ای که تحلیل خطر برای اکثر مدارهای آن مورد نیاز نیست.در یک سیستم سنکرون، تمام ورودی‌های یک مدار ترکیبی در یک زمان خاص تغییر می‌کنند و خروجی‌ها تا زمانی که زمان لازم برای تثبیت یک مقدار حالت پایدار را نداشته باشند، «نگاه نمی‌شوند».تجزیه و تحلیل و حذف خطر معمولاً فقط در طراحی مدارهای متوالی ناهمزمان مورد نیاز است.مخاطره های(خطرات) استاتیک یا ایستا.یک خطر استاتیک (Static Hazard) زمانی رخ می‌دهد که وضعیت یک سیگنال به‌طور متوالی دو بار تغییر کند، در حالی که انتظار می‌رود سیگنال ثابت باقی بماند. زمانی که یکی از سیگنال‌های ورودی تغییر می‌کند، خروجی به طور موقت تغییر می‌کند قبل از اینکه به مقدار صحیح خود پایدار شود. بر اساس مقدار صحیح، دو نوع خطر استاتیک وجود دارد:در یک مدار منطقی دو سطحی AND-OR به‌طور صحیح که بر اساس یک عبارت جمع ضرب ها (Sum Of Products) شکل‌گیری شده است، هیچ خطر استاتیک(static)-0 وجود نخواهد داشت (اما ممکن است هنوز خطر استاتیک(static)-1 وجود داشته باشد). برعکس، در پیاده‌سازی OR-AND یک عبارت ضرب مجموع‌ها (Product Of Sums)، هیچ خطر استاتیک(static)-1 وجود نخواهد داشت (اما ممکن است هنوز خطر استاتیک(static)-0 وجود داشته باشد).متداول‌ترین روش برای حذف خطرات استاتیک، افزودن منطق اضافی (اصطلاحات اجماع در بیان منطق) است.مثالی از مخاطره(خطر) استاتیکی.یک مدار ناقص را در نظر بگیرید که از تأخیر در عناصر منطقی فیزیکی مانند دروازه‌های AND و غیره رنج می‌برد.مدار ساده عملکردی را انجام می‌دهد که یادداشت می‌کند:formula_1با نگاهی به دیاگرام(نمودار)، واضح است که اگر تأخیری رخ ندهد، مدار به طور عادی عمل خواهد کرد. با این حال، هیچ دو گیت یا دروازه ای دقیقاً مشابه هم ساخته نمی‌شوند. به دلیل این نقص پیش آمده ، تأخیر برای اولین گیت AND کمی متفاوت از مشابه خود خواهد بود. بنابراین زمانی که ورودی از 111 به 011 تغییر می‌کند، یک خطا رخ می‌دهد؛ یعنی زمانی که A تغییر حالت می‌دهد.حالا که به طور تقریبی می‌دانیم خطر چگونه رخ می‌دهد، برای داشتن تصویری واضح‌تر و راه‌حلی برای حل این مشکل، به نقشه کارنو نگاه خواهیم کرد.یک قضیه که توسط هافمن اثبات شده است ، به ما می‌گوید که افزودن یک حلقه اضافی 'BC' می‌تواند خطر را از بین ببرد.تابع اصلاح شده عبارت است از:formula_2اکنون می‌توانیم ببینیم که حتی با وجود عناصر منطقی ناقص، مثال ما در هنگام تغییر حالت A نشانه‌هایی از خطرات نشان نخواهد داد. این نظریه می‌تواند به هر سیستم منطقی اعمال شود. برنامه‌های کامپیوتری بیشتر این کار را انجام می‌دهند، اما برای مثال‌های ساده، مشکل یابی به صورت دستی سریع‌تر است. زمانی که تعداد متغیرهای ورودی زیاد باشد (مثلاً 6 یا بیشتر)، مشاهده خطاها در نقشه کارنو سخت خواهد شد.مخاطره های (خطرات) دینامیکی یا پویا.یک خطر دینامیک مجموعه‌ای از تغییرات در وضعیت یک سیگنال است که چندین بار به طور متوالی رخ می‌دهد، در حالی که انتظار می‌رود سیگنال تنها یک بار تغییر وضعیت دهد. خطر دینامیک به این معناست که احتمال دارد خروجی به دلیل یک تغییر ورودی، بیش از یک بار تغییر کند، اگر چندین مسیر با تاخیرهای متفاوت از ورودی در حال تغییر تا خروجی در حال تغییر وجود داشته باشد، انتقال های خروجی چندگانه می تواند رخ دهد.خطرات دینامیکی معمولاً در مدارهای منطقی بزرگتر رخ می‌دهند که مسیرهای مختلفی به خروجی (از ورودی) وجود دارد. اگر هر مسیر تأخیر متفاوتی داشته باشد، به سرعت مشخص می‌شود که پتانسیل تغییر مقادیر خروجی وجود دارد که با خروجی مورد نیاز/انتظار متفاوت است.به عنوان مثال، یک مدار منطقی قرار است وضعیت خروجی را از 1 به 0 تغییر دهد، اما در عوض از 1 به 0 سپس به 1 تغییر می‌کند و در نهایت در مقدار صحیح 0 ثابت می‌شود. این یک خطر دینامیکی است.به‌طور کلی، حل مشکلات دینامیک پیچیده‌تر است، اما به این مورد توجه کنید که اگر تمام مشکلات استاتیک از مدار حذف شده باشند، در آن صورت مشکلات دینامیکی نمی‌توانند رخ دهند.مخاطره های(خطرات) عملکردی.در مقایسه با خطرات استاتیک و دینامیک، خطرات عملکردی ناشی از تغییراتی هستند که بیش از یک متغیر ورودی در یک زمان دستکاری شود. برخلاف خطرات استاتیک و دینامیک، آنها خطرات غیرقابل حلی هستند و حذف آنها با استفاده از منطق غیرممکن است. برای جلوگیری از خطرات عملکردی، بیشتر باید متغیرهای ورودی را از تغییر محدود کنیم و مطمئن شویم که تنها یکی از متغیرهای ورودی تغییر کرده است. با این حال، محدودیت همیشه کار نمی کند. بنابراین، برای کاهش این خطرات، مدارها باید با دقت طراحی شوند تا تأخیرهای مساوی در تمام مسیرها ایجاد شود.