حساب قيود الوقت لـ FPGAs بلغة بسيطة

مرحبا. تمت كتابة هذه المقالة للمبتدئين جدًا في عالم FPGAs ، الذين لا يعرفون حتى الآن ما هو STA (تحليل التوقيت الثابت). في ذلك ، سأحاول أن أشرح بأكبر قدر ممكن من البساطة والوضوح ما هي قيود التوقيت المفروضة على مشاريع FPGAs.



تم إنشاء المقال على أساس تجربتي الخاصة في محاولات شرح هذا الموضوع لنفسي ، وللطلاب المتدربين والزملاء الفضوليين حتى لا نغوص في غابة أكاديمية مرتبكة ، ولكن ببساطة وشفافية قدر الإمكان ، في اللغة اليومية. لقد تعلمت العمل مع FPGAs دون دراسة وتدريب على هذا الموضوع وأنا أعرف من تجربتي الخاصة مدى صعوبة فهم شيء ما دون أساس نظري في هذا الموضوع وفي الدوائر. بالنسبة للمربي المتمرس ، فإن ما ورد أعلاه أساسي. لكن بالنسبة لبعض طلاب السنة الرابعة ، ستكون المقالة مفيدة وستساعد على فهم كل هذه الركود والإعدادات والحجز.



في المقالة سأستخدم المصطلحات مع نسختها الإنجليزية مكررة بين قوسين. يتم ذلك لأن المصطلحات الموحدة لم تتم تسويتها ، ومع الازدواجية يكون من السهل فهم المفهوم الذي تتم مناقشته ، وإذا لزم الأمر ، ابحث عن معلومات عنه في مصادر باللغة الإنجليزية.



المقدمة



سأقدم مقدمة قصيرة بلغة المفاهيم البسيطة.



لكي يعمل شيء ما في FPGA ، تحتاج إلى تحميل (تحميل ، خياطة) ملف البرنامج الثابت فيه ، باستخدام المبرمج والأداة المساعدة للبرنامج الثابت. ملف البرنامج الثابت هو نتاج تجميع CAD لمشروع معين - مجلدات بها ملفات ، يصف كل منها جانبًا من جوانب المشروع. في حالات بسيطة ، يصف المستخدم نفسه فقط الملفات ذات التعليمات البرمجية المصدر ، والملف الذي يحتوي على pinout ، والملف ذي القيود الزمنية. يتم التعامل مع باقي الملفات بهدوء بواسطة CAD. من هذا الثلاثي ، يكون ملف قيود الوقت فقط اختياريًا رسميًا.جزء من المشروع. في الواقع ، إذا كان مشروعك لا يحتوي على ترددات أعلى من 30-50 ميجاهرتز ، فمن المحتمل أنه سيتمكن من العمل بطريقة ما بدون هذا الملف. هذا الخيار مناسب لسهولة إنشاء المشاريع التعليمية الأولى. ومع ذلك ، إذا كان مشروع التدريب الخاص بك يحتوي بالفعل على ترددات عالية على مدار الساعة ولم يتم تجهيزه بملف قيود الوقت ، فمن المرجح أن يتم تعطيل معالجة البيانات في مكان ما داخل FPGA ، ولن تتمكن من معرفة أي نقطة في المشروع. بالنسبة للعمل وليس الدراسة ، فإن وصف الملف الكامل للقيود مطلوب بدقة . تقع على عاتقك مسؤولية التحقق والتحقق من صحة وظائف مشروعك.



يضع المترجم مشروعك على شريحة FPGA ، ويتلقى ملفًا من اتصالات جميع العناصر المادية. يستخدم محلل التوقيت ملف الاتصال لحساب جميع فترات نقل البيانات إلى FPGA. يجب ألا تكون هذه المدد طويلة بشكل غير محدود أو قصيرة جدًا. يخبر ملف قيود الوقت المحلل بالإطار الذي يجب أن تكون عليه هذه الفترات. باستخدام نتائج تحليل الوقت ، يمكن للمطور أن يرى في أي أجزاء من المشروع يوجد هامش زمني ، وبالتالي في التكرار ، وحيث لا يوجد مثل هذا الهامش.



