घड़ी तिरछा क्या है, और यह नकारात्मक क्यों हो सकता है?


10

मेरा एचडीएल कंपाइलर (क्वार्टस II) टाइमिंग रिपोर्ट तैयार करता है। इसमें, नोड्स में "घड़ी तिरछा" कॉलम है। घड़ी की तिरछी नज़र की एकमात्र परिभाषा मुझे टाइमक्वेस्ट प्रलेखन में है (पृष्ठ 7-24 देखें):

घड़ी की अनिश्चितता के लिए मैन्युअल रूप से घड़ी अनिश्चितता, या तिरछा निर्दिष्ट करने के लिए, set_clock_uncertaintyकमांड का उपयोग करें ।

तो अगर तिरछा "अनिश्चितता" है, तो मेरी घड़ी की कुछ स्कंध नकारात्मक क्यों हैं (जैसे -0.048)? क्या वास्तव में घड़ी तिरछा है?

जवाबों:


8

से विकिपीडिया :

एक समकालिक सर्किट क्लॉक स्क्यू ( ) में दो क्रमिक-आसन्न रजिस्टरों के बीच आने वाले समय में अंतर होता है। दो क्रमिक-समीपवर्ती रजिस्टरों को देखते हुए क्रमशः और को क्लॉक पिंस में और रूप में घड़ी के आगमन के समय के साथ रजिस्टर किया जाता है, फिर घड़ी की तिरछी को इस प्रकार परिभाषित किया जा सकता है:टीएसwआरमैंआरजेटीसीमैंटीसीजे

टीएसwमैं,जे=टीसीमैं-टीसीजे

घड़ी तिरछा सकारात्मक या नकारात्मक हो सकता है। यदि घड़ी के संकेत पूरी तरह से समकालिकता में हैं, तो इन रजिस्टरों पर मनाया जाने वाला घड़ी तिरछा शून्य है।

तो एक रजिस्टर में क्लॉक स्क्यू की मात्रा दूसरे रजिस्टर के सापेक्ष होती है। चूंकि यह सापेक्ष है, यह सकारात्मक या नकारात्मक हो सकता है।

कुछ चित्र:

सकारात्मक / नकारात्मक तिरछा अग्रणी / तिरछा तिरछा

उदाहरण के लिए एक इंट्राक्लॉक ट्रांसफर लें, जो आपके द्वारा दिए गए TimeQuest दस्तावेज़ में परिभाषित किया गया है:

इंट्रालॉक ट्रांसफर तब होता है जब डिवाइस के कोर में रजिस्टर-टू-रजिस्टर ट्रांसफर होता है और सोर्स और डेस्टिनेशन क्लॉक्स एक ही PLL आउटपुट पिन या क्लॉक पोर्ट से आते हैं।

इसलिए यदि गंतव्य रजिस्टर भौतिक रूप से क्लॉक जेनरेशन सर्किटरी के करीब है, तो घड़ी शायद गंतव्य रजिस्टर पर पहुंच जाएगी, इससे पहले कि वह स्रोत रजिस्टर पर पहुंच जाए, जिसके परिणामस्वरूप एक अग्रणी घड़ी तिरछा है जो वास्तव में सकारात्मक है। यदि स्रोत रजिस्टर के बाद गंतव्य रजिस्टर को घड़ी का छोर मिला है, तो घड़ी की तिरछी लपट या नकारात्मक होगी।

एक अन्य तरीके से कहा, क्लॉक स्क्यू इस बात की अनिश्चितता है कि क्लॉक एज एक साथ रजिस्टर-टू-रजिस्टर ट्रांसफर में स्रोत रजिस्टर के संबंध में समय की इकाइयों में दिए गए दो अलग-अलग रजिस्टरों तक कैसे पहुंचेगा।

