FPGA中inout端口使用方法總結
INOUT引腳:
本文引用地址:http://www.104case.com/article/190100.htm1.FPGA IO在做輸入時,可以用作高阻態,這就是所說的高阻輸入;
2.FPGA IO在做輸出時,則可以直接用來輸入輸出。
芯片外部引腳很多都使用inout類型的,為的是節省管腿。就是一個端口同時做輸入和輸出。 inout在具體實現上一般用三態門來實現。三態門的第三個狀態就是高阻'Z'。當inout端口不輸出時,將三態門置高阻。這樣信號就不會因為兩端同時輸出而出錯了,更詳細的內容可以搜索一下三態門tri-state的資料.
1 使用inout類型數據,可以用如下寫法:
inout data;
reg data_in;
reg data_out;
//data為輸出時
reg en_output;
assign data_inout=en_output?data_out:1'bz;//en_output控制三態門
//對于data_out,可以通過組合邏輯或者時序邏輯根據data對其賦值.通過控制en_output的高低電平,從而設置data是輸出數據還是處于高阻態,如果處于高阻態,則此時當作輸入端口使用.en_output可以通過相關電路來控制.
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用作輸出的情況:
Wire data_out;
Assign data_out_t=(!link)?data_inout:1'bz;
fpga相關文章:fpga是什么
評論