تقوم الأنظمة المتزامنة بمزامنة عمل معالجة البيانات باستخدام إشارات ساعة التزامن ، والتي يشار إليها باختصار بساعات من الساعة الإنجليزية... يتم تخزين النتائج الوسيطة للعمليات في سجلات قادرة على حفظ الحالة عند الإدخال في وقت وصول حافة إشارة الساعة وتثبيتها عند الإخراج حتى دورة الساعة التالية.



وبالتالي ، تتكون الدوائر المتزامنة من عمليات نقل البيانات بين السجلات ( RTL ، ومنطق نقل السجل ، ونقل r2r ). ويتمثل أحد الجوانب الرئيسية للتحليل الزمني في قياس Slack (فترة الركود ). تُترجم هذه الكلمة حرفيًا على أنها "احتياطي زمني" ، "ترهل" ، ولكن في البيئة الناطقة بالروسية ، غالبًا ما يستخدم تتبع الورق من اللغة الإنجليزية - "الركود". في interregister التحويلات، ونحن نتحدث عن مسبقا بنطلون ( إعداد ) و عقد بنطلون ( عقد ).



التحويل بين السجلات



يعتبر النقل بين التسجيلات (الشكل 1) نظامًا لسجلين متصلين بشكل تسلسلي يعملان على ساعات متزامنة في الحالة العامة. في حالة بسيطة - على قطعة واحدة. يلعب أحد السجلات دور المصدر (المصدر) ، والدور الآخر لمتلقي البيانات (الوجهة). وفي التحويل التالي بين السجلات ، سيتم اعتبار سجل الاستلام هذا بالفعل المصدر ، إلخ. يوجد بين السجلات على مسار البيانات بعض المنطق التوافقي التعسفي الذي يحدده المستخدم. إنه غير متزامن لأنه لا يحتوي على عناصر ذاكرة مع إشارة متزامنة ، مثل السجلات. هذا المنطق هو ذلك السلوك ، تلك العمليات المنطقية التي يصفها المستخدم برمزه. السجلات هي تلك "المتغيرات" ذات البت الواحد التي يعطيها المستخدم أسماء في الكود وتعمل بشكل منفصل ،أو تتحد في ناقلات ومصفوفات.



صورة

الشكل: 1. مخطط نقل البيانات من السجل للتسجيل



هناك مفهومان مرتبطان باستلام البيانات بواسطة السجل المستلم: وقت الإعداد ووقت الانتظار. وهي تحدد نطاق الوقت الذي يجب أن تكون خلاله الإشارة عند دخل المستقبِل ثابتة وذات صلة. ثابت - يعني بشكل أساسي أن جهده يجب أن يكون قريبًا جدًا من إحدى الحالتين المنطقيتين - "0" أو "1" ، ولا يتدلى بينهما مع احتمال حدوث ارتباك. ذات صلة - يعني أن هذه القطعة من المعلومات يجب أن تكون مرتبطة بشكل مفيد بساعة الساعة هذه التي ستلتقطها ، وليس متأخراً قليلاً عن الساعة السابقة.



وقت الإعداد - الوقت المحدد مسبقًا ، وهو الحد الأدنى للوقت الذي يجب أن تكون فيه إشارة البيانات مضبوطة بالفعل على حالة مستقرة قبل وصول مقدمة الساعة.



مدة الانتظار - وقت الانتظار ، الحد الأدنى من الوقت الذي يجب أن تظل إشارة البيانات في حالة مستقرة بعد وصول مقدمة الساعة.



أي أن البيانات عند إدخال المستقبِل يجب أن تكون مستقرة وحديثة ليس فقط في لحظة وصول مقدمة الساعة ، ولكن أيضًا خلال فترة زمنية وقائية معينة حولها (الشكل 2) ، مع مدة لا تقل عن Setup_time + Hold_time. إذا تم استيفاء شرط استقرار البيانات خلال هذه الفترة الزمنية ، فسيكون السجل بالتأكيد قادرًا على التقاط البيانات الواردة دون أخطاء ، وإلا فلن يضمن أحد عدم حدوث أي عطل.



صورة

الشكل: 2.Setup Time واحتفظ بالوقت كفاصل حماية حول حافة الالتقاط عند إدخال الساعة في السجل



