仿真擴(kuò)展芯片(EEC)簡(jiǎn)化高速汽車嵌入式處理器的集成
由于微控制器時(shí)鐘速度的加快,調(diào)試和校準(zhǔn)變得更加地困難。嵌入式仿真設(shè)備能夠?yàn)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/汽車">汽車電子設(shè)計(jì)工程師提供高度集成的系統(tǒng)級(jí)芯片(SoC)微控制器內(nèi)部的可視性。
本文引用地址:http://m.butianyuan.cn/article/85220.htm自動(dòng)代碼生成工具能夠通過(guò)基于圖示模型之上的設(shè)計(jì)生成C代碼。對(duì)該工具越來(lái)越多的使用可以節(jié)省軟件工程投入的時(shí)間,但同時(shí)也給軟件工程文化帶來(lái)巨大的變化。
軟件工程師將現(xiàn)有的模塊組合在一起,建立成一個(gè)系統(tǒng),并對(duì)該系統(tǒng)作出檢測(cè)。與把定制的模塊寫入一個(gè)系統(tǒng)中以滿足系統(tǒng)要求的方法相比,該方法的效率更高。對(duì)該通用的模塊化軟件的再利用提高了開(kāi)發(fā)效率和軟件質(zhì)量。但同樣也導(dǎo)致結(jié)構(gòu)松散,存儲(chǔ)器效率低下,長(zhǎng)時(shí)間的延遲及將設(shè)計(jì)過(guò)程從硬件中抽象出來(lái)。
在不改變基本軟件的情況下,這些系統(tǒng)的性能能夠轉(zhuǎn)變成不同版本的機(jī)械硬件。一般情況下,這是通過(guò)將許多校準(zhǔn)了的變量包括在內(nèi)而實(shí)現(xiàn)的,因此才能夠在運(yùn)行期間使能或禁止功能,調(diào)整增益,同時(shí)在運(yùn)行時(shí)改變查找表。
軟件工程師依靠仿真技術(shù)來(lái)跟蹤真實(shí)系統(tǒng)中的程序流程,關(guān)注隨時(shí)更新的數(shù)據(jù),測(cè)量延遲,并且排除邏輯錯(cuò)誤。但是,在為這些系統(tǒng)除錯(cuò)時(shí),由于時(shí)鐘速度過(guò)高,給多內(nèi)核存儲(chǔ)器系統(tǒng)級(jí)芯片的集成帶來(lái)了一些挑戰(zhàn)。
設(shè)計(jì)障礙
嵌入式非易失存儲(chǔ)器的體積持續(xù)增大,硅片的幾何形狀持續(xù)縮小,使得規(guī)模大的系統(tǒng)級(jí)芯片微控制器能夠與應(yīng)用廣泛的高速內(nèi)部總線連接在一起,并通過(guò)這些總線將信息反饋給多個(gè)具有高速緩沖存儲(chǔ)器的流水線型內(nèi)核存儲(chǔ)處理器及協(xié)調(diào)處理器。該體系同樣能夠使微控制器子系統(tǒng)能夠被集成到更深層次的應(yīng)用環(huán)境。由于存在物理連接問(wèn)題(有時(shí)甚至連一根外部總線都沒(méi)有),以及時(shí)鐘速度過(guò)高、電纜長(zhǎng)度及環(huán)境溫度等因素,將分析設(shè)備集成到深度嵌入式器件的外部總線上的難度很大。
在許多情況下,可通過(guò)外部總線察看的外部取數(shù)情況并不代表整個(gè)程序的流程,因?yàn)閮?nèi)部高速緩沖存儲(chǔ)器及流水線能夠?qū)θ?shù)做出預(yù)測(cè)。突發(fā)模式閃存同樣由于假定的連續(xù)地址增量使得所獲得的數(shù)據(jù)的解碼變得更加復(fù)雜。
連接仿真系統(tǒng)時(shí)的首要問(wèn)題在于連接長(zhǎng)度受到限制,因?yàn)橄到y(tǒng)時(shí)鐘的速度過(guò)高。例如,如果使用一個(gè)頻率為150MHz的微控制器,那么,50cm長(zhǎng)的連接線造成的傳輸時(shí)間延遲大約為2.0ns,但是時(shí)鐘周期僅為6.67ns,所以2.0ns的單向延誤時(shí)間是相當(dāng)巨大的。由于在這些高頻率器件中,連接線扮演著傳輸線的角色,并且它們的終接阻抗是無(wú)法得到保障的,因此,這看似短暫的時(shí)間幾乎妨礙了任何遠(yuǎn)離目標(biāo)器件的控制功能。在這個(gè)例子中,想要忽略傳輸線造成的時(shí)間上的延遲,線路的最大長(zhǎng)度不能超過(guò)16cm。所以,在線仿真器(ICE)具有與被測(cè)發(fā)動(dòng)機(jī)電控單(ECU)相同的環(huán)境需求。
Ingineon公司的TC1796產(chǎn)品即為此類系統(tǒng)級(jí)芯片實(shí)現(xiàn)的一個(gè)很好的例子。32位的TriCore中央處理器(CPU)擁有代碼和數(shù)據(jù)分別獨(dú)立的總線,并且通過(guò)LFI與系統(tǒng)總線橋接起來(lái),建立起一個(gè)與外設(shè)子系統(tǒng)相連的數(shù)據(jù)通道。此外,還有一個(gè)通過(guò)直接存儲(chǔ)器存取(DMA)與遠(yuǎn)端外設(shè)總線相連的通道。
外設(shè)控制處理器(PCP2)也是一個(gè)32位的CPU。同樣的,該處理器也有獨(dú)立的通常無(wú)法看見(jiàn)的數(shù)據(jù)和程序總線。該處理器的子系統(tǒng)的最高頻率為 150MHz,外設(shè)子系統(tǒng)最高頻率為75MHz,因此,它有兩個(gè)時(shí)鐘區(qū)域。該器件被封裝于一個(gè)416引腳的球型格柵極陣列封裝中,能夠提供標(biāo)準(zhǔn)的JTAG 除錯(cuò)接口以支持除錯(cuò)功能。但是,要完全仿真這樣一個(gè)微控制器,需要能夠檢驗(yàn)與外部針腳不相連的許多不同內(nèi)部總線之間的數(shù)據(jù)交換。巨大的嵌入式存儲(chǔ)器 (2Mb閃存)有廣泛的內(nèi)部取數(shù)路徑(128位)和局部高速緩沖存儲(chǔ)器。因此,內(nèi)置存儲(chǔ)器的執(zhí)行比外置(32位存取)存儲(chǔ)器快得多(見(jiàn)下方TC1796方框圖)。
多總線及多內(nèi)核存儲(chǔ)器的復(fù)雜性意味著,只有一個(gè)外綁器件(現(xiàn)場(chǎng)可編程門陣列, FAPG)才能夠達(dá)到完全除去系統(tǒng)錯(cuò)誤所需的可視度水平。但是,如前面所討論的,頻率為150MHz的總線周期僅為6.67ns,一個(gè)外置的外綁控制器在這段時(shí)間內(nèi)要接收總線信息,并對(duì)其解碼,還要決定需要觸發(fā)的中斷及暫停處理器,因此,給予控制器的時(shí)間是遠(yuǎn)遠(yuǎn)不夠的。在這種情況下,解決問(wèn)題的方法就是將仿真器安裝于外綁器件中,形成所謂的仿真設(shè)備(見(jiàn)下方對(duì)比圖:左方為大規(guī)模生產(chǎn)器件,右方為擁有仿真擴(kuò)展芯片的仿真設(shè)備)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論