इंटर- लॉक ट्रांसफर और सेटअप और होल्ड टाइम को शामिल करने के लिए उस अंतर का विस्तार करना थोड़ा गड़बड़ हो जाता है। तो शायद यह सोचना आसान है कि दो रजिस्टरों के बीच एक धार या एक पकड़ समय "कितना तुल्यकालिक" है। हम "तुल्यकालिक" के रूप में "एक ही समय में होने वाली" के बारे में सोचते हैं। लेकिन चीजें शायद ही कभी बिल्कुल उसी समय होती हैं। इसलिए हमें उस समय एक सहिष्णुता रखने की जरूरत है। और सहिष्णुता को अक्सर सकारात्मक और नकारात्मक (यानी stated) के संदर्भ में कहा जाता है।


10

आधुनिक डिजिटल लॉजिक डिवाइस आमतौर पर (*) "सिंक्रोनस डिज़ाइन प्रैक्टिस" के साथ डिज़ाइन किए जाते हैं: एक विश्व स्तर पर सिंक्रोनस एज-ट्रिगर रजिस्टर-ट्रांसफर डिज़ाइन स्टाइल (आरटीएल): सभी अनुक्रमिक सर्किट वैश्विक घड़ी सिग्नल सीएलके से जुड़े एज-ट्रिगर रजिस्टरों में टूट जाते हैं। और शुद्ध संयोजन तर्क।

वह डिजाइन शैली लोगों को समय के संबंध में बिना डिजिटल लॉजिक सिस्टम को डिजाइन करने की अनुमति देती है। उनका सिस्टम "बस काम करेगा" जब तक कि आंतरिक राज्य के निपटान के लिए एक घड़ी के किनारे से दूसरे तक पर्याप्त समय नहीं हो जाता।

इस डिजाइन शैली के साथ, घड़ी तिरछा और अन्य समय-संबंधित मुद्दे अप्रासंगिक हैं, यह पता लगाने के अलावा कि "इस प्रणाली के लिए अधिकतम घड़ी दर क्या है?"।

क्या वास्तव में घड़ी तिरछा है?

उदाहरण के लिए:

...
     R1 - register 1              R3
     +-+                  
   ->| |------>( combinational  )  +-+
...->| |------>(         logic  )->| |--...
   ->|^|------>(                )->|^|
     +-+       (                )  +-+
      |   +--->(                )   |
     CLK  | +->(                )  CLK
          | |
     R2:  | |
     +-+  | |               
...->| |->+ |
   ->|^|->--+
     +-+
      |
     CLK

वास्तविक हार्डवेयर में, "सीएलके" संकेत वास्तव में हर रजिस्टर पर वास्तव में एक साथ स्विच नहीं करता हैघड़ी तिरछा Tskew नदी के ऊपर घड़ी के नीचे की ओर घड़ी रिश्तेदार की देरी (है एक ):

Tskew (स्रोत, गंतव्य) = गंतव्य_ समय - source_time

जहां source_time अपस्ट्रीम स्रोत रजिस्टर (इस मामले में, R1 या R2) में एक सक्रिय घड़ी के किनारे का समय है, और गंतव्य_टाइम कुछ डाउनस्ट्रीम गंतव्य रजिस्टर (इस मामले में, R3) में "समान" सक्रिय घड़ी बढ़त का समय है ।

  • नकारात्मक घड़ी तिरछा: R1 पर CLK R1 में घड़ी से पहले स्विच करता है ।
  • सकारात्मक घड़ी तिरछा: R1 पर CL3 R1 में घड़ी के बाद स्विच करता है ।

घड़ी के तिरछेपन का क्या प्रभाव है?

(शायद यहाँ एक समय आरेख यह स्पष्ट कर देगा)

चीजों को ठीक से काम करने के लिए, यहां तक ​​कि सबसे खराब स्थिति में भी, आर 3 के सेटअप समय या होल्ड समय के दौरान आर 3 के इनपुट में बदलाव नहीं करना चाहिए। अन्य चीजों में, ठीक से काम करने के लिए, हमें ऐसी चीजों को डिजाइन करना चाहिए:

Tskew (R1, R3) <Tco - Th।

Tclk_min = Tco + Tcalc + Tsu - Tskew (R1, R3)।