يتم تحديد قيم وقت الإعداد ووقت الانتظار بدقة من قبل الشركة المصنعة FPGA. إنها تعتمد على تقنية إنتاج البلورات وتعتبر ثوابت للتحليل ، نفس الشيء لكل سجل في البلورة. في أي حال ، لا تعتمد هذه القيم على المستخدم بأي شكل من الأشكال ؛ حساباتها مهمة فقط لأداة تحليل الوقت. ليس من المهم بالنسبة لنا أن نعرف ما هي تساويهم ، من المهم بالنسبة لنا فقط أن نعرف أنها موجودة وليست مساوية للصفر.



يتمثل جوهر تحليل الوقت في حساب فترات الركود لكل زوج من السجلات في المشروع ، والتي يوجد بينها نقل البيانات ، بحيث يجب أن تكون البيانات مستقرة أثناء فترة الحراسة. يوجد العديد من أزواج r2r في المشروع ، الآلاف أو حتى الملايين ، ولكن يجب تحليل كل واحد منهم للتأكد من أن المشروع يعمل.



هناك أيضًا نوعان من فترات الركود ، على التوالي - Setup Slack و Hold Slack (الشكل 3). يميز



Setup Slack الهامش الزمني الذي تحتويه البيانات من لحظة الاستقرار إلى بداية الفاصل الزمني للإعداد. يميز



Hold Slack الهامش الزمني الذي تحتويه البيانات من نهاية الفاصل الزمني للتعليق إلى فقدان استقرار البيانات.



يجب أن تكون Slacks إيجابية. إذا كانت فترة الركود سالبة ، فلن يتم استيفاء شرط استقرار بيانات الإدخال وستتفوق البيانات. كلما زاد الركود - كان ذلك أفضل ، ولكن عليك أن تفهم أنه في كل مستلم سجل له فترات زمنية محددة ومشتركة لمدة سنتين. هذا يعني أن الزيادة في فترة سماح واحدة تؤدي دائمًا إلى انخفاض في الأخرى. لذلك ، فإن الخيار الأفضل هو عندما يكون كلا البنكين موجبين ومتساويين تقريبًا ، أي لوحظ توازن الركود.



صورة

الشكل: 3. فترات الركود الإيجابية ، تم استيفاء شرط استقبال البيانات بنجاح ، ولكن لا يوجد توازن بين فترات الركود



حساب الركود



الآن دعنا ننتقل إلى كيفية حساب هذه الفترات الزمنية. لنبدأ مع Setup Slack.

ضع في اعتبارك مخطط نقل البيانات في الشكل. 4.



صورة

التين. 4. مخطط نقل البيانات



هنا نقدم مفاهيم مثل واجهة الزناد ، والتقاط المقدمة ، ووقت وصول البيانات ، ووقت انتظار البيانات ، ووقت وصول الساعة.



إن Launch Edge هو مقدمة الساعة التي جاءت إلى إدخال سجل المصدر وبدأت عملية نقل البيانات.



و مزلاج الحافة هو الجبهة على مدار الساعة التي تصل في السجل الاستقبال وقوات لبيانات الاستيلاء على المدخلات. يتم تعريف



لحظة وصول البيانات ( وقت وصول البيانات ) على أنها الوصول الفعلي للبيانات إلى السجل المستلم.



و البيانات في الوقت المطلوب يعرف بأنه الوقت الذي يأخذ البيانات للوصول إلى الوجهة قبل الوقت المحدد مسبقا في السجل الوجهة.



يُعرَّف وقت وصول الساعة ( وقت وصول الساعة ) بأنه وقت مرور حافة الالتقاط من إدخال الساعة للدائرة بأكملها إلى إدخال الساعة في جهاز الاستقبال. علاوة على ذلك ، فإن مقدمة الالتقاط تعني الجبهة التالية بعد مقدمة الإطلاق. ترسل واجهة الإطلاق البيانات من المصدر إلى المستلم ، وبعد فترة ساعة واحدة ، تلتقط مقدمة الالتقاط هذه البيانات من جانب المستلم.

يُفهم إدخال الساعة للدائرة بأكملها على أنه نقطة واحدة من حيث تتباعد الساعة إلى جميع السجلات التي تعمل عليها. عادة ما يكون هذا ناتجًا عن المخزن المؤقت للساعة العالمية أو إخراج PLL. في الحالة الأكثر بدائية ، هذا هو ساق FPGA ، الذي يتصل به مولد الساعة.



