تحلیل زمان‌بندی ایستا

**تحلیل زمان‌بندی ایستا**  (**STA**) یک روش شبیه‌سازی زمان‌بندی مورد انتظار مدار دیجیتال همگام است، که بدون شبیه‌سازی کل مدار انجام می گیرد.

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

تعاریف اولیه تحلیل زمان‌بندی ایستا بر اساس روش بررسی و ارزیابی برنامه در سال ۱۹۶۶ بود. تعاریف مدرن تر به همراه الگوریتم‌های شان در اوایل دهه ۱۹۸۰ میلادی مطرح شدند.

## هدف

در سیستم های دیجیتال همگام داده به صورت "قدم اهسته" حرکت می‌کند. به عبارت دیگر در هر تیک کلاک یک مرحله به جلو می‌روند. این نظم به کمک قطعه‌های همگام مانند فلیپ‌فلاپ یا لچ انجام می‌شود.که این قطعه‌ها تنها تحت دستور کلاک داده را از ورودی به خروجی کپی می‌کنند. تنها دو نوع خطا زمان‌بندی می‌تواند در چنین سیستم‌های رخ دهد:
* **نقض زمان ماکسیمم**، زمانی رخ می‌دهد که داده دیرتر از مهلت خود به ورودی قطعه همگام برسد. این نقض‌ها غالبا با نام دیگر **نقض زمان راه‌اندازی** شناخته می‌شوند که در حقیقت یک زیرمجموعه از نقض‌های زمان ماکسیمم هستند که با تغییر در نرخ کلاک مشکل رفع می شود. 
* **نقض زمان مینیمم**، زمانی رخ می‌دهد که داده بسیار سریع پس از کپی کردن قطعه همگام تغییر کند. این نقض‌ها عموماً با نام دیگر **نقض زمان نگه‌داری** شناخته می‌شوند که در حقیقت یک زیرمجموعه از نقض های زمان ماکسیمم هستند که بر خلاف نقض زمان ماکسیمم با تغییر نرخ کلاک مشکل رفع نمی‌شود.
زمان ورود داده بسته به دلایل زیادی می‌تواند متفاوت باشد. مانند: عملیات های متفاوت تاخیر‌های متفاوتی دارند، تغییرات در دما و ولتاژ بر تاخیر مدار تاثیر دارد، تفاوت‌هایی در ساخت قسمت‌های مختلف مدار وجود دارد که هم چنین تاخیر های متفاوتی را رقم می‌زنند. هدف اصلی در تحلیل زمان‌بندی ایستا این است که علی‌رغم تمام این تغییرات در تاخیر مدار تمام سیگنال‌ها نه خیلی زود و نه خیلی دیر وارد شودند. این گونه می‌توان از عملکرد مدار اطمینان حاصل کرد.
از آن جایی که STA می‌تواند هر مسیری را در مدارهای دیجیتال همگام تایید و اعتبار سنجی کند از ان برای شناسایی دیگر مشکلات زمان‌بندی مانند مخاطره (به انگلیسی hazard یا glitch)، مسیر‌ کند، و یا انحراف کلاک (به انگلیسی clock skew) می‌توان استفاده کرد.

## تعاریف

### بنیاد‌ها

* **مسیر بحرانی** مسیری بین یک ورودی و خروجی با بالاترین میزان تاخیر است. زمانی که زمان‌بندی مدار توسط یکی از تکنیک های ارائه شده در پایین محاسبه شد. مسیر بحرانی به سادگی می‌تواند توسط **روش دریابی‌برگشتی** پیدا شود. شناسایی مسیر‌های بحرانی زمان‌بندی مدار در بدترین شرایط را ارزیابی می‌کند. بنابراین زمان‌بندی مدار از این ارزیابی بالاتر نخواهد رفت.
* **زمان ورود** برای یک سیگنال مقدار زمانی هست که سپری می‌کند تا به نقطه معین وارد شود. مرجع یا زمان 0.0 اغلب به عنوان زمان ورود سیگنال کلاک در نظر گرفته می‌شود. بعضی اوقات زمان ورود مثبت می‌تواند برخی پدیده‌ها را مدل کند مانند تاخیر درگاه ورودی.  برای محاسبه زمان ورود نیازمند داشتن تاخیر تمام قطعه‌های داخل مسیر موردنظر هستیم. زمان‌های ورود و در حقیقتا اکثر زمان‌ها در تحلیل زمان‌بندی به عنوان یک جفت مقدار ذخیره می‌شوند یکی برای سریع‌ترین زمانی که ممکن است سیگنال تغییر کنی و دیگری برای دیرترین حالت.
* یکی از مفاهیم مفید دیگر **زمان موردنیاز** است. این طولانی ترین زمانی است که در آن یک سیگنال می‌تواند ورود کند بدون این که نرخ کلاک را طولانی تر کنیم. محاسبه زمان موردنیاز به این صورت انجام خواهد شد: برای هر خروجی اصلی زمان موردنیاز برای صعود/سقوط با توجه به مشخصات ارائه شده مدار معیئن خواهد شد. سپس یک پیمایش عقبگرد توپولوژیکی انجام خواهد شد. در اخر محاسبه هر گیت زمانی که زمان موردنیاز تمام ورودی های ان مشخص شد.
* **کساد** هر اتصال تفاوت مقدار زمان ورود و زمان موردنیاز ان است. **کساد مثبت** که با s نمایش داده می‌شود.  برای برخی گره‌ها اشاره به این دارد که زمان ورود می‌تواند بدون تاثیر بر تاخیر کل مدار به مقدار s افزایش پیدا کند. به صورت برعکس، **کساد منفی** دلالت به این دارد که مسیر بسیار کند است و باید سریعتر شود (یا سیگنال مرجع باید تغییر کند). اگر می‌خواهید کل مدار در سرعت مطلوب کار کند.

