來(lái)源:FPGA從入門到跑路
1.輸入信號(hào)
時(shí)鐘單端
時(shí)鐘差分
單端信號(hào)
差分信號(hào)
inputclk,//時(shí)鐘 inputclk_P,//差分時(shí)鐘+端 inputclk_N,//差分時(shí)鐘-端 inputDin_S,//單端信號(hào)輸入 inputDin_D_P,//差分信號(hào)+端 inputDin_D_N,//差分信號(hào)-端
2.輸出信號(hào)
時(shí)鐘單端
時(shí)鐘差分
單端信號(hào)
差分信號(hào)
outputclk_O,//時(shí)鐘 outputclk_O_P,//差分時(shí)鐘+端 outputclk_O_N,//差分時(shí)鐘-端 outputDout_S,//單端信號(hào)輸入 outputDout_D_P,//差分信號(hào)+端 outputDout_D_N//差分信號(hào)-端
3.雙向信號(hào)端口
inout是可以輸入也可以輸出的引腳,只能由wire型網(wǎng)線驅(qū)動(dòng)。
inoutDataBus,//雙向信號(hào)
當(dāng)inout作輸入引腳時(shí)需要將此引腳置為高阻態(tài)z。inout端口的實(shí)現(xiàn)是使用三態(tài)門。

inout端口的實(shí)現(xiàn)
assignDataBus=control?'bz:DataOut;
inout端口DataBus作為輸出的時(shí)候值為DataOut,作為輸入時(shí)為高阻態(tài)。
4.IO相關(guān)原語(yǔ)
輸入:
IBUF
輸入緩沖器。
單端輸入信號(hào)的處理舉例:
wireDin; IBUF#( .IOSTANDARD("DEFAULT")//SpecifytheinputI/Ostandard )IBUF_Din( .O(Din),//Bufferoutput .I(Din_S)//Bufferinput(connectdirectlytotop-levelport) );
IBUFDS
專用差分輸入時(shí)鐘緩沖器(Dedicated Differential Signaling Input Buffer with Selectable I/O Interface)。將差分時(shí)鐘轉(zhuǎn)換成單端時(shí)鐘作為全局時(shí)鐘,需要添加例化此原語(yǔ)。IBUFDS是一個(gè)輸入緩沖器,支持低壓差分信號(hào)(如LVCMOS、LVDS等)。在IBUFDS中,一個(gè)電平接口用兩個(gè)獨(dú)特的電平接口(I和IB)表示。一個(gè)可以認(rèn)為是主信號(hào),另外一個(gè)可以認(rèn)為是從信號(hào)。主信號(hào)和從信號(hào)是同一個(gè)邏輯信號(hào),但是相位相反。

IBUFDS
使用方式如下:
IBUFDS#( .DIFF_TERM("FALSE"),//DifferentialTermination .IBUF_LOW_PWR("TRUE"),//Lowpower="TRUE",Highestperformance="FALSE" .IOSTANDARD("DEFAULT")//SpecifytheinputI/Ostandard )IBUFDS_inst( .O(O),//Bufferoutput .I(I),//Diff_pbufferinput(connectdirectlytotop-levelport) .IB(IB)//Diff_nbufferinput(connectdirectlytotop-levelport) );
IBUFG
輸入全局緩沖,是與專用全局時(shí)鐘輸入管腳相連接的首級(jí)全局緩沖。所有從全局時(shí)鐘管腳輸入的信號(hào)必須經(jīng)過IBUF元,否則在布局布線時(shí)會(huì)報(bào)錯(cuò)。 IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI、LVDS、LVPECL、LVTTL、PCI、PCIX和 SSTL等多種格式的IO標(biāo)準(zhǔn)。
IBUFGDS
IBUFG的差分形式,當(dāng)信號(hào)從一對(duì)差分全局時(shí)鐘管腳輸入時(shí),必須使用IBUFGDS作為全局時(shí)鐘輸入緩沖。IBUFG支持BLVDS、LDT、LVDSEXT、LVDS、LVPECL和ULVDS等多種格式的IO標(biāo)準(zhǔn)。
IDDR2
后面單獨(dú)介紹。
雙向:
IOBUF

IOBUF
IOBUF由一個(gè)OBUFT和一個(gè)IBUF組成。

OBUFT
OBUFT是三態(tài)輸出緩沖器,其結(jié)構(gòu)和真值表如下圖所示,可以看到,當(dāng)T為1時(shí),輸出是高阻態(tài)。當(dāng)T為0時(shí),輸出與輸入結(jié)果相同。

