過去幾年中,SoC還是個讓業界摸索其定義和作法的階段,然而,這個階段很顯然已經跨越,沒有多少人懷疑今日的晶片設計必須有系統化的架構與能力了。現階段IC設計業者所關注的問題已經轉向:如何以又快又好的方式來發展SoC晶片。
Tensilica總裁Chris Rowen在今年的電子產業高峰會(Electronics Summit 2005)中提出SoC設計的六項新架構原則,相當具有參考價值:
(1)普遍性:可用在所有的嵌入式應用設計上;
(2)系統性:整個設計流程要涵蓋從架構規範到最後的軟硬體整合;
(3)低成本:設計投資和製程成本要低;
(4)低風險:設計上的錯誤可以避免或容易修正;
(5)可程式性:產生的平台能很容易地因應市場對新功能的需求;
(6)自動化:一般的工作團隊就能完成高複雜度的任務。
在這樣的架構需求下,SoC的設計方法學上已面臨大幅改變的臨界點。目前電子業界議論沸騰的方向是發展更高抽象層級、系統導向的硬體描述語言,也就是SystemC、SystemVerilog和Verilog 2005、VHDL 200x等統稱電子系統級(ESL)的語言。透過這種較高層級的語言,希望讓晶片設計師能把更多時間用在專案開始時的産品規劃、定義和劃分上。
然而,要做到這一步並非一蹴可及的。就現實面來看,晶片設計者眼前更迫切需要的是一些好用的工具,以幫助他們整合現有的設計流程。MathWorks的MATLAB是一個很好的例子,它為訊號處理的設計者提供了高度模組化環境,也就是透過很直覺化的介面、功能成熟的資料以及強大的圖形和視覺化能力來幫助設計者對訊號處理演算進行分析和除錯。
即使已做到這樣的地步,MATLAB離下一代ESL語言的境界仍有一段距離。它的M語言是功能強大的模組化語言,但還無法進一步過渡到提供適合建置及驗證的環境。不過,如果有更多的輔助工具,比方說讓MATLAB具有將浮點演算(floating-point algorithm)更容易轉換成定點(fixed-point)的能力,及快速、有效率的應用層級模擬能力,和高效率地從M語言產生C程式碼,那設計者就能針對系統級的要求進行反覆的測試確認,而且能很快地將他們的演算要求轉換到ASIC或FPGA的驗證流程中,以及DSP的建置上頭。
若能實現這樣的工作環境,M語言已離ESL語言企求的境界不遠,而這也是比較務實和容易做到的途徑。這樣的概念並不限於DSP的開發,也同樣適用於其他的建置目標,包括ASIC、FPGA或可程式處理器。看來,在一統江湖的系統級語言成形前,EDA及晶片設計者還是得先在各別的領域好好下工夫才行。