公司簡介 產品資訊 教育訓練 活動資訊 鈦思書網 技術支援 工程師俱樂部 會員登入



 

系統層級設計環境(System-Level Design Environment)介紹(上)

鈦思科技股份有限公司
企劃部專員 黃忻


前言
電子設計自動化(EDA)近來成為炙手可熱的產業,每年皆有達兩位數的成長。隨著技術的發展,單一晶片精密度、處理器速度及軟體複雜度隨之提昇,連帶而來的是面臨市場要求性能表現之同時,還必須降低成本之挑戰,再加上愈來愈短的上市時程(time-to-market)帶來之壓力,使得傳統上設計階段分離、在各種不同工具間轉換且一再重新改寫的設計流程已不再適用。負責系統元件(component)開發工作之設計人員或公司主管,必須思考可以改善或加速其設計流程之各種方法及策略。本文旨在介紹基於這樣的需求而產生的系統層級設計(System-level Design)概念,以及根據此概念架構出來的設計環境,如何幫助設計者降低開發時可能面臨的風險,並提高IP的重複使用率,最後以一個實際的案例加以輔助說明。
 
傳統的設計流程
整體IC設計之流程可以大致分成三個主要階段,從演算法的開發(Algorithm Development)、設計與模擬(Design & Simulation)到最後的原型化及實現階段(Prototyping & Link to Implementation)。傳統上在進行設計工作時,每個階段的工作往往是由不同部門、缺乏共同溝通介面的團隊負責,每個階段使用的設計工具環境也完全不同-一個系統開發者在設計演算法時使用的開發工具,與工程師進行軟體或硬體實現時使用的工具不同-這樣的流程使得在不同的設計階段,必須使用不同的工具,而造成一再重複相同的工作,例如重新撰寫程式碼。不但工作過程繁瑣,且可能因各階段開發團隊的溝通整合困難,造成直到在進行設計最後階段之工作時,才發現錯誤百出,而需要不斷重複之前流程,並一再延後上市時程的結果。

 
圖一:傳統的設計流程。從設計概念的產生,一直到最後產品的推出,之間各階段的工作都由不同團隊、甚至不同公司負責,但因為缺乏共同的設計環境和溝通介面,往往必須將程式碼及設計規格用文件方式傳遞,造成溝通的不便及整合的困難,就如同要跨越一道道的牆,才能達到設計流程的下一階段般。
 
在90年代初期,ASIC設計者由以往仰賴schematic capture的CAE設計工具轉向使用HDL Code的EDA開發工具,製程技術之提昇使得在晶片上作複雜系統之設計更具成本效益。Verilog或VHDL滿足了元件設計者在實現其設計時之需求,成功扮演了模擬(Simulation)與合成(Synthesis)工作之間的橋樑。雖然這兩種工具之出現便利了將高階設計概念實現在晶片上之過程,但在整體流程之另一面向上卻無法達成相同的效率及便利性。更精確地來說,以HDL為基礎的模擬環境輸出的0和1等數位訊號,無法正確地支援系統層級模型的整合性開發。HDL基礎的模擬環境由於缺乏驗證系統層級表現所需的分析工具,因此大部分負責架構開發(architecture development)的系統工程師並不使用這些傳統的EDA工具。這種系統工程師與設計工程師使用不同發展環境的情形,對整個產品開發流程帶來相當程度的潛在風險。
當製程技術的進步再一次地迫使整體開發流程發生改變的同時,上述提及之風險便浮現出來。這次的改變並非發生在實體的設計流程,而是在系統設計之流程方面。為了滿足設計資源的重複使用(design reuse)及開發整合核心程式等需求,一個更為複雜的模型化環境-一個將系統層級模型和實體及驗證模型整合成一個完整的系統設計環境-應運而生,即本文中介紹的「系統層級設計環境」(System-Level Design Environment)。
 