### مسئله مسیر غلط

در STA شناسایی مسیر بحرانی مستلزم تحلیل طولانی ترین مسیر توپولوژیکی در شبکه مدار است. اما همه مسیر های توپولوژیکی از نظر عملکردی شدنی نیستند. بعضی از مسیرها توسط تمام ترکیب های معتبر منطقی فعال نمی‌شوند. این ها به عنوان **مسیرهای غلط** شناخته می‌شوند. و اگر در STA دور انداخته نشوند منجر به فراارزیابی تاخیرهای زمان‌بندی می‌شود.

مسیر های غلط به دو دسته مسیر های **تک چرخه** و **چند چرخه** طبقه‌بندی می‌شوند.  یک **مسیر چند چرخه** نیازی به انتشار تمام سیگنال‌هایش در یک چرخه کلاک ندارد. برای مثال سیگنال‌ کنترلی "reset" چند چرخه کلاک را برای تکمیل کارش  می‌گیرد.  اگر اشتباهاً چنین سیگنالی به عنوان بخشی از مسیر بحرانی تلقی شود نتیجه زمان‌بندی منحرف می‌شود و الزامات سخت‌گیرانه‌تری نسبت به چیزی که در حقیقت نیاز است پیشنهاد می‌کند.

## مدل‌های تاخیر

مدل‌های تاخیر تاخیر انتشار گیت‌های منطقی در مدار‌های دیجیتال را تعریف می‌کنند. در زمینه تحلیل زمان‌بندی ایستا (STA) مدل‌های تاخیر برای ارزیابی زمان ورود سیگنال ها و صحت سنجی محدودیت‌های زمان‌بندی مورد نیاز هستند. با توجه به این که مدار‌های مجتمع مدرن دارای میلیون‌ها یا میلیارد‌ها گیت هستند مدل‌های تاخیر باید تعادلی در بهینگی محاسباتی و دقت مدل‌سازی داشته باشند. مدل‌های تاخیر پراستفاده در STA عبارت اند از:

* تاخیر واحد
* تاخیر ثابت
* تاخیر پین به پین
* گوشه‌هاش PVT
* تاخیر آماری

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

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

**مدل تاخیر پین به پین**  برای هر سلول تاخیر انتشار هر ورودی و خروجی را مشخص می‌کند. این مدل توانایی این را دارد که زمان‌بندی را بدون جزیيات نت‌ لیست تخمین بزند. که باعث افزایش سرعت شبیه‌سازی و انعطاف مدل‌سازی می‌شود. این مدل تحلیل زمان‌بندی را به پیاده سازی مدار‌های لایه های پایین تر وابسته نمی‌کند. از این رو مدلی مناسب برای نمایش سنتز و انتزاع طرح های سطح بالاتر است. 

### گوشه‌های PVT
متغیر‌های فرایند (P)، ولتاژ (V)، دما (T) بر روی تاخیر گیت‌های بشدت تاثیر می‌گذارند. **مدل‌های گوشه‌ای PVT** تاخیر‌ها را تحت وضعیت حداکثری نمایش می‌دهد مانند بدترین شرایط فرایند کند یا ولتاژ پایین تا از استحکام سیستم اطمینان حاصل کند. هر گوشه ترکیب مشخصی از پارامتر‌های PVT را نمایش می‌دهد. ابزار‌های STA زمان‌بندی را برای چندین گوشه ارزیابی می‌کنند تا اطمینان حاصل کنند که سیستم کاردکردی درست در هر وضعیت عملیاتی را دارد.

اغلب اوقات طراحان می‌خواهند صلاحیت طرحشان را در وضعیت‌های مختلف بدانند. رفتار یک مدار الکترونیک وابسته به شاخص‌های زیادی در محیط اطرافش است مانند دما یا تغییرات محلی ولتاژ. در چنین مورادی STA نیاز دارد بر روی بیش از یک مجموعه‌ی وضعیت اجرا شود. یا به زبان دیگر STA باید بر روی بازه‌ای از تاخیر‌های ممکن برای هر قطعه اجرا شود.