कहाँ पे:

  • Tcalc, सिस्टम में कहीं भी कॉम्बिनेशन लॉजिक के किसी भी ब्लॉक का सबसे खराब केस है। (कभी-कभी हम दहनशील तर्क के ब्लॉक को फिर से डिज़ाइन कर सकते हैं जो महत्वपूर्ण पथ पर है, भागों को ऊपर या नीचे की ओर धकेलता है, या पाइपलाइनिंग का एक और चरण सम्मिलित करता है, इसलिए नए डिज़ाइन में एक छोटा Tcalc है, जो हमें घड़ी दर को बढ़ाने की अनुमति देता है) ।
  • Tclk_min एक सक्रिय घड़ी के किनारे से अगले सक्रिय घड़ी के छोर तक की न्यूनतम समयावधि है। हम इसकी गणना उपरोक्त समीकरण से करते हैं।
  • त्सू रजिस्टर सेटअप समय है। रजिस्टर निर्माता हमसे अपेक्षा करता है कि हम इस आवश्यकता को पूरा करने के लिए एक घड़ी की धीमी गति का उपयोग करें।
  • Th रजिस्टर होल्ड टाइम है। रजिस्टर निर्माता ने हमसे अपेक्षा की है कि हम इस आवश्यकता को पूरा करने के लिए घड़ी की तिरछी गति को नियंत्रित करें।
  • Tco, क्लॉक-टू-आउटपुट देरी (प्रचार समय) है। प्रत्येक सक्रिय घड़ी बढ़त के बाद, आर 1 और आर 2 नए मूल्यों पर स्विच करने से पहले थोको समय के लिए पुराने मूल्यों को कॉम्बिनेशन लॉजिक के लिए जारी रखते हैं। यह हार्डवेयर द्वारा निर्धारित किया जाता है और निर्माता द्वारा इसकी गारंटी दी जाती है, लेकिन जब तक हम त्सू और गु को पूरा करते हैं और अन्य आवश्यकताओं के अनुसार निर्माता सामान्य ऑपरेशन के लिए निर्दिष्ट करता है।

बहुत अधिक सकारात्मक तिरछा एक असामयिक आपदा है। बहुत अधिक सकारात्मक तिरछा (कुछ डेटा संयोजनों के साथ) "स्नीक पाथ" का कारण बन सकता है जैसे कि, R3 के बजाय घड़ी N + 1 पर "सही डेटा" को लागू करना (डेटा का एक निर्धारक कार्य जो पहले N 1 में R1 और R2 में लेट गया था) , नया डेटा R1 और R2 को घड़ी N + 1 में लैच किया गया, कॉम्बिनेशन लॉजिक को परेशान कर सकता है, और गलत डेटा को R3 में "समान" क्लॉक एज N + 1 पर ले जाने का कारण बन सकता है।

घड़ी की दर को धीमा करके नकारात्मक तिरछी किसी भी राशि को "निश्चित" किया जा सकता है। यह केवल इस अर्थ में "बुरा" है कि यह हमें सिस्टम को धीमी घड़ी की दर पर चलाने के लिए मजबूर करता है, ताकि आर 1 और आर 2 के बाद व्यवस्थित करने के लिए आर 3 समय के इनपुट को घड़ी के किनारे एन पर नया डेटा दिया जा सके, और फिर बाद में आर 3 "अगले" घड़ी के किनारे N + 1 पर परिणाम लाच करता है।

कई सिस्टम एक घड़ी वितरण नेटवर्क का उपयोग करते हैं जो तिरछा शून्य को कम करने की कोशिश करता है। काउंटर-सहजता से, घड़ी पथ के साथ देरी को ध्यान से जोड़कर - प्रत्येक रजिस्टर के सीएलके इनपुट के लिए घड़ी जनरेटर से पथ - यह स्पष्ट गति को बढ़ाने के लिए संभव है कि घड़ी के किनारे की तरंग शारीरिक रूप से एक रजिस्टर के सीएलके इनपुट से यात्रा करती है अगले रजिस्टर सीएलके इनपुट प्रकाश की गति से तेज करने के लिए।

Altera प्रलेखन का उल्लेख है

"घड़ी के रास्तों में दहनशील तर्क का उपयोग करने से बचें क्योंकि यह घड़ी के तिरछेपन में योगदान देता है।"

