新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > Inout雙向端口信號處理方法

        Inout雙向端口信號處理方法

        作者: 時間:2012-04-12 來源:網絡 收藏

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

          做輸入時,觀察例子中的輸出Data_out_t就應該是高阻態的.

          見許多問這個問題的,總結一下大家的貼子,希望能對大家有點用處,如果有不對的地方,歡迎指出.

          芯片外部引腳很多都使用類型的,為的是節省管腿。就是一個端口同時做輸入和輸出。 在具體實現上一般用三態門來實現。三態門的第三個狀態就是高阻''Z''。當Inout端口不輸出時,將三態門置高阻。這樣信號就不會因為兩端同時輸出而出錯了,更詳細的內容可以搜索一下三態門Tri-State的資料.

          1 使用Inout類型數據,可以用如下寫法:

          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控制三態門

          //對于Data_reg,可以通過組合邏輯或者時序邏輯根據Data_in對其賦值.通過控制Link_data的高低電平,從而設置Data_inout是輸出數據還是處于高阻態,如果處于高阻態,則此時當作輸入端口使用.Link_data可以通過相關電路來控制.

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

          當上面例子中的Data_inout用作輸入時,需要賦值給Data_inout,其余情況可以斷開.此時可以用Assign語句實現:Assign Data_inout=Link?Data_in_t:1''Bz;其中的Link ,Data_in_t是Reg類型變量,在測試模塊中賦值.

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



        關鍵詞: Inout 雙向 端口信號

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 衡阳县| 阳江市| 侯马市| 宾阳县| 临颍县| 沙河市| 五大连池市| 印江| 开阳县| 佛学| 新竹县| 阿克陶县| 五原县| 海门市| 巴林右旗| 定远县| 保德县| 和田市| 灵川县| 休宁县| 五寨县| 托里县| 淮阳县| 鄂尔多斯市| 达拉特旗| 墨竹工卡县| 扶绥县| 长丰县| 左云县| 开平市| 阿克| 峡江县| 苗栗市| 乾安县| 南江县| 陵水| 武义县| 岑巩县| 高平市| 锡林浩特市| 莆田市|