這兩年由于疫情,太過(guò)于動(dòng)蕩,包括我們的FPGA,也由于市場(chǎng)、供應(yīng)鏈、以及某些人的短期趨利問(wèn)題,價(jià)格簡(jiǎn)直上了天。
過(guò)去一個(gè)設(shè)計(jì)用了Altera的EP4CE30F23C8N,這款芯片幾乎是Altera性價(jià)比最高的芯片,并且他和EP4CE40F是同一個(gè)Die,因此熟悉門路的人知道,可以直接將EP4CE30F價(jià)格采購(gòu)的芯片,當(dāng)作EP4CE40F來(lái)用,瞬間資源倍增,如下圖所示,LE直接增加1/3,Memory和乘法器幾乎翻倍:
可惜是曾經(jīng)可以用60-80RMB的零售價(jià)買到的EP4CE30F FPGA,由于這兩年的動(dòng)蕩,以及供應(yīng)鏈的轉(zhuǎn)移,10倍的價(jià)格也只能買到翻新的料了。或許Altera也可能已經(jīng)放棄了中低端Cyclone IV系列FPGA,或者更多的將產(chǎn)能放到了高端Stratix FPGA上了。
那么我們就難了,原有的產(chǎn)品不能因此斷片,全新的EP4CE30幾乎需要幾千才能買得到,進(jìn)退兩難,只能另謀出路,上帝給你關(guān)閉一扇門的同時(shí),很有可能還會(huì)給你開(kāi)另一扇門。
之前我寫過(guò)一篇公眾號(hào),時(shí)隔10年,我將重新殺回國(guó)產(chǎn)FPGA,其中我列舉了當(dāng)前國(guó)產(chǎn)FPGA的市場(chǎng)格局,如下圖所示:
我在這些選項(xiàng)中尋找尋找可以替代EP4CE30F的FPGA,希望這款FPGA可以滿足以下要求:
邏輯資源在30K左右
硬件DSP在100個(gè)以上
引腳在256-484之間
有豐富的Memory資源
可以運(yùn)行在200MHz左右的頻率
縱觀思維導(dǎo)圖,我找不到可以同時(shí)滿足以上5個(gè)要求,同時(shí)價(jià)格還可以和EP4CE30F不相上下的FPGA。直到有一天,Eric給我推薦了易靈思。易靈思有Trion和鈦金兩個(gè)系列,相比工藝Trion系列和Cyclone IV更貼近,同時(shí)第一次觀摩T35(35K LE)的內(nèi)部資源,瞬間讓我找到了北,太滿足替代EP4CE30F的需求了,其資源如下。
尤其是乘法器的數(shù)量,在同等規(guī)格的國(guó)產(chǎn)FPGA中,我?guī)缀跽也坏侥茏龅竭@么慷慨的,這給需要做一點(diǎn)圖像運(yùn)算的我笑出了聲。
一直拖著,一直拖著,直到有一天,我確實(shí)被Altera的貨源逼瘋了,最終不得已,我下手將EP4CE30F給成了T35F324,即便是降低性能我不能讓設(shè)計(jì)承受50倍物料的成本,為此不惜代價(jià)。也感謝自己放棄了很久,最終還是堅(jiān)持到了曙光,雖然這一路上的坎坷,真的不堪入目。
(一)軟件使用的艱難
這應(yīng)該是使用國(guó)產(chǎn)FPGA,尤其是使用易靈思FPGA的同仁的心聲。細(xì)數(shù)目前國(guó)產(chǎn)FPGA的軟件開(kāi)發(fā)環(huán)境,只有類Quartus和不類Quartus兩種,前者以紫光、安路為代表,換個(gè)環(huán)境根本不需要什么手冊(cè)教程;后者就是易靈思的Efinity,思路清奇,別具一格,用FAE的話說(shuō)是:沒(méi)有他們的指導(dǎo)很難摸透(所以之前寫過(guò)一篇文章:骨骼清奇的易靈思FPGA-小試牛刀驅(qū)動(dòng)LVDS屏)。
這過(guò)程確實(shí)浪費(fèi)了不少的時(shí)間,包括Interface是純硬件的設(shè)計(jì),到Design的物理連接是分離的,所以原先Altera的設(shè)計(jì)不能直接移植。同時(shí)RAM ROM使用LUT描述再映射RAM的方式,確實(shí)和之前直接用IP Core非常不一樣。這里以引腳分配為例,截圖為證:
(二)軟件綜合和PR的坑
由于原本在設(shè)計(jì)中,采用ShiftRAM生成了41*41的窗口進(jìn)行后續(xù)的圖像處理,因此簡(jiǎn)單粗暴的有1681*8個(gè)寄存器,用于計(jì)算。但一模一樣的設(shè)計(jì),在易靈思的Efinity中半天都無(wú)法綜合出結(jié)果,更別說(shuō)PR,百思不得其解,最后只能花費(fèi)巨大的精力,將按窗口的存儲(chǔ)修改成按照列的存儲(chǔ)模式,但是代價(jià)是需要復(fù)雜的邏輯以及主頻。下圖分別是Quartus與EfinityPR后的資源報(bào)表:
因此,這里不得不說(shuō)國(guó)產(chǎn)FPGA的EDA工具鏈的重要性。在IC行業(yè),EDA工具是被Synopsys、Cadence、Mentor三大家壟斷的,國(guó)產(chǎn)EDA目前還只是萌芽階段,這方面少說(shuō)還有幾十年的差距。
FPGA行業(yè)也亦是如此,Quartus II的軟件是做的宇宙最好的,那是真的好用;Xilinx的Vivado是做的很強(qiáng)大甚至一個(gè)軟件30多G,強(qiáng)大到一時(shí)半會(huì)兒還學(xué)不會(huì)。國(guó)產(chǎn)FPGA的軟件,那簡(jiǎn)直做的是一塌糊涂,到底是PR優(yōu)先,還是時(shí)序有限,或者其綜合、PR算法,那真的不敢恭維,個(gè)人認(rèn)為還是有很長(zhǎng)的路要走。
不過(guò)易靈思的Efinity軟件,相對(duì)其他某幾家,做得還是不錯(cuò)的。
(三)硬件設(shè)計(jì)的約束
這方面真的太難了,如果沒(méi)有FAE的支持,處處是坑。如果有FAE這根避雷針,很多時(shí)候可以避免掉坑里,畢竟爬出來(lái)還要很久。比如:
1)CRESET必須有上拉電阻+下拉電容,或者加一個(gè)復(fù)位芯片,否則無(wú)法正常啟動(dòng)工作
2)硬件設(shè)計(jì)的時(shí)候,有些GCLK輸入的時(shí)鐘可以去PLL,而有些GCLK輸入的時(shí)鐘只能直接使用。
那么問(wèn)題來(lái)了,如果全局只有從PLL GCLK輸入的時(shí)鐘,如果我想先延時(shí)一段時(shí)間在釋放PLL的復(fù)位,那么就得用PLL之前輸入的時(shí)鐘,但是Efinity從PLL輸入的時(shí)鐘,不允許用戶直接拿來(lái)用,似乎是PLL專用的。。。所以這就很尷尬,強(qiáng)行使用,采用Efinify 2021編譯直接報(bào)錯(cuò),采用2022編譯會(huì)給出Warming,但流程可以繼續(xù)往下走,這就很尷尬了。
個(gè)人目前對(duì)Efinify的GCLK網(wǎng)絡(luò)結(jié)構(gòu)還是有一點(diǎn)懵圈,不知道只有bug呢,還是有特別的妙招,反正現(xiàn)在使用受限。
3)一個(gè)BANK并不是所有IO都可用的,但用了也不會(huì)咋地,F(xiàn)AE又據(jù)說(shuō)速度慢一點(diǎn)可以,但有時(shí)也真是有一些異常,官方有明確的答案嗎?
然后我現(xiàn)在確實(shí)有遇到一些神奇的問(wèn)題,比如某一個(gè)一定時(shí)序啟動(dòng)的設(shè)備,有概率性時(shí)間起不來(lái),不知道是不是IO用多了的問(wèn)題。
面積與功耗的優(yōu)勢(shì)!!
但不得不說(shuō)易靈思的FPGA,0.65mm的球間距,12*12mm的封裝尺寸,還有當(dāng)前設(shè)計(jì)沒(méi)有用上的DDR硬核和MIPI CSI控制器,簡(jiǎn)直是圖像領(lǐng)域FPGA設(shè)計(jì)的福音。
還有非常關(guān)鍵的一點(diǎn),我們都知道Altera FPGA功耗比Xilinx FPGA的功耗做的好很多,但與易靈思FPGA相比;同等規(guī)模+同樣設(shè)計(jì)的Altera的功耗,還是做的略遜了一點(diǎn)。如下所示,同樣的系統(tǒng)+同樣的設(shè)計(jì)(后來(lái)用了同一套代碼),分別測(cè)試Altera與易靈思T35方案,實(shí)際的5V下電流,如下所示:
從原先的6.4W,到采用易靈思T35后降低到3.8W,幾乎降低了40%的功耗。并且這還是整機(jī)的功耗,如果單純?cè)u(píng)估FPGA的功耗,估計(jì)降了100%以上(系統(tǒng)中還有一個(gè)吃電的DLP光機(jī))
至此,最近幾個(gè)月的易靈思FPGA項(xiàng)目實(shí)戰(zhàn)的坎坷精力,已經(jīng)給大家匯報(bào)完畢,期間也是一把鼻涕一把淚,換方案想著簡(jiǎn)單,做起來(lái)還是挺麻煩的。此處感謝易靈思T35,可以把物料成本上天的方案降低到合理水平,得以讓此繼續(xù)。也真心祝愿各位采用國(guó)產(chǎn)FPGA做替代的朋友,早點(diǎn)讓自己的設(shè)計(jì)安頓下來(lái),找到一條可以走得更遠(yuǎn)的路。
基于易靈思的Trion系列的T35F325,以及鈦金系列的Ti60F225,在愛(ài)好驅(qū)使下我也設(shè)計(jì)了相應(yīng)的FPGA開(kāi)發(fā)板,以Ti60F225為例,如下所示(感謝原廠在FPGA生態(tài)會(huì)上介紹),了解更多,請(qǐng)去淘寶店鋪:crazyfpga.taobao.com(或者搜索CB電子)查看,或者私信聯(lián)系本人,謝謝。