通過(guò)高級(jí)C模型驗(yàn)證管理設(shè)計(jì)的復(fù)雜性
嵌入式系統(tǒng)設(shè)計(jì)復(fù)雜性的增加,以及產(chǎn)品生命周期的縮短和競(jìng)爭(zhēng)態(tài)勢(shì)的加強(qiáng),將嵌入式設(shè)計(jì)技術(shù)不斷推向極限。復(fù)雜設(shè)計(jì)包含更多器件以及更強(qiáng)的互操作性,因此需要更多仿真、更高吞吐量以及更好的綜合測(cè)試。為解決復(fù)雜性問(wèn)題,在設(shè)計(jì)過(guò)程中,設(shè)計(jì)團(tuán)隊(duì)需要另外一套方法,以減少系統(tǒng)驗(yàn)證運(yùn)行時(shí)間,及早進(jìn)行驗(yàn)證。一種策略是通過(guò)C或HDL編寫的高級(jí)行為模型來(lái)提高建模抽象的級(jí)別。
本文引用地址:http://cafeforensic.com/article/5366.htm用抽象的C模型方法,建立嵌入式系統(tǒng)的結(jié)構(gòu)化開發(fā)
在系統(tǒng)抽象的較高級(jí),結(jié)構(gòu)化決策很少需要考慮細(xì)節(jié)。因此,抽象的C模型很少需要詳細(xì)的功能性。這些高級(jí)C模型可以快速建立,并比傳統(tǒng)的RTL模型仿真更快。原來(lái)用RTL花費(fèi)數(shù)月時(shí)間編寫的模型用高級(jí)C模型建立只需要幾周。
高級(jí)模型的速度和相對(duì)簡(jiǎn)單性允許工程師在設(shè)計(jì)過(guò)程的早期階段就可以進(jìn)行更全面的驗(yàn)證。設(shè)計(jì)流程的更改在該階段不僅可以及早實(shí)施,降低成本,而且早些完成這些工作能降低風(fēng)險(xiǎn)、提高設(shè)計(jì)產(chǎn)出、增強(qiáng)設(shè)計(jì)性能的可靠性。早期驗(yàn)證和分析還減少了工程師必須用在調(diào)試復(fù)雜問(wèn)題的時(shí)間。
一種動(dòng)態(tài)參數(shù)化的C模型環(huán)境使在仿真期間可以修改設(shè)計(jì)特性,進(jìn)一步突出了早期驗(yàn)證的優(yōu)點(diǎn)。仿真運(yùn)行不需要編輯、重編譯、重連接和重載模型。例如,利用這一性能特點(diǎn),用戶可以根據(jù)算法第一次通過(guò)的結(jié)果,進(jìn)行設(shè)計(jì)修改的仿真。重復(fù)這樣做,仿真會(huì)自動(dòng)收斂于一特定的設(shè)計(jì)要求。
利用高速仿真的優(yōu)點(diǎn)、簡(jiǎn)化的模型建立及動(dòng)態(tài)參數(shù)化,可以使設(shè)計(jì)者研究各種設(shè)計(jì)選擇,驗(yàn)證功能性,在設(shè)計(jì)過(guò)程中及早優(yōu)化系統(tǒng)性能。高級(jí)系統(tǒng)模型的建立也可同時(shí)由硬件和軟件團(tuán)隊(duì)使用。例如,硬件工程師可以在早期向軟件組提供硬件觀點(diǎn)的確切表達(dá)。這樣,從整體效果上增加了協(xié)同驗(yàn)證的機(jī)會(huì),并減少了驗(yàn)證運(yùn)行時(shí)間。
由于高級(jí)C模型的效率,工程師可以用更多的時(shí)間改進(jìn)其設(shè)計(jì)。功能性、性能和設(shè)計(jì)差異性會(huì)大大增強(qiáng)優(yōu)化體系結(jié)構(gòu)的潛力。抽象化C模型允許工程師在設(shè)計(jì)流程中早些決定哪些產(chǎn)品創(chuàng)意值得追求,哪些不值得。
由于在高級(jí)抽象對(duì)行為進(jìn)行了可行性測(cè)試,因而很少會(huì)發(fā)生錯(cuò)誤,公司可以避免在不可行項(xiàng)目中投入大量的金錢、時(shí)間和精力。系統(tǒng)設(shè)計(jì)者甚至可以在現(xiàn)有設(shè)計(jì)進(jìn)行的同時(shí)研究未來(lái)設(shè)計(jì)的可能性。例如,路由器總線和存儲(chǔ)架構(gòu)的優(yōu)化。一旦高層體系結(jié)構(gòu)建立,作為基準(zhǔn),工程師可以開始功能塊集成測(cè)試。利用這種抽象觀點(diǎn),除作為獨(dú)立單元測(cè)試外,一個(gè)或多個(gè)RTL塊可以在整個(gè)系統(tǒng)中關(guān)聯(lián)驗(yàn)證。這樣可以使多功能塊的集成測(cè)試更快。
利用“無(wú)縫C橋”優(yōu)化總線判決
“無(wú)縫C橋”協(xié)同驗(yàn)證環(huán)境是實(shí)現(xiàn)這種快速抽象建模的一種工具。另外,“無(wú)縫V5”版本包含一新的性能分析特性。通過(guò)精確的記錄與顯示信息,如總線利用與判決延遲、代碼描述、存儲(chǔ)器用法等,工程師可以很好地了解設(shè)計(jì)的性能特性。結(jié)合基于C硬件建模的動(dòng)態(tài)參數(shù)更改能力,性能分析使設(shè)計(jì)研究明顯地更具效率。
“無(wú)縫V5”提供了設(shè)計(jì)變更效果的即時(shí)反饋,得到了一個(gè)實(shí)用的、有競(jìng)爭(zhēng)力的優(yōu)點(diǎn),設(shè)計(jì)組可以確定性能要求和滿足要求的數(shù)據(jù)。
“無(wú)縫C橋”接口增加了無(wú)縫環(huán)境的靈活性,可以利用比基于RTL工具更高級(jí)的抽象模型和接口,在設(shè)計(jì)工作的早期進(jìn)行協(xié)同驗(yàn)證。“無(wú)縫”可以使嵌入式代碼以嵌入式系統(tǒng)中的硬件方式運(yùn)行;“C橋”允許硬件通過(guò)事務(wù)級(jí)連接成為抽象的C模型?!盁o(wú)縫”協(xié)同驗(yàn)證環(huán)境處理器支持包(PSP)可由ARM處理器系列,包括ARM7,ARM9,ARM10及ARM 11系列處理器提供。這些模型可直接插入設(shè)計(jì)環(huán)境,不需要重建接口及環(huán)境。
“C橋”技術(shù)可以混合和匹配編寫于不同抽象級(jí)的C和HDL模型。由于它們從嚴(yán)格運(yùn)行的抽象C模型轉(zhuǎn)移到更詳細(xì)的實(shí)現(xiàn)中,工程師們可以用簡(jiǎn)單取代RTL的特定C模型運(yùn)行系統(tǒng)仿真。這允許在單一環(huán)境內(nèi),從高級(jí)C建模環(huán)境到更詳細(xì)的RTL實(shí)現(xiàn)進(jìn)行逐步轉(zhuǎn)換。隨著轉(zhuǎn)換增加,測(cè)試版可保存復(fù)用。圖1為用閃存卡作圖像存儲(chǔ)器的簡(jiǎn)單圖像顯示器的框圖。
該設(shè)計(jì)全部用C語(yǔ)言建模,其處理器采用系統(tǒng)C測(cè)試版建模,其他所有塊作為C橋事務(wù)級(jí)模型編寫。對(duì)于這樣一個(gè)簡(jiǎn)單設(shè)計(jì),所有C模型幾周之內(nèi)就可建立完成,而如果用純粹的RTL設(shè)計(jì)編寫,將會(huì)用數(shù)月時(shí)間才能完成。除通過(guò)降低模型復(fù)雜度節(jié)省了時(shí)間外,在C橋設(shè)計(jì)中,地址解碼及總線協(xié)議處理等工作也得以簡(jiǎn)化甚至消除。
用戶接口控制存儲(chǔ)在閃存中的各種圖像的打印。直接存儲(chǔ)器存取控制器(DMAC)對(duì)移出CF卡和進(jìn)入RAM的數(shù)據(jù)進(jìn)行管理。當(dāng)圖像需要顯示時(shí),DMAC程序啟動(dòng),將圖像數(shù)據(jù)傳到RAM中,一旦DMAC處理開始,ARM嵌入式代碼就訪問(wèn)RAM,取出圖像數(shù)據(jù)。將數(shù)據(jù)處理、打包成圖像閱讀器能識(shí)別的格式后,ARM微處理器發(fā)送像素顏色和坐標(biāo)數(shù)據(jù)到閱讀器屏幕。
這個(gè)簡(jiǎn)單模型仿真的最初用途是查看在附加定時(shí)信息,如加入等待狀態(tài)后,系統(tǒng)的功能是否還正常?!盁o(wú)縫C橋”工具的調(diào)試與分析能力用于驗(yàn)證功能,以及用于為達(dá)到優(yōu)化功能設(shè)計(jì)的設(shè)計(jì)參數(shù)試驗(yàn),特別是改善此情況下的總線判決方案。該例中,“無(wú)縫”工具發(fā)現(xiàn)設(shè)計(jì)不能正確實(shí)現(xiàn)功能,因?yàn)橹挥袌D像的第一行打印正確?!盁o(wú)縫V5”總線負(fù)載圖揭示了問(wèn)題出在DMAC傳輸上(見圖2)。
圖2顯示DMAC占用總線時(shí)間超過(guò)75%(圖2中,DMAC是“其他”),因此圖形顯示程序已經(jīng)優(yōu)化,使每次總線存取時(shí)裝載盡可能多的數(shù)據(jù)。這表示總線判決方案不允許DMAC控制器足夠快地從閃存中取出圖像數(shù)據(jù)送到S-RAM中、放在圖像顯示程序前。當(dāng)此發(fā)生時(shí),就會(huì)形成局部圖像。DMAC需要保證總線有足夠多的周期?!盁o(wú)縫C橋”應(yīng)用可以用于解決動(dòng)態(tài)改善總線判決方案問(wèn)題。
采用具有擴(kuò)展控制功能的工具與抽象模型一起工作,可以更容易、高效地研究各種可能性和設(shè)想。由于采用C橋模型,有些特性可以通過(guò)發(fā)指令到判決器模型使其動(dòng)態(tài)改變。在抽象建模級(jí)實(shí)施,可以極大簡(jiǎn)化,不需要進(jìn)入RTL設(shè)計(jì)中,給很多管腳賦特殊值,工程師簡(jiǎn)單發(fā)個(gè)指令讓高速判決器按不同方式動(dòng)作即可。通過(guò)改變判決器的參數(shù),DMAC在ARM926接回總線控制之前允許保持總線最小周期數(shù)。該值在1~16間可變。最保險(xiǎn)的做法是將初始值設(shè)在最大值16,看是否可以解決顯示問(wèn)題。即使能夠解決,由于DMAC占用了太多總線,也會(huì)引起圖像顯示刷新太慢的問(wèn)題。
在這種抽象級(jí),基于“無(wú)縫V5”(見圖3)性能分析能力中提到的,用戶可以用其他值快速試驗(yàn)。在判決延遲方面,0~10ms期間代表顯示圖像的初始試驗(yàn)。沒有看到判決延遲影響CPU,圖像也沒有正確顯示。下一期間從10~20ms,顯示了最大值用于判決器參數(shù)時(shí)的圖像顯示過(guò)程??梢钥吹揭粋€(gè)大的判決延遲峰值引起圖像運(yùn)算明顯減慢。最后一段,20~30ms之間,顯示參數(shù)降到4的情況,引起判決延時(shí)成比例降低,圖像也類似減慢。這些效果的視覺顯示,可以得到某一特定設(shè)計(jì)選擇結(jié)果的即時(shí)反饋,而不需要掃描一個(gè)長(zhǎng)文本的輸出文件。
由于這一過(guò)程的速度,其他值可以逐一試驗(yàn),以得到最適合的總線判決方案。所有這些都可以實(shí)現(xiàn),因?yàn)轵?yàn)證改善優(yōu)化是動(dòng)態(tài)實(shí)現(xiàn)的,在同一環(huán)境中,以高吞吐量運(yùn)行。原來(lái)在RTL方式下花費(fèi)數(shù)小時(shí)的一個(gè)進(jìn)程,不包括改進(jìn)和再匯編時(shí)間,現(xiàn)在仿真一次只需要5到10分鐘。
結(jié)語(yǔ)
通過(guò)C建模提高抽象級(jí),是解決嵌入式系統(tǒng)設(shè)計(jì)復(fù)雜性增加問(wèn)題的一種新型設(shè)計(jì)方法,“無(wú)縫C橋”技術(shù)使設(shè)計(jì)者在設(shè)計(jì)過(guò)程早期實(shí)現(xiàn)高仿真速度驗(yàn)證功能和分析系統(tǒng)性能??焖佟⒊橄蠼:汀盁o(wú)縫”性能分析引擎減少了總體校驗(yàn)時(shí)間,同時(shí),有利于創(chuàng)造最佳設(shè)計(jì)?!盁o(wú)縫”協(xié)同驗(yàn)證環(huán)境也使塊級(jí)和系統(tǒng)級(jí)的綜合測(cè)試提前。總之,這一方法降低了風(fēng)險(xiǎn),增加了設(shè)計(jì)產(chǎn)出量,提高了復(fù)雜的多成分系統(tǒng)的設(shè)計(jì)可靠性。由于明導(dǎo)公司和ARM的成功合作,“無(wú)縫C橋”方案特別適用于包含ARM微處理器核的設(shè)計(jì)?!?(李硯泉譯)
評(píng)論