قد لا تحتوي المصطلحات المتضمنة في التحليل الزمني على قيمة نقطية ، ولكن نطاقًا معينًا من القيم الممكنة ، اعتمادًا على تتبع التصميم ودرجة حرارة البلورة. لذلك ، يتم تحليل أسوأ فترة سماح. يعتبر تبادل البيانات ناجحًا إذا ظل إيجابيًا حتى في أسوأ ظروف الركود.



كيف ترتبط لحظة وصول البيانات بحافة الزناد؟



نحن نعتبر وصول البيانات بمثابة مرور عبر سلسلة بها سجل لحدث ما ، تبدأ بميزة الزناد.



تظهر واجهة المشغل عند إدخال الساعة في النظام ، ثم تصل إلى مدخلات سجل المصدر لبعض الوقت ، ثم لبعض الوقت يتم تشغيل هذا السجل وإرسال بيانات جديدة إلى المخرجات ، ثم تمر هذه البيانات عبر الدوائر المنطقية التوافقية إلى السجل المستلم. يعتبر البديل الأسوأ والأبطأ لمرور البيانات ، لذلك تأتي المصطلحات مع بادئة "max".

maxDataArrivalTime=LaunchEdge+maxtCLK+tCO+maxtD



في هذه الصيغة ، يحمل مصطلح حافة الزناد معنى النقطة المرجعية بالنسبة إلى الأحداث التي تتطور ، وليس بعض القيمة المقاسة بالنانو ثانية.



مصطلحmaxtCLKهو الحد الأقصى للوقت الذي تستغرقه حافة الزناد للانتقال من إدخال الساعة للدائرة بأكملها إلى إدخال الساعة للمصدر. كقاعدة عامة ، يأخذ المحلل ببساطة النطاق الزمني من "ليس أقل من" إلى "بالضبط ليس أكثر من" ويستبدل الحد الأعلى "بالتأكيد ليس أكثر من" في هذه الصيغة. هذه القيمة مستقلة عن المستخدم. يقرر المترجم بنفسه مكان وضع السجل على البلورة ويأخذ في الاعتبار الوقت الذي تستغرقه الساعة للانتقال إليه. تم تصميم شبكة الاتصالات التي تتباعد من خلالها إشارة الساعة من المخزن المؤقت للساعة العالمية إلى السجلات بحيث تصل إشارة الساعة إلى أي سجل في نفس الفترة الزمنية تقريبًا. لذلك ، في الواقع ، الفرق بينmaxtCLK و mintCLKصغير للغاية ، ولكن لا يزال يؤخذ في الاعتبار.



مصطلحtCO- هذا هو وقت الساعة إلى الإخراج ، الذي يقضيه السجل في رؤية مقدمة الساعة يغير البيانات عند إخراجها. يعتبر المحلل أن هذه القيمة متساوية لجميع السجلات على الشريحة. هذه القيمة مستقلة عن المستخدم.



الفصل الأخيرmaxtDهو الحد الأقصى للوقت الذي يمر فيه حدث (بيانات) عبر منطق المجموعة بين السجلات ، والذي يحدده المستخدم. هذه القيمة تعتمد بشكل كبير على المستخدم. يعبر عن مقدار المنطق التوافقي بين السجلات. في المقابل ، غالبًا ما تكون السلاسل الطويلة للمنطق التوافقي نتيجة للتشفير غير الدقيق من قبل المستخدم.



من الأسهل حساب لحظة وصول القطعة إلى المستلم:

minClockArrivalTime=LatchEdge+mintCLK



هذه هي اللحظة الأولى التي تصل فيها حافة الالتقاط إلى إدخال الساعة لسجل الاستقبال.

مصطلحmintCLK- هذا هو الحد الأدنى من الوقت الذي سيصل فيه الالتقاط الأمامي إلى إدخال ساعة المستلم ، أي بالقياس مع الصيغة السابقة ، هذه المرة "بالتأكيد ليست أقل من". تعني الشرطة في هذه الحالة أننا نتحدث عن إدخال الساعة من المستلم ، وليس المصدر.



يُعرف وقت انتظار البيانات بأنه الوقت الذي تستغرقه البيانات للوصول إلى جهاز الاستقبال قبل الوقت المحدد مسبقًا في سجل جهاز الاستقبال:

minDataRequiredTime=minClockArrivalTimetSUCSU



مصطلح tSU- هذا معروف لنا بالفعل وقت الإعداد ، والذي يعتبر هو نفسه لكل سجل على البلورة. هذه المرة مستقلة عن المستخدم.



