Gerçek Zamanlı Osiloskop İle Analiz

8b/10b Kodlu Sinyallerin Doğrulanması ve Hataların Ayıklanması

  • Gerçek Zamanlı Osiloskop İle Analiz
    Gerçek Zamanlı Osiloskop İle Analiz
  • Gerçek Zamanlı Osiloskop İle Analiz
    Gerçek Zamanlı Osiloskop İle Analiz
  • Gerçek Zamanlı Osiloskop İle Analiz
    Gerçek Zamanlı Osiloskop İle Analiz
  • Gerçek Zamanlı Osiloskop İle Analiz
    Gerçek Zamanlı Osiloskop İle Analiz
  • Gerçek Zamanlı Osiloskop İle Analiz
    Gerçek Zamanlı Osiloskop İle Analiz
  • Gerçek Zamanlı Osiloskop İle Analiz
    Gerçek Zamanlı Osiloskop İle Analiz

Az miktarda seri teknoloji artık PCI-Express, Serial ATA, SAS, Fibre Channel, InfiniBand, FireWire, MIPI M-PHY, HDMI, DisplayPort, CIPRI, OBSAI, XAUI, USB3.0 ve diğerleri gibi birçok standartta kullanılan 8b/10b kodlamadan daha yaygın olarak kabul görmüş durumdadır. Bu nedenle herhangi bir tasarımcı neticede gerçek zamanlı osiloskop gibi yaygın bir cihaz kullanarak 8b/10b kodlu sinyalleri en verimli şekilde analiz etme yeteneğine ihtiyaç duyacaktır. 8b/10b hat kodlamasının amacı DC balansı elde etmek ve stabil saat yenilemesini garanti altına almak için yeterli durum değişikliklerini sağlamaktır. DC balans korunduğundan dolayı 8b/10b sinyaller kendi tümleşik devre pinlerinde DC offset'e sahip transformatörler, optik kanallar veya AC kuplajlı linkler üzerinden iletilebilir. AC kuplajlı veri sinyalleri veri içeriğine bağlı olarak DC driftlere sahip olabilecektir. Şekil 1'de gösterildiği gibi 1'lerden oluşan uzun bir dizi pozitif drifte yol açacak ve birçok 0 negatif gerilime doğru sürükleyecektir.

Sabit bir eşik veri sinyalinin driftlenen gerilim seviyesine göre oluştuğundan dolayı düzeltme olmadan alıcı tarafında hatalara neden olacaktır. 8b/10b hat kodlaması verinin 8 bitini 10 bit sembollere (veya karakterlere) eşleyerek bu etkileri telafi edecektir. Şekil 2'de özetlendiği gibi 1'in ve 0'ın arasındaki uzun süreli oranın hemen hemen yüzde 50 olduğunu garanti etmek için her bir 8 bit kelime çift 10b karaktere karşılık gelir. 1'ler ve 0'lar arasında bulunan rakamlardaki fark "running disparity" (RD) olarak isimlendirilir ve bu değer ya +1 ya da -1'dir.Bu yüzden bir 8 bit veri kelimesinin kodlanması veri oranı hızındaki önde bulunan sembole bağlı olarak değişecektir. Yüksek hızlı seri sinyaller saniye başına çoklu gigabitleri teslim ederken onlar kendi linkleri için fiziksel katmanda çok yüksek bant genişliğine ihtiyaç duyar. Seri linklerin performansını doğrulamanın bir yolu uygunluk testidir.

