<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的VXI總線寄存器基模塊接口電路設(shè)計(jì)(06-100)

          基于FPGA的VXI總線寄存器基模塊接口電路設(shè)計(jì)(06-100)

          ——
          作者:錢均生 魏震生 崔海波 時(shí)間:2008-04-10 來源:電子產(chǎn)品世界 收藏

            開機(jī)初始化

          本文引用地址:http://www.ex-cimer.com/article/81437.htm

            根據(jù)總線時(shí)序,在電源接通后,背板總線上SYSRST信號(hào)由低變高,以使SOFTRST信號(hào)由高變低并啟動(dòng)一次模塊復(fù)位自檢過程。根據(jù)總線協(xié)議,模塊復(fù)位自檢應(yīng)包括各寄存器(基本配置寄存器和用戶定義操作寄存器)的初始化和功能電路的初始化。

            模塊和寄存器譯碼

            一個(gè)bus系統(tǒng)中最多可有256個(gè)器件,每個(gè)器件都有一個(gè)唯一的邏輯地址,編號(hào)從0到255。通常規(guī)定00H邏輯地址賦予插入0號(hào)槽的為系統(tǒng)提供公共資源的資源管理器和0號(hào)槽器件,而FFH號(hào)在上電時(shí)賦予系統(tǒng)的所有DC器件,其它的01H--FEH號(hào)分配給任意的SC器件。每個(gè)器件的邏輯地址由人工通過“邏輯地址選擇器”設(shè)定。器件選通是由VXI的地址線A6-A13和地址修改線AM0-AM5來共同實(shí)現(xiàn)的,具體原理如圖2所示。邏輯地址作為該器件的標(biāo)準(zhǔn)組態(tài)/操作寄存器的基地址。每個(gè)VXIbus器件有一組64字節(jié)的標(biāo)準(zhǔn)組態(tài)/操作寄存器位于系統(tǒng)A16尋址空間的高16K字節(jié)。VXIbus系統(tǒng)中,各器件內(nèi)部的各可尋址單元是統(tǒng)一分配的。每個(gè)器件都支持16位尋址方式,每個(gè)器件64字節(jié)的最小地址空間是在寄存器基地址的基礎(chǔ)上向上疊加的,如果器件的邏輯地址為V,則器件寄存器的基地址可由下式給出:

            器件寄存器的基地址=215+214+V×64

            選中模塊的條件用邏輯表達(dá)式描述為

            CARDADDR=(A[13..6]=LA[7..0])&&(AM [5..0]=2DH||A M[5..0]=29H)&&(IACK* =1)&&(LWORD*=1),也可用語(yǔ)言描述為:當(dāng)器件被尋址時(shí),接收地址線A01-A15及地址修改線AM0-AM5上的信息,并將其與本模塊上硬件地址開關(guān)設(shè)置的邏輯地址相比較,如果AM0-AM5上的邏輯值為29H或2DH,地址線A15,A14均為1,并且A13-A6上的邏輯值與模塊的邏輯地址相等時(shí),該器件被選通,接著其譯碼結(jié)果被送往下一級(jí)譯碼控制,通過對(duì)地址A01-A05進(jìn)行譯碼選中模塊在16位地址空間的操作寄存器。



          關(guān)鍵詞: FPGA VXI

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();