集成工具提高嵌入式DSP系統設計與自動(dòng)化程度
嵌入式DSP系統傳統設計流程通常由概念到算法及算法到產(chǎn)品兩個(gè)階段構成,通常這兩個(gè)階段互相獨立且由不同設計小組完成。
本文引用地址:http://dyxdggzs.com/article/226874.htm傳統的設計流程里要用手工在兩個(gè)階段之間進(jìn)行轉換與銜接,這樣容易出現錯誤而推遲產(chǎn)品的上市時(shí)間。本文介紹一種集成工具可以使設計與驗證測試更加自動(dòng)化,且具有更高效率,可減少產(chǎn)品缺陷。
過(guò)去幾年以來(lái),產(chǎn)品與系統在軟件方面的功能不斷增強,高強度實(shí)時(shí)要求越來(lái)越多。對設計工程師而言,為與競爭對手展開(kāi)競賽,爭取更快將新產(chǎn)品投向市場(chǎng),高效系統開(kāi)發(fā)方法成為重中之重,對開(kāi)發(fā)數字信號處理器算法的工程師而言尤為如此。此外,產(chǎn)品開(kāi)發(fā)周期和生命周期不斷縮短等因素,也促使工程師和設計經(jīng)理對開(kāi)發(fā)方法和軟件工具進(jìn)程進(jìn)行全面重新評估。
產(chǎn)品漏洞會(huì )導致市場(chǎng)份額迅速下降,如果公司犧牲質(zhì)量,那么其聲譽(yù)會(huì )馬上受到影響。產(chǎn)品工程師在實(shí)施由研發(fā)工程師設計的算法時(shí),會(huì )遇到很多難題,其中之一就是將系統參數、測試向量以及其它數據從基于主機PC概念的開(kāi)發(fā)工具用手工方式轉向基于目標硬件的DSP代碼開(kāi)發(fā)工具。這種手工轉化常常會(huì )造成錯誤,要在確認和測試中才能被發(fā)現,從而導致開(kāi)發(fā)時(shí)間延長(cháng)。市場(chǎng)調查顯示,客戶(hù)產(chǎn)品開(kāi)發(fā)中常常有50%以上的時(shí)間是用于產(chǎn)品集成與測試。在這個(gè)階段,省時(shí)的工具對產(chǎn)品功能可靠性、上市時(shí)間以及能否最終取得成功都有很大的影響。
在今天市場(chǎng)環(huán)境下,要將工程師的開(kāi)發(fā)流程從概念發(fā)展至算法并最終推出產(chǎn)品,傳統的產(chǎn)品開(kāi)發(fā)流程已顯得力不從心,新開(kāi)發(fā)流程需要廣泛的工具集成,保證數據以及其它信息能夠動(dòng)態(tài)共享以實(shí)現更高的工作效率。
傳統DSP開(kāi)發(fā)流程
嵌入式DSP系統傳統設計流程通常包括兩個(gè)主要階段,即概念到算法階段(由研發(fā)小組實(shí)施,其中包括算法開(kāi)發(fā)與系統設計)以及算法到產(chǎn)品階段(由產(chǎn)品開(kāi)發(fā)小組實(shí)施,該階段包括實(shí)際產(chǎn)品實(shí)現、目標編程和測試),如圖1所示。
由于上面兩個(gè)階段常常是彼此獨立的,并由不同的設計小組完成,而各小組的目標可能不一致,因此這種結構內部會(huì )有一些問(wèn)題。此外,設計小組使用的工具還可能彼此不兼容,不能夠整合在一起。
在多數情況下,研發(fā)工程師使用數字計算環(huán)境,可充分發(fā)揮算法開(kāi)發(fā)、分析以及各種科學(xué)、數學(xué)或工程應用可視化功能。研發(fā)工程師常常以M或C代碼創(chuàng )建算法,也可以為其算法創(chuàng )建測試向量(通常是文本或二進(jìn)制格式的數據文件)。他們隨后會(huì )在主機PC上運行算法進(jìn)行模擬,以便分析并使算法響應可視化,目標是確保算法不僅能夠獨立于特定的平臺進(jìn)行工作,還能獨立于任何物理存儲器、速度或實(shí)時(shí)限制工作。當他們希望將設計轉給產(chǎn)品開(kāi)發(fā)小組時(shí),他們將提交書(shū)面規范或實(shí)際的C或M代碼,并請開(kāi)發(fā)小組就具體的DSP目標實(shí)施算法。
在產(chǎn)品開(kāi)發(fā)方面,大多數DSP工作小組都使用集成開(kāi)發(fā)環(huán)境(IDE),小組的目標是使用書(shū)面的規范實(shí)施算法、測試算法,并在最終產(chǎn)品中進(jìn)行確認,以保證其滿(mǎn)足系統的實(shí)時(shí)、速度、功率及內存等限制條件。產(chǎn)品開(kāi)發(fā)小組常常依靠手工方法從事上述任務(wù),因為直接根據規范或算法測試向量進(jìn)行產(chǎn)品測試通常沒(méi)有便捷路徑可循。在遇到復雜系統時(shí),手動(dòng)轉換和確認會(huì )延緩產(chǎn)品開(kāi)發(fā),影響產(chǎn)品的成功。
產(chǎn)品工程師為防止出現前后脫節而采取一些手工方法包括:
1. 手工復制并粘貼M文件測試向量(如100個(gè)值的陣列)至IDE的C代碼(或匯編)文件中。但是工程師必須注意,應復制所有數據不能遺漏,還必須添加正確的語(yǔ)法以保證兼容性(如逗號、方括號、圓括號等);
2. 使用典型IDE中的“載入數據”命令手工從PC硬盤(pán)向DSP存儲器載入整個(gè)數據文件。工程師必須注意應以人工方式或通過(guò)腳本(需要編寫(xiě)并調試)對數據進(jìn)行重新格式化,以保證文件格式和隨后的語(yǔ)法能夠匹配;
3. 可使用IDE的文件I/O功能(如fscanf()功能)以便以自動(dòng)方式像上面第二種方法一樣載入文件,但是有關(guān)文件格式與語(yǔ)法類(lèi)型的問(wèn)題仍然存在。傳統文件I/O帶來(lái)的另一大主要問(wèn)題在于,工程師必須在DSP本身上面運行龐大而低效的C庫,這將導致代碼膨脹,不僅浪費內存,還會(huì )拖慢DSP的速度,使其喪失實(shí)時(shí)工作性能;
4. 利用外部硬件生成信號作為系統的輸入(如音樂(lè )或正弦波),以觀(guān)察系統是否能夠實(shí)時(shí)響應。與前面所說(shuō)測試向量和數據已經(jīng)數字化的情況不同,這里的數據是模擬的,必須通過(guò)A/D轉換器,這就會(huì )帶來(lái)更多的錯誤和不一致性,因為它不再是純粹的數字信號,導致內在的模擬失真。此外還會(huì )帶來(lái)額外的變量,造成更多不確定性,也使尋找問(wèn)題根源更加困難重重。集成工具提高效率與生產(chǎn)率
集成度更高的開(kāi)發(fā)流程能以更動(dòng)態(tài)的方式自動(dòng)執行上述任務(wù)。
我們不妨給出一個(gè)真實(shí)情況的例子,即在
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論