مصطلحCSUهو ساعة الشك الإعداد ، مسبقا عدم اليقين الوقت. مثل أي حالة عدم يقين أخرى في التحليل الزمني لوحدة CSU ليست عملية فيزيائية ، ولكنها طريقة لعكس تأثير الارتعاش في التحليل ، أو مجرد طريقة لإدخال وقت الحراسة في التحليل فقط في حالة. بكلمات بسيطة ، هذا هو هامش من الوقت لأخذ العمليات الصعبة في الاعتبار.



الآن بعد أن تم تعريف هذه المصطلحات ، يمكننا تحديد فترة السماح المحددة مسبقًا على أنها أصغر فرق بين الوقت المسموح به للسفر إلى الوجهة والوقت الذي يستغرقه بالفعل.

minSetupSlack=minDataRequiredTimemaxDataArrivalTime



الآن دعنا نوسع هذه المصطلحات ونعيد ترتيبها قليلاً:

minSetupSlack=LatchEdge+mintCLKtSUCSU

(LaunchEdge+maxtCLK+tCO+maxtD)

minSetupSlack=LatchEdgeLaunchEdgemaxtD

CSU+(mintCLKmaxtCLK)tSUtCO

=PeriodmaxtDCSU+mintCStSUtCO



ظهرت هنا مصطلحات جديدة.

من الواضح عن الفترة ، هذه هي فترة تردد الساعة ، أي الوقت بين Launch Edge و Latch Edge.

مصطلحmintCS- هذا هو انحراف الساعة - القيمة الدنيا لتمديد وقت وصول ساعة أمامية واحدة من مدخل ساعة النظام إلى سجلات متزامنة مختلفة. يتم تعريف الحد الأدنى لانتشار الساعة على أنه الفرق بين أصغر تأخير على مدار الساعة للمستلم وأكبر تأخير على مدار الساعة للمصدر.mintCS=mintCLKmaxtCLK... لا يُحدث المحلل أي فرق في تقدير هذا الوقت للسجلات المختلفة على الشريحة.



هذه هي الطريقة التي حسبنا بها فترة السماح المحددة مسبقًا. الهامش الإيجابي جيد ، والهامش السلبي سيء. سلاك يترجم حرفيا إلى الترهل. لذلك إذا كان هناك فترة سماح ، فلن يتم تكوين النقل بين التسجيل "vnatyag" ، فإن "الخيط" الشرطي يتراجع بحرية. Slack سلبي - وهذا يعني أن خيط النقل قد تم سحبه وكسره.



يوضح الشكل 5 كيف يمكن تمثيل صيغة الركود بيانياً:



صورة

الشكل. 5. تمثيل رسومي للإعداد Slack Expression



يوضح هذا العلاقة في خلفية إشارة الساعة ، وهذه هي إشارة الساعة عند إدخال الساعة للنظام ، وليس عند إدخال أي من السجلات.



الآن دعنا نحسب فترة السماح بالاستبقاء بطريقة مماثلة .



يمكن أيضًا تمثيله من خلال تعبير تم فيه تغيير علامات المصطلحات:

minHoldSlack=minDataArrivalTimemaxDataRequiredTime



تعتبر هذه الشروط الآن من الجانب الآخر.

minDataArrivalTime=LaunchEdge+mintCLK+tCO+mintD



الآن يعتبر أسرع متغير لمرور البيانات هنا وحيث كان "max" هو "min".



يُنظر أيضًا إلى لحظة وصول جبهة clok من منظور مختلف ، كأحدث ما يمكن:

maxClockArrivalTime=LatchEdge+maxtCLK



من المهم ملاحظة أنه في حالة Hold Slack ، فإن واجهتي Launch Edge و Latch Edge أصبحت الآن واحدة ونفس الواجهة ، بدلاً من جبهتين مختلفتين مفصولة بفترة الساعة. في هذه الحالة ، يحتاج سجل الاستلام إلى وقت للاحتفاظ بالبيانات عند الإدخال أثناء وقت الانتظار من وصول الساعة الأمامية. ولكن يتم تغيير البيانات عند إدخالها بنفس الجهة التي جاءت في مكان آخر إلى سجل المصدر. لذلك ، في تحليل فترة السماح الاحتفاظ ، الفرقLatchEdgeLaunchEdgeيساوي الصفر ، وليس الفترة.



