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