0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

高效的代碼校驗(yàn)讓芯片開發(fā)周期左移

新思科技 ? 來(lái)源:新思科技 ? 作者:新思科技 ? 2022-06-07 10:10 ? 次閱讀

專用集成電路(ASIC)的設(shè)計(jì)規(guī)模不斷擴(kuò)大、復(fù)雜度不斷攀升,這對(duì)芯片開發(fā)者的能力和所使用的工具都提出了更高的要求。

在之前的文章中,我們探討過(guò)數(shù)十億門級(jí)ASIC所面臨的跨時(shí)鐘域(CDC)和跨復(fù)位域(RDC)挑戰(zhàn),今天我們將共同探討第三大挑戰(zhàn)──靜態(tài)代碼校驗(yàn)。

高效的代碼校驗(yàn)

讓芯片開發(fā)周期左移

代碼校驗(yàn),即對(duì)源代碼進(jìn)行自動(dòng)檢查以排查錯(cuò)誤,是硬件開發(fā)生命周期中非常重要的一環(huán)。如果能在RTL開發(fā)的早期階段就開始代碼校驗(yàn)工作,評(píng)估代碼質(zhì)量以及一旦代碼錯(cuò)誤會(huì)對(duì)設(shè)計(jì)流程的后續(xù)環(huán)節(jié)造成哪些影響,這對(duì)開發(fā)者來(lái)說(shuō)將會(huì)大大提升開發(fā)效率,并最終實(shí)現(xiàn)開發(fā)周期的左移。

現(xiàn)在的代碼校驗(yàn)已經(jīng)遠(yuǎn)遠(yuǎn)超出了RTL語(yǔ)義規(guī)則檢查的范疇,擴(kuò)展到了綜合能力檢查、結(jié)構(gòu)分析以及網(wǎng)表/電氣規(guī)則檢查。為實(shí)現(xiàn)左移,芯片開發(fā)者希望能夠在開發(fā)流程早期階段就完成許多復(fù)雜的任務(wù),比如在 RTL 內(nèi)執(zhí)行更復(fù)雜的檢查,以及確保 RTL 與下游合成引擎更加一致等等。開發(fā)者還希望 RTL 對(duì)各種仿真器“友好”并可進(jìn)行互操作,同時(shí)兼容等價(jià)性檢查器。這些要求都不簡(jiǎn)單,而這其中真正的挑戰(zhàn)就在于如何從源代碼中尋找并修復(fù)漏洞。

如果把這些挑戰(zhàn)放大到數(shù)十億門級(jí)ASIC的設(shè)計(jì)中,可以想想代碼校驗(yàn)會(huì)有多復(fù)雜,因此為了在設(shè)計(jì)規(guī)模和復(fù)雜度不斷攀升的情況下,依舊實(shí)現(xiàn)將開發(fā)周期左移,就需要更強(qiáng)大的代碼校驗(yàn)工具來(lái)幫助芯片開發(fā)者們高效完成代碼的預(yù)先排查工作。

管理規(guī)則集

代碼校驗(yàn)工具需要使用規(guī)則集運(yùn)行,開發(fā)者需要?jiǎng)?chuàng)建、管理和編策這些規(guī)則集。這些都是非常專業(yè)的技能,其中涉及的專業(yè)知識(shí)通常是小公司不具備的或者想要引入的,所以對(duì)小公司而言,入門級(jí)的做法就是購(gòu)買現(xiàn)成的軟件包。而大型公司一般有自己的內(nèi)部代碼校驗(yàn)規(guī)則集,這些內(nèi)部規(guī)則集對(duì)公司來(lái)說(shuō)都是重要的投資。

第三方或行業(yè)標(biāo)準(zhǔn)規(guī)則集可以降低準(zhǔn)入門檻,幫助小規(guī)模的設(shè)計(jì)團(tuán)隊(duì)加速代碼校驗(yàn)工作流程。新思科技的GuideWare方法學(xué)文檔和規(guī)則集正是為了這一目的而開發(fā)的,旨在幫助開發(fā)者快速開始采用此技術(shù),并根據(jù)需要進(jìn)一步制定規(guī)則。

