產(chǎn)品分類
Products系統(tǒng)級(jí)芯片(SoC)設(shè)計(jì)服務(wù)供應(yīng)商正面臨越來(lái)越大的壓力,需要不斷增強(qiáng)其設(shè)計(jì)和服務(wù)的靈活性。隨著靈活性的增加又要求供應(yīng)商更加仔細(xì)地驗(yàn)證整個(gè)系統(tǒng),而仿真則是驗(yàn)證的核心。本文以通用控制器為例,討論仿真在功能驗(yàn)證中的作用。
在討論SoC設(shè)計(jì)時(shí),功能驗(yàn)證是zui爭(zhēng)議性話題之一,可編程通用控制器也不例外。SoC主要針對(duì)便攜式消費(fèi)電器市場(chǎng),如MP3播放器和yi動(dòng)電話等產(chǎn)品,我們對(duì)此花費(fèi)大量時(shí)間進(jìn)行可行性研究,力圖使最先提出的要求得到優(yōu)化。一個(gè)結(jié)構(gòu)完整、計(jì)劃周密的功能驗(yàn)證要占整個(gè)項(xiàng)目預(yù)算的40%,這樣做的結(jié)果可使客戶在拿到原始樣品的一周內(nèi)就可在器件上完成MP3音樂(lè)處理。
這類器件有幾個(gè)關(guān)鍵要求。首先顧名思義,可編程通用控制器必須靈活才能保證能在盡可能多的便攜式應(yīng)用中得到支持;此外,由于它定位于便攜式應(yīng)用,功耗是主要考慮因素,這就要求有多種功率管理模式和功能強(qiáng)大且復(fù)雜的時(shí)鐘方案;對(duì)很多該類器件來(lái)說(shuō),數(shù)據(jù)安全是另一個(gè)主要考慮因素,因此要用大量時(shí)間來(lái)保證存儲(chǔ)在嵌入式存儲(chǔ)器里的數(shù)據(jù)受到仔細(xì)的劃分和保護(hù)。
器件分為三個(gè)區(qū):處理器子系統(tǒng)、通信接口和管理模塊,整個(gè)結(jié)構(gòu)建立在ARM7TDMI系統(tǒng)處理器上(圖1),并有一些嵌入式存儲(chǔ)器和外設(shè)支持處理器的工作,包括UART、定時(shí)器、實(shí)時(shí)時(shí)鐘(RTC)、監(jiān)視計(jì)時(shí)器和中斷控制器,另外還有專用通信外設(shè)包括USB功能內(nèi)核、GPIO(通用輸入輸出)、UART和同步串行接口(SSP)等,以便于與外部器件的連接。專用管理電路則有電源、存儲(chǔ)器保護(hù)、安全電路、復(fù)位以及時(shí)鐘管理模塊等設(shè)計(jì)。
高帶寬外設(shè)置于Amba高性能總線(AHB)上,包括USB內(nèi)核和存儲(chǔ)器模塊。AHB最高時(shí)鐘頻率為64MHz,為保證AHB外設(shè)符合ARM Amba標(biāo)準(zhǔn),可由客戶提供USB,由芯片供應(yīng)商與IP庫(kù)供應(yīng)商提供存儲(chǔ)器模塊,這就是說(shuō)需要設(shè)計(jì)特殊的封裝接口。另外還要設(shè)計(jì)存儲(chǔ)器保護(hù)單元,管理存儲(chǔ)器分區(qū)。
從上可以看出,一項(xiàng)很大且必須要認(rèn)真對(duì)待的問(wèn)題就是要從多個(gè)不同來(lái)源得到眾多不同的IP,因?yàn)椴豢赡芤矝](méi)必要在一個(gè)SoC(如本文所述的例子)設(shè)計(jì)中wan全驗(yàn)證所有功能模塊,畢竟采取IP復(fù)用方法的主要原因是為了縮短面市時(shí)間。
如前所述,設(shè)計(jì)既包括幾種來(lái)源不同的IP,也有原始邏輯。雖然新邏輯必須要作全面測(cè)試(這非常重要),但對(duì)于已有的硅片模塊,集成時(shí)只需驗(yàn)證其接口保證集成正確即可,這就是控制器設(shè)計(jì)方法。
綜合測(cè)試
我們建立一組回歸模擬模型,全面測(cè)試所有器件接口和新邏輯。但在某些時(shí)候,回歸模型會(huì)因?yàn)闀r(shí)間運(yùn)行太長(zhǎng)而不能控制,而且結(jié)果會(huì)消失,因?yàn)楸粶y(cè)區(qū)域經(jīng)常有大量重復(fù)。由于總擔(dān)心還有缺陷存在,所以很難判斷何時(shí)應(yīng)停止測(cè)試。
對(duì)這類設(shè)計(jì)進(jìn)行模擬時(shí)通常的做法是采用分段方式。雖然在開發(fā)含有嵌入式處理器的SoC時(shí)采取這種分段模擬方式很重要,但并不能保證加上軟件后該器件功能就正確,因此人們普遍認(rèn)為光靠模擬還不行。和模擬環(huán)境相比,把軟件放在芯片上運(yùn)行可以使芯片以更多種方式工作,并且更加che底。
對(duì)于可編程通用控制器之類的器件,含有嵌入式處理器所帶來(lái)的好處經(jīng)常會(huì)被忽略。我們?cè)谀M環(huán)境中采取的方法是以匯編程序?yàn)橹鞯臏y(cè)試,針對(duì)特定的要求,它包括用存儲(chǔ)器映射基準(zhǔn)測(cè)試模塊,使驗(yàn)證過(guò)程的各方面(配置、合格/不合格檢驗(yàn)和性能)通過(guò)匯編代碼本身進(jìn)行控制。
這也是我們所采納的一個(gè)經(jīng)過(guò)考驗(yàn)的方法,盡管用這些不同水平的模擬和增加代碼范圍來(lái)保證試驗(yàn)已經(jīng)足夠,但也不能忽視在器件上運(yùn)行的軟件,它畢竟是系統(tǒng)的一個(gè)有機(jī)組成部分。
在控制器開發(fā)中采用的另一個(gè)功能強(qiáng)大的驗(yàn)證技術(shù)是仿真,我們使用一個(gè)含有ARM處理器的現(xiàn)成仿真板。這是一種低成本高效率方案,其主要優(yōu)點(diǎn)是便攜性好,能讓客戶進(jìn)行初始軟件開發(fā),而且還讓我們對(duì)設(shè)計(jì)的RTL代碼進(jìn)行更詳盡的試驗(yàn),其數(shù)據(jù)輸出能力明顯高于仿真環(huán)境所能實(shí)現(xiàn)的程度。
從客戶觀點(diǎn)看,應(yīng)用仿真環(huán)境背后的主要?jiǎng)恿κ强蛻粢约翱蛻舻目蛻舳寄芊奖愕亻_發(fā)應(yīng)用代碼,這種方式很成功。一旦開發(fā)出與仿真有關(guān)的測(cè)試和軟件,問(wèn)題的數(shù)量將會(huì)下降,但是發(fā)現(xiàn)的問(wèn)題其復(fù)雜性和嚴(yán)重程度卻增加了。最復(fù)雜的問(wèn)題一般只能通過(guò)應(yīng)用仿真之類的技術(shù)才能發(fā)現(xiàn),使用仿真的主要目的是在RTL用到芯片之前更c(diǎn)he底地預(yù)先運(yùn)行,因此先要把未修改的RTL用到FPGA中。
對(duì)于任何仿真方法,無(wú)論大小還是成本高低,都需要做一些折衷。系統(tǒng)速度必須可以按比例變化,就像我們的仿真方法一樣,還必須考慮構(gòu)建方案,因?yàn)橐粋€(gè)Altera FPGA的容量是有限的。 HSPACE=12>器件內(nèi)的SSP模塊樣式有重復(fù),所以不需要所有的都做仿真??煽紤]兩種配置情況。可以證明,對(duì)控制器進(jìn)行仿真具有很大價(jià)值。