系統層級設計環境 系統層級設計環境指的是一個高度整合的設計環境,使傳統上分離的設計流程和難以溝通的開發團隊得以在一個緊密連結的流程中,共同合作以完成開發工作。不論是負責資料分析及演算法概念開發、系統及元件模擬、即時原型化或是硬體測試軟體實現等工作之工程師,皆可在此環境中完成工作,加速整個開發流程,並使設計之驗證及重複使用更為容易。利用提供這種整合環境之開發工具,設計者可以大幅省下花在撰寫程式及尋找並修正設計問題的時間,而將時間與精力投注在設計概念的開發、全新科技的發展以及即時地將一流的產品設計上市等工作方面,有效地降低整體設計工作可能面臨的風險,滿足今日市場對於更好的性能表現、更低的成本及更快的上市時程等方面之要求。
 
圖二:一個完整的設計流程。包括演算法開發、設計與模擬及原型化與實現等三個主要階段。
 
系統層級設計環境之優點 一個理想的系統設計環境需要涵蓋完整的設計流程,亦即從演算法開發、設計與模擬到最後的原型化及實現皆可在單一設計平台環境中完成。為了實現這樣的概念,這樣的設計環境需要具備能夠整合不同元件,包括:類比/混和信號(analog/mixed signal)、DSP、數位通訊(digital communications)、及控制邏輯(control logic)等元件的能力。一但將系統模型化後,開發團隊即可開始檢視系統的表現是否能夠達成規格之要求,測試並決定設計之取捨(trade-offs)安排及參數之調校等工作,以達成性能表現最佳化。上述種種工作都能在一個階層式的模塊圖表(hierarchical block diagram)中設計呈現並進行模擬,使得負責各個不同設計階段工作的工程師能夠對整個設計有明白一致的概念,並且提供一個清楚、可執行的規格以為各個軟、硬體工程師設計系統元件時之依據。此設計平台可應用在DSP、數位通訊、類比/混和信號以及控制邏輯元件之設計,可以用來模擬單一或多頻道資料及線性和非線性元件。這種能夠在單一平台上模擬整個系統及系統中細部元件之情形使得開發者得以測試整個系統。
利用事先建立好的模塊(block)及函式庫(library),加上簡單的拖放(drag-and-drop)動作,開發者便可輕易地開始設計模擬一個規模巨大且複雜的系統,並藉著直覺式的模型圖表呈現及互動式的模擬、視覺化能力,讓複雜的系統簡單易懂,且可輕易地修改系統中的元件。而這些模塊及函式庫在日後設計其他系統時,可以再次運用,省去了重新編寫的時間,充分達到設計資源重新利用之需求。
 
圖三:階層式模塊圖表建構之系統範例圖。本圖為一ADSL系統模型,用以模擬利用現有的電話線,將資料由網路接線生端(ATU-C)以高速傳輸送到客戶端(ATU-R)之過程情形。
 
在系統層級設計環境中,各階段開發團隊不需要在設計流程中的三個階段中轉換時,反覆的重新編寫程式碼,以配合傳統上各階段不同的設計工具。過去在重複進行編寫動作的同時,錯誤往往也不斷地產生。在改用系統層級設計環境之同時,利用高階(high-level)的模塊以設計演算法,低階(low-level)的元件以建立精準的模型,最後連結到目標硬體的DSP進行即時的測試及除錯等工作,能夠在設計流程之初便除去因反覆撰寫程式碼而可能產生的錯誤。
在快速原型化和程式碼產生階段,可以直接在同一設計環境中,將上一階段的系統模塊圖表自動轉換成C code,不但省去人工編碼可能花費的大量時間,並且方便開發者將系統下載到各種目標硬體如:DSP、FPGA等,有效率且可靠地在實際目標硬體上測試設計,以方便在實際進入生產階段前作最後的修改。
 
圖四:系統層級設計環境示意圖。從研究階段到最後的原型化測試及實現部分,MATLAB&Simulink設計環境不但涵蓋完整的設計流程,還可以直接透過Real-Time Workshop,將Simulink模型轉成C程式碼,並與TI、Xilinx及Altera等廠商之硬體連結,以進行硬體測試與實現。