Chip123 科技應用創新平台

標題: 電子系統級設計:從現象到本質 [打印本頁]

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

8 }  Y+ x& @/ I" P6 F虛擬平臺
0 z9 b% [1 m# R, K
2 L1 k) v% }( n& N4 G7 I% c7 i9 S




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2