《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > IP驗證增量仿真技術(shù)的運用

IP驗證增量仿真技術(shù)的運用

2009-01-27
關(guān)鍵詞: 仿真技術(shù) IP

驗證涉及每個階段的迭代循環(huán):仿真、檢查結(jié)果,改變激勵或設(shè)計或調(diào)試設(shè)置,,重新仿真并不斷重復(fù),。在系統(tǒng)調(diào)試過程中,軟硬件在多次運行之間可能會有改變,,因此系統(tǒng)調(diào)試也變得更為復(fù)雜,。

某些驗證可以被分解成多個可以并行運行的小型仿真,。這種方法對許多旨在確認硬件本身的測試來說是非常有效的,,但并不是所有測試都適合,。像視頻流處理這類測試就很難被分解成多個較小的測試,因為這種處理的對象是整個數(shù)據(jù)流,,而且每個幀都依賴于它前面的幀,。

對系統(tǒng)硬件或軟件所做的修改可能并不會立即影響系統(tǒng)行為,對不是馬上要執(zhí)行的軟件所做的代碼修改在它運行之前不會改變系統(tǒng)行為,。例如,,雖然對一個1,000個周期后才被調(diào)用的軟件例程做了修改,但系統(tǒng)行為在前面1,000個周期內(nèi)是不變的,。

設(shè)計師需要能夠從代碼或設(shè)計修改開始起作用的那點開始恢復(fù)仿真,。在上述例子中,這意味著設(shè)計師應(yīng)該在第1,000個周期時作出代碼修改并重新啟動仿真,,不用再次運行前面1,000個周期,。

當設(shè)計已經(jīng)改變、新的塊可能已經(jīng)增加到系統(tǒng)模型中時,,問題就比較難解決了,。設(shè)計師沒有這個新塊過去保存的數(shù)據(jù)用于恢復(fù)。另外,,設(shè)計師可能有許多IP塊由于各種理由(如編譯的,,受保護的IP塊)而表現(xiàn)為黑盒子,這些塊將無法參與保存/恢復(fù)操作,。

假如設(shè)計師可以對設(shè)計作出修改,,相信寄存器值沒有變化,并能重新啟動修改后的仿真,,那么設(shè)計師如何能根據(jù)硬件或軟件變化而知道系統(tǒng)行為將要改變的確切點呢,?不知道這點的話,設(shè)計師將要么重新啟動得太早而浪費不需要的仿真周期,,要么重新啟動得太晚而錯過一些變化了的行為,。

另外,如果系統(tǒng)行為很早就改變了,,但只是發(fā)生在設(shè)計的很小部分又會怎樣呢,?即使系統(tǒng)的小部分受到影響,系統(tǒng)的絕大部分模塊在上千個周期內(nèi)也不會受到改變的影響,。

理想的解決方案是只在系統(tǒng)行為即將從上一次運行基礎(chǔ)上發(fā)生改變時的那個點重新啟動系統(tǒng)中的每個主要模塊,。然而這樣做顯然行不通,因為只要任何一個模塊開始執(zhí)行,,它就要求與其他模塊發(fā)生交互,,就需要來自這些模塊的信號,,并發(fā)送信號給這些模塊。

圖:在少量修改后運行的仿真經(jīng)常會完全重復(fù)前次仿真過程已經(jīng)完成的工作,。

解決這個問題的方法之一是考慮在I/O邊界處保存每個塊的行為,,使得捕捉到的I/O信號可用于復(fù)用,而不用實際計算每個模塊的仿真行為,。復(fù)用保存在I/O邊界的信號可以節(jié)省重新計算該模塊行為所需的計算工作,,減少工作量,進而提升系統(tǒng)性能,。

當設(shè)計運行到修改開始影響特定模塊的仿真時,設(shè)計師可以再次開始仿真,,并停止使用保存的信號值,。

設(shè)計師如何知道仿真何時已經(jīng)改變了呢?除了復(fù)用保存的模塊輸出值外,,設(shè)計師還保存了輸入信號,。在每個周期內(nèi),設(shè)計師可以將實際的輸入信號值與保存的輸入信號值進行比較,。當保存值與實際值匹配時,,設(shè)計師就能知道輸出結(jié)果與上次運行結(jié)果是相同的。

這種方法的效果取決于假設(shè)執(zhí)行信號和檢查點讀取所需的時間小于執(zhí)行實際仿真所需時間,,從而加速仿真的能力,。顯然,具有內(nèi)部活動和少量I/O引腳的大模塊的速度提升幅度要比具有許多I/O信號的小模塊顯著得多,。在前一種情況下,,保存和恢復(fù)I/O信號的成本要低于仿真模塊行為所需付出的代價。在后一種情況中,,在某些點保存和恢復(fù)信號數(shù)據(jù)的成本將超過仿真模塊的代價,。

有助于減少必須保存的數(shù)據(jù)量的一種方法是只在時鐘周期上采樣I/O信號。通用使用周期級(cycle-level)接口,,設(shè)計師可以確保他或她只需要一個周期采樣或分析信號值一次,,而不是每個周期內(nèi)以隨機次數(shù)進行采樣。因為大多數(shù)總線接口是周期精確型接口,,因此這種方法通常沒有什么問題,。

實現(xiàn)這種系統(tǒng)所需要的功能要求設(shè)計師:

. 監(jiān)視和捕捉特定模塊的輸入和輸出。

. 將接口轉(zhuǎn)換成在周期邊界上工作,。

. 以指定間隔查明所有寄存器值,。

. 從保存文件中恢復(fù)出信號用作輸出值。

. 將保存的輸入值與實際值進行比較,。

. 發(fā)現(xiàn)失配時,,加載最近的檢查值,,只允許該模塊仿真到當前時間,然后從該點開始繼續(xù)正常的仿真,。

Carbon設(shè)計系統(tǒng)公司在周期級模型編譯器的“重放”特性中實現(xiàn)了上述功能,。該模型編譯器接收寄存器傳輸級代碼,創(chuàng)建周期級編譯后的模型,,并提供周期級模塊接口,。其余功能則在編譯期間于基本的I/O模型邊界創(chuàng)建的部分包裝器(wrapper)中實現(xiàn)。

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。