|
( 11 月 1 日 2008 年)
% b8 ~* L- F. uRon Wilson,執行編輯,EDN
# N* O2 @- _7 X0 s9 `3 o& x 4 p2 v9 D0 F1 K) G' Z1 z9 T
以下情形曾經就像是地平線上的微光:隨著系統單晶片 (SOC) 變得日益複雜,我們就會從暫存器傳送級 (register-transfer level ,RTL) 轉向下一個更高的抽象級——一些專家所說的 ESL 設計。我們會用 C++ 等高階語言來表示系統行為。我們會在這個級別對系統進行模型的建立和探索,把它劃分成硬體元件和軟體元件,然後按某個按鈕。腳本和 ESL 合成工具會消化我們的 ESL 設計,並還給我們一個近乎最優的 RTL 設計或甚至是網表,連同必要的軟體。設計工作的效率會再次領先於複雜性。4 v h$ V) r6 ]/ |/ P
但正如人們所說的,那是過去的事情了。現在,由於出現了許多的失效、錯誤的聲明,以及後來過於限制的工具(too-limited),許多設計工程師都把 ESL 放在與砷化鎵相同的類別裡:永遠的未來技術。然而,上述駁斥並不準確,就像某些早期的“使命完成”聲明一樣。ESL 工具目前在許多團隊的設計流程中扮演著關鍵性的作用。這些作用隨著團隊和應用領域的不同而不同。但是結果卻顯現出足夠的重要性,以至於設計經理現在排斥 ESL 就是在拿自己冒險。
& x) {7 _/ S$ a: i* F+ ^7 s* Y困惑與多樣性
. t' ^4 h0 S* Q. HGary Smith EDA 公司的創辦人及著名產業分析師 Gary Smith 說:“事實上,大多數我們所說的能力強的使用者(power user)自從 2004 年前後以來,便就一直在使用 ESL 工具。但其中許多工具都是在內部開發出來的,並且對於什麼是 ESL 工具,有著很多的困惑。”
5 ?$ I. ]9 [5 _3 H( a4 x9 F+ E這些困惑是可以理解的。“系統級”名稱下面隱藏著幾個抽象級。並且在上述的每個級別中,都有許多種工具,人們對它們的期望也有所不同。+ o; I' p( V: B+ \- p6 ~8 x
Smith 說:“最初的想法是 ESL 是關於架構的設計。”這個過程遠比按鈕式的行為合成更簡單。它簡單地意味著某個系統架構的文字形式且可執行的表示,它可以讓實驗在很高的級別上進行,在某種程度上是歷史悠久的架構設計工具——白板和電子試算表——的基於語言的版本。: `% G1 U. x$ ?, T2 [
Smith 接著說:“但是在 2004 年,這些工具是側重在消費性應用,並且真的是用於演算法設計,而不是架構設計。一點兒也不重視包含處理器、記憶體等各種區塊(block)的抽象級。”
) }: o8 Z- H$ k1 J/ W- h$ y即便是在演算法領域,過去和現在之間都有著明顯的差異。一些設計工程師把諸如 MathWorks 公司的 Matlab 之類基於代數的工具看作是描述和操縱演算法的自然方式。另一些則認為 C 或 C+ + 應該擔任該角色,儘管這些語言在語法方面強烈偏向特定的“遺產”實施——DEC 公司的 PDP-11 迷你電腦(minicomputer)。還有一些則認為:應該用一種為特定目的而發展的(purpose-built)演算法描述語言來開發各種演算法,它既不是純代數型的(algebraic),也不是純程式型(procedural)或順序型(sequential)的。當一代有趣的語言在數年前被停用時,最後這種觀點曾經消失,而如今又在復甦之中。Smith 說:“多核處理在 SOC 領域的出現已引發了對 ESL 工具的許多新工作。”
) O( T* [" m9 m對 ESL 的一個不同見解來自一些試圖較早開始開發軟體的專案負責人。在這些專案中,設計工程師使用 ESL 工具來開發基於軟體的虛擬原型。設計工程師把原型與自己正在開發中的驅動程式代碼等融合起來,並測試整合軟體系統,方式很像他們日後對真正在硬體上運行的代碼所做的測試。 |' f. b0 H& b% ?' e
另一些人仍然覺得:ESL 應該適當強調架構級實施,而不是簡單地表示演算法。這個觀點導致一些語言(主要是 C 衍生語言)和工具的問世,它們試圖在某個抽象級描述某項實施,並且為它附上(或從它推斷出)盡可能多的相關資訊——關於它暗示的 RTL 設計的結構、時序和能耗(後一種情形日益增多)。在該領域,人們最近也做了一些工作。% Z4 @* U* O. v* A
有這麼多途徑、期望和需要,當然就有困惑。也許澄清此一情況的最佳方式就是與一些設計團隊交換意見,事實上,他們正在上述各個級別運用這些工具(參見附文《展望未來》)。6 m* N) K, P, @. L# \/ U
演算法開發
' ~2 m# R P {僅僅是讓演算法正確這一件事,就可能成為設計流程中的一個主要部分,在數位信號處理的領域中尤其如此。這個挑戰至少分兩個階段:使數學原理正確、使從數學原理到硬體和軟體的轉換正確。正如 Smith 所說的,這個問題帶來了也許是最早的 ESL 工具的成功運用,並且依然很重要。
( A* b" D, w6 x1 L2 l) Q: h1 C, S' jMC2 Technology 集團的 DSP 與系統設計顧問Bob Davenport就是以這種方式使用 ESL 工具。他是安捷倫公司 SystemVue 產品的愛用者;SystemVue是一種方塊圖驅動型探索環境(block-diagram-driven exploration environment),用於通信和媒體處理應用領域的信號處理。Davenport 說:他用該工具開發演算法(經常是用各個作為該環境一部分的功能庫來組合它們)、探索這些演算法、產生 C 代碼,然後把代碼傳遞給 Texas Instruments Code Composer Studio 來實現優化。
9 N2 U9 m, P SDavenport 說:“例如,我們可以從鎖相迴路的方程式開始,建立它的模型,並分析它的性能。然後,我們可以產生代碼,把它畫成圖,並把繪圖用在報告中。”8 s/ L: U; g6 y% ^0 j
對於 Davenport 而言,很重要的一部分功能在於,無論有效數字的數量如何,他都能探索浮點算術形式的演算法,然後插入一些符記(token)來為具體信號設置整數精度。他說:“因此,如果你正在開發頻域 GPS 相關器(correlator)等器件,你就能首先讓核心演算法正常工作,然後探索如何縮小資料寬度,以便於實施。”他能簡單地按照以下的方式實現這個目標——開發出定點的實施(fixed-point implementation)、把相同的輸入量輸送給它和原始的浮點模型,並比較輸出量。如果有差異,他就反向檢測整個演算法,看看它們是在何處出現的。+ A \: {5 a, X3 b
Davenport 把他的設計流程主要用於為 DSP 核心產生代碼。不過這個套裝軟體還能為 FPGA 輸出硬體描述,Davenport 說這個功能開發得不太好,但他打算進一步探索。
. I% l* y7 z) r$ Z8 I4 O+ p2 q! u1 c. [! K0 s
虛擬平臺 - a/ q1 t' P- a" U" P i
/ J# ~8 E8 M. j6 W, C, M% [
|
|