Microsemi Devre İçi FPGA Hata Ayıklama
Ürün Bilgileri
Özellikler
- Cihaz Türü: Microsemi SmartFusion2 SoC FPGA
- Çıkış Tarihi: Mayıs 2014
- Hata Ayıklama Yetenekleri: Devre İçi FPGA Hata Ayıklama, Gömülü Mantık Analizörü
- Maksimum Veri Yakalama Frekansı: 100MHz'e kadar
Soyut
FPGA'lar gömülü sistemlerde birçok tasarım avantajına sahip güçlü tasarım öğeleridir.tages, ancak bu aygıtlar hata ayıklanması gereken karmaşık tasarım sorunları olan karmaşık tasarımlara sahip olabilir. Tanım hataları, sistem etkileşim sorunları ve sistem zamanlama hataları gibi tasarım sorunlarını izlemek zor olabilir. Bir FPGA'ya devre içi hata ayıklama yeteneklerinin dahil edilmesi, donanım hata ayıklamasını önemli ölçüde iyileştirebilir ve saatlerce süren hayal kırıklığını önleyebilir. Bu makale, FPGA'lar için devre içi hata ayıklamaya yönelik birkaç farklı yaklaşımı açıklar, temel uzlaşmaları belirler ve bir örnek aracılığıylaampMicrosemi SmartFusion®2 SoC FPGA aygıtına yönelik tasarlanan tasarım, yeni yeteneklerin hata ayıklama ve test hızını artırmak için nasıl kullanılabileceğini gösterecek.
giriiş
FPGA'lar yaygın ve güçlü tasarım öğeleridir ve artık hemen hemen her gömülü sistemde bulunmaktadır. Artan kapasite, karmaşık çip üstü işlevsel blokların ve gelişmiş seri arayüzlerin dahil edilmesiyle bu aygıtlar ayrıca hata ayıklanması gereken karmaşık tasarım sorunlarına da sahip olabilir. İşlevsel tanımlama hataları (FPGA veya sistem düzeyinde), işlevsel sistem etkileşim sorunları, sistem zamanlama sorunları ve IC'ler arasındaki sinyal sadakati sorunları (gürültü, çapraz konuşma veya yansımalar gibi) gibi sorunları izlemek, gelişmiş FPGA'lar kullanıldığında çok daha karmaşık hale gelir. Simülasyon, birçok tasarım sorununu belirlemede kesinlikle büyük bir yardımdır, ancak birçok gerçek dünya etkileşimi, tasarım donanımda uygulanana kadar ortaya çıkmaz. Süreci basitleştirmek için karmaşık tasarım sorunlarını ayıklamak için birkaç farklı teknik geliştirilmiştir. Çeşitli avantajlar da dahil olmak üzere bu temel tekniklerin her birinin dikkatli bir şekilde anlaşılmasıtages ve dezavantajtagBelirli bir tasarım için hangi tekniğin veya teknik kombinasyonunun uygun olduğunun değerlendirilmesinde faydalıdır.
eski birampMicrosemi SmartFusion2 SoC FPGA aygıtı için hedeflenen FPGA tasarımı, bazı avantajları göstermek için kullanılabilirtages ve dezavantajtagBu standart tekniklerin yanı sıra en yeni devre içi hata ayıklama yetenekleri. Bu örnekampBu çeşitli tekniklerin, donanım hata ayıklaması sırasında donanım sorunlarının tanımlanmasını ve ortadan kaldırılmasını hızlandırmak için nasıl kullanılabileceğini göstereceğiz.
FPGA Hata Ayıklama Neden Sistem Tasarımı ve Geliştirmenin Kritik Bir Yönüdür?
FPGA'lar, onları diğer tasarım öğelerinden ayıran iki ana kullanım modeline sahiptir. FPGA'lar üretim ürününde kullanılabilir veya bir üretim tasarım konseptini kanıtlamak veya prototipini oluşturmak için bir geliştirme aracı olarak kullanılabilir. Üretim aracı olarak kullanıldığında, FPGA'lar ASIC veya CPU tabanlı üretim araçlarından çok daha esnek bir hedef olabilir. Bu, özellikle donanımda henüz uygulanmamış yeni bir tasarım için önemlidir. Farklı mimari seçeneklere sahip tasarımlar kolayca oluşturulabilir ve test edilebilir, böylece optimum tasarım belirlenir. Yonga üstü işlemcilere sahip FPGA'lar (SoC FPGA'lar), CPU tabanlı işlemeyi donanım destekli FPGA tabanlı hızlandırma işlevleriyle takas etmeyi de mümkün kılar. Bu avantagYeni ürün geliştirmelerinde tasarım, doğrulama, test ve arıza analizi için gereken süreyi önemli ölçüde azaltabilir.
Bir tasarımın prototiplenmesinde, belki de bir üretim ASIC'i için kullanıldığında, FPGA esnekliği önemli bir avantajdır. Tam hızda çalışmayan bile olsa gerçek bir donanım platformu, ayrıntılı sistem performans ölçümleri, verim analizi verileri ve mimari kavram kanıtı sonuçlarını elde etmeyi çok daha kolaylaştırır. Endüstri standardı veri yollarının (PCIe®, Gigabit Ethernet, XAUI, USB, CAN ve diğerleri gibi) sertleştirilmiş uygulamaları için FPGA desteği, bu arayüzlerle ilişkili testleri basitleştirir. Yonga üstü ARM işlemcilere sahip en yeni FPGA aileleri (SoC FPGA'lar), gömülü işlemcilerle uygulamaları prototiplemeyi kolaylaştırır. Daha önce geliştirilen işlemci kodu prototipe taşınabilir ve yeni kod donanım tasarım çabasıyla paralel olarak oluşturulabilir.
Standart bir işlemcinin standart arayüz veri yollarıyla bu kombinasyonu, mevcut kod kütüphaneleri, sürücüler, işlevsel API'ler, Gerçek Zamanlı İşletim Sistemleri ve hatta tam İşletim Sistemlerinin büyük ekosisteminden yararlanarak çok daha hızlı bir şekilde çalışan bir prototip oluşturmayı mümkün kılar. Ek olarak, tasarım sağlamlaştırıldıktan sonra, FPGA prototipi gerçek sistem verilerini yansıtan kapsamlı simülasyon test kümelerini (hem uyaran hem de yanıt için) yakalamak için kullanılabilir. Bu veri kümeleri, bir ASIC veya diğer üretim uygulamaları için nihai simülasyonları oluşturmada paha biçilmez olabilir. AvantajtagFPGA'yı tasarım prototipi olarak kullanmanın avantajları, son ürün uygulaması için tasarım, doğrulama, test ve arıza analizi süresini önemli ölçüde azaltabilir.
Bu iki yaygın FPGA kullanım modelinde de FPGA'nın bir tasarım hedefi olarak esnekliği önemli bir avantajdır.tage. Bu, birçok tasarım değişikliği ve yinelemenin norm olacağı ve dolayısıyla tasarım hatalarını hızla ayıklama yeteneğinin mümkün olduğunca çok tasarım seçeneğini etkinleştirmek için kritik olacağı anlamına gelir. Verimli bir hata ayıklama yeteneği olmadan, avantajların çoğutagFPGA tasarım esnekliğinin e'si, gereken ek hata ayıklama süresiyle azalacaktır. Neyse ki, FPGA'lar gerçek zamanlı hata ayıklamayı önemli ölçüde basitleştiren ek donanım özellikleri de sağlayabilir. Bu yeteneklere bakmadan önce, bir FPGA tasarımının karşılaşabileceği en yaygın sorun türlerine bakalım, böylece çeşitli hata ayıklama araçlarının verimliliğini ve ilişkili takaslarını değerlendirmek için uygun arka plana sahip oluruz.
FPGA Tasarımlarını Hata Ayıklarken Karşılaşılan Yaygın Sorunlar
Modern FPGA'ların getirdiği genişletilmiş yeteneklerle birlikte, ilişkili artan karmaşıklık, hatasız tasarımlar oluşturmayı daha da zorlaştırır. Aslında, hata ayıklamanın gömülü sistem tasarım döngüsünün %50'sinden fazlasını alabileceği tahmin edilmiştir. Pazara sunma süresi baskıları geliştirme döngüsünü sıkıştırmaya devam ederken, ilk sistemin donanım hata ayıklaması sonradan akla gelen bir şeye indirgenir; çoğu zaman doğrulamanın (kendi başına büyük bir yüzde)tagGeliştirme programının e'si), ilk sistem devreye alınmasından önce tüm hataları yakalayacaktır. Tipik bir tasarımın ilk sistem devreye alınması sırasında karşılaşacağı zorlukları daha iyi anlamak için sadece birkaç yaygın sistem sorununa bakalım.
İşlevsel tanımlama hatalarını bulmak iki kat daha zor olabilir çünkü tasarımcı belirli bir gereksinimi yanlış anlamıştır, bu nedenle hata, tasarımın ayrıntılarına dikkatlice bakıldığında bile gözden kaçabilir.ampYaygın bir işlevsel tanımlama hatasının örneği, bir durum makinesi geçişinin doğru durumda sonlanmamasıdır. Hatalar ayrıca sistem arayüzlerinde bir etkileşim sorunu olarak da ortaya çıkabilir. Örneğin arayüz gecikmesiample, yanlış belirtilmiş olabilir ve bu da beklenmeyen bir arabellek taşması veya alt taşması durumuna neden olabilir.
Sistem düzeyindeki zamanlama sorunları, tasarım hatalarının bir diğer çok yaygın kaynağıdır. Özellikle eşzamansız olaylar, senkronizasyon veya zamanlama alanı geçişi etkileri dikkatlice dikkate alınmadığında yaygın bir hata kaynağıdır. Hızlı çalışırken bu tür hatalar çok sorunlu olabilir ve çok seyrek olarak ortaya çıkabilir, belki de yalnızca belirli veri desenleri kendini gösterdiğinde. Birçok yaygın zamanlama ihlali bu kategoriye girer ve genellikle simüle edilmesi çok zordur, hatta imkansızdır.
Zamanlama ihlalleri, özellikle her devre için birden fazla güç rayına sahip sistemlerde, entegre devreler arasındaki düşük sinyal sadakatinin bir sonucu da olabilir. Düşük sinyal sadakati, sinyal gürültüsüne, çapraz konuşmaya, yansımalara, aşırı yüklemeye ve genellikle zamanlama ihlalleri olarak ortaya çıkan Elektromanyetik Girişim (EMI) sorunlarına neden olabilir. Geçici durumlar (özellikle sistem başlatma veya kapatma sırasında), yük değişimleri ve yüksek güç dağılımı gerilimleri gibi güç kaynağı sorunları da genellikle bir güç kaynağı kaynağına kolayca izlenemeyen gizemli hatalara neden olabilir. Tasarım tamamen doğru olsa bile, kart üretim sorunları hatalara neden olabilir. Örneğin, hatalı lehim bağlantıları ve düzgün takılmamış konektörlerample, hataların kaynağı olabilir ve hatta sıcaklığa veya kart konumuna bağlı olabilir. Gelişmiş FPGA paketleme tekniklerinin kullanımı, baskılı devre kartındaki sinyalleri araştırmayı zorlaştırabilir, bu nedenle sadece istenen bir sinyale erişmek bile çoğu zaman sorunlu olabilir. Çoğu zaman birçok tasarım sorunu anında bir hata yaratmaz ve hata gerçekten kendini gösterene kadar tasarım boyunca dalgalanmalıdır. Başlangıç hatasını kök nedene kadar izlemek çoğu zaman sinir bozucu, zor ve zaman alıcı bir görev olabilir.
Örneğinample, bir çeviri tablosunda yanlış olan tek bir bit, birçok döngü sonrasına kadar bir hataya neden olmayabilir. Bu makalede daha sonra ele alacağımız, özel devre içi hata ayıklama donanımı kullanan araçlardan bazıları, özellikle bu 'hata avlarını' daha hızlı ve kolay hale getirmeyi hedeflemektedir. Bu araçların ayrıntılarına girmeden önce, önce, gelişmiştages ve dezavantajtagSimülasyonun hata ayıklama için kullanılmasının örnekleri.
Hata Ayıklama İçin Simülasyon Kullanımı
Tipik olarak bir tasarım simülasyonunda, tasarımın içindeki ve dışındaki tüm gerçek yaşam bileşenleri, standart bir CPU'da ardışık olarak yürütülen yazılım süreçleri olarak matematiksel olarak modellenir. Tasarıma geniş bir uyaran yelpazesi uygulamak ve beklenen çıktıyı simüle edilen tasarım çıktısıyla karşılaştırmak, en belirgin tasarım hatalarını yakalamanın kolay bir yoludur. Tipik bir simülasyon çalışmasını gösteren bir pencere aşağıdaki Şekil 1'de verilmiştir. Açık avantajtagSimülasyonun donanım tabanlı hata ayıklamaya karşı avantajı, simülasyonun yazılımda yapılabilmesidir; gerçek bir donanım tabanlı tasarım ve test tezgahına gerek yoktur. Simülasyon, özellikle yanlış özellikler, arayüz gereksinimlerinin yanlış anlaşılması, işlev hataları ve basit uyaran vektörleri aracılığıyla kolayca tespit edilebilen diğer birçok 'kaba' hata türüyle ilişkili olanlar olmak üzere birçok tasarım hatasını hızla yakalayabilir.
Simülasyon, tasarımcıya kapsamlı uyaran kombinasyonları sunulduğunda ve ortaya çıkan çıktılar iyi bilindiğinde özellikle etkilidir. Bu durumlarda, simülasyon bir tasarımın neredeyse kapsamlı bir testini yapabilir. Ne yazık ki, çoğu tasarım kapsamlı test takımlarına kolayca erişemez ve bunları oluşturma süreci çok zaman alıcı olabilir. Tasarımın %100'ünü kapsayan bir test takımı oluşturmak, büyük FPGA tabanlı tasarımlar için neredeyse imkansızdır ve tasarımın temel unsurlarını kapsamaya çalışmak için kısayollar kullanılmalıdır. Simülasyonla ilgili bir diğer zorluk, bunun 'gerçek dünya' uygulaması olmaması ve asenkron olayları, yüksek hızlı sistem etkileşimlerini veya zamanlama ihlallerini yakalayamamasıdır. Son olarak, simülasyon süreci çok yavaş olabilir ve çok sayıda yineleme gerekiyorsa, simülasyon hızla geliştirme sürecinin en çok zaman alan ve genellikle en maliyetli kısmı haline gelir.
Alternatif olarak (veya belki daha iyi ifade etmek gerekirse, simülasyona bir ek olarak) FPGA tasarımcıları, cihaz içindeki önemli sinyalleri gözlemlemek ve kontrol etmek için FPGA tasarımına hata ayıklama donanımı ekleyebileceklerini keşfettiler. Bu teknikler başlangıçta özel yaklaşımlar olarak geliştirildi, ancak kademeli olarak standart bir donanım hata ayıklama stratejisine dönüştü. Devre içi hata ayıklama yeteneklerinin bu kullanımı önemli avantajlar sunartagFPGA tabanlı tasarımlar için geçerlidir ve bir sonraki bölümde en yaygın üç strateji ve bunların çeşitli avantajları incelenecektir.tages ve dezavantajtagee.
FPGA'lar için Yaygın Devre İçi Hata Ayıklama Yaklaşımları
FPGA'larda devre içi hata ayıklama yeteneklerini uygulamak için en yaygın teknikler, gömülü bir mantık analizörü, harici test ekipmanı veya FPGA yapısına gömülü özel sinyal probu donanımı kullanır. Gömülü mantık analizörü genellikle FPGA yapısı kullanılarak uygulanır ve tasarıma yerleştirilir. JTAG port analizöre erişmek için kullanılır ve yakalanan veriler bir PC'de görüntülenebilir. Harici test ekipmanı kullanıldığında, test edilen FPGA tasarımı, seçili dahili FPGA sinyallerinin çıkış pinlerine yönlendirileceği şekilde değiştirilir. Bu pinler daha sonra harici test ekipmanı aracılığıyla gözlemlenebilir. Özel sinyal probu donanımı kullanıldığında, gerçek zamanlı olarak çok çeşitli dahili sinyaller okunabilir. Bazı prob uygulamaları, hata ayıklama yeteneklerini daha da geliştirerek kayıt veya bellek konumlarına yazmak için bile kullanılabilir. Daha ayrıntılı olarak,tages ve dezavantajtagBu tekniklerin her birinin bir örneğini inceleyin ve ardından bir örnek inceleyinampBu farklı yaklaşımların genel hata ayıklama süresini nasıl etkileyebileceğini görmek için tasarımı inceleyin.
Devre İçi FPGA Hata Ayıklama-Gömülü Mantık Analizörü
Gömülü mantık analizörü kavramı, tasarımcıların FPGA'lar ilk kez kullanıldığında uyguladıkları özel devre içi hata ayıklama yeteneklerinin doğrudan bir sonucuydu. Gömülü mantık analizörleri yeni yetenekler ekledi ve tasarımcının kendi analizörünü geliştirmesi gereksinimini ortadan kaldırdı. Çoğu FPGA bu yetenekleri sunar ve üçüncü taraflar standart analizörler sunar (Synopsys'ten Identify®, popüler bir örnektiramp(le) daha üst düzey araçlarla kolayca arayüz oluşturarak üretkenliği daha da artırabilir.
Mantık analizörü işlevi, Şekil 2'de gösterildiği gibi, FPGA yapısı ve gömülü bellek bloklarını iz tamponları olarak kullanarak tasarıma eklenir. Tetikleme kaynakları da oluşturulur, böylece karmaşık sinyal etkileşimleri kolayca seçilebilir ve yakalanabilir. Kontrol ve veri aktarımı için analizöre erişim genellikle standart J aracılığıyla yapılır.TAG arayüz gereksinimlerini basitleştirmek için port. Yakalanan veriler ortak bir bilgisayar kullanılarak görüntülenebilir viewYazılımı çalıştırır ve genellikle bir mantık simülatörü dalga formu çıktısını yansıtır viewstil.
AvantajtagBu yaklaşımın avantajları, ek FPGA G/Ç pinlerinin kullanılmaması, yalnızca standart JTAG sinyalleri. Gömülü mantık analizörü IP çekirdekleri genellikle nispeten ucuzdur ve bazı durumlarda mevcut FPGA sentezi veya simülasyon araçları için bir seçenek olabilir. Bazı durumlarda, gömülü mantık analizörü daha uygunsa kullanılmayan G/Ç'lerde ek çıktılar da sağlayabilir. Dezavantajlarından biritagBu yaklaşımın bir sonucu olarak, büyük miktarda FPGA kaynağına ihtiyaç duyulur. Özellikle, izleme tamponları kullanılırsa bu, kullanılabilir blok belleklerinin sayısını azaltacaktır. Geniş bir tampona ihtiyaç duyulursa bu da bellek derinliğine karşı bir takas olacaktır (çünkü daha geniş bir belleğin kullanımı daha sığ bellek derinliğiyle sonuçlanır)—büyük bir dezavantajtage daha küçük cihazlar kullanıldığında. Belki de bu tekniğin en büyük dezavantajı, prob yerleşiminde her ayarlama yapıldığında, tasarımın yeniden derlenmesi ve yeniden programlanmasının gerekli olmasıdır. Büyük bir cihaz kullanıldığında bu işlem önemli miktarda zaman alabilir. Sinyal problarının tasarıma yerleştirilme şekli nedeniyle, sinyal zamanlama ilişkilerini ilişkilendirmek zor olabilir. Ek olarak, sinyal probları arasındaki gecikmeler tutarlı değildir ve bu nedenle zamanlama ilişkilerini karşılaştırmak zordur. Bu, asenkron sinyalleri veya farklı zaman alanlarından gelen sinyalleri karşılaştırırken özellikle zor bir durumdur.
Devre İçi FPGA Hata Ayıklama – Harici Test Ekipmanı
Harici bir mantık analizörü sistem testi için zaten mevcut olduğunda, devre içi hata ayıklama kodunun harici test ekipmanıyla birlikte kullanılması doğal bir gelişmeydi. Şekil 3'te gösterildiği gibi, dahili test sinyallerini tanımlamak ve seçmek ve bunları FPGA G/Ç'lerine uygulamak için bazı basit hata ayıklama kodları oluşturarak, analizörlerin gelişmiş yeteneklerinden (büyük iz tamponları, karmaşık tetikleme dizileri ve çoklu viewBasit ama güçlü hata ayıklama ortamları oluşturmak için seçenekleri (ing) kullanın. Gelişmiş tetikleme seçenekleri için daha karmaşık devre içi yetenekler, ihtiyaç duyulan çıktı sayısını en aza indirebilir. ÖrneğinampÖrneğin, harici pinler gerekiyorsa, geniş bir veri yolunda belirli adresleri seçmek engelleyici olabilir.
Dahili FPGA mantığını kullanmak, G/Ç gereksinimlerini önemli ölçüde azaltır ve hatta daha karmaşık sorunları ayıklamak için belirli adres kalıplarını (belki bir çağrı ve dönüş dizisi) bile arayabilir. Ortak bir kullanıcı arayüzü mevcutsa, bu öğrenme eğrisini basitleştirebilir ve üretkenliği artırabilir.
AvantajtagBu yaklaşımın avantajı, harici test ekipmanının maliyetinden yararlanması ve dolayısıyla ek araç maliyeti olmamasıdır. Bazı hata ayıklama devresi IP çekirdekleri ekipman üreticilerinden veya FPGA üreticilerinden temin edilebilir ve çok düşük maliyetli veya hatta ücretsiz olabilir. Sinyal seçimi mantığını uygulamak için gereken FPGA kaynaklarının miktarı çok küçüktür ve izleme işlevi harici mantık analizörü kullanılarak yapıldığından blok belleklerine gerek yoktur. Seçim mantığı ucuz olduğundan, geniş tetiklemeli çok sayıda kanal da desteklenebilir. Mantık analizörü hem Zamanlama modunda hem de Durum modunda çalışabilir ve bu da bazı zamanlama sorunlarını izole etmeye yardımcı olur.
DezavantajtagBu yaklaşımın dezavantajları arasında, projeye halihazırda tahsis edilmemişse bir mantık analizörü satın alma ihtiyacı da yer alabilir. Bu dezavantajtage birçok durumda bu yaklaşımı caydırmak için yeterli olabilir. Ancak, görüntüleme için PC veya tablet kullanan bazı düşük maliyetli mantık analizörü seçeneklerinin mevcut hale geldiğini ve bu seçeneğin basit hata ayıklama gereksinimleri için çok daha uygun maliyetli hale geldiğini unutmayın.
Tüketilen FPGA pinlerinin sayısı bir diğer dezavantaj olabilirtagve geniş veri yollarının gözlemlenmesi gerekiyorsa, kart düzeni ve hata ayıklama bağlayıcılarının eklenmesi için önemli planlama gerekir. Bu gereksinim çoğu zaman tasarım aşamasının başlarında tahmin edilmesi zor ve istenmeyen başka bir karmaşıklıktır. Gömülü mantık analizörü yaklaşımına benzer şekilde, harici test stratejisi her yeni deney gerektiğinde bir tasarımın yeniden derlenmesini ve yeniden programlanmasını gerektirir.
Ortak dezavantajtagBu iki tekniğin bir sonucu olarak, yonga üstü kaynakların kullanımı (bu, tasarımın zamanlama performansını da etkileyebilir ve ek hata ayıklama gereksinimleri yaratabilir), tasarımı yeniden derleme ve yeniden programlama ihtiyacı (bu, hata ayıklama programına saatler hatta günler ekleyebilir), olası test senaryolarını belirlemek için gereken ön planlama ve ek yonga G/Ç kaynaklarının kullanımı, bu dezavantajlar olmadan bir yaklaşıma ihtiyaç duyulmasına neden oldu. Bir yanıt, bazı cihazlarda FPGA yapısına özel hata ayıklama mantığının eklenmesiydi. Donanım probları kullanılarak devre içi hata ayıklama sonucu ortaya çıktı.
Devre İçi FPGA Hata Ayıklama – Donanım Probları
Donanım problarının kullanımı, FPGA'lar için devre içi hata ayıklama tekniklerini önemli ölçüde basitleştirir. SmartFusion2®SoC FPGA ve IGLOO®2 FPGA aygıtlarında Canlı Prob özelliği olarak uygulanan bu teknik, herhangi bir mantık elemanı kayıt bitinin çıktısını gözlemlemek için FPGA yapısına özel prob hatları ekler. Şekil 4'teki blok diyagramında gösterildiği gibi, donanım probları A ve B olmak üzere iki prob kanalında mevcuttur.
Şeklin alt kısmında kaynaklandığı gibi, seçili kayıt çıkışları (prob noktaları) iki prob kanalının üstünden yönlendirilir ve seçilirse A veya B kanalına uygulanabilir. Bu gerçek zamanlı kanal sinyalleri daha sonra cihazdaki özel Probe A ve Probe B pinlerine gönderilebilir. Probe A ve Probe B sinyalleri ayrıca dahili olarak gömülü bir mantık analizörüne yönlendirilebilir.
Prob pimlerinin zamanlama özelliklerinin düzenli olduğunu ve bir prob noktasından diğerine ihmal edilebilir sapmalara sahip olduğunu unutmayın, bu da gerçek zamanlı sinyallerin zamanlama özelliklerini karşılaştırmayı çok daha kolay hale getirir. Veriler 100MHz'e kadar yakalanabilir, bu da onu hedef tasarımlarının çoğu için uygun hale getirir.
Belki de en önemlisi, uygulanan tasarımın bir parçası olarak seçilmediklerinden (tasarım FPGA'da çalışırken özel donanım aracılığıyla seçilirler), prob noktası konumları, seçim verilerini cihaza göndererek kolayca değiştirilebilir. Tasarımın yeniden derlenmesi ve yeniden programlanması gerekmez.
Canlı Prob yeteneğinin kullanımını daha da basitleştirmek için, ilişkili hata ayıklama yazılım aracı, otomatik olarak oluşturulan bir hata ayıklama aracılığıyla tüm prob sinyali konumlarına erişebilir fileŞekil 5'te gösterildiği gibi, sinyal adı sinyal listesinden seçilebilir ve istenilen kanala uygulanabilir. Bu, tasarım çalışırken bile yapılabilir, böylece tasarım içindeki sondaj etkinliği sorunsuz ve çok verimli olur.
Birçok durumda, Canlı Prob gibi donanım prob yeteneği, daha önce açıklanan gömülü mantık analizörü ve harici test teknikleriyle birlikte kullanılabilir.
Şekil 6'da gösterildiği gibi, Canlı Prob'un 'anında' sinyalleri seçme yeteneği, tasarımı yeniden derlemeye gerek kalmadan gözlem altındaki sinyalleri hızlı ve kolay bir şekilde değiştirmeyi mümkün kılar. Harici bir mantık analizörü veya kapsam, şeklin sağ üst kısmında özel prob çıkış pinlerinde gösterildiği gibi, problanan sinyalleri kolayca gözlemleyebilir. Alternatif olarak (veya belki de buna ek olarak) dahili mantık analizörü (şekilde gösterilen ILA Tanımlama bloğu) prob pinlerini gözlemlemek için kullanılabilir. Prob sinyalleri ILA tarafından yakalanabilir ve dalga formu penceresinde gözlemlenebilir. Prob konumları, hedef tasarımı yeniden derlemeye gerek kalmadan değiştirilebilir.
Tetikleme ve izleme için ek yeteneklerin, prob işlevselliğini geliştirmek için kullanılabileceğini ve karmaşık tasarım sorunlarının bile kolayca tespit edilebileceğini unutmayın.
SmartFusion2 SoC FPGA ve IGLOO2 FPGA aygıtlarında ek donanım hata ayıklama yetenekleri de mevcuttur. Bu yeteneklerden biri olan Active Probe, herhangi bir mantık elemanı kayıt bitini dinamik ve eşzamansız olarak okuyabilir veya yazabilir. Yazılı bir değer tek bir saat döngüsü boyunca kalıcı olur, böylece normal çalışma devam edebilir ve bu da onu çok değerli bir hata ayıklama aracı yapar. Active Probe, dahili bir sinyalin hızlı bir şekilde gözlemlenmesi istendiğinde (belki de sadece aktif olduğunu veya istenen durumda olduğunu kontrol etmek için, örneğin bir sıfırlama sinyali) veya bir mantık fonksiyonunu bir prob noktasına yazarak hızlı bir şekilde test etme ihtiyacı olduğunda özellikle ilgi çekicidir
(belki de bir kontrol akışı sorununu izole etmek için bir giriş değerini hızla ayarlayarak bir durum makinesi geçişini başlatmak için).
Microsemi tarafından sağlanan bir diğer hata ayıklama yeteneği Bellek Hata Ayıklama'dır. Bu özellik, tasarımcının seçili bir FPGA yapı SRAM bloğuna dinamik ve eşzamansız olarak okuma veya yazma yapmasına olanak tanır. Hata Ayıklama Aracı'nın ekran görüntüsünde gösterildiği gibi (Şekil 7), Bellek Blokları sekmesi seçildiğinde kullanıcı okunacak istenen belleği seçebilir, belleğin anlık görüntüsünü alabilir, bellek değerlerini değiştirebilir ve ardından değerleri cihaza geri yazabilir. Bu, özellikle hesaplama odaklı not defteri veya gömülü bir CPU tarafından yürütülen kod için iletişim portlarında kullanılan veri tamponlarını kontrol etmek veya ayarlamak için yararlı olabilir. Bellekler bu kadar hızlı bir şekilde gözlemlenebildiğinde ve kontrol edilebildiğinde karmaşık veriye bağlı hataların hata ayıklaması önemli ölçüde daha hızlı ve kolaydır.
Bir tasarım hata ayıklandıktan sonra hassas bilgileri korumak için donanım hata ayıklama yeteneklerini kapatmak istenebilir. Bir saldırgan, sistemin hassas kısımlarına kolay erişime izin verebilecek kritik bilgileri okumak veya sistem ayarlarını değiştirmek için aynı olanakları kullanabilir. Microsemi, tasarımcının hata ayıklama tamamlandıktan sonra cihazı güvence altına almasına olanak tanıyan özellikler ekledi. Örneğinample, Live Probe ve Active Probe'a erişim, olası bir saldırı aracı olarak işlevi tamamen devre dışı bırakmak için kilitlenebilir (hatta prob etkinliğinin, prob verilerini dolaylı olarak gözlemlemek için kullanılabilecek besleme akımında herhangi bir desen oluşturma olasılığını bile ortadan kaldırır). Alternatif olarak, yalnızca bu bölümlere erişimi engellemek için tasarımın seçili bölümlerine erişim kilitlenebilir. Bu, tasarımın yalnızca bir bölümünün güvenli olması gerektiğinde kullanışlı olabilir ve bu da tasarımın geri kalanının hala saha testi veya hata analizi için erişilebilir olmasını sağlar.
Devre İçi Hata Ayıklama Karşılaştırma Tablosu
Şimdi detaylı bir incelemeview Üç ana devre içi donanım hata ayıklama tekniğinin açıklaması yapıldıktan sonra, Şekil 8'de gösterildiği gibi çeşitli avantajları ayrıntılarıyla açıklayan bir özet tablo oluşturuldu.tages ve dezavantajtagHer yöntemin bazılarının birlikte kullanılabileceğini unutmayın (Canlı Prob ve Synopsys Identify gibi Dahili Mantık Analizörü (ILA) gibi)ample), her tekniğin temel güçlü ve zayıf yönlerini görebiliriz. Devre içi donanım hata ayıklama yeteneklerinin koleksiyonu (Canlı Prob, Aktif Prob ve Bellek Hata Ayıklama—toplu olarak SmartDebug olarak adlandırılır), toplam kullanılabilir prob sayısı söz konusu olduğunda diğer tekniklerle karşılaştırıldığında en zayıftır (kırmızı daire) ve yakalama hızı dikkate alındığında en iyisinden (sarı daire) daha zayıftır (harici test ekipmanı daha hızlı olabilir).
Synopsys Identify gibi ILA tabanlı teknikler, diğer tekniklerle karşılaştırıldığında ve FPGA kaynak gereksinimleri dikkate alındığında en zayıf olanlardır. Harici test ekipmanı tabanlı teknikler, maliyet, tasarım zamanlaması etkisi ve (tasarımın yeniden derlenmesi ihtiyacından dolayı) sondaj hareketi ek yükü gibi bir dizi hususta en zayıf olanlardır. Belki de en iyi çözüm, SmartDebug ve diğer tekniklerden birinin birleşimidir, böylece SmartDebug'ın kanal sayısı zayıflığı hafifletilebilir ve sondaj noktası hareketi dezavantajıtagDiğer tekniklerin de etkileri azaldı.
Sinyal Sınıflandırmaları
En yaygın sinyal türlerinden bazıları arasında yararlı bir ayrım yapılabilir ve bu, bir hata ayıklama yaklaşımı planlarken yardımcı olabilir. ÖrneğinampÖrneğin, sistem başlatma sırasında değişmeyen sinyaller, örneğin sistem sıfırlama, blok sıfırlama veya başlatma kayıtları, statik sinyaller olarak sınıflandırılabilir. Bu tür sinyallere, uzun bir yeniden derleme döngüsüne ihtiyaç duymadan, sinyali kolayca gözlemleyebilen ve kontrol edebilen bir tesis aracılığıyla en verimli şekilde erişilebilir. Active Probe, statik sinyalleri hata ayıklamak için mükemmel bir tesistir. Benzer şekilde, daha sık değişen ancak zamanın büyük çoğunluğunda hala statik olan sinyaller, sözde statik olarak sınıflandırılabilir ve Active Probe kullanılarak en etkili şekilde hata ayıklanır. Saat sinyalleri gibi sık değişen sinyaller, dinamik olarak sınıflandırılabilir ve Active Probe aracılığıyla kolayca erişilemez. Live Probe, bu sinyalleri gözlemlemek için daha iyi bir seçimdir.
Basit Hata Ayıklama Kullanım Örneği
Artık çeşitli devre içi hata ayıklama seçenekleri hakkında daha iyi bir anlayışa sahip olduğumuza göre, basit bir tasarım örneğine bakalımampBu tekniklerin nasıl performans gösterdiğini görmek için. Şekil 9, SmartFusion2 SoC FPGA aygıtında basit bir FPGA tasarımını göstermektedir. Mikrodenetleyici Alt Sistemi (MSS), CoreSF2Reset Soft IP bloğu tarafından sıfırlanır. Bu bloğa girişler, Güç Açık Sıfırlaması, Kullanıcı Yapısı Sıfırlaması ve Harici Sıfırlamadır. Çıkışlar, Kullanıcı Yapısına sıfırlama, MSS sıfırlaması ve M3 sıfırlamasıdır. Hata belirtileri, aygıt POR durumundan başarıyla çıksa bile G/Ç'lerde hiçbir etkinlik olmamasıdır. Bu hatayı ayıklamak için üç farklı seçenek de şekilde gösterilmiştir: Mavi kutu (ETE olarak etiketlenmiştir) Harici Test Ekipmanı yöntemi içindir; yeşil kutu (ILA olarak etiketlenmiştir) Dahili Mantık Analizörü yöntemi içindir; ve turuncu kutu (AP olarak etiketlenmiştir) Aktif Prob yöntemi içindir. Hatanın olası temel nedenlerinin, CoreSF2Reset Soft IP bloğuna yanlış bir şekilde iddia edilen sıfırlama girişleri olduğunu varsayacağız.
Şimdi daha önce anlatılan devre içi yöntemlerden üçünün hata ayıklama sürecine bakalım.
Harici Test Ekipmanları
Bu yöntem kullanılarak, test ekipmanının mevcut olduğu ve daha yüksek öncelikli bir proje tarafından kullanılmadığı varsayılır. Ek olarak, bazı FPGA G/Ç'lerinin mevcut olması ve test ekipmanına kolayca bağlanabilmesi için önceden planlanmış olması önemlidir. Örneğin PCB üzerinde bir başlık olmasıample, çok yardımcı olur ve 'olası şüpheliyi' veya araştırma sırasında pinlerin olası kısa devresini belirlemeye ve bağlanmaya çalışırken harcanan zamanı en aza indirir. Araştırmak istediğimiz sinyalleri seçmek için tasarımın yeniden derlenmesi gerekecektir. Umuyoruz ki, 'soğanın kabuğunu soymak' zorunda kalmayız ve daha fazla araştırma için ek sinyaller seçmek zorunda kalmayız, çünkü genellikle ilk araştırmamız daha fazla soruyla sonuçlanır. Her durumda, yeniden derleme ve yeniden programlama süreci önemli miktarda zaman alabilir ve zamanlama ihlalleriyle sonuçlanırsa yeniden tasarım gerekir (hepimiz zamanlama kapatma sorunlarını çözmeye çalışmanın ne kadar sinir bozucu olabileceğini biliyoruz, özellikle de bir tasarım hatası bulmak için tasarım değişiklikleri yaptığınızda - tüm süreç dakikalardan saatlere kadar sürebilir)! Ayrıca, tasarımda ücretsiz kullanıcı G/Ç'leri yoksa, bu yöntemin uygulanamayacağını unutmamak önemlidir. Dahası, bu yöntem tasarıma yapısal olarak müdahale eder - ve zamanlamayla ilgili hatalar yinelemeler arasında kaybolabilir veya yeniden ortaya çıkabilir.
Dahili Mantık Analizörü
Bu yöntem kullanılarak ILA, yapı kaynakları kullanılarak tasarıma eklenmeli ve ardından yeniden derlenmesi gerekir. ILA'nın daha önce örnekleştirilmiş olması durumunda, araştırmak istediğimiz sinyallerin enstrümante edilmemiş olabileceğini ve bunun da yeniden derleme gerektireceğini unutmayın. Bu işlem, orijinal tasarımı değiştirme ve zamanlama kısıtlamalarını ihlal etme riskini taşır. Zamanlama karşılanırsa, tasarımın yeniden programlanması ve yeniden başlatılması gerekir. Yeniden derleme süreleri uzunsa ve birden fazla geçiş gerekiyorsa, tüm bu işlem birkaç dakika veya hatta saatler sürebilir. Bu yaklaşım yapısal olarak müdahalecidir ve yukarıdaki yöntem kullanıldığında açıklananlara benzer sorunlara yol açabilir.
Aktif Prob
Bu yöntem kullanılarak Aktif Prob, çeşitli sıfırlama sinyallerinin kaynağına yönlendirilebilir, bunların hepsi kayıt çıkışları tarafından kaynaklanır (herhangi bir iyi dijital tasarım uygulamasında yaygın olduğu gibi). Sinyaller, aşağıdaki Şekil 10'da gösterilen bir Aktif Prob menüsünden birer birer seçilir. Seçilen sinyal değerleri okunabilir ve Aktif Prob veri penceresinde görüntülenir. Herhangi bir yanlış iddia kolayca tespit edilebilir. Bu test, cihazı yeniden derlemeye ve yeniden programlamaya gerek kalmadan hemen yapılabilir ve yapısal veya prosedürel olarak müdahaleci değildir. Tüm süreç sadece birkaç saniye sürer. Bu yöntem ayrıca, diğer iki yöntemin izin vermeyeceği bir kontrol edilebilirlik (değerleri eş zamanlı olmayan şekilde değiştirme) de yaratabilir. Bu özel örnekteampÖrneğin, bir kayıtçı tarafından kaynaklanan sıfırlama sinyali kolayca araştırılabilir ve aktif durumda tutulduğu keşfedilebilir.
Sıfırlama sinyalinin anlık olarak değiştirilmesi, dinlenme sinyallerini üreten kaydın eş zamanlı olarak manipüle edilmesiyle sağlanabilir.
Daha Karmaşık Hata Ayıklama Kullanım Örneği
Yukarıdaki tasarım çok basitti ve açıklanan tasarım tekniklerinin kullanımına giriş olarak kullanışlıdır, ancak daha karmaşık bir örnekampdaha da açıklayıcı olabilir. Çoğu zaman ilgi sinyali, basit örneğimizde olduğu gibi statik bir sinyal değildir.ample ama dinamiktir. Yaygın bir dinamik sinyal, belki de bir seri arayüz için bir el sıkışmanın zamanlaması için kullanılan bir ara saattir. Şekil 11, bu durumda sistem APB veri yoluna bağlı özel bir seri arayüz olan kullanıcı Soft IP çekirdeği ile böyle bir tasarımı göstermektedir. Hata belirtileri, kullanıcının özel seri arayüzünde hiçbir etkinlik olmaması ve bir APB veri yolu ana bilgisayarı seri arayüze erişmek için bir işlem yayınladığında yanlış bir el sıkışmayı belirten bir istisna koşuluna girmesidir. Bu koşullar, işlem durum makinesi beklenen hızda çalışmıyor gibi göründüğü ve bu nedenle istisnaya neden olduğu için yanlış bir sıfırlama sinyali gibi statik bir nedeni ortadan kaldırıyor gibi görünmektedir. Kök nedenin kullanıcı IP çekirdeği içindeki saat frekansı üreteci olduğu düşünülmektedir.
Doğru frekansta çalışmıyorsa açıklanan hatalar ortaya çıkar.
Bu durumda muhtemelen Aktif Prob yaklaşımını Canlı Prob ile değiştirmek daha iyi bir stratejidir. Bu, yukarıdaki şekilde turuncu renkli LP kutusu ile gösterilmiştir, JTAG Prob kaynağı seçimi için sinyal.
Harici Test Ekipmanları
Bu durumda, metodoloji daha önce açıklanan basit örnekle oldukça benzerdir.ample. Kullanıcı saat sinyali test noktasına getirilir (umarım bir başlıkta) ve zaman alıcı bir yeniden derleme gerekir. Ayrıca bir referans sinyali, belki de kullanıcı IP'sini bir karşılaştırma sinyali olarak zamanlamak için kullanılan bir sistem saati çıkarmak da yardımcı olabilir. Tekrar derleme ve yeniden programlama ihtiyacına maruz kalacağız, bu nedenle tüm süreç önemli miktarda zaman alabilir.
Dahili Mantık Analizörü
Bu durum basit örnek olaya çok benziyorample. ILA yerleştirilmeli veya istenen sinyal tanımlanmalı ve bir yeniden derleme ve yeniden programlama döngüsü yürütülmelidir. Daha önce açıklanan tüm sorunlar yine de önemli bir hata ayıklama döngüsü süresiyle sonuçlanır. Ancak ek bir karmaşıklık vardır. ILA'yı çalıştıran saatin senkron olması ve ideal olarak kullanıcı Soft IP çekirdeğinden gözlemlenecek saate göre çok daha hızlı olması gerekir. Bu saatler asenkron ise veya doğru zamanlama ilişkilerine sahip değilse, veri yakalama tahmin edilemez olacak ve hata ayıklama süreci için olası bir kafa karışıklığı kaynağı olacaktır.
Kullanıcının Yumuşak IP saatinin çip üzerinde üretilmediğini (belki seri arayüzden kurtarıldığını) göz önünde bulundurun; tasarımcının ek kaynaklar kullanarak ve muhtemelen bir zamanlama ihlali yaratarak daha hızlı bir ILA saati üretmek için bir saat modülü eklemesi gerekebilir.
Canlı Sondaj
Bu yöntem kullanılarak, Canlı Prob, hatanın temel nedenini bulmak için bir kayıttan kullanıcı saatinin kaynağına ve herhangi bir diğer saat kaynağına hızla yönlendirilebilir. Canlı Prob, seçilen sinyal çıkışlarını gerçek zamanlı olarak gösterecek ve böylece sinyaller arasındaki herhangi bir zamanlama ilişkisini belirlemek çok daha kolay olacaktır. Tüm süreç sadece birkaç saniye sürer.
Seri Arayüzler için Diğer Hata Ayıklama Özellikleri
Ayrıca, SmartFusion2 SoC FPGA ve IGLOO2 FPGA aygıtlarında, önceki örnekte olduğu gibi seri arayüzlerde kullanılabilen birçok ek hata ayıklama yeteneğinin bulunduğunu belirtmek önemlidir.amphataların daha da karmaşık olduğu tasarım. SERDES Debug, örneğinample, özel yüksek hızlı seri arayüzler için özel hata ayıklama yetenekleri sağlar. SERDES Hata Ayıklama özelliklerinden bazıları PMA test desteği (PRBS desen oluşturma ve geri döngü testi gibi), yapılandırma değişiklikleri yapmak için tam tasarım akışının kullanımından kaçınmak için kayıt düzeyinde yeniden yapılandırma ile birden fazla SERDES test yapılandırması için destek ve yapılandırılmış protokolleri, SERDES yapılandırma kayıtlarını ve Şerit yapılandırma kayıtlarını gösteren metin raporları içerir. Bu özellikler SERDES hata ayıklamasını çok daha kolay hale getirir ve karmaşık devrelerin hata ayıklamasını daha da hızlandırmak için Canlı Prob ve Aktif Prob ile birlikte kullanılabilir.
Daha önce açıklanan Bellek Hata Ayıklama aracı, SERDES Hata Ayıklama ile birlikte kullanılarak test hızlandırılabilir. Bellek tamponları Bellek Hata Ayıklama ile hızlı ve kolay bir şekilde incelenebildiği ve değiştirilebildiği için, hızlı bir şekilde 'test paketleri' oluşturmak ve geri döngü veya sistemler arası iletişim sonuçlarını gözlemlemek mümkündür. Tasarımcı bu yeteneklerden yararlanabilir ve böylece ek FPGA yapısı tüketen ve çip zamanlamasını etkileyebilecek özel 'test koşumlarına' olan ihtiyacı en aza indirebilir.
Çözüm
Bu makale, FPGA'lar ve SoC FPGA'lar için devre içi hata ayıklamayı uygulamak için çeşitli farklı yaklaşımları ayrıntılı olarak açıklamıştır: Entegre Mantık Analizörü kullanımı, harici test ekipmanı kullanımı ve FPGA yapısına entegre edilmiş özel prob devrelerinin kullanımı. Microsemi tarafından SmartFusion2 SoC FPGA ve IGLOO2 FPGA aygıtlarında sunulan Aktif Prob ve Canlı Prob gibi özel ve özel prob devrelerinin eklenmesinin hata ayıklama sürecini önemli ölçüde hızlandırdığı ve basitleştirdiği gösterilmiştir. Dahili sinyallerin seçimini hızlı bir şekilde değiştirme yeteneği (çok zaman alan bir yeniden derleme ve yeniden programlama döngüsünü yürütmeye gerek kalmadan) ve dahili sinyalleri araştırma yeteneği (FPGA yapısını kullanmaya ve potansiyel olarak zamanlama ihlalleri oluşturmaya gerek kalmadan) büyük bir avantaj olarak gösterilmiştir.tagFPGA tasarımlarını hata ayıklama sırasında. Ek olarak, daha kapsamlı bir hata ayıklama yeteneği sağlamak için birlikte çalışabilen birden fazla metodolojinin kullanımı açıklanmıştır. Son olarak, iki örnekampAçıklanan yöntemler arasındaki takasları göstermek için hata ayıklama kullanım örnekleri verilmiştir.
Daha Fazlasını Öğrenmek İçin
- IGLOO2 FPGA'lar
- SmartFusion2 SoC FPGA'lar
Microsemi Corporation (Nasdaq: MSCC), iletişim, savunma ve güvenlik, havacılık ve endüstriyel pazarlar için kapsamlı bir yarı iletken ve sistem çözümleri portföyü sunmaktadır. Ürünler arasında yüksek performanslı ve radyasyonla sertleştirilmiş analog karışık sinyalli entegre devreler, FPGA'ler, SoC'ler ve ASIC'ler; güç yönetimi ürünleri; zaman konusunda dünya standardını belirleyen zamanlama ve senkronizasyon cihazları ve hassas zaman çözümleri; ses işleme cihazları; RF çözümleri; ayrık bileşenler; güvenlik teknolojileri ve ölçeklenebilir anti-tamper ürünleri; Power-over-Ethernet IC'leri ve midspan'lar; ayrıca özel tasarım yetenekleri ve hizmetleri. Microsemi'nin merkezi Aliso Viejo, Kaliforniya'dadır ve dünya çapında yaklaşık 3,400 çalışanı vardır. Daha fazla bilgi edinmek için www.microsemi.com.
© 2014 Mikrosemi Şirketi. Her hakkı saklıdır. Microsemi ve Microsemi logosu, Microsemi Corporation'ın ticari markalarıdır. Diğer tüm ticari markalar ve hizmet markaları ilgili sahiplerinin mülkiyetindedir.
Microsemi Kurumsal Genel Merkez
- Bir Enterprise, Aliso Viejo CA 92656 ABD
- İçinde ABD: +1 800-713-4113
- Dıştan ABD: +1 949-380-6100
- Satış: +1 949-380-6136
- Faks: +1 949-215-4996
- E-posta: sales.support@microsemi.com
SSS
- S: Cihazın maksimum veri yakalama frekansı nedir?
A: Cihaz, çoğu hedef tasarımına uygun olarak 100MHz'e kadar veri yakalamayı destekler. - S: Hata ayıklama için prob devrelerini kullanırken tasarımı yeniden derlemem gerekir mi?
C: Hayır, prob noktası konumları, tasarımın yeniden derlenmesine veya yeniden programlanmasına gerek kalmadan hızlı bir şekilde değiştirilebilir.
Belgeler / Kaynaklar
![]() |
Microsemi Devre İçi FPGA Hata Ayıklama [pdf] Talimatlar Devre İçi FPGA Hata Ayıklama, FPGA Hata Ayıklama, Hata Ayıklama |