Polyspace 自 2013b 版本起開(kāi)始集成到 MATLAB 平臺(tái),利用其強(qiáng)大的靜態(tài)分析和形式化驗(yàn)證功能完善基于模型設(shè)計(jì)的過(guò)程,同時(shí) MATLAB 的腳本處理能力也加強(qiáng)了驗(yàn)證的自動(dòng)化過(guò)程,應(yīng)用場(chǎng)景包括:
獲取生成代碼的規(guī)范符合性和復(fù)雜度信息
驗(yàn)證集成了 C 代碼的模型的魯棒性
補(bǔ)充 基于模型的設(shè)計(jì)(MBD) 流程的形式化驗(yàn)證能力
以下案例說(shuō)明了在基于模型的設(shè)計(jì)中 Polyspace 的可能的應(yīng)用過(guò)程。
下圖案例模型中,既包含了 Simulink 和 Stateflow 模塊,也包含了 C 代碼封裝的 s-function 函數(shù) PedalCmdLookup_C。對(duì)于這種混合代碼模型,Polyspace 可以起到很好的分析和驗(yàn)證作用。
模型生成代碼之后,可以按照如下方法從 Simulink 直接調(diào)用 Polyspace,在調(diào)用之前也可以在 Option 選項(xiàng)中設(shè)置 Polyspace 選項(xiàng)。
在 Bug Finder 的結(jié)果中,可以得到違反 MISRA 規(guī)則的生成代碼(左圖)和分析得到的軟件錯(cuò)誤(右圖)。
Polyspace 結(jié)果和 Simulink 模型的雙向追溯功能可以快速定位到模型中問(wèn)題模塊。
對(duì)于 Sum 模塊的 MISRA 10.3 違規(guī)是為了滿足 S 函數(shù)接口要求有意為之,我們可以在驗(yàn)證之前就在模型中添加說(shuō)明,相應(yīng)的說(shuō)明會(huì)反應(yīng)到 Polyspace 的結(jié)果中(左圖),避免了重復(fù)評(píng)審的工作;而對(duì)于指針越界的軟件錯(cuò)誤,經(jīng)過(guò)分析確實(shí)是 S 函數(shù) C 代碼中的設(shè)計(jì)問(wèn)題,及時(shí)修正(右圖)避免將問(wèn)題留到后續(xù)環(huán)節(jié)。
同時(shí)我們還能得到生成代碼的度量信息,如圈復(fù)雜度、局部變量?jī)?nèi)存占用情況等(左圖),用以評(píng)估模型架構(gòu)設(shè)計(jì)是否合理。Bug Finder 的“邊設(shè)計(jì)邊檢查”模式可以在設(shè)計(jì)早期就獲得高質(zhì)量的模型。
在模塊交付之前,按同樣的方法也可以調(diào)用 Code Prover,確保生成代碼中不存在運(yùn)行錯(cuò)誤,按此方法創(chuàng)建驗(yàn)證工程的過(guò)程中由于可以繼承 Simulink 模型中數(shù)據(jù)的范圍信息(上圖右),保證了驗(yàn)證的精確性。Code Prover 深度的形式化驗(yàn)證能力可以發(fā)現(xiàn)更加隱蔽的問(wèn)題,并且給出充分的程序調(diào)用棧信息幫助快速定位問(wèn)題原因:
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4372瀏覽量
64292 -
代碼
+關(guān)注
關(guān)注
30文章
4891瀏覽量
70306
發(fā)布評(píng)論請(qǐng)先 登錄
【「基于大模型的RAG應(yīng)用開(kāi)發(fā)與優(yōu)化」閱讀體驗(yàn)】+第一章初體驗(yàn)
望獲實(shí)時(shí)Linux系統(tǒng)與大語(yǔ)言模型深度融合,開(kāi)創(chuàng)實(shí)時(shí)智能無(wú)限可能!
AI如何對(duì)產(chǎn)品設(shè)計(jì)帶來(lái)更多的可能性?
ADS131A02從AIN1P采到的ADC值不準(zhǔn),請(qǐng)問(wèn)有哪些可能性會(huì)造成這樣的影響?
高通探索收購(gòu)英特爾芯片設(shè)計(jì)業(yè)務(wù)的可能性
鎖相放大器如何應(yīng)用到電腦上
介紹FIR濾波模型的建立,分4個(gè)步驟
新思科技探索AI+EDA的更多可能性
在ADS中導(dǎo)入PGA870的pspice模型總失敗,為什么?
三星電子積極探討在越南設(shè)立半導(dǎo)體組裝工廠的可能性
蘋果積極探索為Apple Watch SE引入塑料表殼的可能性
產(chǎn)品上應(yīng)用到TLC271 ID,有沒(méi)有替代料可以推薦?
如何使用Polyspace Code Prover來(lái)統(tǒng)計(jì)堆棧

評(píng)論