Saat çarpıklığı nedir ve neden negatif olabilir?


10

HDL derleyicim (Quartus II) zamanlama raporları oluşturur. İçinde, düğümlerin "saat çarpıklığı" sütunu vardır. Bulduğum saat çarpıklığının tek tanımı TimeQuest belgelerinde (bkz: sayfa 7-24):

Saatten saate aktarımlarda saat belirsizliğini veya eğriltmeyi manuel olarak belirlemek için set_clock_uncertaintykomutu kullanın.

Eğer çarpıklık "belirsizlik" ise, saat çarpıklığımın bazıları neden negatif (ör. -0.048)? Saat çarpıklığı tam olarak nedir?

Yanıtlar:


8

Gönderen Vikipedi :

TSkewRiRjTCiTCj

TSkewi,j=TCiTCj

Saat çarpıklığı pozitif veya negatif olabilir. Saat sinyalleri tam eşzamanlılık içindeyse, bu kayıtlarda gözlenen saat kayması sıfırdır.

Dolayısıyla, bir kayıttaki saat çarpıklığı miktarı başka bir kayıtçıya göredir. Göreceli olduğu için pozitif veya negatif olabilir.

Bazı çizimler:

pozitif / negatif çarpıklık önde gelen / geciken eğri

Örneğin, sağladığınız TimeQuest belgesinde tanımlandığı gibi bir aktarma aktarımı alın:

Kilitleme aktarımları, kayıttan kayıta aktarım cihazın çekirdeğinde gerçekleştiğinde ve kaynak ve hedef saatler aynı PLL çıkış piminden veya saat bağlantı noktasından geldiğinde meydana gelir.

Hedef kayıt fiziksel olarak saat üretim devresine daha yakınsa, saat muhtemelen kaynak yazmacına ulaşmadan önce hedef kayıt defterine ulaşacaktır ve bu da gerçekten pozitif olan önde gelen saat çarpıklığına yol açacaktır. Hedef kayıt, kaynak kayıttan sonra saatin kenarını aldıysa, saat kayması gecikmeli veya negatif olacaktır.

Bir başka yolla, saat eğriliği, bir saat kenarının, bir kayıttan kayıt defterine aktarımdaki bir kaynak kayıt ile ilgili olarak zaman birimi cinsinden verilen iki ayrı kayıtçıya ne kadar yakından ulaşacağı konusundaki belirsizliktir.

Bu farkın saatler arası aktarımları ve kurulum ve bekletme sürelerini içerecek şekilde genişletilmesi biraz dağınık hale gelir. Bu nedenle, bir kenarın veya tutma süresinin iki kayıt arasında "ne kadar senkronize" olduğunu düşünmek muhtemelen daha kolaydır. "Senkron" i "aynı anda meydana gelen" olarak düşünme eğilimindeyiz. Ancak işler nadiren tam olarak aynı zamanda gerçekleşir. O zaman buna hoşgörü göstermeliyiz. Toleranslar genellikle pozitif ve negatif (yani ±) olarak belirtilir.


10

Modern dijital mantık cihazları genellikle (*) "senkron tasarım uygulaması" ile tasarlanmıştır: global olarak senkronize kenar tetiklemeli kayıt aktarım tasarım stili (RTL): Tüm sıralı devreler, global saat sinyaline CLK bağlı bağlı tetiklemeli kayıtlara ayrılır ve saf kombinasyonel mantık.

Bu tasarım stili, insanların zamanlamadan bağımsız olarak hızlı bir şekilde dijital mantık sistemleri tasarlamalarını sağlar. Dahili durumun yerleşmesi için bir saat kenarından diğerine yeterli zaman olduğu sürece sistemleri "çalışacaktır".

Bu tasarım stili ile, saat kayması ve diğer zamanlama alakalı konular "Bu sistem için maksimum saat hızı nedir?" Endam hariç alakasız.

Saat çarpıklığı tam olarak nedir?

Örneğin:

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

Gerçek donanımda, "CLK" sinyali hiçbir zaman tam olarak aynı anda her kayıtta geçiş yapmaz . Eğri saat Tskew yukarı saatine aşağı saat nisbetle gecikmesini (olup bir ):

Tskew (kaynak, hedef) = hedef_saat - kaynak_saat

Burada kaynak_zamanı, yukarı akış kaynak kaydında (bu örnekte, R1 veya R2) aktif bir saat kenarının zamanıdır ve hedef_zamanı, bazı aşağı akım hedef kaydında (aynı durumda R3) "aynı" aktif saat kenarının zamanıdır. .

  • negatif saat çarpıklığı: R3'teki CLK, R1'deki saatten önce değişir.
  • Pozitif saat kayması: R3 de CLK anahtarları sonra R1'de saat.

Saat çarpıklığının etkisi nedir?

(belki de burada bir zamanlama şeması bunu daha açık hale getirecektir)

İşlerin düzgün çalışması için, en kötü durumda bile, R3'ün girişleri R3'ün kurulum süresi veya bekleme süresi boyunca değişmemelidir. Daha da kötüsü, işlerin düzgün çalışması için bir şeyler tasarlamalıyız:

Tskew (R1, R3) <Tco - Th.

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

