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