VHDL: Bileşen vs Varlık


25

Bir bileşen arasındaki farkın ne olduğunu merak ediyorum. Hangi durumlarda varlıklar yerine bileşenleri kullanmanın daha iyi olacağını bilmek isterim. Çok teşekkür ederim.


1
Lütfen, herhangi biri 'vs' etiketli bir arama oluşturabilir mi? Teşekkür ederim.
Peterstone

7
Başlıktaki gibi "vs" mi demek istiyorsun? Hm, iyi bir fikir değil, millet.
stevenvh

2
Buradaki herkes Visual Studio'yu kullanmıyor .... ah bekle ... diğer "vs" demek istedin değil mi? ;-)
cbmeeks,

Yanıtlar:


17

İşte bazı insanlara yardımcı olacak bir benzetme (özellikle fiziksel elektronik altyapısından olanlar):

componentDerleyiciye, " Bir noktada bu denilen bu tür iğnelerin olduğu bir şey olacak, ama şimdilik endişe etmeyin" diyor. Bir çeşit "soket" tanımlar. Bu "sokete" neyin "kablolar" olduğunu açıklamaya devam edebilirsiniz.

Bir entity, derleyicinin daha sonra bu "sokete" (ve dolayısıyla "tellere" bağlanabileceği) "takılabildiği" bir isme ve bir dizi iğne ile özgü bir şeydir.

Not olmadığını gerek bir componentzaten derleyici anlamına gelen "soket" ayrıca belirlenmelidir gerekmez böylece bir varlık bilir "doğrudan örnekleme" yapabilirsiniz. Aslında, bu benim önerilen yaklaşımım olurdu, aksi halde componentsenkronize tutulacak ilave bir seviyedir.

Sen lüzum sen Verilog ve VHDL ve VHDL içinde Verilog bloğu kullanma ihtiyacı karıştırma eğer bileşenleri kullanmak. O zaman componentsoket budur ve çok geçmeden derleyici / çalışmacı Verilog'u sokete takabilir.


Bileşen DIP paketi gibidir. Aynı 8-pinli op-ampi bir devrede bir düzine kez kullanabilirsiniz ve her zaman 8 pimdir. Aynı tip op amper olsalar da ayrı bileşenlerdir. Varlık, veri sayfasındaki açıklama gibi; ayrı op-amp'lerin tümü aynı pinout'a sahip.
ajs410

14

Bir işletme , birden fazla mimariye sahip olabilecek bir tasarım birimi için gerçek bir arayüzdür . Bir işletme, malzemelerin nasıl girip çıkacağını, mimarlık ise tasarım biriminin nasıl çalıştığını tanımlar. Böylece, aynı varlık tarafından tanımlanacak olan aynı işlevi uygulamak için birden fazla yolunuz olabilir .

Bir bileşen ideal veya "sanal" bir tasarım birimidir. Yukarıdan aşağıya bir tasarım yaparken (yani daha düşük seviye bloklar tasarlanmadan önce en üst seviyeyi bir araya getiriyorsanız) tasarım birimleriniz için beklediğiniz arayüz tipini tanımlamak için bir bileşen kullanabilirsiniz. Bunu gelecekteki gerçek uygulamalar için bir yer tutucu veya kara kutu olarak düşünebilirsiniz.

Yapılandırmaları kullanarak , belirli bir bileşen örneğini varlık tanımına bağlayabilirsiniz. Buradan, hangi portun hangi portla bağlantı kurması gerektiğini belirleyebilirsiniz. Bu, ideal anlamda tanımlanan bileşenin gerçekte uygulanmış olan varlık ile nasıl eşleştiğini gösterir.

Uygulamada , bileşenlerin tipik olarak gereksiz olduğunu ve genellikle kullanılmayan başka bir soyutlama düzeyi yarattığını buldum. Varlığı doğrudan örneklendirerek ve varlığın bu örneği için hangi mimariyi kullanacağına başvurarak bileşenlerin kullanımını (ve gereksinimini) atlayabilirsiniz.

Örneğin:

MyDesignUnit : entity library_name.entity_name(architecture_name)
               port map(
                     ...

2

Aşağıdaki [1] den:

VHDL'de bir varlık, bir bileşen ve bir bileşen örneği arasında önemli bir ayrım vardır. İşletme bir tasarım arayüzü tanımlar, bileşen bir örnek (veya bir alt blok) olarak kullanılacak olan birimin arayüzünü tanımlar ve bileşen örneği, diğer parçalara ve sinyallere bağlanmış olan bileşenin ayrı bir kopyasıdır . Bunları ekmek tahtası tasarımı işlemi ile kendinden yapılmayan parçalarla karşılaştırmak. Varlık ve mimari, parçanın nasıl çalıştığının arayüzünü ve şemasını tanımlayan veri kitabı gibidir. Bileşen nasıl bağlanması gerektiğini açıklayan parça ile birlikte gelen kısa pim listesi gibidir. Bileşen örneği, her biri bağımsız olarak çalışan birçok kişiye sahip olabileceğiniz gerçek parçadır.

Bağlam ve daha fazla ayrıntı için [1] 'e bakınız.


Hatta çok sayıda VHDL dersi var, örneğin [2] [3] ... Kitap (84 sayfa PDF) [4] Güzel görünüyor [5] Esas olarak bağlantılar için [6]


1
Son notlardaki linkleri tercih ediyor gibi görünüyorsunuz, ancak baskıda böyle yapılıyor ve kullanılması gerektiği gibi köprü kullanmıyor. " Bağlam ve daha fazla ayrıntı için bu bağlantıya bakın " yazabilirsiniz. Çok daha kullanıcı dostu AFAIC. Sadece bir öneri.
stevenvh

2
Eski beyin :-) Maksimum bilgiye dayanıyorum (fark edeceğiniz gibi) ve sonnot yöntemi okuyucuların bağlantının nereden geldiğini ve bazılarının aynı sitede olup olmadığını (bazen olduğu gibi) görmesini sağlar. Çok uzun bağlantılar için, bit.ly / j.mp dosyasını anlamlı bir isimle kullanma eğilimindeyim. Ayrıca, kullanıcıların bir bağlantıya tıklamaktan çekindiklerini de gördüm (bunlar kopyalanıp kontrol edilmek üzere yapıştırılsa bile (ek iş)). AMA notu kaydetti ve her birini gelecekteki seçenek olarak göreceğim.
Russell McMahon

0

Bir varlık, giriş-çıkış portları belirlenmiş bir tasarım birimidir. Varlık sadece harici portları tanımlar ve dahili fonksiyonlar ilgili mimari tarafından belirtilir. Bir bileşen, hem varlık hem de mimarlıktan oluşan komple tasarım birimidir. İlk adım, bileşen bildirimi (adını ve bağlantı noktalarını belirterek) ve ardından bileşen örneklemesidir (bağlantı noktası eşlemesi).

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.