Xilinx技術總監(jiān):為FPGA設計帶來革命性變革
全球可編程平臺領導廠商賽靈思公司 (Xilinx, Inc. (NASDAQ: XLNX) )日前在進駐北京新址的慶典上,強調(diào)其對高增長的中國市場的承諾。該公司不斷擴大其在亞太地區(qū)的影響力,包括開設研發(fā)中心,并將本地銷售、市場營銷和應用工程設計等業(yè)務整合到統(tǒng)一的辦公地點。新址面積達 2,000 平米,將為北京本地、整個亞太區(qū)乃至跨國客戶提供強有力的支持。
以下是賽靈思賽靈思公司軟件研發(fā)技術總監(jiān)宋傳華博士在慶典中的演講實錄:
賽靈思中國研發(fā)中心的成立是賽靈思公司在2011年非常重要的投資,也是我們賽靈思研發(fā)部將創(chuàng)新DNA植根在中國的一個重要步驟,同時它也是我們“中國智造”整體戰(zhàn)略的一個重要組成部分。
當前賽靈思擁有多項領先業(yè)界的先進技術。其中業(yè)界首創(chuàng)的包括先進的28納米半導體技術、基于堆疊硅片互聯(lián)技術(SSIT)的多晶圓集成技術、數(shù)?;旌霞夹g以及多核可擴展處理平臺技術。這些技術大多基于硅片和硬件的平臺,而在軟件設計技術方面,我們也推出了AutoESL這一高層次綜合工具。它可以同時支持C語言、C++和SystemC的輸入,通過自動化的綜合過程生成高效的寄存器傳輸級設計描述。那么當這一高層次綜合技術和多核可拓展處理平臺技術結合在一起時,又將能夠給大家?guī)硪恍┦裁礃拥男伦兓兀?/p>
Zynq™-7000是我們最新的一款芯片,它同時集成了ARM的處理器和FPGA可編程邏輯,并擁有多方面的技術優(yōu)勢。首先是基于28納米的先進工藝,完美地將高性能和低功耗結合在了一起。同時,由于我們的CPU里集成了雙核ARM的處理器和常用外設接口模塊,大家仍然可以用傳統(tǒng)軟件開發(fā)的流程來開發(fā)自己的系統(tǒng)。此外,Zynq極大的加強了處理器和FPGA可編程邏輯之間的互聯(lián),其數(shù)量遠超傳統(tǒng)的多芯片解決方案,其速度也更快。關于Zynq平臺,最后我們來總結一個關鍵的信息就是,我們這個平臺不僅是一款先進的芯片,更是給大家提供了一個完整的開發(fā)平臺,它可以更好的支持大家完成自己所需的解決方案。
在整個設計平臺方面,在芯片的層面,我們提供了兩個部分,一是我們的處理器的系統(tǒng),第二就是我們可編程邏輯系統(tǒng)。從軟件的層面,我們提供操作系統(tǒng)和板極支持,我們的系統(tǒng)可以支持多種流行的嵌入式操作系統(tǒng)包括Linux、VxWorks、Android、WinCE和OSE等,這些大家都可以在我們的平臺上使用。為了便于用戶的開發(fā)我們還提供系統(tǒng)的仿真器,以及完善的軟件開發(fā)工具,也包括我們極為豐富的軟件IP,幫助大家快速的完成自己的設計。賽靈思和合作伙伴也提供了很多的參考板和參考開發(fā)流程,大家基于此進行拓展,就可以很快的完成自己的解決方案。在技術支持方面,賽靈思和我們的合作伙伴都可以給大家提供前后一致、完整的支持流程。來保證大家可以獲得必要的幫助。
AutoESL是一款創(chuàng)新性產(chǎn)品,是最近幾年業(yè)界非常關注的ESL設計方法學中一個突出的設計工具。它可以同時支持C語言、C++和SystemC這三種語言的輸入,然后通過我們的工具的自動綜合過程生成所需RTL設計描述。在傳統(tǒng)的開發(fā)流程中,這個轉換過程是需要是由算法組和硬件設計組來分別完成的,如今已經(jīng)可以由我們的工具自動轉換完成了。同時AutoESL還提供了一個集成的驗證流程。我們可以在C語言級別對算法進行驗證,然后系統(tǒng)會自動生成RTL包裝函數(shù),與C語言的測試向量進行連接和混合仿真來確認設計的功能,這個過程也是完全自動化的,無需用戶輸入和干預。當實現(xiàn)RTL之后,我們的工具會自動與后端FPGA實現(xiàn)軟件進行無縫連接,為大家提供一個完整的開發(fā)流程。
高層次的綜合有以下幾點好處。首先是設計生產(chǎn)率的提升。多年前工業(yè)界就完成了從晶體管級設計到RTL設計的轉變,今天我們完成的從RTL級設計到C語言級別設計的又一次飛躍。在高層次語言級別上進行設計有著豐富的數(shù)據(jù)類型支持,它可以幫助用戶更好地關注算法級的設計理念,而不被一些煩瑣硬件實現(xiàn)細節(jié)所打擾。舉個例子講,比如說當我們用到浮點運算的時候,我們通常是會愿意用整型的定點數(shù)據(jù)類型去進行轉換,以提高資源的利用率。在AutoESL設計流程中,我們直接給大家提供了定點數(shù)據(jù)類型的支持,包括中間類型轉換和精度的取舍操作,這樣大家就不必再關心這些繁瑣的實現(xiàn)細節(jié)。我們還可以看這樣一個具體的例子,在光流檢測視頻應用中,若使用RTL進行設計,模塊功能仿真需要兩天的時間,而用C語言級別進行仿真驗證,只需短短的十秒鐘。另外,我們的設計在可復用性和可移植性方面也有著更好的表現(xiàn)。當設計需要從一種性能指標轉換成另一種性能指標或者從一種器件移植到另外一種器件時,傳統(tǒng)的流程需要重新設計RTL的描述,而如今我們只要改變其中一兩個約束條件就能達到預期效果。
當Zynq和AutoESL結合在一起時,它們能給我們帶來什么呢?在傳統(tǒng)的設計流程中,軟硬件的劃分是在系統(tǒng)設計之初完成的,需要我們的系統(tǒng)架構師在一開始就進行系統(tǒng)的劃分。再由軟件工程師對軟件進行編程和測試,硬件開發(fā)人員對系統(tǒng)的硬件流程進行開發(fā)和測試,最終將這兩部分集成到Zynq平臺上。但是當Zynq和AutoESL結合在一起之后,我們的產(chǎn)品流程甚至設計方法學都產(chǎn)生了根本性的變化。在新的流程里,首先由系統(tǒng)開發(fā)人員進行系統(tǒng)算法級別的開發(fā),并通過對算法的性能分析,來找到系統(tǒng)的性能、功耗的瓶頸部分,然后將其通過AutoESL轉換成硬件加速器,依靠系統(tǒng)反饋來監(jiān)測系統(tǒng)指標是否可以滿足我們的需要。接下來我們的工具就會把軟件部分交給軟件編輯器去生成相應的二進制應用程序,而硬件部分交給AutoESL工具產(chǎn)生硬件加速器的RTL代碼,進而完成可編程邏輯的實現(xiàn)。整個系統(tǒng)的開發(fā)流程不再是分離的,而是變成了一個完整的開發(fā)過程。
通過這樣全新的設計流程,整個設計的靈活性也得到了較大的提升。我們不再需要一開始就綁定在某個解決方案上,而是可以根據(jù)我們的性能分析結果和設計需求的變化,現(xiàn)場決定設計方案。
綜上所述,我們說這種設計方法學的轉變是革命性的,將給大家?guī)砣碌脑O計體驗和開發(fā)的便利。