Uygunluk testleri genellikle tasarımın son evresinde değerlendirme için kullanılır. Eğer uygunluk testleri başarılı geçerse her şey yolunda demektir. Eğer başarılı geçmezse fiziksel katman hatalarının ayıklanması gerekli hale gelebilir. İlk adım çoğu kez ilgili standardın tanımladığı aralıklar ile ilgili olarak aralık dışı ölçümlerin bulunmasıdır. Bu durum daha başka ölçümlerin gerçekleşeceği yeri işaret edebilir ve problemleri çözecek eylemleri önerebilir. Eğer bu problemi çözmezse mühendis bir göz (eye) diyagramı kullanarak veri yolu üzerindeki tüm veri değerlerinin ve geçişlerin bir bileşiminde inceleme yapabilir. Göz diyagramı gürültü, titreme ve sinyal bütünlüğü ile ilgili sorunları gösterebilir. Göz diyagramı aynı zamanda birçok endüstri standardı uygunluk testinde belirtilmiş bir göz diyagramı maskesine ait ihlalleri kontrol etmek için de kullanılabilir. Sinyal bozulmasının herhangi bir türü göz maskesinde daha az marja veya daha fazla darbeye neden olacaktır. Bu bozulma fiziksel katman tasarımdaki önemli problemleri işaret edebilir. Maske test başarısızlıklarına neden olan sinyal bütünlüğü problemlerine ait örnekler yavaş sinyal yükselme zamanı (bant genişliği), küçük sinyal genliği (zayıflatma), büyük aşım (indüktans) veya büyük titreşim ve hatların karışması ve simgeler arası karışma (ISI) gibi gürültü bileşenlerini içerir.

Protokol hatalarının ayıklanması

Fiziksel katman ile ilgili sorunlar çoğu kez kesik kesik, aralıklı hatalara neden olacaktır. Fiziksel katman doğrulama ve protokol testi genellikle bir osiloskop kullanılarak farklı koşullar altında ve farklı test ekipmanları ile gerçekleştirilir. En iyi sinyal doğruluğunu ve en yüksek zamanlama çözünürlüğünü garanti etmek için bir mühendis osiloskop yardımı ile uygunluk test noktasında linki değerlendirmeli ve elde edilen "analog" dalga formunu ikili değerlere veya çift karakterlere ve komutlara dönüştürmelidir. Protokol tetikleyici ve kod çözme yazılımı, dalga formu verisini ilk olarak saati yenileyerek ve gerilimleri kullanıcı tanımlı bir eşik ile ve bazı ardıl izlemler ile karşılaştırarak bir ikili format içerisine dönüştürmek için kullanılabilir. Bu yazılımın nasıl çalıştığını gösteren bir diyagram Şekil 3'de ve sonuçları ile birlikte Şekil 4'de gösterilmiştir. Görüldüğü üzere karakterleri ve protokolü listeleyen iki tablo mevcuttur. Protokol, karakterler ve elde edilen dalga formu içerisindeki 0'lar ve 1'ler ile ilişkilidir. Bu fiziksel katman boyunca protokoldeki hataları izlemek için kolaylık sağlamaktadır. Şekil 5'de görüntülenen dalga formu muhtemelen alıcı tarafından yanlış yorumlanmış 0'lar ve 1'lerin hata nedeninin anlaşılması noktasında faydalı olabilir. İmleçler ve gerçek yakınlaştırma penceresi skop dalga formu ekranı ile senkronize edilebilir ve bu senkronizasyon protokol hata nedeninin bulunmasında oldukça faydalıdır.

Belirli Veri Değerlerinin Yakalanması

Protokol tablosunda belirli bir karakter aranırken veri akışı içerisinde protokol hatalarını saptamak yaygın bir yöntemdir. Fakat arama yakalama sonrası bir süreçtir ve yakalama bellek boyutu tarafından ayarlanmış bir zaman dilimi ile sınırlıdır. Yakalamalar arasındaki ölü süre oldukça büyüktür ve bunun nedeni osiloskop ve ayrıca dalga formunun ikilik içerisine yorumlanması ve daha sonra karakter aranması için gerekli yazılım işlem süresidir. Bu durum Şekil 6'da gösterilmiştir. Bu nedenle nadir hataların yakalanma şansı oldukça düşüktür. Örnek olarak 50GS/S'de örneklenmiş 10 milyon nokta varsa gerçek zamanlı yakalama 200 mikro saniye sonra duracaktır. Fakat sistemin bir sonraki 10 milyon noktalık bloğu yakalamaya başlamasından önce yüzlerce milisaniyelik bir süreyi harcayacaktır. Büyük bellek problemi daha da arttıracaktır. Nadir olayları bulmak için bu hatalar üzerinde tetikleme gereklidir. Pek çok dijital osiloskop tetikleme yeteneklerinin geniş bir portföyünü sağlar.

