"Blog Gönderisi" Wishbone paylaşılan veri yolu bağlantısı örneği

Wishbone paylaşımlı veri yolu bağlantısı, noktadan noktaya bağlantı kadar önemlidir. Bu örnekte, iki ana cihaz ve iki bağımlı cihaz, SYSCON aracılığıyla paylaşılan bir veri yolu bağlantısı gerçekleştirdi Sonraki bölümlerde, bu örneği Or1200'de temel RTL doğrulaması yapmak için kullanacağız. Sistem sıfırlandıktan sonra, bir veya daha fazla ana cihaz, CYC_O'yu yüksek olarak ayarlayarak veriyolunun kullanılmasını talep eder. Hakem (daha sonra tartışılacaktır), ana cihazlardan birini #X (X, 0 ile N arasındadır) ve yalnızca ona karşılık gelen ana cihazı seçer. GNTX sinyali yüksek olarak ayarlanır ve diğer GNT sinyalleri, INTERCON'a veriyolunu hangi ana aygıtın kullanabileceğini bildirmek için düşük olarak ayarlanır.

Ana cihaz seçildikten sonra, çıkış sinyali seçici aracılığıyla paylaşılan veri yoluna ve ardından her bir bağımlı cihaza gönderilecektir. Örneğin, ana cihaz # 0 veriyolunu kullanabiliyorsa, ADR, DAT_O, SEL_O, WE_O ve STB_O sinyalleri her bir bağımlı cihaza gönderilecektir. Aynı zamanda, veriyolunu kullanmayı talep eden diğer cihazlar, ACK_I / ERR_I / RTY_I veriyolu döngüsü bitiş sinyalini asla almayacaktır.

Slave cihaz nasıl seçilir Sistemde M slave cihaz varsa, adres hattı her bir slave cihazın adres alanını temsil etmeyecek şekilde adres dekoderi tarafından M parçalarına bölünür. Bağımlı cihaz # Y'ye karşılık gelen kod çözme çıkış sinyali, paylaşılan veriyolu üzerindeki STB_I sinyali ile AND'lanır.STB_I sinyali ve bağımlı cihaz # Y'ye karşılık gelen kod çözme çıkış sinyali aynı anda yüksekse, bağımlı cihaz #Y, ana cihazın çalışmasına bir yanıt başlatır. .

Her bir bağımlı cihaz tarafından veriyolu döngüsü çıkışının ACK_O / ERR_O / RTY_O'su, OR geçidi üzerinden her ana cihazın ACK_I / ERR_I / RTY_I'sine gönderilir. Bağımlı aygıtın DAT_O çıkışı, seçici aracılığıyla her ana aygıtın giriş terminaline gönderilir ve bu seçicinin girişi, paylaşılan adres veriyoludur.

Şekil 22 Seçiciye göre Wishbone paylaşılan veri yolu bağlantısı örneği

Intercon modülünün kaynak kodu aşağıdaki gibidir:

modül intercon2M2S (clk_i, rst_i, wb0s_data_i,

wb0s_data_o, wb0_addr_i, wb0_sel_i,

wb0_we_i, wb0_cyc_i, wb0_stb_i, wb0_ack_o,

wb0_err_o, wb0_rty_o, wb0m_data_i,

wb0m_data_o, wb0_addr_o, wb0_sel_o,

wb0_we_o, wb0_cyc_o, wb0_stb_o, wb0_ack_i,

wb0_err_i, wb0_rty_i, wb1s_data_i,

wb1s_data_o, wb1_addr_i, wb1_sel_i,

wb1_we_i, wb1_cyc_i, wb1_stb_i, wb1_ack_o,

wb1_err_o, wb1_rty_o, wb1m_data_i,

wb1m_data_o, wb1_addr_o, wb1_sel_o,

wb1_we_o, wb1_cyc_o, wb1_stb_o, wb1_ack_i,

wb1_err_i, wb1_rty_i

);

... // Port tanımı burada yok sayılır

// Arbiter, iki ana cihaz, iki bağımlı cihaz

GNT0, GNT1, CYC kablosu;

arbiter2M2S arbiter2M2S (.CLK (clk_i), .RST (rst_i), .CYC0 (wb0_cyc_i), .CYC1 (wb1_cyc_i),

.GNT0 (GNT0), .GNT1 (GNT1), .CYC (CYC));

// Adres kod çözücü

kablo ACMP0, ACMP1;

tel paylaşılan_adresi;

address_decoder2S

adres_kod çözücü2S (.addr_i (paylaşılan_adresi) ,. ACMP0 (ACMP0) ,. ACMP1 (ACMP1));