OBUFT真值表
使用雙向信號(hào)端口時(shí),使用此原語(yǔ)和使用上面第3部分的三態(tài)門效果相同。
assignDataBus=control?'bz:DataOut;
IOBUFIOBUF( .I(DataIn), .O(DataOut), .T(control), .IO(DataBus) );
輸出:
OBUF
輸出緩沖器。使用方式如下:
wireDout;
OBUF#(
.DRIVE(12),//Specifytheoutputdrivestrength
.IOSTANDARD("DEFAULT"),//SpecifytheoutputI/Ostandard
.SLEW("SLOW")//Specifytheoutputslewrate
)OBUF_inst(
.O(Dout_S),//Bufferoutput(connectdirectlytotop-levelport)
.I(Dout)//Bufferinput
);
OBUFDS
差分輸出時(shí)鐘緩沖器(Differential Signaling Output Buffer with Selectable I/O Interface),將單端信號(hào)轉(zhuǎn)換成差分信號(hào)。OBUFDS是一個(gè)輸出緩沖器,支持低壓差分信號(hào)。OBUFDS隔離出了內(nèi)電路并向芯片上的信號(hào)提供驅(qū)動(dòng)電流。它的輸出用O和OB兩個(gè)獨(dú)立接口表示。一個(gè)可以認(rèn)為是主信號(hào),另外一個(gè)可以認(rèn)為是從信號(hào)。主信號(hào)和從信號(hào)是同一個(gè)邏輯信號(hào),但是相位相反。

OBUFDS示意圖
使用方式如下:
OBUFDS#(
.IOSTANDARD("DEFAULT"),//SpecifytheoutputI/Ostandard
.SLEW("SLOW")//Specifytheoutputslewrate
)OBUFDS_inst(
.O(O),//Diff_poutput(connectdirectlytotop-levelport)
.OB(OB),//Diff_noutput(connectdirectlytotop-levelport)
.I(I)//Bufferinput
);
IBUFDS、IBUFGDS 和 OBUFDS 真值表
ODDR2
后面單獨(dú)介紹。
5.舉例
單端輸入時(shí)鐘的處理——全局時(shí)鐘:
wireclk_in;
IBUFG#(
.IOSTANDARD("DEFAULT")
)IBUFG_CLK_S(
.O(clk_in),//Clockbufferoutput
.I(clk)//Clockbufferinput(connectdirectlytotop-levelport)
);
差分輸入時(shí)鐘的處理——全局時(shí)鐘,以LVDS為例子
wireclk_in_D;
IBUFGDS#(
.DIFF_TERM(“TRUE"),//DifferentialTermination
.IOSTANDARD("LVDS_25")//SpecifiestheI/Ostandardforthisbuffer
)IBUFGDS_inst(
.O(clk_in_D),//Clockbufferoutput
.I(clk_P),//Diff_pclockbufferinput
.IB(clk_N)//Diff_nclockbufferinput
);
差分輸入信號(hào)的處理 ,以LVDS為例子
wireDin_D;
IBUFDS#(
.DIFF_TERM("TRUE"),//DifferentialTermination
.IOSTANDARD("LVDS_25")//SpecifytheinputI/Ostandard
)IBUFDS_inst(
.O(Din_D),//Bufferoutput
.I(Din_D_P),//Diff_pbufferinput(connectdirectlytotop-levelport)
.IB(Din_D_N)//Diff_nbufferinput(connectdirectlytotop-levelport)
);
更多相關(guān)內(nèi)容,或者想要深入學(xué)習(xí),建議去看UG471。
-
FPGA
+關(guān)注
關(guān)注
1660文章
22406瀏覽量
636158 -
輸入輸出
+關(guān)注
關(guān)注
0文章
44瀏覽量
11075 -
輸入信號(hào)
+關(guān)注
關(guān)注
0文章
559瀏覽量
13178
原文標(biāo)題:FPGA的輸入輸出處理
文章出處:【微信號(hào):FPGA研究院,微信公眾號(hào):FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何用FPGA實(shí)現(xiàn)4K視頻的輸入輸出與處理
對(duì)于IO空間映射在存儲(chǔ)空間的結(jié)構(gòu),輸入輸出處理介紹
視頻打印機(jī)的輸入輸出
一文詳解FPGA編程技巧輸入輸出偏移約束
什么是輸入輸出模塊_輸入輸出模塊有什么作用
STM32的8種GPIO輸入輸出模式
GPIO通用輸入輸出
MCU中的IO口輸入輸出狀態(tài)詳解
Logos系列FPGA輸入輸出接口(IO)用戶指南
plc帶模擬量輸入輸出和不帶模擬量輸入輸出有什么區(qū)別???
用于處理豐富輸入輸出數(shù)據(jù)流的圖形和圖像處理工具
plc輸入輸出的運(yùn)行原理
詳解FPGA的輸入輸出處理
評(píng)論