Geleneksel olarak sorun giderme zaman ve seviye nitelikli tetikleme ile ilişkilidir. Mevcut gelişmiş tetikleme modları ile birlikte hatalar, geçişler, kırpımlar gibi birçok olay üzerinde tetikleme artık geçmişe göre çok daha kolaydır. Protokol hataları için komutlar, karakterler veya bit dizileri üzerinde tetikleme faydalı olabilir. Ancak NRZ paternleri için tasarlanmış bir seri tetikleme devresi bu hataları bulamayabilir çünkü pek çok yüksek hızlı seri veri sinyali 8b/10b kodlanmıştır ve dedike edilmiş bir donanım çözümü gerektirir. Standart bir NRZ tetikleyici iki nedenden dolayı 8b/10b kodlanmış veri akış kelimeleri üzerinde tetikleme gerçekleştiremez. Bunlardan birincisi 8 bit kelimenin 10b sembole kodlanması ile veri oranı hızının değişecek olması ve tetikleyici belleğindeki sembol oranının aynı hıza ayarlanması gerekeceğidir. İkincisi, sağ taraf 8b/10b sembol üzerindeki tetiklemenin 8b/10b kodların veri akışı ile aynı hizaya getirilmesini veya senkronizasyonunu gerektirmesidir. Gerçek zamanlı tetikleme için donanımın tekil olan ve kod içerisinde herhangi bir bit noktasındaki veri akışı içerisinde bulunamayan "virgül sembolleri"nden (K.28.1, K.28.5 ve K.28.7) birini senkronize etme yeteneğine sahip olması gerekir. Senkronizasyon karakteri veri akışı içerisinde herhangi bir yerde ve çok seyrek olabilir veya sadece bir kez görülebilir. Senkronizasyon karakteri için bir örnek K28.5 (011110101) virgül sembolüdür. Hizalama sembolü bir kez bulunur bulunmaz bir sonraki sembolün kod çözümüne geçilebilir.

Yazılımsal "tetikleme" çözümleri aslında yakalanan veri üzerinde bir arama gerçekleştirir ve bu yüzden yakalamalar arasında çok büyük boşluklara neden olan uzun ölü sürelere sahiplerdir ve karakterin sorguda kaybolma şansını arttırırlar. Üst seviye teknolojiye sahip birçok osiloskop 6.25 Gb/s'ye kadar yüksek hızlı seri sinyallerindeki 8b/10b veri paternleri üzerinde tetikleme gerçekleştirmek için özel dedike edilmiş bir tetikleyici ile donatılmıştır. Bu durum cihazın artık 8b/10b karakterler üzerinde tetikleme yapabilmesinden dolayı seyrek olayları bulmasına imkân sağlamaktadır. Karakterler 8b/10b kodun 10 bitlik bir patern için kısaltmalardır, örnek olarak D31.6 veya K28.5. Yüksek hızlı seri standart protokolü ile ilgili olarak ikinci bir seçenek çoklu karakterlerden oluşan kelimelerin ( genellikle 4 kelime veya 40 bit) olduğu 8b/10b kelimeler üzerindeki tetiklemedir. Her standardın kendi kelime tanımlamalarına sahip olduğuna dikkat edilmelidir. Etkili bir hata ayıklama aracı 8b/10b kod hataları üzerinde tetikleme yeteneğidir. Hiçbir seri tetikleyici olası tüm karakter hataları üzerinde, disparite hataları üzerinde veya bayt senkronizasyon kayıpları üzerinde tetikleme gerçekleştiremeyecektir fakat genellikle disparite veya karakter hataları gibi yaygın hatalar üzerinde tetikleme gerçekleştirmesi mümkündür.

Network bileşeni gecikme ölçümleri

