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