FPGA研發(fā)之道(25)-管腳
管腳是FPGA重要的資源之一,F(xiàn)PGA的管腳分別包括,電源管腳,普通I/O,配置管腳,時鐘專用輸入管腳GCLK等。
本文引用地址:http://m.butianyuan.cn/article/266429.htm(1)電源管腳:
通常來說: FPGA內(nèi)部的電壓包括內(nèi)核電壓和I/O電壓。
1.內(nèi)核電壓:即FPGA內(nèi)部邏輯的供電。通常會較I/O電壓較低,隨著FPGA的工藝的進(jìn)度,F(xiàn)PGA的內(nèi)核電壓逐漸下降,這也是降低功耗的大勢所趨。
2.I/O電壓 (Bank的參考電壓)。每個BANK都會有獨(dú)立的I/O電壓輸入。也就是每個BANK的參考電壓設(shè)定后,本BANK上所有I/O的電平都與參考電平等同。
是否可以通過約束來設(shè)定IO管腳的輸出電平那,答案是否定的,如下例所示
set_instance_assignment -name IO_STANDARD 3.0-V LVCMOS -to pinA
set_instance_assignment -name IO_STANDARD 3.3-V LVCMOS -to pinB
不論設(shè)定為多大的電平,IO的輸出與BANK的參考電壓保持一致,也就是說,PINA和PINB的電平與其BANK的電平保持一致,而不是所約束的那樣一定會是3V或3.3V的電平。那是否意味著這種約束沒有作用?
如果約束同一BANK上的管腳為不同電平,如PINA和PINB在同一BANK,但是電平不同,則EDA工具會報錯。可以起到錯誤檢查的作用。(同一bank上電平要一致,但是類型可以是多種,例如CMOS,TTL等)。
對于復(fù)雜的FPGA內(nèi)部,一般來說PLL也會都單獨(dú)的供電,并且其內(nèi)部包括數(shù)字電源和模擬電源。
SERDES一般也需要獨(dú)立供電。一般支持高速SERDES的FPGA器件都都有獨(dú)立的供電管腳,一般也都有獨(dú)立的時鐘管腳(一般為差分時鐘)。
(2) 配置管腳:
FPGA的配置管腳每個FPGA都需要,為了支持多種配置方式,例如JTAG,從串、從并、主串、主并等。值得注意的是,對于其配置管腳的控制信號來說,是專用管腳,不能用做普通I/O,而其數(shù)據(jù)信號,可以用作普通I/O。在管腳資源較為緊張時,可以復(fù)用配置信號的數(shù)據(jù)信號作為普通I/O來用。
(3) 普通I/O:
FPGA的I/O是FPGA管腳上較為豐富的資源。也是做管腳約束時最常用的資源。對于例化IP來說(例如serdes和DDR2/3等),需要使用EDA工具給出了I/O約束。如果修改則需要預(yù)先編譯進(jìn)行評估。一般來說,DDR的接口信號最好能在一個BANK上約束,如果不能則其控制信號要約束到同一BANK上,否則導(dǎo)致EDA工具布局布線報錯。
對于FPGA的普通I/O,可以設(shè)定包括管腳電平類型(LVTTL,LVCOMS,SSTL,HSTL等等),還包括端接大小,驅(qū)動電流,擺率等參數(shù)。
對于FPGA引腳來說,通過阻抗匹配的設(shè)置(altera的OCT,xilinx的DCI的設(shè)置)??梢杂行У臏p少板上電阻的數(shù)目,降低BOM成本。端接的設(shè)置可以阻止阻抗不連續(xù)導(dǎo)致信號反射,保證信號完整性。
對于普通信號來說,一般不需要每個都設(shè)置阻抗匹配,,只有板級布線長度的電信號傳輸時間超過高速信號的時鐘周期的0.1倍時,才需要設(shè)置端接。簡單來說也就是只有高速信號,且信號輸出和輸入距離較遠(yuǎn)時,才需要使用端接,一般是FPGA連接外部DDR等高速器件時。對于使用外部校準(zhǔn)的RUP和RDN電阻來說,其RUP和RDN電阻是整個電路可靠性的關(guān)鍵點(diǎn)。例如:在以一批FPGA板卡中,測試發(fā)現(xiàn)只有某一塊接口不通,F(xiàn)PGA工程師調(diào)試時發(fā)現(xiàn),只要把接口I/O設(shè)定為CMOS電平,而不使用DCI的端接,則所有板卡全部能夠通信正常,后來發(fā)現(xiàn)該板卡RUP上拉電阻失效,從而導(dǎo)致接口電路沒有上拉而接口出錯。也就是說,I/O的電平設(shè)置,以滿足設(shè)計(jì)需要為主,而不用錦上添花。增加的額外電路就會導(dǎo)致額外的失效點(diǎn)。
(4)時鐘管腳
FPGA內(nèi)部的時鐘,都需要通過專用時鐘管腳連接內(nèi)部PLL或者DCM等專用時鐘處理單元,從而接入內(nèi)部高速時鐘網(wǎng)絡(luò)。在早期的FPGA中內(nèi)部時鐘資源有限,專用處理單元也有限,需要嚴(yán)格的規(guī)劃PLL等時鐘處理單元和全局時鐘資源,隨著FPGA技術(shù)的發(fā)展,這個功能逐漸弱化,但是早期規(guī)劃也是必須的。
值得注意的是,對于一些外部同步信號的輸入,其時鐘沒有連接到專用時鐘管腳上,只用于采樣當(dāng)前的同步信號,因此不用接入全局時鐘網(wǎng)絡(luò),設(shè)計(jì)上也是允許的,需要約束其管腳不使用全局時鐘資源。否者,EDA工具會報錯,提示其作為時鐘輸入,而沒有接在專用時鐘管腳上。
正如本文開始所說,管腳是FPGA的重要資源,F(xiàn)PGA工程師熟悉管腳特性和電路設(shè)計(jì)的基礎(chǔ)知識,對于FPGA系統(tǒng)設(shè)計(jì)和板級電路的調(diào)試都是有益的。
PS:問題回復(fù)
QUARTUS能否設(shè)定I/O信號的上拉和下拉電阻的大小?
1)對于設(shè)定的輸出信號來說,其是有電平格式的如 set_instance_assignment -name IO_STANDARD LVCOMS -to pin 這種情況下,其電平格式就是LVCOMS。沒有上拉或者下拉的設(shè)置(也就是說coms電平不包括上下拉電阻的設(shè)置)。但是可以設(shè)置其輸出電流,如 set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to pin 板級電路上信號不到位,很多情況下,是驅(qū)動能力的問題。 也可以設(shè)置其輸出端接電阻的大小(不是上下拉)。 set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to pin 以及其他屬性等等 (2)對于未約束的信號時可以設(shè)定其上下拉狀態(tài)的。 如: set_global_assignment -name RESERVE_ALL_UNUSED_PINS "As input tri-stated with weak pull-up" 其他幾種狀態(tài)分別是 as inputs that are tristated, as outputs that drive ground, as outputs that drive an unspecified signal, asinput tri-stated with bus-hold
fpga相關(guān)文章:fpga是什么
上拉電阻相關(guān)文章:上拉電阻原理
評論