با تکنیک‌های مناسب الگو تغییرات وضعیت مشخص‌یابی می‌شود و حداکثر مقدار ان ثبت می‌شود. هر وضعیت حداکثری تحت عنوان گوشه شناخته می‌شود. حداکثر‌ها در مشخصات سلول به عنوان گوشه‌های PVT شناخته می‌شوند و حداکثر‌ها در مشخصات شبکه مدار به عنوان گوشه‌های استخراج شناخته می‌شوند. به همین صورت هر الگو ترکیبی از گوشه‌های استخراج تحت عنوان 'گوشه زمان‌بندی' شناخته می‌شود. و نمایشگر نقطه‌ای است که زمان‌بندی در ان حداکثر یا ماکزیمم است. اگر طراحی در وضعیت‌های حداکثری کار کند بر اساس تابع یکنوا این طرح برای تمام نقاط میانی دارای صلاحیت است.

استفاده از گوشه‌ها در STA چندین محدودیت دارد. این گوشه ممکن است به شدت خوشبین باشد: اگر یک گیت سریع باشد تمام گیت ها سریع فرض می‌شوند یا اگر ولتاژ برای یک گیت پایین باشد برای همه هم پایین فرض می‌شود. یا گوشه‌ای بشدت بدبین باشد. برای مثال بدترین وضعیت شاید به ندرت اتفاق بیافتد. برای مثال در یک مدارمجتمع شاید نازکی یا کلفتی یک لایه فلزی در بازه مجاز باشد اما برای ۱۰ لایه که توسط کارخانه‌های متفاوتی تولید می‌شود کمیاب است که هر ۱۰ لایه در یک بازه مجاز باشند. STA آماری که تاخیرها را با توزیع‌ها جایگزین می‌کند و با همبستگی ردیابی انجام می‌دهد رویکردی پیچیده‌تر برای حل این مسئله ارائه می‌دهد.

### تاخیر آماری
مدل‌های تاخیر سنتی (یا قطعی) مقادیری ثابت و معین را فرض می‌گرفتند. که نمی‌توانست تغییرات فرایند را در سطح دای بگیرد. این تغییرات به ویژه در گره‌های پیشرفته می‌توانند به شدت در زمان‌بندی تاثیر بگذارند. **مدل‌های تاخیر آماری** این ضعف را با نمایش تاخیر‌ها با استفاده از پارامتر‌های آماری نشانه می‌گیرند مانند میانگین یا واریانس. این مدل این امکان را به ما می‌دهد که تحلیل زمان‌بندی واقع‌بینانه‌تر از بدترین حالت و یا حالت عادی داشته باشیم.  جزییات بیشتر از مدل‌های تاخیر آماری در صحفه تحلیل زمان‌بندی ایستا آماری (**SSTA**) معرفی شده است. 

## پیشرو‌ترین تکنیک برای STA
در STA واژه *ایستا* دلالت بر این دارد که تحلیل زمان‌بندی به صورت مستقل از داده ورودی انجام می‌شود و هدف این است که تاخیر بدترین حالت مدار را در تمام ترکیب های ممکن ورودی پیدا کنیم. بهینگی محاسبه (خطی در یال‌های گراف) باعث استفاده گسترده آن شد هر چند که کاستی‌هایی داشته باشد. یه روشی به نام PERT بسیار در STA محبوب است. اما نام PERT بی‌مسمی است و روش PERT در ادبیات تحلیل زمان‌بندی به مفهوم روش مسیر بحرانی (CPM) اشاره دارد.  که به صورت گسترده در مدیریت پروژه استفاده می‌شود. 
در حالی که روش‌های بر پایه CPM مورد استفاده ترین‌ها در امروز تکنولوژی هستند. دیگر روش‌های پیمایش گراف مدار‌ مانند الگوریتم جستجوی عمق اول توسط برخی از تحلیلگر‌های زمان‌بندی مورد استفاده قرار می‌گیرند.

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

## جستار‌های وابسته

* تایید زمان‌بندی پویا
* خودکارسازی طراحی الکترونیکی
* طراحی مدار مجتمع
* لاجیک آنالایزر
* شبیه سازی منطقی
* شبیه‌سازی
* حاشیه زمان‌بندی
* بدترین زمان اجرا
* خروج از سیستم (خودکارسازی طراحی الکترونیکی)

## منابع

### پانویس

### کتاب‌شناسی

**Electronic Design Automation For Integrated Circuits Handbook*, by Lavagno, Martin, and Scheffer,  A survey of the field. This article was derived from Volume II, Chapter 8, 'Static Timing Analysis' by Sachin Sapatnekar, with permission.
**Static Timing Analysis for Nanometer Designs*, by R. Chadha and J. Bhasker, , Springer, 2009.

رده:روش‌های صوری
رده:زمان‌بندی در مدار الکترونیکی