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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA中inout端口使用方法總結(jié)

          FPGA中inout端口使用方法總結(jié)

          作者: 時(shí)間:2012-07-30 來(lái)源:網(wǎng)絡(luò) 收藏

          INOUT引腳:

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

          1. IO在做輸入時(shí),可以用作高阻態(tài),這就是所說(shuō)的高阻輸入;

          2. IO在做輸出時(shí),則可以直接用來(lái)輸入輸出。

          芯片外部引腳很多都使用類(lèi)型的,為的是節(jié)省管腿。就是一個(gè)同時(shí)做輸入和輸出。 在具體實(shí)現(xiàn)上一般用三態(tài)門(mén)來(lái)實(shí)現(xiàn)。三態(tài)門(mén)的第三個(gè)狀態(tài)就是高阻'Z'。當(dāng)不輸出時(shí),將三態(tài)門(mén)置高阻。這樣信號(hào)就不會(huì)因?yàn)閮啥送瑫r(shí)輸出而出錯(cuò)了,更詳細(xì)的內(nèi)容可以搜索一下三態(tài)門(mén)tri-state的資料.

          1 使用inout類(lèi)型數(shù)據(jù),可以用如下寫(xiě)法:

          inout data;

          reg data_in;

          reg data_out;

          //data為輸出時(shí)

          reg en_output;

          assign data_inout=en_output?data_out:1'bz;//en_output控制三態(tài)門(mén)

          //對(duì)于data_out,可以通過(guò)組合邏輯或者時(shí)序邏輯根據(jù)data對(duì)其賦值.通過(guò)控制en_output的高低電平,從而設(shè)置data是輸出數(shù)據(jù)還是處于高阻態(tài),如果處于高阻態(tài),則此時(shí)當(dāng)作輸入使用.en_output可以通過(guò)相關(guān)電路來(lái)控制.

          2 編寫(xiě)測(cè)試模塊時(shí),對(duì)于inout類(lèi)型的端口,需要定義成wire類(lèi)型變量,而其它輸入端口都定義成reg類(lèi)型,這兩者是有區(qū)別的.

          當(dāng)上面例子中的data_inout用作輸入時(shí),需要賦值給data_inout,其余情況可以斷開(kāi).此時(shí)可以用assign語(yǔ)句實(shí)現(xiàn):assign data_inout=link?data_in_t:1'bz;其中的link ,data_in_t是reg類(lèi)型變量,在測(cè)試模塊中賦值.

          另外,可以設(shè)置一個(gè)輸出端口觀(guān)察data_inout用作輸出的情況:

          Wire data_out;

          Assign data_out_t=(!link)?data_inout:1'bz;

          fpga相關(guān)文章:fpga是什么




          關(guān)鍵詞: inout FPGA 端口 方法

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();