FPGA原型驗證在數(shù)字SoC系統(tǒng)項目當中已經(jīng)非常普遍且非常重要,但對于一個SoC的項目而言,選擇合適的FPGA原型驗證系統(tǒng)顯的格外重要,尤其對于首次使用基于FPGA的原型設計驗證的工程師而言,從FPGA原型驗證技術目標的細節(jié)理解到掌握如何使用它來構建芯片的原型,是一個質的飛躍,做到這一點,并非易事。下面我們來看一下如何Step by Step建立適合團隊的FPGA原型驗證系統(tǒng)平臺與技術。
FPGA的規(guī)模到底有多大?
芯片設計領域通常講到規(guī)模,我們第一反應一定是邏輯規(guī)模,當然對于芯片設計驗證工程師而言,邏輯門數(shù)是規(guī)模的第一反應,但實際上FPGA是構建SoC原型系統(tǒng)的最佳選擇,它不僅包含大量的組合邏輯和時序邏輯資源,還包含其他資源,比如各種類型的RAM存儲資源和DSP算術資源,以及時鐘資源、特殊的IO資源和高速互連接口與器件,這些都進一步擴大了FPGA技術用于芯片原型設計與驗證的范圍。
邏輯資源:FPGA在高度可配置的單元中實現(xiàn)邏輯,將查找表與可選輸出FF、進位邏輯和其他特殊元素相結合,以有效映射邏輯。
存儲資源:小容量內存可以用查找表配置,大容量的專用內存塊會分布在整個設備中,可以用作單端口或雙端口R/W同步內存塊。這些存儲器塊可以連接在一起并形成更深或更寬的存儲器塊,并且可以使用附加的內置邏輯來實現(xiàn)專用存儲器,例如單時鐘或雙時鐘FIFO。這些通常是從供應商提供的專用內存IP庫中配置的。
DSP資源:FPGA在整個設備中分布專用DSP資源(包括MAC等)也是常見的,(乘法/累加)塊、移位、幅度比較器和模式檢測等。此外,DSP塊具有級聯(lián)功能,允許它們連接在一起形成更廣泛的數(shù)學函數(shù),如DSP濾波器,而不使用邏輯FPGA資源。
IO接口資源:FPGA的IO可以多種方式配置,以符合各種標準、驅動強度、差分對等。
互連資源:FPGA中最重要的資源可能是各種塊之間互連的手段。除了一些特殊緩沖區(qū)之外,這些資源通常不能由用戶明確控制,而是由布局布線工具和一些高級綜合工具隱含地使用,以便在FPGA上實現(xiàn)設計的連接(Chip2Chip)。
時鐘資源:專用于實現(xiàn)設計的時鐘。這些專用的可編程時鐘發(fā)生器,包括PLL、全局和區(qū)域時鐘緩沖器以及低偏斜分布網(wǎng)絡。
特殊用途的模塊:一些設備具有實現(xiàn)特定功能的硬核模塊,如以太網(wǎng)MAC、PCI Express接口、選定的CPU核心或高速串行收發(fā)器(例如SERDES)。這些特殊模塊有助于實現(xiàn)行業(yè)標準的外圍接口。
建議:鑒于專用資源的專用性,SoC邏輯可能不會透明地映射到這些資源中。為了使用專用資源,一些SoC設計塊可能需要與FPGA等效功能的模塊替換。當進行此類設計更改時,應理解新塊的功能行為可能與原始塊不同。
關于FPGA資源的估算
FPGA資源豐富,我們通常希望很快地將這些資源應用到SoC相關的功能設計中,但實際上能否快速的將SoC代碼快速移植到FPGA,一方面取決于工程師的經(jīng)驗,另一方面真的取決于SoC的架構設計和代碼質量,一般而言組合邏輯路徑較短的設計更容易porting到FPGA原型驗證,也就是說善于運用寄存器的設計更容易porting,另外合理的流水線設計也將更容易porting。通常需要很多步驟的從SoC代碼移植到FPGA代碼,才能順利的porting完成。
在資源換算上,通常我們常說ASIC門數(shù)目,而實際上ASIC的門數(shù)和FPGA的門數(shù)換算并沒有一個嚴格的計算公式,大多數(shù)都是不嚴謹?shù)墓浪?,作為一名嚴苛的工程師,很容易進入到公式計算的思維定式,但實際上,很難有嚴苛的公式,大多是只是經(jīng)驗之談,比如一個LUT大概換算多少邏輯門,一個FF大概換算多少門,而在ASIC芯片設計中,所謂的門更是通過綜合工具綜合結果而來。另外,在FPGA綜合工具中,即使代碼量差不多,綜合出來的結果也會千差萬別,說白了,還是取決于代碼質量。建議首先根據(jù)特殊資源確定設計是否適合FPGA原型設計與驗證,一旦設計代碼可綜合,就通過綜合工具運行相關設計代碼,以獲得準確的FPGA資源使用估計。如果設計是可綜合的,建議使用快速綜合評估,以表明預期的資源利用率。
一旦給定設計的FPGA資源利用水平可用,我們就需要為設計的成熟度建立利用水平目標。一般來說,F(xiàn)PGA利用率越高,處理設計(合成、放置和布線等)所需的時間就越長,而且由于布線延遲更大,系統(tǒng)時鐘運行速度也會越慢。此外,在原型項目期間,設計可能會發(fā)生變化,未來可能會添加一些診斷邏輯,因此系統(tǒng)中FPGA的數(shù)量應保守考慮。
基于FPGA的原型設計的一個關鍵目標是降低SoC項目的整體風險,因此,將最后一點點的邏輯都要壓縮到FPGA中可能不是風險最低的方法。除了不留任何擴展空間外,當設備太滿時,F(xiàn)PGA布局布線結果也會降低,運行時間也會大大增加。指導方針可能是保持低于75%的利用率,這對于生產(chǎn)FPGA設計和原型項目來說是典型的,60%甚至50%都是合理的。這將縮短設計迭代時間,更容易達到目標性能。
代碼設計:好的設計代碼風格比其他設計更有效地映射到FPGA資源中,因為它們與FPGA架構和資源的匹配程度。如上所述,由于FPGA技術含大量觸發(fā)器,具有較高FF與組合邏輯比的設計可能比具有較低比率的設計實現(xiàn)更高的有效門,簡單來講就是組合邏輯路徑不要太長。
時鐘資源:雖然有多個時鐘域,但FPGA的PLL資源、時鐘多路復用器資源和片上的布線資源都是有限的。對于多時鐘設計,需要更仔細地查看所選FPGA中的可用時鐘資源和時鐘域限制。
布線資源:FPGA的可用邏輯可能受到布線資源可用性的限制,布線資源的可用性可能因設計而異?!案呙芏冗B接”設計可能會耗盡某些區(qū)域的FPGA布線資源,并限制對該區(qū)域FPGA資源的訪問,從而可能導致這些資源無法使用。此外,與“輕度擁塞”設計相比,此類設計可能以較低的時鐘速率運行。
IO資源:在現(xiàn)代SoC設計中,多FPGA分區(qū)設計中的FPGA在耗盡邏輯或內存之前耗盡引腳是非常常見的。平衡FPGA之間資源的分區(qū)可能仍然需要使用多路復用來路由FPGA之間的所有信號。
審核編輯:劉清
-
FPGA設計
+關注
關注
9文章
428瀏覽量
26420 -
存儲器
+關注
關注
38文章
7365瀏覽量
163085 -
RAM
+關注
關注
8文章
1344瀏覽量
114210 -
SoC系統(tǒng)
+關注
關注
0文章
52瀏覽量
10614
原文標題:如何給SoC項目評估FPGA原型驗證系統(tǒng)?
文章出處:【微信號:于博士Jacky,微信公眾號:于博士Jacky】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論