新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > Inout雙向端口信號(hào)處理方法

Inout雙向端口信號(hào)處理方法

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

如果Data_inout不是高阻態(tài),則用作輸出,無(wú)法做輸入的,否則兩者豈不有了沖突?

  做輸入時(shí),觀察例子中的輸出Data_out_t就應(yīng)該是高阻態(tài)的.

  見許多問(wèn)這個(gè)問(wèn)題的,總結(jié)一下大家的貼子,希望能對(duì)大家有點(diǎn)用處,如果有不對(duì)的地方,歡迎指出.

  芯片外部引腳很多都使用類型的,為的是節(jié)省管腿。就是一個(gè)端口同時(shí)做輸入和輸出。 在具體實(shí)現(xiàn)上一般用三態(tài)門來(lái)實(shí)現(xiàn)。三態(tài)門的第三個(gè)狀態(tài)就是高阻''Z''。當(dāng)Inout端口不輸出時(shí),將三態(tài)門置高阻。這樣信號(hào)就不會(huì)因?yàn)閮啥送瑫r(shí)輸出而出錯(cuò)了,更詳細(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:1''Bz;//Link_data控制三態(tài)門

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

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

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

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



關(guān)鍵詞: Inout 雙向 端口信號(hào)

評(píng)論


相關(guān)推薦

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

關(guān)閉