ریسک(منطق)

از testwiki
پرش به ناوبری پرش به جستجو

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

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

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

ریسک های(خطرات) استاتیک یا ایستا

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

  • 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 و غیره رنج می‌برد.

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

f(A,B,C)=AB+AC

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

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

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

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

f(A,B,C)=AB+AC+BC

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

ریسک های (خطرات) دینامیکی یا پویا

یک خطر دینامیک مجموعه‌ای از تغییرات در وضعیت یک سیگنال است که چندین بار به طور متوالی رخ می‌دهد، در حالی که انتظار می‌رود سیگنال تنها یک بار تغییر وضعیت دهد. [۳]الگو:Rp خطر دینامیک به این معناست که احتمال دارد خروجی به دلیل یک تغییر ورودی، بیش از یک بار تغییر کند، اگر چندین مسیر با تاخیرهای متفاوت از ورودی در حال تغییر تا خروجی در حال تغییر وجود داشته باشد، انتقال های خروجی چندگانه می تواند رخ دهد.

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

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

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

ریسک های(خطرات) عملکردی

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

دیگران

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

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

مراجع