यह इस तथ्य का उल्लेख है कि बहुत से लोग एचडीएल लिखते हैं जो एक FPGA पर एक तरह से संकलित हो जाता है जो किसी तरह से कुछ रजिस्टरों के स्थानीय सीएलके इनपुट को चलाने के लिए वैश्विक सीएलके सिग्नल के अलावा कुछ और का कारण बनता है। (यह "क्लॉक गेटिंग" लॉजिक हो सकता है ताकि नए मान केवल एक रजिस्टर में लोड हो जाएं जब कुछ शर्तें पूरी हों, या "क्लॉक डिवाइडर" लॉजिक जो केवल N घड़ियों में से 1 को, या आदि से बाहर जाने दें। वह स्थानीय सीएलके आमतौर पर किसी भी तरह से वैश्विक सीएलके से प्राप्त होता है - वैश्विक सीएलके टिक जाता है, और फिर स्थानीय सीएलके नहीं बदलता है, या (उस "कुछ अन्य" के माध्यम से प्रचार के लिए संकेत के लिए वैश्विक सीएलके के बाद एक छोटी देरी) स्थानीय सीएलके एक बार बदल जाता है।

जब वह "कुछ अन्य" डाउनस्ट्रीम रजिस्टर (आर 3) के सीएलके को चलाता है, तो यह तिरछा को अधिक सकारात्मक बनाता है। जब वह "कुछ अन्य" अपस्ट्रीम रजिस्टर (आर 1 या आर 2) के सीएलके को चलाता है, तो यह तिरछा अधिक नकारात्मक बनाता है। कभी-कभी, अपस्ट्रीम रजिस्टर के सीएलके को जो भी ड्राइव करता है और जो भी डाउनस्ट्रीम रजिस्टर के सीएलके को ड्राइव करता है, व्यावहारिक रूप से एक ही देरी होती है, जिससे उनके बीच तिरछा व्यावहारिक रूप से शून्य हो जाता है।

कुछ ASIC के अंदर क्लॉक डिस्ट्रीब्यूशन नेटवर्क को जानबूझकर कुछ रजिस्टरों पर सकारात्मक क्लॉक तिरछी मात्रा में डिज़ाइन किया गया है , जो कॉम्बीनेशन लॉजिक को व्यवस्थित करने के लिए थोड़ा अधिक समय देता है और इसलिए पूरे सिस्टम को तेज क्लॉक रेट पर चलाया जा सकता है। इसे "क्लॉक स्क्यू ऑप्टिमाइज़ेशन" या "क्लॉक स्क्यू शेड्यूलिंग" कहा जाता है, और " रिटिमिंग " से संबंधित है ।

मैं अभी भी set_clock_uncertaintyकमान द्वारा चकित हूं - मैं कभी भी तिरछा "मैन्युअल रूप से निर्दिष्ट" क्यों करना चाहूंगा?

(*) एक अपवाद: अतुल्यकालिक प्रणाली


मेरा मानना ​​है कि घड़ी के तिरछेपन को कम करने के लिए देरी को जोड़ने के पीछे के विचार में कभी-कभी लगभग एक पूर्ण चक्र द्वारा घड़ी को विलंबित करना शामिल हो सकता है। एक बार घड़ी उठने और चलने के बाद, आप इसे सेट कर सकते हैं इसलिए फ्लिप फ्लॉप A एक ही समय में घड़ी किनारे 1 को देखता है फ्लिप फ्लॉप B घड़ी की धार को देखता है 2. एक बाहरी दृश्य से, वे अलग-अलग किनारे हैं, लेकिन सर्किट doesn जब तक किनारों को पूरी तरह से गठबंधन नहीं किया जाता है तब तक इसकी देखभाल नहीं करें।
अज्ज ४१०

1

क्लॉक तिरछा तब होता है जब घड़ी सर्किट के विभिन्न बिंदुओं पर दूरी, समाई आदि के कारण अलग-अलग समय पर आती है जो इसे खराबी का कारण बन सकती है। मुझे लगता है कि जब संदर्भ के लिए घड़ी उस समय से पहले हो जाती है तो नकारात्मक होना चाहिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.