يتم تعريف الوقت المطلوب في هذه الحالة على أنه الوقت الذي يجب ألا تتغير فيه البيانات عند إدخال بيانات المستلم ، حتى لا يتم التقاط وقت الانتظار:

maxDataRequiredTime=maxClockArrivalTime+tH+CHU



مصطلح tH- هذا معروف لنا بالفعل ، انتظر الوقت. يعتبر هو نفسه لكل سجل في الشريحة ولا يعتمد على المستخدم.

مصطلحCHUهو عدم اليقين عقد الساعة ، وعدم اليقين من عقد الوقت. تحمل بشكل عام نفس المعنى مثل CSU ، وكقاعدة عامة ، يتم أخذها مساوية لها.



إذا قمت ، كما في حالة فترة السماح المحددة مسبقًا ، بتوسيع المصطلحات وتبديلها ، فيمكن تحويل تعبير فترة السماح للاحتفاظ إلى النموذج التالي:

minHoldSlack=mintDmaxtCS+tCOtHCHU

maxtCS=maxtCLKmintCLK





نظرة أخرى على هذه الصيغة



أعلاه ، تم تقديم طريقة لحساب الركود ، وهي سمة من سمات الفهم البشري للعمليات الجارية. هنا "الجبهة قادمة ..." ، "البيانات قادمة ...". إذا كنت مهتمًا ، كمكمل ، فسوف أخبرك كيف يتخيل محلل قيود الوقت هذه الحسابات.



يقوم المحلل بتجميع المصطلحات بشكل مختلف ، بناءً على أسباب الآلة الخاصة به. لكن في النهاية يصل الأمر إلى نفس النتيجة.

يستخدم المصطلحين علاقة إعداد الساعة ( SR ) وعلاقة عقد الساعة ( HR ) - والتي يمكن ترجمتها كنسبة الوقت بين حواف المشغل للإعداد المسبق والانتظار ، على التوالي.

SR=SetupLatchEdgeSetupLaunchEdgeCSU

HR=HoldLatchEdgeHoldLaunchEdge+CHU



يوضح الشكل 6 كيفية ارتباط هذه الجبهات:



صورة

الشكل. 6. الجبهات المستخدمة في حسابات الركود.



يمكنك تحويل التعبيرات الناتجة فورًا إلى صيغة أكثر قابلية للفهم:

SR=PeriodCSU

HR=CHU



أطول وقت للتسجيل الداخلي (أكبر r2r مطلوب) هو أقصى وقت متاح للبيانات للوصول إلى الوجهة قبل بدء الفاصل الزمني المحدد مسبقًا:

Largest r2r Required=SR+mintCStCOtSU



أطول تأخير بين السجلات (أطول تأخير r2r) هو الوقت الذي يستغرقه نقل البيانات من سجل المصدر إلى سجل الوجهة على طول المسار الأطول:

Longest r2r Delay=maxtD



يمكننا الآن تحديد فترة السماح المحددة مسبقًا بالفرق بين الوقت المتاح للوصول إلى تسجيل الوجهة والوقت الفعلي للوصول إلى هناك:

minSetupSlack=Largest r2r RequiredLongest r2r Delay



سيعطينا توسيع شروط هذه الصيغة التمثيل المألوف لفترة السماح المحددة مسبقًا:

minSetupSlack=PeriodmaxtDCSU+mintCStSUtCO



الآن حول فترة السماح الاحتفاظ. أصغر متطلبات r2r هي الوقت الذي يستغرقه الاحتفاظ بالبيانات عند إدخال سجل الوجهة:

Smallest r2r Required=HR+maxtCSmintCO+tH



أقصر تأخير بين السجلات:

Shortest r2r Delay=tD



نحدد الآن فترة السماح للإعداد المسبق بالفرق بين أسرع وقت لترك البيانات لإدخال جهاز الاستقبال والوقت الذي يستغرقه الاحتفاظ بها هناك:

minHoldSlack=Shortest r2r DelaySmallest r2r Required



عند توسيع المصطلحات ، يأخذ التعبير أيضًا الشكل المألوف بالفعل:

minHoldSlack=mintDmaxtCS+tCOtHCHU



ما هي الاستنتاجات التي يمكن استخلاصها من الصيغ المملة؟



لقد رأينا كيف يتم حساب فترات الركود. كيف تستخدم هذه المعرفة؟