GuideWare的目標(biāo)是能夠在至少80%的用例中實(shí)現(xiàn)RTL移交,從而更大限度地減少創(chuàng)建、管理和編策相關(guān)規(guī)則所需的專業(yè)知識(shí)。對(duì)小型設(shè)計(jì)團(tuán)隊(duì)而言,GuideWare絕對(duì)是一個(gè)福音,他們的設(shè)計(jì)可以實(shí)現(xiàn)質(zhì)的飛躍,生產(chǎn)力也會(huì)大幅提升。

新思科技會(huì)對(duì)GuideWare定期進(jìn)行更新,以確保規(guī)則集的復(fù)雜性始終處于行業(yè)領(lǐng)先地位。新思科技的IP均已通過(guò)代碼校驗(yàn)認(rèn)證,開發(fā)者們可以選擇新思科技的IP以及GuideWare中的設(shè)計(jì)復(fù)用合規(guī)性檢查功能,做出符合行業(yè)標(biāo)準(zhǔn)的設(shè)計(jì)。

如何處理無(wú)用代碼?

無(wú)用代碼或無(wú)法訪問(wèn)的代碼在開發(fā)階段通常都會(huì)存在,有些甚至?xí)A舻搅髌A段。為什么會(huì)這樣呢?

設(shè)計(jì)的復(fù)雜性在開發(fā)過(guò)程中也會(huì)不斷演進(jìn),開發(fā)者會(huì)隨時(shí)進(jìn)行漏洞修復(fù)、增加功能、集成可復(fù)用的模塊等等,有時(shí)還會(huì)為了實(shí)現(xiàn)功耗和性能目標(biāo)做全面的代碼優(yōu)化,這樣就會(huì)導(dǎo)致最初寫的一些代碼變?yōu)闊o(wú)用代碼。但是由于產(chǎn)品交付時(shí)間并沒(méi)有因?yàn)樵O(shè)計(jì)變復(fù)雜而延后,迫于時(shí)間壓力,很多時(shí)候開發(fā)者沒(méi)有時(shí)間去清理這些無(wú)用代碼。雖然保留這些代碼并不會(huì)影響下個(gè)代碼的正常運(yùn)行,但是如果追求精簡(jiǎn)設(shè)計(jì),這些代碼就必須要處理。

使用代碼校驗(yàn)工具來(lái)清理無(wú)用代碼是非常有必要的,有些開發(fā)者對(duì)工具是否好用持懷疑態(tài)度,他們可能會(huì)為了以防萬(wàn)一就保留相關(guān)代碼,但大多數(shù)都會(huì)秉持“零違例”準(zhǔn)則,即“要么修復(fù),要么放棄”。因此,代碼校驗(yàn)工具能夠準(zhǔn)確識(shí)別無(wú)用代碼并知道如何處理它們是非常重要的。

新思科技的靜態(tài)代碼校驗(yàn)工具VC SpyGlass Lint采用形式引擎,在識(shí)別無(wú)用代碼上效率非常出眾。但開發(fā)者通常會(huì)有以下幾種操作選項(xiàng):

更新RTL代碼從而移除無(wú)用代碼:這應(yīng)該是能把無(wú)用代碼清理的最干凈的解決方案,還能夠有效移除覆蓋率分析中的覆蓋率空洞。但這一方法需要重新構(gòu)思代碼,并進(jìn)行功能驗(yàn)證,所以比較花時(shí)間。

把無(wú)用代碼注釋掉并為了以后參考附上相關(guān)信息的注釋:雖然這種方法也還需要進(jìn)行功能驗(yàn)證,但它也能提供一個(gè)干凈的代碼并移除覆蓋率空洞。

棄用代碼校驗(yàn) waiver 文件中的無(wú)用代碼:僅確認(rèn)無(wú)用代碼的安全性,不對(duì)其進(jìn)行清理,RTL代碼庫(kù)保持不變。覆蓋空洞將仍然存在。

了解設(shè)計(jì)復(fù)雜性

越復(fù)雜的設(shè)計(jì)所包含的漏洞也就越復(fù)雜。但開發(fā)者在設(shè)計(jì)中通常都會(huì)追求精簡(jiǎn)、直觀、一看就懂且易于維護(hù)的代碼結(jié)構(gòu)。不過(guò)隨著時(shí)間的推移,在開發(fā)者不斷debug修正代碼的過(guò)程中,代碼的整體質(zhì)量與最初相比會(huì)有所下降,他們可能還會(huì)突然發(fā)現(xiàn)RTL代碼怎么好像越改越復(fù)雜了,邏輯也越來(lái)越難理解了。

