SORU
28 Kasım 2008, Cuma


Donanım Tanımlama Dilleri (Verilog, VHDL vb.)için en iyi yöntemler nelerdir

En iyi uygulamalar HDL kodu uygularken nelere dikkat edilmelidir?

Daha yaygın yazılım geliştirme alanlarına göre benzerlik ve farklılıklar nelerdir?

CEVAP
13 Mart 2011, Pazar


Sıralama eski bir konu, ama benim $0.02 koymak istedim. Bu gerçekten özel genel donanım tasarımı/VHDL.. daha fazla Verilog... özellikle özel ASIC tasarım synthesizable için değil.

Bu benimgörüşSanayi yıl akademik (farklı olarak) dayalı deneyim tasarımı. Özel bir sırada

Şemsiye ifademi doğrulama yürütme için tasarlamaktır. Donanım, tasarım, doğrulama çok önemlidir. Böcekler gerçek silikon bulduğunda çok daha pahalıdır. Yapamazsın yeniden derleyin. Bu nedenle, pre-silikon çok daha fazla önem verilir.

  • Kontrol yolu ve veri yolu arasındaki farkı biliyor. Bu sizi çok daha zarif ve sürdürülebilir kod oluşturmanızı sağlar. Ayrıca gates Kaydet ve X yayılmasını en aza indirmek için izin verir. Örneğin, veri yolları hiç yangın alarm butonu flop gerekir, kontrol yolları her zaman gerekir.

  • Doğrulama önce işlevselliğini kanıtlamak. Ya dalga ile resmi bir yaklaşımla ya da. Bu pek çok avantajı vardır, 2 açıklayacağım. İlk olarak, boşa zaman soğan sorunları ile peeling kurtaracak. Uygulama seviye tasarımı (öğrenirken esp) ve en ders çalışmak çok farklı, kod değişikliği için dönüş etrafında zaman çok büyük (bir yere günde 10 dakika, karmaşıklığına bağlı olarak). Her zaman kodunu değiştirmek düşünerek gidip, kontrol tüysüz, derleme, getir-dalga formu ve nihayet gerçek simülasyon saat sürebilir kendisi.. İkincisi, çok daha zor durumlarda köşeye vurmak olması muhtemeldir. Bu silikon ön doğrulama ile ilgili not. Kesinlikle post-silisyum size maliyeti en çok çarpacak bu $$$. Güven bana, işlevselliğini kanıtlamak için ne kadar ön maliyet büyük ölçüde riskini en aza indirir ve çabaya değer. Bu bazen zor yeni üniversite mezunu ikna etmektir.

  • "Tavuk biti". Tavuk parçaları MMİO bit silikon bir özelliği devre dışı bırakmak için sürücü ile başlayın. Hangi güven yüksek değildir değişiklikler (güven doğrulama çabaları ile doğru orantılıdır) geri dönmek için kullanılır. Bir sonraki pre-silikon her türlü devlet vurmak neredeyse imkansızdır. Tasarım üzerinde güven gerçekten post-silikon ispatlanana kadar bir araya geldi olamaz. Eğer hata ortaya çıkaran zaman 0.000005% hit sadece 1 devlet varsa bile, post-silisyum, ama mutlaka önceden silikon değil HİT OLACAK.

  • Her ne pahasına kontrol yolu özel durumları önlemek. Her yeni durum doğrulama çabalarını iki katına çıkar. Bunu açıklamak zor. Başka bir blok kullanacağı bellek verileri kaydetmek olacaktır DMA bir blok var diyelim. Veri yapısı kaydedilmiş diyelim ki bazı işlev yapılıyor bağlıdır. Eğer veri yapısı kaydedilmiş farklı fonksiyonlar arasında farklı olduğunu böyle bir tasarım yapmaya karar verdiyseniz, sadece DMA fonksiyonların sayısı ile doğrulama çabaları arttı. Eğer bu kuralı takip ederseniz, veri yapısı kaydedilmiş içeriği yerleri kodlanmış olduğu tüm verileri her işlev için kullanılabilir süper bir dizi olurdu. DMA kurtarmak mantığı 1 tüm fonksiyonlar için doğrulanmış işlevi için doğrulandıktan sonra.

  • Arabirimler (en aza indirmek kontrol yolları okunur) en aza indirmek. Bu özel durumlar en aza indirme ile ilgilidir. İlk olarak, her yeni arayüz doğrulama gerektirir. Bu izci, iddialar, kapsama puan ve testbench otobüs fonksiyonel modelleri yeni Dama içerir. İkinci olarak, doğrulama çabalarına katlanarak artabilir! Söyleyin önbelleğe okuma veri için 1 arayüz sağlar. Artık okumak için başka bir arabirim ana bellek almaya karar verdiğinizi varsayalım (bazı garip nedenle) sağlar. Sadece doğrulama çabaları dört katına çıktı. Şimdi herhangi bir anda bu kombinasyonlar doğrulamak gerekirn:

    • önbellek okuma, hafıza oku
    • önbellek okuma, hafıza oku
    • önbellek okuma, hafıza oku
    • önbellek okuma, hafıza oku
  • Anlamak ve varsayımlar iletişim kurmak. Bu eksik blok iletişim sorunları engellemek için ana nedeni de budur. Mükemmel bir bloğu tamamen doğrulanmış olabilir.. ancak, tüm varsayımlar anlamadan, blok bağlı zaman başarısız olur.

  • Olası durumları en aza indirmek. Birleşik Devletleri (kasıtlı veya kasıtsız olan) en az bir tasarıma sahiptir, daha az çaba doğrulamak için gerekli. 1. üst düzey fonksiyon (sequencer ve efendileri gibi) işlevleri gibi grup için iyi bir uygulamadır. Çok zor ve bu üst düzey küçük işlevleri mümkün olduğunca kapsadığını, böyle bir işlevi, ama bunu yaparken size büyük ölçüde devlet ortadan tanımlamak tanımlamak ve hataları için devre potansiyeli.

  • Her zaman güçlü bir sinyal blok bırakarak sağlar. Zaman flopping en çözümdür. Uç bloğu(lar) ile ne yapacağı hakkında hiç bir fikrin yok. Mükemmel bir uygulama üzerinde doğrudan bir etkisi olabilir zamanlama sorunları içine çalıştırabilirsiniz.

  • Performansı olumsuz etkilenir sürece unlu tip HACCP kaçının. Unlu HACCP Moore üzerinde zamanlama sorunları üretmek için daha olasıdır

  • .. ve son olarak ben en sevmediğim: "kırık değilse, tamir etme" Nedeniyle risk ve yüksek maliyet böcekler, birçok kez hack bir daha pratik bir çözüm için sorunları çözme. Diğerleri mevcut bileşenlerin kullanımı söz ederek bunu atlatmış.