لنلق نظرة على تعبيرات الركود مرة أخرى:

minSetupSlack=PeriodmaxtDCSU+mintCStSUtCO

minHoldSlack=mintDmaxtCS+tCOtHCHU



إذا أصبحت بعض فترات الركود في المشروع سلبية ، فيمكننا تغييرها عن طريق تغيير شروطها. أي أننا نرى كيف يمكننا إصلاح الركود السيئ.



نرى المصطلحات التي لا تعتمد على المستخدم ، ولكنها تعتمد فقط على تقنية الكريستال. عليهtSU,tH,tCS,tCO... لا توجد وسيلة للتدخل.

نرى المصطلحات CSU و CHU ، والتي يأخذها المحلل عادةً مساوية لمعامل CU - عدم اليقين على مدار الساعة ، عدم استقرار تردد الساعة. بشكل عام ، هذه المعلمة صغيرة ، عشرات البيكو ثانية. يتم تحديده من قبل المستخدم في ملف القيود. والمستخدم ، بدوره ، يأخذها من مواصفات مولد الساعة. يعتبر أن المخزن المؤقت على مدار الساعة أو FPGA PLL الداخلي ، الذي يتلقى ساعة خارجية من المذبذب ويحولها إلى ساعة داخلية عند إدخال ساعة النظام ، يحافظ على قيمة CU كما هو الحال في المذبذب. إذا لم يتم تحديد CU ، فسيقوم المحلل بتعيينها على قيمة افتراضية ، على سبيل المثال ، يقوم Quartus بتعيينها على 20 ps. في الحالة العامة ، يخبرنا هذا المصطلح أنه من الأفضل استخدام مذبذبات عالية الثبات مع قدر ضئيل من عدم الاستقرار لتسجيل الوقت. المذبذبات الجيدة في حدود 20-60 ps.



يوضح مصطلح الفترة أن الطريقة الواضحة لمكافحة التوجيه الخاطئ لنقل البيانات هي تقليل تردد الساعة. إنه أمر معقول ، ولكنه ليس مقبولًا دائمًا ، نظرًا لأن الشروط المرجعية تتطلب عادةً بعض أداء النظام ، والتي لا يمكنك المتابعة دونها. ويعتمد الأداء بشكل مباشر على سرعة الساعة. يمكننا أيضًا أن نرى الفرق بين فترات السماح المحددة مسبقًا والمسكة - فتره الانتظار لا يعتمد على التردد.



وأخيرا ، المصطلحtDيميز بشكل أساسي كفاءة الكود المكتوب. ومن ثم ، فإن الطريقة الرئيسية لحل مشاكل الركود هي إعادة كتابتها بشكل صحيح. لحظة عظيمةtDيظهر في تصميمات الأجهزة المعقدة للغاية التي تتطلب الكثير من المنطق التوافقي. إذا ظهرت مثل هذه الإنشاءات المعقدة في مشروعك ، فإن الطريقة الكلاسيكية لحل المشكلة هي تقسيم نقل r2r المركب إلى عدة عمليات بسيطة ، وإدخال 1-2 سجلات أخرى في تسلسل العمليات. في هذه الحالة ، سيزداد التأخير في دورات العملية ، لكن سرعة العملية ستزيد. على سبيل المثال ، إضافة عدة متجهات في دورة ساعة واحدة ليست فكرة جيدة. من الأفضل إضافة عدة نواقل بدورها بمبالغ وسيطة. قد يكون من المستحيل تقسيم بعض الإنشاءات المعقدة إلى خط أنابيب من عدة هياكل بسيطة - إذن يجب إعادة كتابة هذا المنطق بطريقة مختلفة اختلافًا جوهريًا.



خاتمة



الهدف من هذه المقالة هو التعرف على وجود مفهوم فترة الركود وما يعتمد عليه هذا الركود ماديًا. بمعرفة ذلك ، يمكنك دراسة تقارير محلل قيود الوقت بشكل مستقل واستخلاص النتائج وتصحيح أداء مشروعك. هذه معادلات لن تضطر من خلالها إلى إجراء حساب حقيقي. لا تحتاج حتى إلى تذكرها عن ظهر قلب. من المهم فقط فهم منطق ما يحدث في النقل بين السجلات وفهم العوامل التي تحدد سرعة المشروع.



All Articles