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



 

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

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


系統層級設計環境之代表性工具-MATLAB&Simulink設計環境
鈦思科技及美國總公司The MathWorks, Inc.的MATLAB&Simulink環境即為系統層級設計環境的提供者中,居領導地位的廠商之一,且涵蓋之應用領域亦十分廣泛,無論是作無線通訊(wireless)、寬頻通訊(broadband)、多媒體(multi-media)或半導體(semiconductor)等設計,都能在MATLAB&Simulink環境中找到解決方案。同時在MATLAB&Simulink的開放架構下,設計者可以將自己編寫的C code或M code包裝起來,以建立自己的模塊或函式庫,實現設計資源重複使用的理想。
 
DSP及數位通訊系統設計
以知名的演算法開發環境-MATLAB,搭配Signal Processing Toolbox可以提供豐富開放的架構幫助使用者進行類比及數位信號處理之設計,內建許多訊號或系統分析方法,如:濾波器設計(filter design)、濾波器分析(filter analysis)、頻率響應(frequency response)、頻譜估計(spectral estimation)及統計訊號處理(statistical signal processing)等。Fiter Design Toolbox協助開發者進行數位濾波器的設計及分析等工作。藉由此工具,使用者可以精準地達到許多實體設計方面所要求的規格、功率及速度方面的需求。Wavelet Toolbox提供直接點選(point-and-click)的圖形化工具及指令列功能,以便利設計者對訊號及影像作1D或2D的分析、合成(synthesis)、去除雜訊(denoising)及壓縮等工作,提供一個實用且完整的管道以運用小波分析理論工具。
對於從事DSP設計的工程師來說,Simulink及DSP Blockset提供所有標準的DSP元件。Simulink是一個功能強大的模塊圖表模擬環境,使用者僅需利用拖放及連結等的簡單動作,配合上預先內建的各種模塊,便可建構複雜的系統模型,為整個MATLAB&Simulink系統層級設計環境之基礎。DSP Blockset預建的模塊庫中包括可運用來作濾波、頻譜估計、向量及矩陣數學及統計等模塊。模塊可以在多種速率(multiple rates)下執行,支援快速訊框基礎(frame-based)模擬使得大量數據資料可在每段時間下處理,使得模擬可以更快速地進行,另外支援多頻道內建矩陣基礎模擬亦為其功能之一。Fixed-Point Blockset讓使用者能夠有效率地設計定點的系統和數位濾波器,並且進行bit-true模擬以觀察在有限的精準度下的模擬結果。
對於數位通訊系統的設計工作者來說,其工作往往牽涉到頻道、調變、error-coding以及inter-leaving schemes的設計,並需管理不同取樣速率(sample rates)下的位元、符號及訊框等。此外,系統的性能表現也要分析,通常是以bit error rate(BER)測試來進行檢驗。MATLAB的Communication Toolbox提供函式以建構ISO 實體層(physical layer)的元件模型,用來分析及開發如:手機、基地台、無線電話、DSL、纜線及撥接數據機、區域網路及衛星系統等,並且可用來作為通訊系統工程研究及教學方面的基礎工具。Communication Blockset包括來源(source)及頻道編碼(channel coding)、誤差編碼(error coding)、頻道模型化及調變等應用模塊。另外,CDMA Reference Blocksets包含用來建立及模擬CDMA IS-95A無線通訊標準的模塊,開發者可以藉此建立一個完整、end-to-end的無線通訊系統模型。

 
類比/混合信號及控制邏輯系統設計
傳統上利用電路模擬器(circuit simulators)設計的類比/混合信號及控制邏輯系統元件,如:鎖相迴圈(phase-locked loop)及類比/數位轉換器(A/D converters),現在可在Simulink單一平台上設計並模擬。過去使用的電路模擬器如:SPICE等工具,往往存在著模擬速度慢、僅提供針對類比行為(analog behavior)的非連續時間近似(discrete-time approximation)。但由於在類比及混合信號模擬方面,時間的正確性至關重要,因此傳統的做法往往在正確性方面受到一定的限制。利用Simulink的系統層級設計環境,開發者可以在單一模擬中同時建立類比及數位元件之模型。真實世界中混合信號的元件,如:轉換器,可以用Simulink中的混合信號模塊來表示,並以最快的速度在極短的時間間隔下進行模擬,以避免受制於一個過度取樣(over-sampled)類比信號有限的正確性。至於控制邏輯設計方面,如:初始化(initialization)、協定(protocols)以及使用者介面(user interfaces)等,通常具有事件驅動(event-driven)或回應的特性,一般往往都以有限的狀態機器(finite state machines)來建立這類的模型。StateflowR使開發者得以利用建構視覺化的狀態圖表來設計這些事件驅動的控制邏輯,一個狀態圖表就如同Simulink模型中的一個模塊一樣,可以被Simulink的信號驅動,並且可以依據Simulink送的訊號決定要如何反應,呼叫MATLAB程式碼和C程式碼,並輸出資料或事件,以控制整個模型的其他部分。這些事件狀態的轉換都可以用視覺化的方式呈現,並可以清楚地檢視這些狀態與系統訊號間的關係。
 
