VHDL çalışmalarında inout pin bildirimi nasıl yapılıyor?

A

alexz

Guest
Bir girdi olarak olduğunda ve bir çıkış olarak uygulamaya koyması bir pin inout türü olarak ilan edildiğinde, nasıl biliyor?
 
her zaman pin yararlanmayı dikte bazı kontrol iğne gerekir. onun bir yönü seçimi kontrol sinyali, veya çıkışı etkinleştirmek veya read/write- sinyal olsun.
 
genellikle inout portları işlemek için üç durumlu tampon kullanın. Bunu kontrol etmek için bir enable sinyali olacaktır.
 
Bu her iki yönde çalışmaz. Ben üç durumlu tamponu simüle etmek için çalıştık, ve bir çıkış olarak çalışır
 
i çok iyi vhdl konuşamayan, itz verilog yapılır nasıl u verecektir. ur inout sinyal ur tasarım üst dosyayı, sonra bir Diyelim ki biraz inout_sig varsayalım: inout_sig = (out_en) atamak? out_sig: 1'bZ; Yukarıdaki deyimi tristate nerede out_sig algılar, giriş ve out_en etkinleştirmek olduğunu. out_en = 0, yüksek empedans olacak iken out_en = 1 ise, aksi halde out_sig, inout_sig sürüldüğü zaman. daha sonra, bir giriş (ur testbenç dan) olarak inouot_sig tahrik herhangi bir değer alınabilir. girdi almak için, u inout_sig bağlı olmalıdır bir giriş teli olmalıdır. Burada out_sig çıkışı olarak bildirilen bir tel olacaktır. u ur inout noktasına bir veri götürmek istediğinizde, 1 out_en assert ve out_sig tel veri sürücü. Şimdi assign açıklamaya göre, inout_sig sürücü değere sahip olacaktır. Aynı konsept, VHDL de yapılabilir. Bu yardımcı olur umarım .. : D [/img]
 
Bu ALOS size sabit değeri göstermek için pin zorlayabilir bazı durumlarda Stimul da test tezgahı nasıl yaptığını dayanır. nasıl impliment biderectional pin pin_io buraya VHDL örneği
 
Size açıklamak zorunda kalacak tüm Tamam Öncelikle bu bir varlık bir çipin veya bir liman bir iğne olduğunu? Biz bir çip bir pin olduğunu varsayarsak o zaman o zaman VHDL üst düzey varlık bu port ile arabirim bir IO hücre olacak. Şimdi bu IO hücre tek girişi olan bir geribildirim tristate tampon olacaktır. Ve üç durumlu bir driving.Basically üç durumlu iki doğrudan doğruya değeri tahsis edilir Pin1 dış kaynaklı sinyal sırasında sinyal one.In diğer durumda ile kontrol edilecektir, aktive etmek sinyalini sadece aktive eder. Pin1 --------------> Sinyal İki (giriş)
 
