上篇(為啥FPGA資源/時(shí)序都有很大的優(yōu)化空間?)提到過(guò):因?yàn)榇蠹乙恢倍紱](méi)去怎么優(yōu)化FPGA,然后就導(dǎo)致FPGA可以?xún)?yōu)化的空間很大。工作中會(huì)有一批人知道可以?xún)?yōu)化但很少去承擔(dān)優(yōu)化的工作,也有一批人不知道能怎么優(yōu)化,還有一批人開(kāi)始要硬著頭皮開(kāi)始優(yōu)化FPGA了,那這么一批人為啥要硬著頭皮開(kāi)始優(yōu)化FPGA了?
1.? 市場(chǎng)導(dǎo)向開(kāi)始變了
做技術(shù)的工程師追求技術(shù)高,但一個(gè)公司追求的是利潤(rùn)和快速變現(xiàn)。以前,F(xiàn)PGA作為一個(gè)比較高端的芯片,使用這個(gè)芯片的行業(yè)并不那么多,因此,只要你用上了FPGA開(kāi)發(fā)了對(duì)應(yīng)的產(chǎn)品,就能在市場(chǎng)上大賺一筆,簡(jiǎn)單說(shuō)就是以市場(chǎng)、能賣(mài)出去為導(dǎo)向,包括現(xiàn)在還是有很多行業(yè)也還是這樣,所以,自然FPGA只要能做出產(chǎn)品、實(shí)現(xiàn)功能就可以了,并不需要你做的更好,自然就不需要去優(yōu)化FPGA,F(xiàn)PGA開(kāi)發(fā)是否規(guī)范都不重要。
但是,現(xiàn)在它開(kāi)始變了:
進(jìn)入某個(gè)行業(yè)的公司越來(lái)越多,大家使用的FPGA方案都大同小異,不再是隨隨便便用FPGA搞一下,這個(gè)市場(chǎng)就都是你的了,大家開(kāi)始卷FPGA了,當(dāng)然也有人說(shuō):“和客戶(hù)的關(guān)系很鐵,只會(huì)用我們的產(chǎn)品,不優(yōu)化FPGA技術(shù)我們也能賣(mài)出去?!逼鋵?shí),他說(shuō)的一點(diǎn)沒(méi)毛病,是這樣的,但也能肯定另外一點(diǎn):客戶(hù)會(huì)反饋市場(chǎng)上其它產(chǎn)品比較好的點(diǎn)(比如:實(shí)現(xiàn)同樣的功能,別人做的產(chǎn)品更小,自然功耗更小,成本更低),需要你去改進(jìn)自己的產(chǎn)品,也就是你也要開(kāi)始卷自己的FPGA了,倒逼自己的研發(fā)硬著頭皮去優(yōu)化FPGA(實(shí)際優(yōu)化FPGA的第一步是先規(guī)范FPGA開(kāi)發(fā),而很多很不規(guī)范),不然時(shí)間久了,再鐵的關(guān)系,東西差太多客戶(hù)也不會(huì)買(mǎi)單;
FPGA的招聘信息,幾年前都是只需要有FPGA經(jīng)驗(yàn),懂這懂那就行;但現(xiàn)在,你會(huì)發(fā)現(xiàn)一些公司加了2條:有規(guī)范的FPGA代碼和文檔編寫(xiě)經(jīng)驗(yàn),有優(yōu)化FPGA時(shí)序、資源和功耗的經(jīng)驗(yàn)。而且還可能一直都找不到這方面的人;
目前的經(jīng)濟(jì)不景氣,經(jīng)濟(jì)下滑,很多公司都在不斷的開(kāi)源節(jié)流、降低成本,F(xiàn)PGA也因?yàn)橹撇贸杀疽沧兏吡?。產(chǎn)品中,優(yōu)化FPGA使用低成本的FPGA實(shí)現(xiàn)相同功能的需求越來(lái)越多,10年前,我待的一家公司,就在不斷地優(yōu)化FPGA,使用更低容量成本的FPGA替代原來(lái)的FPGA,降低整個(gè)產(chǎn)品的成本,前提是這家公司的FPGA開(kāi)發(fā)一直都非常規(guī)范,接近IC設(shè)計(jì),這樣才好去優(yōu)化FPGA。
2.? FPGA工程師也開(kāi)始變了
以前FPGA工程師可能主要精力在功能的實(shí)現(xiàn)和Debug上:隨便寫(xiě)代碼,只要實(shí)現(xiàn)了功能,能正常工作,不仿真都是常事;Debug更是簡(jiǎn)單粗暴,C語(yǔ)言式的修改->編譯->上板測(cè)試,通過(guò)了就算Debug好,哪里有問(wèn)題補(bǔ)哪里,代碼千奇百怪,無(wú)所不用。
但是,現(xiàn)在它也開(kāi)始變了:
FPGA的容量越來(lái)越大,編譯時(shí)間越來(lái)越久,代碼越來(lái)越復(fù)雜,Debug時(shí)間越來(lái)越長(zhǎng)。FPGA工程師在內(nèi)部不得不搞起了標(biāo)準(zhǔn)化,開(kāi)始更多的對(duì)寫(xiě)的代碼做仿真,整理優(yōu)化寫(xiě)的代碼,雖然算不上優(yōu)化FPGA,但至少規(guī)范化了FPGA的設(shè)計(jì)開(kāi)發(fā);
FPGA玄學(xué)的bug越來(lái)越多:什么有一些FPGA芯片可以正常工作,而另外一些FPGA芯片則亂碼;什么有時(shí)候FPGA復(fù)位能工作正常,有時(shí)候FPGA復(fù)位直接跑飛......等等。不懂和懂FPGA的都摸不到頭腦,其實(shí)大部分是需要優(yōu)化FPGA的時(shí)序等。
FPGA編譯和Debug的時(shí)間成本越來(lái)越大,勢(shì)必就會(huì)導(dǎo)致加班越來(lái)越多,加班Debug多了,遇到的問(wèn)題多了,反思總結(jié)也就多了,F(xiàn)PGA工程師也就至少會(huì)開(kāi)始重視FPGA的規(guī)范化設(shè)計(jì),如果能規(guī)范化FPGA設(shè)計(jì),一段時(shí)間后,加班自然就會(huì)變少,加班變少,也就有可能會(huì)去優(yōu)化FPGA。