原型化及實現
測試及驗證階段的工作過去可能佔了整個設計流程三分之二以上的時間,而人工編碼(hand-coding)時的繁瑣工作及過程中產生的錯誤往往更延長了這些原本就花去許多時間的過程。Simulink利用即時快速原型化的工具、co-simulation的能力以及與不同廠商DSP、FPGA軟體或硬體間的緊密連結,協助開發者減少錯誤、有效利用所有程式開發資源、節省專案開發之時間並降低設計成本。
藉由Simulink系統層級設計環境中的Real-Time Workshop-一個程式碼產生及快速原型化工具-可直接將Simulink模型轉成有效率、可自由運用的程式碼。Real-Time Workshop可產生ANSI C程式碼,供開發者下載到DSP或嵌入式系統等晶片硬體。利用簡單的點選動作,Real-Time Workshop可將編譯(compiling)、連結(linking)及下載(downloading)等動作全部自動完成,藉此與目標硬體之間建立快速且簡易的連結,在即時環境中提供一個有效率且可靠的方式來測試、評估及實現開發者之設計。開發者可以利用Real-Time Workshop中內建的Target Language Compiler來產生適用於不同平台的程式碼。此編譯器利用可供檢視並修改的ASCII檔案,以控制每個特定Simulink模塊的程式碼產生方式。同時,利用Stateflow搭配Stateflow Coder,開發者也可以直接由Stateflow的狀態圖模型產生相對應的C程式碼,並可與Real Time Workshop產生的Simulink模型的C程式碼整合,產生代表整個模型的C程式碼,這使得Simulink和Stateflow環境成為發展汽車、航太及電信產業設計應用之嵌入式系統的理想平台。
最後,藉由鈦思科技及The MathWorks, Inc.提供的硬體連結功能,開發者可輕易地將系統下載至目標硬體DSP,如:TI的C2000、C6000系列DSP、Motorola MPC555,或FPGA,如:Xilinx及Altera的FPGA等,便利開發者在硬體上進行測試及實現。下面便以一實例來說明鈦思科技及The MathWorks提供之整體系統層級設計環境。
 
實例說明
以往我們在設計一個系統模型時,前置作業都需經過繁瑣的程序,包括研究階段之複雜polynomials推導、設計階段的軟、硬體結合/除錯等,常常都消耗大量時間成本及研發時間,若能改以一系統層級設計環境,從頭到尾的涵蓋此研發到量產階段之設計流程,可大大地降低研發時間及人力成本。下例我們以一FIR response在DSP/FPGA實現的模型來說明整個MATLAB&Simulink系統層級發展環境的開發流程。
 
1. 演算法開發:此例中開發團隊希望建構一FIR濾波器,做一個改變音頻解析度(audio resolution)的處理器。首先,利用圖五中藍色部分的MATLAB&Simulink,可以順利幫助開發者完成演算法開發的過程。而建立好的Simulink模型,即成為各階段開發團隊間易於上手應用的規格模型。
 
圖五:演算法開發的工作通常在MATLAB&Simulink環境下進行。
 
2. 測試與模擬:當演算法開發完成後,整個系統模型便已經清楚地呈現,如圖六所示。在此例中由於目標硬體是Xilinx的FPGA,因此在建構模型時,利用到Xilinx所提供的模塊組。而圖中在輸入部份是以Simulink中內建的模塊去產生一個音訊,此例中我們以最簡單的一個Sine波為訊號來源;在輸出部分同樣是以Simulink內建的模塊Scope供開發團隊在作測試時可以清楚地觀察結果。模型的中央則是由加拿大的LSP公司提供,針對Xilinx FPGA作軟體模擬的模塊,而MCBSP Gateway in、out,是負責Simulink及Xilinx模塊間的溝通媒介,正中央則為開發團隊所建構的FIR核心設計部份。由於之前研發階段已完成,接下來就進入了內部參數設定,即相當於軟體、硬體團隊在作連結及演算法設計流程。而在軟、硬體模擬部份,我們一樣以此相同環境及模型以進行除錯或修改等步驟。如下圖所示:
 
圖六:在相同的環境下進行測試、模擬、除錯及修改等步驟。
 
3. 原型化及實現:
當在軟體環境下之測試模擬都完成之後,我們接下來便要在實際的目標硬體上測試所設計的系統,即原型化測試。圖七中央的SMC6XX MCBSP模塊代表即將下載至目標硬體-此例中為Xilinx的FPGA-實現的系統模型,而輸入、輸出訊號已經改成實際日常應用的音效源(如:麥克風)及喇叭。在下載過程中,只要設計者想要改變內部參數去測試不同狀況,便可在模塊中即時去修改參數,而系統也會即時地去調整參數。在完成原型化測試,確定系統在硬體上面之運作無誤後,便可直接進行產品量產階段。
 
圖七:在同一環境下將相同模型下載到目標硬體上直接進行原型化測試。
 
結語
系統層級設計之概念與環境已成為EDA產業不可避免的趨勢,在產品上市時程不斷提前之壓力下,如何以最快速、最有效率的方法完成系統的觀念產生、設計、測試、模擬到產品上市的一連串過程,成為電子產品研發成敗的重要關鍵。因此一個涵蓋整體設計流程、應用範圍廣泛,且能有效提高IP再使用率的開放性設計工具,實是搶佔市場先機所不可或缺之因素。