Daha fazla karşı karşılaştırmak içingelenekselyazılım tasarımı:

  • ayrık olay tabanlı programlama tamamen farklı bir model. İnsanlar verilog sözdizimi ve "oh, ben sadece onun gibi C"... ancak, bu gerçekten bu kadar uzak olamaz. Sözdizimi benzer olmakla birlikte, farklı düşünmek gerekir. Örneğin, geleneksel bir hata ayıklayıcı synthesizable RTL (Testbench tasarımı farklıdır) neredeyse anlamsızdır. Kağıt üzerinde dalga en iyi araç mevcuttur. Ancak, bu varlık, FSM tasarımı zamanlarda yapısal programlama taklit edebilir. " dedi. Yazılım bir arka plan ile insanlar HACCP (ilk başta ben yaptım biliyorum) ile deli gider.

  • Sistem Verilog çok (ve çok) testbench özgü özellikleri vardır. Nesne odaklı tamamen. Bildiğim kadarıyla testbench tasarımı gider, çok benzer geleneksel yazılım tasarımı. Ancak, 1 Daha fazla boyut ile ilişkili var, o zaman. yarış Koşulları ve protokolü gecikmeler dikkate alınmalıdır

  • Doğrulama için de farklı (ve aynı). 3 ana yaklaşım vardır;

    • Resmi propagative doğrulama (FPV): her zaman işe yarayacak bu mantık yoluyla kanıtlamak
    • Yönetmen rastgele test. Rastgele set gecikmeler, giriş değerleri ve özellik bir tohum tarafından tanımlanan sağlar.yönettitohum daha az güveni olan yollar üzerinde ağırlık koyar anlamına gelir. Bu yaklaşım kapsama puan sağlık belirtmek için kullanır
    • Test odak. Bu geleneksel yazılım test benzer

... bütünlüğü için de en iyi test-bench tasarım uygulamaları tartışmak lazım... ama bu başka bir gün için

Yapmıştım.. uzunluğu için özür dilerim "Bölge" :)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • funbro1

    funbro1

    11 Aralık 2007
  • RealPapaPit

    RealPapaPit

    16 Mart 2009
  • sinumatic

    sinumatic

    19 Aralık 2006