8b/10b seri patern üzerinde tetikleme aktif bir network bileşeninin gecikme ölçümü için kullanılabilir. Bu durumun 8b/10b üzerinde belirli bir tetikleme gerçekleştirmeksizin olayın çözümü için kolay bir iş olduğu düşünülebilir. Ancak gerçek koşullar altında gecikme ölçümü gerekli olduğunda bu durum zorlayıcı olabilir. Bu ölçüm için kurulum Şekil 7'de gösterilmiştir. Network bileşeninin giriş sinyali osiloskopun 1. kanalına ve çıkış veri akışı yine osiloskopun 2.kanalına bağlıdır. Bir veri üreteci gerekli veri akışını network bileşeninin (DUT) girişine sağlayacaktır. Veri akışı içerisindeki eşsiz bir patern bir zamanlama referansı olarak çalışacaktır. Diğer zamanlama konumu ile çakışmanın ortaya çıkmaması için bu zamanlama referansının nadir bir patern olması gerekir. Eğer patern tanımlanmışsa kanal 1 ve kanal 2'nin yakalanmış sinyalinde o desen için arama gerçekleştirebilir ve daha sonra iki konum arasındaki zamanı ölçebilirsiniz. Yazılımsal bir kod çözme fonksiyonu veri akışındaki diziyi bulmaya yardımcı olabilir. Ancak seyrek oluşundan dolayı arama çok zor gerçekleşebilir. Verilen osiloskop yakalama bellek limitasyonlarına göre zamanlama referansı için paternin bulunma şansı düşüktür. Aramadan farklı olarak 8b/10b tetikleme dizi bulunma şansını daha da yükseltir. Bunun nedeni tetiklemenin yakalama penceresi içerisinde daima paternin olacağını garanti etmesidir. 8b/10b tetikleme olmaksızın gecikme ölçümü veri üretecinden osiloskopa bir tetikleyici sinyali gerektirecektir.

Veri üretecinin çıkışındaki 8b/10b zamanlama referansının başlangıç noktası ile osiloskopun yakalama penceresini senkronize etmenin tek yolu bu olacaktır. Ancak bu yöntem gerçek dünya şartlarını simule ederken başarısız olur. Şekil 7'deki kurulumda gösterildiği gibi çift yönlü bir link iki network bileşenini bağlamaktadır. Network bileşeni A, network bileşeni B'nin (DUT) istenilen işletim modunda çalıştığını garanti altına almak için bir veri kaynağı olarak görev yapar. İletişim linki özel komutlar ile bağlanmalıdır ve DUT'u istenilen işletim modunda tutmak için bu komutların veri akışının ölçümler esnasında korunmuş olması gerekir. Bu nedenle herhangi bir veri üreteci tarafından sağlanmış bir statik veri paterni çalışmayacaktır. Bir önceki örneğe benzer eşsiz bir patern veri akışı içerisinde bir zamanlama referansı (işaretçi) için gereklidir. Patern çok seyrek olduğundan ve kaynak network bileşeni A'dan gelen mevcut hiçbir tetikleyici sinyal olmadığından dolayı bir 8b/10b tetikleyici DUT'un giriş ve çıkış sinyalinde patern bulmak için gereklidir. Network bileşeninin giriş ve çıkışı arasındaki gecikmeyi görmek ve ölçmek için en verimli yöntem iki yakınlaştırma penceresi kullanmaktır.

İlk yakınlaştırma penceresi kanal 1'de patern dizisinin başlangıcında ve ikinci yakınlaştırma penceresi kanal 2'de patern dizisinin başlangıcında konumlanmıştır. Gecikme ölçümü için osiloskopun yakalama zamanı penceresi gecikme zamanından daha büyük veya eşit olmalıdır. Seri verinin tetiklenmesi ve kod çözümü gibi seri veri yolu testi için tasarlanmış özellikler ile birlikte test ekipmanı çarpıcı bir biçimde mühendisin üretkenliğini arttırabilir ve daha güvenilir, daha üst seviye gerçekleştirilebilen tasarımlara neden olur. Bir düzineden daha fazla yüksek hızlı veri standardında kullanılmış olan 8b/10b kodlama en önemli seri teknolojilerden bir tanesidir. Burada bahsedildiği gibi 8b/10b seri veri yolları ile hata ayıklayan ve doğrulayan aygıtlar büyük ölçüde 8b/10b kodlama bilgisini gerçek zamanlı tetikleyen osiloskopların kullanımı yoluyla geliştirilebilir.

Onur Dil

Editör

Endüstri-Dünyası’nın amacı; endüstriyel mühendisliğine dünyanın her yerinde üretilip Türkiye pazarına sunulan yeni ürünler ve hizmetler ile ilgili bilgi vermektir. Eğer siz de firmanızın yeni ürünlerinin Endüstri Dünyası’nda yer almasını istiyorsanız lütfen teknik basın bültenlerinizi editörlerimize gönderin.

Ürün yazılarımız ile ilgili görüşleriniz ve önerileriniz var ise lütfen editorlerimizle irtibata geçiniz.

Daha Fazla Yazı İletişim