#Race_Condition
#Metastabilty
#Glitch
✳️ رخداد #Race_Condition نتیجه و حاصل یک طراحی نامناسب برای یک لچ یا فلیپ فلاپ در FPGA است. در واقع نشان دهنده وضعیتی است که در آن داده و کلاک ورودی به یک فلیپ فلاپ در یک زمان تغییر می کنند و نتیجه خروجی بستگی به این دارد که کدام یک از این دو در اصطلاح برنده شود.
✳️ در موارد نادر، ممکن است در زمان تغییر وضعیت کلاک، داده دقیقا برابر 0 و یا 1 باشد ، ولی در اکثر موارد داده مقداری بین 0 و یا 1 دارد، یعنی در بازه زمانی گذر از حالت low به حالت high قرار دارد. در این چنین شرایطی خروجی برای یک لحظه بین 0 و 1 باقی می ماند، (برای مثال در یک سیستم با ولتاژ 5V ، خروجی ممکن است برای مدت زمان خیلی کوتاهی مثلا چند نانو ثانیه حدود 2.5V باشد. هنگامی که این اتفاق می افتد در اطلاح گفته می شود خروجی ناپایدار یا #Metastable است. ناپایدار بودن باعث ایجاد اثرات جدی و منفی بر روی عملکرد سیستم می شود از همه بدتر اینکه، تقریبا تکرار پذیری این حالت ناپایدار تقریبا غیرممکن است و بنابراین پیدا کردن منشا خطا و برطرف کردن آن بسیار سخت است.
✳️ مسئله ناپداری در خروجی فقط مختص به فلیپ فلاپ ها نیست و ممکنه به دلیل تاخیر وضعیت نامتناسب در ورودی های گیت های منطقی نیز وجود داشته باشد و باعث ایجاد مشکلات ناخواسته بشود، این رخداد نیز در اصطلاح #Glitch نامیده می شود.
✳️ برای جلوگیری از بروز چنین مشکلاتی در طراحی، طراح باید با در نظر گرفتن بدترین شرایط ممکن، آنالیز زمانی کاملا دقیقی روی مداری که طرحی کرده است، انجام دهد. این نوع آنالیزها عموما با بکارگیری تاخیرهای انتشار، تاخیرهای مسیر بین عناصر موجود در FPGA، محاسبه زمان بندی high و low شدن سیگنال و یکسری پارامترهای دیگر انجام می شود. این کار عموما زمان بر است، اما شرکت های سازنده تراشه های قابل برنامه ریزی ابزارهای مناسبی را برای انجام این تحلیل ها ارائه داده اند.
@Hexalinx
#Metastabilty
#Glitch
✳️ رخداد #Race_Condition نتیجه و حاصل یک طراحی نامناسب برای یک لچ یا فلیپ فلاپ در FPGA است. در واقع نشان دهنده وضعیتی است که در آن داده و کلاک ورودی به یک فلیپ فلاپ در یک زمان تغییر می کنند و نتیجه خروجی بستگی به این دارد که کدام یک از این دو در اصطلاح برنده شود.
✳️ در موارد نادر، ممکن است در زمان تغییر وضعیت کلاک، داده دقیقا برابر 0 و یا 1 باشد ، ولی در اکثر موارد داده مقداری بین 0 و یا 1 دارد، یعنی در بازه زمانی گذر از حالت low به حالت high قرار دارد. در این چنین شرایطی خروجی برای یک لحظه بین 0 و 1 باقی می ماند، (برای مثال در یک سیستم با ولتاژ 5V ، خروجی ممکن است برای مدت زمان خیلی کوتاهی مثلا چند نانو ثانیه حدود 2.5V باشد. هنگامی که این اتفاق می افتد در اطلاح گفته می شود خروجی ناپایدار یا #Metastable است. ناپایدار بودن باعث ایجاد اثرات جدی و منفی بر روی عملکرد سیستم می شود از همه بدتر اینکه، تقریبا تکرار پذیری این حالت ناپایدار تقریبا غیرممکن است و بنابراین پیدا کردن منشا خطا و برطرف کردن آن بسیار سخت است.
✳️ مسئله ناپداری در خروجی فقط مختص به فلیپ فلاپ ها نیست و ممکنه به دلیل تاخیر وضعیت نامتناسب در ورودی های گیت های منطقی نیز وجود داشته باشد و باعث ایجاد مشکلات ناخواسته بشود، این رخداد نیز در اصطلاح #Glitch نامیده می شود.
✳️ برای جلوگیری از بروز چنین مشکلاتی در طراحی، طراح باید با در نظر گرفتن بدترین شرایط ممکن، آنالیز زمانی کاملا دقیقی روی مداری که طرحی کرده است، انجام دهد. این نوع آنالیزها عموما با بکارگیری تاخیرهای انتشار، تاخیرهای مسیر بین عناصر موجود در FPGA، محاسبه زمان بندی high و low شدن سیگنال و یکسری پارامترهای دیگر انجام می شود. این کار عموما زمان بر است، اما شرکت های سازنده تراشه های قابل برنامه ریزی ابزارهای مناسبی را برای انجام این تحلیل ها ارائه داده اند.
@Hexalinx