發(fā)布日期:2022-07-15 點擊率:109
系統(tǒng)級芯片(SoC)設(shè)計服務(wù)供應(yīng)商正面臨越來越大的壓力,需要不斷增強(qiáng)其設(shè)計和服務(wù)的靈活性。隨著靈活性的增加又要求供應(yīng)商更加仔細(xì)地驗證整個系統(tǒng),而仿真則是驗證的核心。本文以通用控制器為例,討論仿真在功能驗證中的作用。
在討論SoC設(shè)計時,功能驗證是最具爭議性話題之一,可編程通用控制器也不例外。SoC主要針對便攜式消費電器市場,如MP3播放器和移動電話等產(chǎn)品,我們對此花費大量時間進(jìn)行可行性研究,力圖使最先提出的要求得到優(yōu)化。一個結(jié)構(gòu)完整、計劃周密的功能驗證要占整個項目預(yù)算的40%,這樣做的結(jié)果可使客戶在拿到原始樣品的一周內(nèi)就可在器件上完成MP3音樂處理。
這類器件有幾個關(guān)鍵要求。首先顧名思義,可編程通用控制器必須靈活才能保證能在盡可能多的便攜式應(yīng)用中得到支持;此外,由于它定位于便攜式應(yīng)用,功耗是主要考慮因素,這就要求有多種功率管理模式和功能強(qiáng)大且復(fù)雜的時鐘方案;對很多該類器件來說,數(shù)據(jù)安全是另一個主要考慮因素,因此要用大量時間來保證存儲在嵌入式存儲器里的數(shù)據(jù)受到仔細(xì)的劃分和保護(hù)。
器件分為三個區(qū):處理器子系統(tǒng)、通信接口和管理模塊,整個結(jié)構(gòu)建立在ARM7TDMI系統(tǒng)處理器上(圖1),并有一些嵌入式存儲器和外設(shè)支持處理器的工作,包括UART、定時器、實時時鐘(RTC)、監(jiān)視計時器和中斷控制器,另外還有專用通信外設(shè)包括USB功能內(nèi)核、GPIO(通用輸入輸出)、UART和同步串行接口(SSP)等,以便于與外部器件的連接。專用管理電路則有電源、存儲器保護(hù)、安全電路、復(fù)位以及時鐘管理模塊等設(shè)計。
高帶寬外設(shè)置于Amba高性能總線(AHB)上,包括USB內(nèi)核和存儲器模塊。AHB最高時鐘頻率為64MHz,為保證AHB外設(shè)符合ARM Amba標(biāo)準(zhǔn),可由客戶提供USB,由芯片供應(yīng)商與IP庫供應(yīng)商提供存儲器模塊,這就是說需要設(shè)計特殊的封裝接口。另外還要設(shè)計存儲器保護(hù)單元,管理存儲器分區(qū)。
從上可以看出,一項很大且必須要認(rèn)真對待的問題就是要從多個不同來源得到眾多不同的IP,因為不可能也沒必要在一個SoC(如本文所述的例子)設(shè)計中完全驗證所有功能模塊,畢竟采取IP復(fù)用方法的主要原因是為了縮短面市時間。
如前所述,設(shè)計既包括幾種來源不同的IP,也有原始邏輯。雖然新邏輯必須要作全面測試(這非常重要),但對于已有的硅片模塊,集成時只需驗證其接口保證集成正確即可,這就是控制器設(shè)計方法。
綜合測試
我們建立一組回歸模擬模型,全面測試所有器件接口和新邏輯。但在某些時候,回歸模型會因為時間運(yùn)行太長而不能控制,而且結(jié)果會消失,因為被測區(qū)域經(jīng)常有大量重復(fù)。由于總擔(dān)心還有缺陷存在,所以很難判斷何時應(yīng)停止測試。
對這類設(shè)計進(jìn)行模擬時通常的做法是采用分段方式。雖然在開發(fā)含有嵌入式處理器的SoC時采取這種分段模擬方式很重要,但并不能保證加上軟件后該器件功能就正確,因此通用控制器功能驗證中的仿真應(yīng)用 - 2" src="http://www.iianews.com/upimg/0104/2008830742113577802.JPG">人們普遍認(rèn)為光靠模擬還不行。和模擬環(huán)境相比,把軟件放在芯片上運(yùn)行可以使芯片以更多種方式工作,并且更加徹底。
對于可編程通用控制器之類的器件,含有嵌入式處理器所帶來的好處經(jīng)常會被忽略。我們在模擬環(huán)境中采取的方法是以匯編程序為主的測試,針對特定的要求,它包括用存儲器映射基準(zhǔn)測試模塊,使驗證過程的各方面(配置、合格/不合格檢驗和性能)通過匯編代碼本身進(jìn)行控制。
這也是我們所采納的一個經(jīng)過考驗的方法,盡管用這些不同水平的模擬和增加代碼范圍來保證試驗已經(jīng)足夠,但也不能忽視在器件上運(yùn)行的軟件,它畢竟是系統(tǒng)的一個有機(jī)組成部分。
在控制器開發(fā)中采用的另一個功能強(qiáng)大的驗證技術(shù)是仿真,我們使用一個含有ARM處理器的現(xiàn)成仿真板。這是一種低成本高效率方案,其主要優(yōu)點是便攜性好,能讓客戶進(jìn)行初始軟件開發(fā),而且還讓我們對設(shè)計的RTL代碼進(jìn)行更詳盡的試驗,其數(shù)據(jù)輸出能力明顯高于仿真環(huán)境所能實現(xiàn)的程度。
從客戶觀點看,應(yīng)用仿真環(huán)境背后的主要動力是客戶以及客戶的客戶都能方便地開發(fā)應(yīng)用代碼,這種方式很成功。一旦開發(fā)出與仿真有關(guān)的測試和軟件,問題的數(shù)量將會下降,但是發(fā)現(xiàn)的問題其復(fù)雜性和嚴(yán)重程度卻增加了。最復(fù)雜的問題一般只能通過應(yīng)用仿真之類的技術(shù)才能發(fā)現(xiàn),使用仿真的主要目的是在RTL用到芯片之前更徹底地預(yù)先運(yùn)行,因此先要把未修改的RTL用到FPGA中。
對于任何仿真方法,無論大小還是成本高低,都需要做一些折衷。系統(tǒng)速度必須可以按比例變化,就像我們的仿真方法一樣,還必須考慮構(gòu)建方案,因為一個Altera FPGA的容量是有限的。 HSPACE=12>器件內(nèi)的SSP模塊樣式有重復(fù),所以不需要所有的都做仿真。可考慮兩種配置情況,詳見表1。可以證明,對控制器進(jìn)行仿真具有很大價值,表2列出了發(fā)現(xiàn)的一些問題。
時鐘速度通用控制器功能驗證中的仿真應(yīng)用 - 3" src="http://www.iianews.com/upimg/0104/20088307421119677803.JPG">
現(xiàn)在來看看與RTC有關(guān)的問題,我們設(shè)法通過提高時鐘速度來檢驗。這可以讓我們在數(shù)分鐘內(nèi)檢驗實時時鐘的各方面,而不用等待實際那么長的時間。RTC時鐘有個1Hz缺省值,此時RTC工作正常,把數(shù)據(jù)寫入PMU中的RTC時鐘分配器后將提高時鐘頻率。表3列出寫入數(shù)值與對應(yīng)的頻率,其它所有數(shù)值都產(chǎn)生1Hz時鐘頻率。因此通過加速RTC模塊以及在FPGA內(nèi)調(diào)整UART設(shè)置輸出以小時、分和秒表示的時間,就能觀察RTC整個范圍的周期情況。但顯然,時鐘范圍為19小時59分59秒。
如果你認(rèn)為這樣的問題在仿真期間就應(yīng)該發(fā)現(xiàn)而不應(yīng)再在開發(fā)過程中傳播就錯了。不過我們確實忽略了這個問題,只有用更廣泛的仿真試驗才能發(fā)現(xiàn)缺陷。當(dāng)一個客戶將幾千萬美元投入到IC掩模和原型樣片上最后卻因為這樣一個小問題而歸為廢品,用一句不恰當(dāng)?shù)谋扔?就像事后諸葛亮一樣沒有任何意義。所以我們在時間和預(yù)算允許條件下,必須把測試做得更加徹底。
雖然我們有一個經(jīng)過認(rèn)可的流程,但并不是不會出錯,有時它還會過于自信地認(rèn)為永遠(yuǎn)都對。所以我們必須要不斷地審核并使流程得到增強(qiáng),以保持始終走在不斷增加的驗證挑戰(zhàn)的前面。
本文結(jié)論
對于所有SoC來講,有意思的地方經(jīng)常是最具挑戰(zhàn)性的地方,本文只談到控制器設(shè)計的一個方面,還有其它許多挑戰(zhàn),包括:通用控制器功能驗證中的仿真應(yīng)用 - 4" src="http://www.iianews.com/upimg/0104/20088307421184677804.JPG">
?可測性設(shè)計問題,如嵌入式存儲器測試
?STA問題,如現(xiàn)有的許多異步接口
?物理實現(xiàn)問題,如多結(jié)合方案
由于客戶期望從其SoC設(shè)計上獲得越來越多功能,這些都是他們需要解決的問題,必須與客戶及硅片供應(yīng)商密切合作,即使不能實現(xiàn)所有初始目標(biāo),也要盡量實現(xiàn)更多。這種做法的結(jié)果就是客戶能夠在收到初始樣品的一周內(nèi)做出最終應(yīng)用產(chǎn)品,而且器件馬上就可以推出并進(jìn)入全面生產(chǎn)。
作者:
David Morrison
ASIC設(shè)計師
Tality Design Services