#Essentials
✅ آیا تا به حال به اهمیت رعایت مساله زمانبندی در طراحی های FPGA فکر کردید؟ آیا با مفاهیم ساده و اولیه سنجش کارایی یک پیاده سازی آشنایی دارید؟ تا به حال به این فکر کردید که چرا برخی از پیاده سازی ها با وجود اینکه نتایج شبیه سازی آن ها کاملا درست است، اما نتایج سخت افزاری کاملا اشتباه و نامعتبر دارند؟
به طور کلی انجام مجاسبات ریاضی و پردازش سیگنال در FPGA نیازمند رعایت اصول پیاده سازی خاص در این مدارهاست، سوال اینجاست که اگر این اصول رعایت نشود، چه مشکلی پیش می آید؟
✅ قبل از پاسخ به این سوال اجازه بدهید در پست زیر یکسری مفاهیم مقدماتی را به زبان ساده توصیف کنیم. هر طراح FPGA باید با مفاهیمی همچون #Race_Condition و #Glitch آشنایی داشته باشد تا بتواند دلیل رعایت یکسری از اصول را در برنامه نویسی متوجه شود، و برای آن ها راه حل مناسب پیدا کند. این آغاز ماجراجویی شماست، با ما همراه باشید ...
@Hexalinx
✅ آیا تا به حال به اهمیت رعایت مساله زمانبندی در طراحی های FPGA فکر کردید؟ آیا با مفاهیم ساده و اولیه سنجش کارایی یک پیاده سازی آشنایی دارید؟ تا به حال به این فکر کردید که چرا برخی از پیاده سازی ها با وجود اینکه نتایج شبیه سازی آن ها کاملا درست است، اما نتایج سخت افزاری کاملا اشتباه و نامعتبر دارند؟
به طور کلی انجام مجاسبات ریاضی و پردازش سیگنال در FPGA نیازمند رعایت اصول پیاده سازی خاص در این مدارهاست، سوال اینجاست که اگر این اصول رعایت نشود، چه مشکلی پیش می آید؟
✅ قبل از پاسخ به این سوال اجازه بدهید در پست زیر یکسری مفاهیم مقدماتی را به زبان ساده توصیف کنیم. هر طراح FPGA باید با مفاهیمی همچون #Race_Condition و #Glitch آشنایی داشته باشد تا بتواند دلیل رعایت یکسری از اصول را در برنامه نویسی متوجه شود، و برای آن ها راه حل مناسب پیدا کند. این آغاز ماجراجویی شماست، با ما همراه باشید ...
@Hexalinx
#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