衡量并可視化呈現(xiàn)代碼的復(fù)雜性可以幫助開發(fā)者“看見”代碼中變得復(fù)雜的部分,他們可以利用這一信息對(duì)積攢的復(fù)雜代碼進(jìn)行評(píng)估和推演。針對(duì)復(fù)雜性風(fēng)險(xiǎn)過(guò)高的代碼區(qū),開發(fā)者會(huì)在性能和功能之間做一些權(quán)衡,并對(duì)部分代碼進(jìn)行重構(gòu)。

通過(guò)同行評(píng)議保證魯棒性很有用,且是一項(xiàng)所有設(shè)計(jì)團(tuán)隊(duì)都應(yīng)采用的最佳實(shí)踐,但新思科技的VC SpyGlass Lint有一個(gè)獨(dú)特的優(yōu)勢(shì)是其他工具無(wú)法比擬的,就是可以衡量代碼的復(fù)雜性,為開發(fā)者提供非常有用的建議。VC SpyGlass Lint利用形式引擎提供功能分析及代碼復(fù)雜性分析,并通過(guò)儀表板呈現(xiàn)結(jié)果。

永遠(yuǎn)存在的誤報(bào)問(wèn)題

在CDC和RDC的文章中,我們討論過(guò)誤報(bào)問(wèn)題,這一問(wèn)題在代碼校驗(yàn)過(guò)程中同樣存在。在數(shù)十億門級(jí)的設(shè)計(jì)中,勢(shì)必會(huì)產(chǎn)生大量違例,數(shù)量過(guò)大就會(huì)有遺漏風(fēng)險(xiǎn)。開發(fā)者們希望的是,工具可以幫助他們直觀地看到有意義的信息、準(zhǔn)確評(píng)估信息、正確標(biāo)記違例、對(duì)違例進(jìn)行分類等等,從而提高處理違例的效率和準(zhǔn)確性。

VC SpyGlass Lint利用形式引擎來(lái)有效解決誤報(bào)問(wèn)題。開發(fā)者們無(wú)需知道形式驗(yàn)證,也無(wú)需具備這方面的專業(yè)知識(shí),所有形式驗(yàn)證都將在后臺(tái)完成。這一工具內(nèi)置了5000多項(xiàng)檢查,而且新思科技仍在不斷地對(duì)檢查項(xiàng)目進(jìn)行添加和完善。

功能校驗(yàn),加快簽核

借助一鍵式形式驗(yàn)證的功能校驗(yàn),開發(fā)者們可以在驗(yàn)證平臺(tái)可用前就對(duì)功能和覆蓋率問(wèn)題進(jìn)行測(cè)試,從而節(jié)省時(shí)間并實(shí)現(xiàn)左移。功能校驗(yàn)在檢查以下控制問(wèn)題時(shí)非常有用:

FSM死鎖

無(wú)法訪問(wèn)狀態(tài)的檢查

覆蓋率問(wèn)題(如常值信號(hào))

無(wú)用代碼檢查

數(shù)組邊界違例

總結(jié)來(lái)說(shuō),如果開發(fā)者們能夠盡早知道復(fù)雜的RTL代碼是否能夠?qū)崿F(xiàn)預(yù)期的設(shè)計(jì)結(jié)果,他們就可以在設(shè)計(jì)開發(fā)后續(xù)流程中節(jié)省很多時(shí)間和精力,不僅實(shí)現(xiàn)開發(fā)周期的左移,還可節(jié)約成本。新思科技的VC SpyGlass Lint等工具可以完美解決這一問(wèn)題,它利用形式引擎實(shí)現(xiàn)功能分析,可有效幫助開發(fā)者們盡早判斷他們的RTL代碼質(zhì)量是否滿足設(shè)計(jì)需求,最終加速簽核。

原文標(biāo)題:靜態(tài)代碼驗(yàn)證:從源頭解決數(shù)十億門級(jí)ASIC設(shè)計(jì)挑戰(zhàn)