// Her bir ana cihazdan her bir bağımlı cihaza veri yolu döngüsü geçerli CYC sinyalini paylaşın wb0_cyc_o = CYC atayın;

wb1_cyc_o = CYC atayın;

// Paylaşılan adres sinyali

paylaşılan_adresi = GNT1? wb1_addr_i: wb0_addr_i;

wb0_addr_o = paylaşılan_adres atayın;

wb1_addr_o = paylaşılan_adres atayın;

// Her ana cihazdan her bir bağımlı cihaza paylaşılan veri yolu

wire shared_data_m2s = GNT1? wb1m_data_i: wb0m_data_i;

wb0s_data_o = paylaşılan_veriler_m2'leri atayın;

wb1s_data_o = paylaşılan_veriler_m2'leri atayın;

// Her bağımlı cihazdan her ana cihaza paylaşılan veri yolu

wire shared_data_s2m = ACMP1? wb1s_data_i: wb0s_data_i;

wb0m_data_o = paylaşılan_veriler_s2m atayın;

wb1m_data_o = paylaşılan_veriler_s2m atayın;

// Her bir ana cihazdan her bir bağımlı cihaza seçim sinyalini paylaşın

tel paylaşımlı_sel = GNT1? wb1_sel_i: wb0_sel_i;

wb0_sel_o = paylaşılan_sel atayın;

wb1_sel_o = paylaşılan_sel atama;

// Her ana cihazdan her bir bağımlı cihaza paylaşılan yazma etkinleştirme sinyali

wire shared_we = GNT1? wb1_we_i: wb0_we_i;

wb0_we_o = shared_we atayın;

wb1_we_o = shared_we atayın;

// Her bir ana cihazdan her bir bağımlı cihaza paylaşılan strobe sinyali

tel paylaşımlı_stb = GNT1? wb1_stb_i: wb0_stb_i;

atama wb0_stb_o = ACMP0? shared_stb: 1'b0;

atama wb1_stb_o = ACMP1? shared_stb: 1'b1;

// Her bağımlı cihazdan her bir ana cihaza yanıt sinyali

tel paylaşımlı_ack = ACMP0? wb0_ack_i: wb1_ack_i;

wb0_ack_o = paylaşılan_ack atayın;

wb1_ack_o = paylaşılan_ack atayın;

tel paylaşımlı_err = ACMP0? wb0_err_i: wb1_err_i;

wb0_err_o = shared_err atayın;

wb1_err_o = shared_err atayın;

tel paylaşımlı_rty = ACMP0? wb0_rty_i: wb1_rty_i;

wb0_rty_o = paylaşılan_rty atayın;

wb1_rty_o = paylaşılan_rty atayın;

son modül

Gu Tianle Hepburn Tom! Yanan Notre Dame de Paris pek çok filmde yer aldı
önceki
"Divinity: Original Sin 2" konsol sürümü 31 Ağustos'ta yayınlanacak ve basitleştirilmiş ve geleneksel Çince'yi desteklediği onaylanacak
Sonraki
Honor V20'nin 48 milyon pikseli ne kadar net? Sahada her 10.000 pikseli inceledik!
Prob seçimi ve kullanım sorunlarının ayrıntılı açıklaması
OpenAI'nin en son keşfi: parametre alanına gürültü eklemek kolaydır ve öğrenmeyi kolayca hızlandırabilir
Bir resimDeniz otobüsünü çalıştırın, Jialing Nehri teleferiğini yeniden inşa edin... Chongqing'deki "iki nehir ve dört bankanın" yönetimi iyileştirildi ve gelecekte büyük hamleler devam edecek
"Quanyou 8" yayında! Bu ayrıntılar, sonradan dikkatle tatmaya değer ve silinen içerik hakkında daha fazla ayrıntı var.
Toz kutusunu temizleme zahmetine, iRobot i7 + süpürme robotuna ve otomatik toz toplama sistemi deneyimine veda edin | Titanium Geek
Ömür boyu ödül! Bu playboy, Hong Kong filmlerinin yükseliş ve düşüşüne tanık oldu, ancak bazı insanlar sadece oğlunu tanıyordu.
İPhone etkili Tesla Model 3'ü sattı ve nihayet ilk 30 arabayı sahiplerine teslim etti
Küçük kara kutu kolayca açılabilir mi? Kullandığımız akıllı kapı kilitleri güvenli midir?
Vicdanlı bir "AI darbesi": Softbank'ın o yıllardaki ikiyüzlülüğü
"Huge Calls" prömiyerini Pekin'de yaptı, final fragmanı yayınlandı, 1208 yayınlandı ve ülkenin yıl sonu dolandırıcılık önleme rüzgarı esti
Steam "2018'in En İyileri" listesini açıkladı, kaç tane oynadınız?
To Top