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

          新聞中心

          Inout雙向端口的用法

          作者: 時間:2016-12-13 來源:網(wǎng)絡(luò) 收藏
          如果data_inout不是高阻態(tài),則用作輸出,無法做輸入的,否則兩者豈不有了沖突?
          inout端口信號做輸入時,觀察例子中的輸出data_out_t就應(yīng)該是高阻態(tài)的.


          見許多問這個問題的,總結(jié)一下大家的貼子,希望能對大家有點(diǎn)用處,如果有不對的地方,歡迎指出.
          芯片外部引腳很多都使用inout類型的,為的是節(jié)省管腿。就是一個端口同時做輸入和輸出。 inout在具體實(shí)現(xiàn)上一般用三態(tài)門來實(shí)現(xiàn)。三態(tài)門的第三個狀態(tài)就是高阻Z。 當(dāng)inout端口不輸出時,將三態(tài)門置高阻。這樣信號就不會因為兩端同時輸出而出錯了,更詳細(xì)的內(nèi)容可以搜索一下三態(tài)門tri-state的資料.
          1 使用inout類型數(shù)據(jù),可以用如下寫法:
          inout data_inout;
          input data_in;
          reg data_reg;//data_inout的映象寄存器
          reg link_data;
          assign data_inout=link_data?data_reg:1bz;//link_data控制三態(tài)門

          //對于data_reg,可以通過組合邏輯或者時序邏輯根據(jù)data_in對其賦值.通過控制link_data的高低電平,從而設(shè)置data_inout是輸出數(shù)據(jù)還是處于高阻態(tài),如果處于高阻態(tài),則此時當(dāng)作輸入端口使用.link_data可以通過相關(guān)電路來控制.
          2 編寫測試模塊時,對于inout類型的端口,需要定義成wire類型變量,而其它輸入端口都定義成reg類型,這兩者是有區(qū)別的.
          當(dāng)上面例子中的data_inout用作輸入時,需要賦值給data_inout,其余情況可以斷開.此時可以用assign語句實(shí)現(xiàn):assign data_inout=link?data_in_t:1bz;其中的link ,data_in_t是reg類型變量,在測試模塊中賦值.
          另外,可以設(shè)置一個輸出端口觀察data_inout用作輸出的情況:
          Wire data_out;
          Assign data_out_t=(!link)?data_inout:1bz;


          關(guān)鍵詞: Inout雙向端

          評論


          技術(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); })();