文章出處:【微信公眾號(hào):新思科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50224

    瀏覽量

    421010
  • 集成電路
    +關(guān)注

    關(guān)注

    5378

    文章

    11319

    瀏覽量

    360432
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1183

    瀏覽量

    120227
  • 新思科技
    +關(guān)注

    關(guān)注

    5

    文章

    783

    瀏覽量

    50288
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)芯片開發(fā)-單片機(jī)方案開發(fā)的關(guān)鍵技巧和流程步驟!

    。 單片機(jī)芯片開發(fā)并不是一項(xiàng)艱巨的任務(wù),只要掌握關(guān)鍵步驟,您就能輕松應(yīng)對(duì)。明確需求、選擇合適的MCU、搭建高效開發(fā)環(huán)境、編寫優(yōu)質(zhì)代碼以及
    發(fā)表于 09-26 17:04

    如何通過(guò)I2C加載TPS2388x SRAM和奇偶校驗(yàn)代碼

    電子發(fā)燒友網(wǎng)站提供《如何通過(guò)I2C加載TPS2388x SRAM和奇偶校驗(yàn)代碼.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 11:16 ?0次下載
    如何通過(guò)I2C加載TPS2388x SRAM和奇偶<b class='flag-5'>校驗(yàn)</b><b class='flag-5'>代碼</b>

    nxps32k144安全啟動(dòng)校驗(yàn)bootloader完整性

    目前在做nxp s32k144芯片bootloader安全啟動(dòng)功能開發(fā),通過(guò)芯片手冊(cè)發(fā)現(xiàn)CSEc有這個(gè)功能,并且在上S32ds上發(fā)現(xiàn)了boot-protect的例程,但是還是對(duì)于校驗(yàn)
    發(fā)表于 07-02 21:07

    鴻蒙開發(fā)組件:DataAbility的生命周期

    應(yīng)用開發(fā)者可以根據(jù)業(yè)務(wù)場(chǎng)景實(shí)現(xiàn)data.js/data.ets中的生命周期相關(guān)接口。DataAbility生命周期接口說(shuō)明見下表。
    的頭像 發(fā)表于 06-20 09:39 ?372次閱讀

    怎樣利用數(shù)字示波器測(cè)量信號(hào)的周期和振幅

    在電子工程領(lǐng)域,信號(hào)的周期和振幅是評(píng)估和分析電路性能的重要參數(shù)。數(shù)字示波器作為一種高精度、高效率的測(cè)量?jī)x器,被廣泛用于測(cè)量信號(hào)的周期和振幅。本文將詳細(xì)介紹如何利用數(shù)字示波器進(jìn)行信號(hào)的周期
    的頭像 發(fā)表于 05-17 17:08 ?3002次閱讀

    Hex文件格式CRC校驗(yàn),怎么編寫計(jì)算校驗(yàn)的程序?

    0x3A)的所有各字節(jié)的和模256的余。即各字節(jié)二進(jìn)制算術(shù)和,不計(jì)超過(guò)256的溢出值后用0x100減去這個(gè)算數(shù)累加和,得出得值就是此行得校驗(yàn)和。 計(jì)算方法有,但看的不是很懂,望指導(dǎo)或者有代碼更好
    發(fā)表于 05-16 06:53

    代碼開發(fā)平臺(tái)的崛起:優(yōu)勢(shì)、特點(diǎn)與應(yīng)用

    代碼開發(fā)平臺(tái)是近年來(lái)迅速崛起的一種創(chuàng)新型軟件開發(fā)工具,以其高效、靈活的開發(fā)模式正顛覆著傳統(tǒng)的開發(fā)
    的頭像 發(fā)表于 04-18 10:43 ?328次閱讀
    低<b class='flag-5'>代碼</b><b class='flag-5'>開發(fā)</b>平臺(tái)的崛起:優(yōu)勢(shì)、特點(diǎn)與應(yīng)用

    代碼開發(fā)有哪些優(yōu)勢(shì)?

    代碼平臺(tái)以其高效、便捷、低成本的優(yōu)勢(shì),正逐漸成為軟件開發(fā)領(lǐng)域中的性價(jià)比之王。它不僅能夠滿足快速開發(fā)的需求,還能夠降低技術(shù)門檻和維護(hù)成本,提高開發(fā)
    的頭像 發(fā)表于 04-09 16:03 ?821次閱讀
    低<b class='flag-5'>代碼</b><b class='flag-5'>開發(fā)</b>有哪些優(yōu)勢(shì)?

    華為云 Astro 全場(chǎng)景低代碼開發(fā),業(yè)務(wù)專家秒變“技術(shù)大拿”

    代碼開發(fā)邁向全民開發(fā)者時(shí)代的最佳選擇 快,是數(shù)字化最直觀的體現(xiàn)。面對(duì)市場(chǎng)不可預(yù)測(cè)的變化,只有“高效迭代”才能讓企業(yè)應(yīng)用在市場(chǎng)競(jìng)爭(zhēng)的洪流里屹立不倒。然而,傳統(tǒng)軟件
    的頭像 發(fā)表于 04-08 10:38 ?777次閱讀
    華為云 Astro 全場(chǎng)景低<b class='flag-5'>代碼</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>讓</b>業(yè)務(wù)專家秒變“技術(shù)大拿”

    Arm推出汽車增強(qiáng)處理器及虛擬平臺(tái),縮短人工智能汽車開發(fā)周期

    近日,全球領(lǐng)先的半導(dǎo)體和基礎(chǔ)設(shè)施軟件設(shè)計(jì)公司Arm控股有限公司(納斯達(dá)克股票代碼:ARM,簡(jiǎn)稱“Arm”)與合作伙伴共同推出了最新的Arm汽車增強(qiáng)(AE)處理器和虛擬平臺(tái)。這一創(chuàng)新解決方案旨在汽車行業(yè)在開發(fā)初期即可應(yīng)用,有望大
    的頭像 發(fā)表于 03-28 10:46 ?498次閱讀

    ?PLC左移指令和右移指令

    在PLC(可編程邏輯控制器)中,左移(Shift Left)指令和右移(Shift Right)指令通常用于位級(jí)操作,對(duì)位寄存器中的位進(jìn)行移位操作。這些指令可以用于實(shí)現(xiàn)數(shù)據(jù)的移位和位操作功能。
    發(fā)表于 03-15 14:12 ?5917次閱讀
    ?PLC<b class='flag-5'>左移</b>指令和右移指令

    2023中國(guó)企業(yè)低代碼/無(wú)代碼產(chǎn)品應(yīng)用與實(shí)踐研究

    并且AI對(duì)低代碼/無(wú)代碼行業(yè)的影響也逐步增大,AI代碼和低代碼/無(wú)代碼雖然技術(shù)路徑大相徑庭,但是在實(shí)現(xiàn)
    的頭像 發(fā)表于 12-08 16:08 ?644次閱讀
    2023中國(guó)企業(yè)低<b class='flag-5'>代碼</b>/無(wú)<b class='flag-5'>代碼</b>產(chǎn)品應(yīng)用與實(shí)踐研究

    如何用萬(wàn)界星空科技低代碼平臺(tái)快速開發(fā)一個(gè)MES系統(tǒng)?

    如今,越來(lái)越多的企業(yè)選擇低代碼開發(fā)平臺(tái),企業(yè)實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型。但是你好奇“低代碼開發(fā)平臺(tái)”能做什么嗎?“低
    的頭像 發(fā)表于 12-08 11:39 ?536次閱讀
    如何用萬(wàn)界星空科技低<b class='flag-5'>代碼</b>平臺(tái)快速<b class='flag-5'>開發(fā)</b>一個(gè)MES系統(tǒng)?

    國(guó)內(nèi)首款免代碼大功率雙向DC/DC電源專用芯片

    PPEC-86CA3D是一款應(yīng)用于雙向有源全橋變換器的電源控制芯片,為電源研發(fā)企業(yè)提供穩(wěn)定可靠的隔離型雙向DC/DC控制方案,繼承PPEC免代碼編程開發(fā)優(yōu)勢(shì),降低了電源開發(fā)門檻,縮短研
    發(fā)表于 11-20 10:31

    如何寫出高效優(yōu)美的C語(yǔ)言代碼

    電子發(fā)燒友網(wǎng)站提供《如何寫出高效優(yōu)美的C語(yǔ)言代碼.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 10:55 ?0次下載
    如何寫出<b class='flag-5'>高效</b>優(yōu)美的C語(yǔ)言<b class='flag-5'>代碼</b>