[Quote = alexz] Bu iki yönde çalışmaz. Ben üç durumlu tamponu simüle etmek için çalıştık, ve bir çıkış [/quote] olarak çalışır tristate tampon bir sinyal değildir. Durumlu tampon olan bir çıkış sinyali bağlanan bir bileşenidir. Çeşitli üç durumlu tamponları kendi çıkışları birbirine bağlı olabilir. Bu aşağıdaki gibi kullanımı yansıtılır: - aşağıdaki dört satırı aynı mimari DBUS 'Z') yazılır; DBUS 'Z'); DBUS 'Z'); DBUS 'Z'); sağda Her bir ifade bir üç durumlu tampon olduğunu. Sol sinyal tampon çıkışına bağlı bir şeydir. Ben demedim ne Not: Ben DBUS bir üç durumlu tampon çıktısı olduğunu söylemedi. Geçerli DBUS sinyalleri, 1) almak için tüm çıkışları üç durumlu tamponları gelen olmalıdır, ve 2) tam olarak bir çıkış) aktif (non-Z olmalıdır. Basit bir kural budur. Biz zayıf mantık ekleyerek şeyler karmaşık hale getirebilir. Ama FPGA iş için, bu yeterli olmalıdır.
 
iyi i u bu örnekle anlamak düşünüyorum ... hiç u tekrar ur giriş tarafına beslemek bazı çıkış işaretçilerine kullandığınızda daha sonra biz genellikle inout işaretçilerine kullanabilirsiniz .. Örneğin kullanımı kütüphane; kullanımı ieee.std_logic_1164.all; varlık sr_latch port (s, r:; q, qb std_logic in: inout std_logic); ise sonuna sr_latch; sr_latch arasında archetecture behv başlayacak olan q
 
[Quote = tkbits] geçerli DBUS sinyalleri, 1) almak için tüm çıkışları üç durumlu tamponları gelen olmalıdır, ve 2) tam olarak bir çıkış) aktif (non-Z olmalıdır. DBUS bir liman inout türü ise. [/Quote], nasıl bir çıkış aktif olabilir? Bu üç durumlu tamponların hiçbiri bir noktada aktif olan geçerli olması gerekir.
 
Yukarıdaki kurallara GEÇERLİDİR (non-X) sinyalleri içindir. Hiçbir durumlu çıkışları aktif olması mümkündür, sizin sinyal bilinmeyen bir değeri vardır ki bu durumda. Birden fazla durumlu çıkışı aktif olması mümkündür - karşıt çıkışlar ('1 'de ve başka bir' '0 az biri) varsa, sinyal de bilinmeyen bir değere sahip olacaktır. Sen tam bir çıkış o zaman (ve ona bağlı olan tüm girdilerin kurulum süresini tatmin) aktiftir sağlayarak belirli bir anda GEÇERLİDİR sinyalleri sahip garanti. Sen dış mantık yalıtarak inout liman bakamıyorum. Dış mantık çıkışları da sinyalleri modülü içinde çıkışı olmasını sağlamak için, inout noktasına durumlu çıkışları aracılığıyla bağlanmanız gerekir.
 
Yani, varsayılan uotput alıyorum TRI DEVLET doğru olmalıdır?
 
Merhaba ben bir bileşeni bir çıkış alıyorum ve bana doğru çıkış vererek Ama geribildirim çalıştığınızda onu geri girişine onun değil çalışma vhdl burada benzer bir şey yapmaya çalışıyorum. EX: std_logic_vector giriş = "1110" --- Bazı constnt değeri sel: inout std_logic_vector (2 aşağı 0): = "00" - intialization L1: bileşen port harita mux41 (inp, sel, çıkış 1); L2: bileşeni port harita mux41 (inp, sel, OUTPUT2); - geribildirim sürecinin süreç değişkeni q: std_logic_vector (0 downto 3); q başlar: = çıkış 1 ve çıkış 2; sel 01 -> 10 - Ben gösteriyor neden unstand Yüklü> 11 X yerine 1 herhangi bir yardım???????
iyi i u bu örnekle anlamak düşünüyorum ... hiç u tekrar ur giriş tarafına beslemek bazı çıkış işaretçilerine kullandığınızda daha sonra biz genellikle inout işaretçilerine kullanabilirsiniz .. Örneğin kullanımı kütüphane; kullanımı ieee.std_logic_1164.all; varlık sr_latch port (s, r:; q, qb std_logic in: inout std_logic); ise sonuna sr_latch; sr_latch arasında archetecture behv başlayacak olan q
 
X genellikle belirli bir değer için kayıt başlatmak için unuttum demektir. Yani ya kasalar için bir init değeri kullanmak, VEYA modüllerinde sıfırlama iddia.
 
X genellikle belirli bir değer için kayıt başlatmak için unuttum demektir. Yani ya kasalar için bir init değeri kullanmak, VEYA modüllerinde sıfırlama assert.
Evet u sağ hem işaretçilerine gibi inout işaretçilerine aynı şekilde intialize çalışıyorum edilir. Vhdl ve test tezgahı ancak gösteren uuuu. Sözdizimi Sel inout std_logic_vectors kullanıyorum: = "00"
 
Ben inout şekilde çalışmak için gidiyor şüpheliyim ... Ben daha iyi bir rasgele link vermek istiyorum bu yüzden benim vhdl beceri neredeyse varolmayan: http://www.altera.com/support/examples/vhdl/v_bidir.html sonra Ve testbenç içinde Eğer veri ve yönünü kaydeden bir başlangıç ​​değeri elde emin olmak gerekir. Bundan sonra inout ve herşey şeftali olmalı!
 
Herkes vhdl sol neden acaba! Zaman ayırdığınız için çok teşekkür ederim. QUOTE = mrflibble; 1119901] Ben inout şekilde çalışmak için gidiyor şüpheliyim ... Ben daha iyi bir rasgele link vermek istiyorum bu yüzden benim vhdl beceri neredeyse varolmayan: http://www.altera.com/support/examples/vhdl/v_bidir.html sonra Ve testbenç içinde Eğer veri ve yönünü kaydeden bir başlangıç ​​değeri elde emin olmak gerekir. Bundan sonra inout ve herşey şeftali olmalı! [/QUOTE]
 
Ben ciddiye şüpheliyim. Vhdl oldukça iyi olan bu gemide oldukça birkaç kişi var. Ben sadece kendi kendine çalışma hdl dil olarak benim için daha kolay oldu çünkü başlangıç ​​noktası olarak verilog seçmiş oldu.
 

Welcome to EDABoard.com

Sponsor

Back
Top