nerede:

  • Tcalc, sistemin herhangi bir yerinde herhangi bir kombinasyonel mantık bloğunun en kötü durum yerleşim zamanıdır. (Bazen kritik yolda bulunan kombinasyonel mantık bloğunu yeniden tasarlayabilir, parçaları yukarı veya aşağı doğru itebilir veya başka bir boru hattı aşaması ekleyebiliriz, böylece yeni tasarım, saat hızını artırmamıza izin veren daha küçük bir Tcalc'ye sahiptir) .
  • Tclk_min, bir aktif saat kenarından bir sonraki aktif saat kenarına kadar olan minimum süredir. Yukarıdaki denklemden hesaplıyoruz.
  • Tsu, kayıt kurulum zamanıdır. Kayıt üreticisi bizden her zaman bu gereksinimi karşılayacak kadar yavaş bir saat kullanmamızı bekliyor.
  • Th, kayıt tutma süresidir. Kayıt üreticisi bizden her zaman bu gereksinimi karşılayacak kadar eğikliği kontrol etmemizi bekler.
  • Tco, saat-çıkış gecikmesidir (yayılma süresi). Her aktif saat kenarından sonra, R1 ve R2 yeni değerlere geçmeden önce eski değerleri kombinasyon mantığına kısa bir süre Tco için sürmeye devam eder. Bu, donanım tarafından ayarlanır ve üretici tarafından garanti edilir, ancak yalnızca Tsu ve Th ve üreticinin normal çalışma için belirttiği diğer gereksinimleri karşıladığımız sürece.

Çok fazla pozitif çarpıklık, zarar görmemiş bir felakettir. Çok fazla pozitif çarpıklık (bazı veri kombinasyonları ile) "gizlice yollara" neden olabilir, öyle ki R3 yerine N + 1 saatindeki "doğru verileri" kilitler (daha önce N saatinde R1 ve R2'ye kilitlenen verilerin belirleyici bir işlevi) , N + 1 saatinde R1 ve R2'ye kilitlenen yeni veriler sızabilir, kombinasyonel mantığı bozabilir ve yanlış verilerin "aynı" saat kenarı N + 1'de R3'e kilitlenmesine neden olabilir.

Herhangi bir negatif çarpıklık, saat hızının yavaşlatılmasıyla "sabitlenebilir". R3'ün girişlerine R1 ve R2'nin saat kenarı N'de yeni verileri kilitledikten sonra N ve daha sonra R3'e yerleşmesi için zaman vermek amacıyla sistemi daha yavaş bir saat hızında çalıştırmaya zorlaması açısından sadece "kötü". sonucu "sonraki" saat kenarında N + 1 mandallar.

Birçok sistem , eğriltmeyi sıfıra indirmeye çalışan bir saat dağıtım ağı kullanır. Tersine sezgisel olarak, saat yolu boyunca - saat üreticisinden her kayıt cihazının CLK girişine giden yol - dikkatlice gecikmeler ekleyerek, saat kenarı dalga cephesinin fiziksel olarak bir kayıt cihazının CLK girişinden fiziksel olarak kat ettiği görünür hızı artırmak mümkündür. bir sonraki kayıt cihazının CLK girişi ışık hızından daha hızlı olur.

Altera belgeleri söz

"Saat yollarında kombinasyonel mantık kullanmaktan kaçının çünkü saatin çarpık olmasına katkıda bulunur."

Bu, birçok insanın, bazı kayıtların yerel CLK girişini yönlendirmek için bir şekilde küresel CLK sinyalinden başka bir şeye neden olacak şekilde bir FPGA üzerine derlenen HDL yazması gerçeğinden bahsediyor. (Bu, yalnızca belirli koşullar karşılandığında yeni değerlerin bir kayıt defterine yüklenebilmesi için "saat geçidi" mantığı veya N saatinden yalnızca 1 tanesinin geçmesine izin veren "saat bölücü" mantığı olabilir). Bu yerel CLK genellikle bir şekilde küresel CLK'den türetilir - küresel CLK keneler ve daha sonra yerel CLK değişmez veya (sinyalin bu "başka bir şeyden" yayılması için global CLK'den sonra kısa bir gecikme) yerel CLK bir kez değişir.

Bu "başka bir şey", aşağı akış kaydının (R3) CLK'sını çalıştırdığında, çarpıklığı daha olumlu hale getirir. Bu "başka bir şey" akış yukarı yazmacının (R1 veya R2) CLK'sını tahrik ettiğinde, çarpıklığı daha negatif yapar. Bazen, yukarı akış kaydının CLK'sını çalıştıran ve aşağı akış kaydının CLK'sını çalıştıran her ne olursa olsun, hemen hemen aynı gecikmeye sahiptir ve bu ikisi arasındaki eğriliği pratik olarak sıfırlar.

Bazı ASIC'lerin içindeki saat dağıtım ağı , bazı kayıtlarda küçük miktarlarda pozitif saat eğriliği ile kasıtlı olarak tasarlanmıştır , bu da birleşimsel mantığa yerleşmek için biraz daha fazla zaman verir ve böylece tüm sistem daha hızlı bir saat hızında çalıştırılabilir. Buna "saat eğim optimizasyonu" veya "saat eğim zamanlaması" denir ve " retiming " ile ilgilidir.

Hala set_clock_uncertaintykomut tarafından gizem duyuyorum - neden hiç eğrilmeyi "elle belirtmek" isteyeyim ki?

(*) Bir istisna: asenkron sistemler .


Saat çarpıklığını en aza indirmek için gecikme eklemenin arkasındaki fikrin bazen saati tam bir döngü ile geciktirmeyi içerebileceğine inanıyorum. Saat açıldıktan ve çalışmaya başladıktan sonra, flip flop A'nın saat kenarını 1 tam olarak aynı zamanda flip flop B saat kenarını 2 göreceği şekilde ayarlayabilirsiniz. Harici bir görünümden farklı kenarlardır, ancak devre kenarlar mükemmel bir şekilde hizalandığı sürece bakım yapmayın.
ajs410

1

saat çarpıklığı, saatin arızaya neden olabilecek mesafe, kapasitans vb. nedeniyle devrenin farklı noktalarına ulaşmasıdır. Sanırım negatif referansa ulaşmadan önce saat o noktaya geldiğinde olmalı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.