高性能汽車和FPGA:共同點比您想像的更多
1960年代以及1970年代早期被認為是‘肌肉車’(muscle car)的時代。這是從中型汽車設計採用大型引擎開始的。最著名的例子包括Chevelles、Fairlanes、GTO、442、Chargers和Roadrunners。同一時期,福特Mustang開始發展‘小馬汽車’(pony car)的趨勢,很快就引來了競爭,例如Camaro、Firebird、Barracuda、AMX和Challenger等。那時引擎大小是由立方英吋表示的,很明顯的就能在車上看到引擎的排氣量,如‘396’、‘429’、‘440’或者‘455’等數字代表了性能的高低。
這些引擎中最傳奇的當屬426 Hemi。該引擎自從1964年推出以來,由於它在賽事中前後囊括第一、第二、第三和第四名,導致NASCAR限制它參賽後,從此聲名大噪。從1966年直到1971年,必須符合NASCAR的批准條款或者車子達到規定的量產數量,才能參與賽事,這促使著名的‘公路版Hemi’面市,部分道奇和普利茅斯汽車採用了它。
Hemi引擎的排氣量為7公升,採用高轉速氣缸,上面是兩個籃球大小的4缸化油器,具有非常保守的425匹馬力。很少有汽車能夠比得上採用了Hemi的Cudas和Challengers,可能只有427 Corvette能夠與其相匹敵。
肌肉車時代一直持續到今天,雖然可選擇的車型已經越來越有限了,但其價格是可以接受的,大部分消費者都買得起Camaro、Mustang、Corvette、Challenger或者Charger,這些車有V8引擎,達到400匹以上的馬力,而且還有其他600-700匹馬力的引擎可供選擇。
當今的FPGA製造商正進行類似的競爭,這對於FPGA客戶非常有好處。在過去幾年中,邏輯密度、記憶體容量、DSP模組、收發器速率和數量等,幾乎所有的性能指標都在不斷增長。當然,讀者對此並不陌生。
其中一項比較是如何實現這些性能,也就是將理論和實際相連結。回到最初的肌肉車時代,既有手動排擋也有自動排擋,熱情的車友大多選擇手動排擋。在一名好的駕駛手中,4速手動排擋明顯較低效率的3速自動排擋更佳。手動排擋也更省油,但那時候並不太關心這個議題。
然而,對於現代的肌肉車來說,情況正好相反。自動排擋使用電子控制而不是油壓控制,換擋的速度能達到100-200ms的等級級,比人類的反應快得多,轉速匹配也是如此。電子控制功能幫助駕駛防止車輪打滑。儘管已經很難藉此提高性能了,但內建的排檔桿可讓駕駛自行選擇檔位。自動排擋現在也很省油,這在目前非常重要。檔位的相對數量現在也已經反過來了,例如,現在的道奇(Dodge) Challenger有8速自動排擋和6速手動排擋。當然,不論是出於傳統還是手動換擋的直接感覺,很多純粹主義者還是喜歡手動排擋,但這再也與提高性能無關了。
對於FPGA,也有同樣的發展趨勢,但不是那麼眾所周知。傳統上,FPGA是在Verilog或者VHDL中以手動方式進行程式設計,使用定點(整數)數字來表示,程式設計人員決定由底層來實現,例如,什麼時候插入管線暫存器等。即使是合成和配接器工具可全部自動完成設計,最終設計的品質基本上也取決於FPGA程式設計人員的技術水準。
新的FPGA架構開始改變這些現象。例如,現在的Altera Arria 10 FPGA在數千個DSP模組中內建了單精確度浮點引擎。使用浮點之後,FPGA程式設計人員在每次數字運算後,不必再確定位元寬、截斷與飽和等級,大幅簡化了程式設計工作。浮點數字可以自動完成表示和實現的這些工作。整數現在保留用於常見的功能,例如,迴圈計數、狀態機和記憶體索引等。這在演算法進行模擬和實現之間建立了直接通路,保持了系統和FPGA工程師之間的一致性。
使用傳統的Verilog和VHDL設計流程支援這些特性的實現,仍然會繼續主導FPGA設計流程。但是,還是有其他設計流程。OpenCL是GP-GPU程式設計人員的語言,現在已針對FPGA進行了最佳化,提供真正的‘按鍵式’編譯體驗。
採用模型架構的設計,設計人員可以繼續留在Mathworks環境中,也能夠獲得最佳結果,很多複雜的大傳輸量參考設計證明了這一點。與手動排擋相似,FPGA設計人員仍然可以選擇像以前一樣進行設計和最佳化,傳統的設計也會跟以前一樣工作。但是,FPGA設計人員將會發現,新的自動方法能夠實現相同甚至更佳的結果。
而且,隨著邏輯密度的快速成長,很多工程師會發現缺乏足夠的時間像以前一樣手動進行大規模FPGA的設計最佳化。就像高性能肌肉車一樣,在FPGA世界中,應該開始發揮自動化的優勢了。
社區今日頭條 |
---|