tft每日頭條

 > 生活

 > fpga芯片重要嗎

fpga芯片重要嗎

生活 更新时间:2024-12-19 05:17:29

今天想和大家一起聊聊 FPGA的IO。

先說說我當年入門的經曆吧。國内的大學有 FPGA 開發條件的實驗室并不太多,當年大學的那幫同學有的做 ARM,有的做 linux,很少有人做 FPGA,當時學 FPGA 僅僅是由于非常渴望的好奇心。所以,在淘寶買了一塊開發闆,就開始了自己的 FPGA 之路。

大部分開發闆的内容主要是教學員怎麼樣寫 Verilog 代碼,很少會對 FPGA 的芯片架構做詳細的說明和解讀,所以當年面試的時候就碰到了一個很尴尬的事情,面試官第一個問題問的就是:用的是哪顆 FPGA,内核電壓是多少?當時就懵了,雖然做了快一年 FPGA,我還沒有關注過芯片的内核電壓···。

但其實熟悉 FPGA 的基本架構,了解 FPGA 的芯片内部資源真的很重要!

雖然很多 FPGA 工程師都是寫代碼,但是作為硬件編程工程師,如果不熟悉 FPGA 的底層資源和架構,是很難寫出高質量的代碼——至少很難寫出複雜邏輯的高質量代碼,也很難站在系統的層面去考慮芯片的選型等問題。那熟悉 FPGA 架構,首先最主要的一點,我們先來了解 FPGA 的 IO。

FPGA 的 IO 命名。FPGA 芯片 IO 命名方式太多,管腳也多,讓人感覺很亂。這是我當年的感覺,諸如會經常聽到:A13,B14···BANK34,BANK12····MIO0,EMIO···。但這确實是 FPGA 的特點,FPGA 可以兼容多種不同的電壓标準,也有豐富的 IO。

首先,FPGA 的 IO 物理命名規則,也就是我們做管腳約束時候的命名,芯片通常是長方體或者正方體,所以命名通常采用字母 數字組合的方式,從上到下是字母(A,B,C,D```),從左到右是數字(1,2,3```),所以諸如:A13(見下圖),就是圖上标紅的位置,這個是 xilinx 的一顆芯片示意圖,其它廠商的 FPGA 芯片也類似。

fpga芯片重要嗎(FPGA芯片内部資源有多重要)1

其次,FPGA 的功能命名規則。功能命名規則每個廠家都會自己的一套規則,但都大同小異,我們重點來講述一下 xilinx 的命名(xilinx 的文檔是行業标杆,其它 FPGA 廠家的資料多多少少會參考 xilinx)。通常 xilinx 的功能命名格式為:IO_LXXY#/IO_XX。其中:

(1) IO 代表用戶 IO;

(2) L 代表差分,XX 代表在當前 BANK 下的唯一标識号,Y=[P|N]表示 LVDS 信号的 P 或者 N;

(3) #表示 Bank 号。

比如,我們的原理圖中有一個 IO 的名字為:IO_L13P_T2_MRCC_12,那通過功能命名的規則我們就可以知道,這是一個用戶 IO,支持差分信号,是 BANK12 的第 13 對差分的 P 端口,與此同時它也是全局時鐘網絡輸入管腳(MRCC 是全局時鐘網絡)。

再次,什麼是 Bank。Bank 是一組物理位置和特性相近的 IO 的總稱,同一 BANK 的電壓的基準是一緻的,因此,通常如果我們需要各種不同标準的電壓,可以通過給到 BANK 的電壓基準不同的方式來實現多種電平标準的輸入輸出。通常封裝越大,BANK 數量也越多,可以支持電壓标準也越多。如下圖就是 ZYNQ 7030 的一個 IO BANK 分布圖:

fpga芯片重要嗎(FPGA芯片内部資源有多重要)2

除了 FPGA 的用戶 IO 外,還有很多其他的功能 IO,如下載接口,模式選擇接口,還有 MRCC,也即我們前文講到的全局時鐘網絡和局部時鐘網路等。其中最值得關注的是 FPGA 的電源引腳,其中 ZYNQ 器件包含兩套完全獨立的供電系統,一套是嵌入式端的電源(PS),一套是邏輯端的電源(PL),兩套供電系統完全獨立,因此也沒有先後上電的時序需求。如下:

fpga芯片重要嗎(FPGA芯片内部資源有多重要)3

通常包含的電壓有:

(1) 内核電壓,Vccpint 和 Vccint 分别為 PS 的内核電壓和 PL 的内容電壓,内核電壓的大小通常和工藝相關,如 48nm XILINX 器件的内核電壓為 1.2v,28nm 的 ZYNQ 器件的内核電源為 1.0v(通常電壓都有一個範圍,範圍也和速度等級相關),當然,電壓越低,在同樣邏輯規模和主頻下,對應的功耗也會越低。

(2)Vccpaux 和 Vccaux 分别為 PS 和 PL 的輔助電壓。在 ZYNQ 器件中為 1.8v。

(3) Vccpll 為内部鎖相環供電電壓。

(4) Vcc_mio0 為 PS 的 MIO0 BANK 的基準電壓,VCCO_DDR 為 PS 端的 DDR 的電壓,此電壓通常和選擇的 DDR 顆粒相關,如(DDR3,LDDR3 等相對應的值就有所不同,這一部分我們都要在相關視頻中做詳細解讀)。

(5) Vccon 這部分就我們前面講到的 PL 端的 Bank 基準。

對于純邏輯的 FPGA 器件,由于沒有 PS 端,因此相應的 PS 端供電就沒有,隻有 PL 端的供電,實現更簡單。

最後,我們來聊聊 FPGA 的上電。和所有的器件一樣,FPGA 的上電遵循一定的上電邏輯,通常情況下 SRAM 結構(XILINX、Altera 等都屬于 SRAM 結構)的上電時間會比 FLASH 結構的(Microm,Actel 等)上電時間要長。有些國産 FPGA 為了簡化 BOM 成本(如安路半導體)不需要用戶特别關注上電時序,用單電源供電,芯片内部控制上電時序。雖然不合理的上電時序有時候也能讓 FPGA 正常工作,但不正常的上電或掉電過程有可能會造成瞬時電流過大,無法保證上電期間 FPGAIO 為三态,甚至損壞芯片,因此需要設計者特别關注上電時序。針對 XILINX FPGA 的上電通常需要遵循以下規則:

(1)在 PS 端,Vccpint,Vccpaux,Vccpll 一起上電,後啟動 PS 的 Vcco 電源(Vcco_mio0,Vcco_mio1,Vcco_ddr),其中 PS_POR_B 在上電期間應保持低電平,直到内核,輔助電壓,PLL 電壓和 BANK 的電壓達到相應阈值。掉電的順序和上電順序保持一緻。

(2)在 PL 端,推薦的上電順序依次為 Vccint,Vccbram,Vccaux,Vccaux_io,Vcco。其中,如果 Vccint 和 Vccbram 是相同的電壓,則可以采用同一電源供電,同時啟動。Vccaux,Vccaux_io 和 Vcco 為同一電壓則亦可以采用同一電源,同時啟動。

除此,在設計 FPGA 的原理圖中要需要特别關注 Serdes 的供電(不同的廠家,甚至同一廠家不同的器件對 Serdes 都有不同的名稱,如:GTH,GTX 等等,但實質都是自同步的高速串行收發器,支持的速率有所差别),不使用的情況下需相應的懸空或者接地。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved