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

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

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

如何在SpyGlass環(huán)境本身中修復(fù)這些Lint錯(cuò)誤呢?

sanyue7758 ? 來(lái)源:處芯積律 ? 2023-08-14 10:08 ? 次閱讀

我們將分析 lint目標(biāo)運(yùn)行期間產(chǎn)生的違規(guī)行為。我們可以使用 SpyGlass GUI 中的各種調(diào)試工具來(lái)了解違規(guī),在 RTL 代碼中調(diào)試,并查看如何在 SpyGlass 環(huán)境本身中修復(fù)這些違規(guī)。

并且在更改 RTL或者.prj文件之后都必須重新運(yùn)行。

使用以下命令打開 SpyGlass GUI,將自動(dòng)加載上次運(yùn)行目標(biāo) (lint/lint_rtl)

spyglass-projectwb_subsystem.prj&

在沒(méi)有-batch時(shí),SpyGlass 默認(rèn)會(huì)打開 GUI。

生成對(duì)應(yīng)于每個(gè)目標(biāo)運(yùn)行的多個(gè)報(bào)告,可從菜單欄的報(bào)告部分訪問(wèn),如下所示:

76ebbefc-39ef-11ee-9e74-dac502259ad0.png

在GUI底部的Violations可查看違規(guī)信息。在顯示出違規(guī)信息后,點(diǎn)擊違規(guī)信息窗口頂部的Group By,然后選擇Goal by Rule。

7703bebc-39ef-11ee-9e74-dac502259ad0.png

W415 Multiple drivers錯(cuò)誤

該規(guī)則確定了可以由設(shè)計(jì)中的 2 個(gè)或更多非三態(tài)驅(qū)動(dòng)器同時(shí)驅(qū)動(dòng)的網(wǎng)絡(luò)。打開原理圖窗口,增量示意圖窗口顯示違規(guī)的結(jié)構(gòu):

7721bfb6-39ef-11ee-9e74-dac502259ad0.png

可以看到兩個(gè)驅(qū)動(dòng)程序正在驅(qū)動(dòng)信號(hào) (WB_master_data_o[0]) ,即端口m0_data_i由端口dat_o(例如 ahb2wb_u0)和m0_data_o(例如 conmax_u1)同時(shí)驅(qū)動(dòng)。因此,這是一個(gè)違規(guī)行為。

通過(guò)查看RTL代碼知道該部分使用ifdef構(gòu)造來(lái)啟用固定代碼。

773f9180-39ef-11ee-9e74-dac502259ad0.png

因此在wb_subsystem.prj中添加以下內(nèi)容來(lái)啟用宏,從而啟用Fix_W415宏:

set_optiondefine{Fix_W415}

設(shè)置后重新加載項(xiàng)目文件和重新運(yùn)行spyglass -project wb_subsystem.prj &

SYNTH_5159警告

77571d1e-39ef-11ee-9e74-dac502259ad0.png

規(guī)則 SYNTH_5159識(shí)別可能無(wú)法綜合的結(jié)構(gòu)。該語(yǔ)句包含在synthesis編譯指示中,表明該語(yǔ)句不用于分析,但默認(rèn)情況下,SpyGlass 僅將synopsys和pragma注釋識(shí)別為pragma(編譯指示)(與 Design Compiler 相同)。我們需要通過(guò)在.prj文件中添加以下內(nèi)容來(lái)啟用synthesis的pragma處理:

set_optionpragma{synopsyspragamsynthesis}

由于此錯(cuò)誤發(fā)生在ima_adpcm_lib預(yù)編譯庫(kù)中,SpyGlass會(huì)檢查該庫(kù)的RTL是否已更改,只有在更改后才會(huì)重新編譯,因此我們需要?jiǎng)h除現(xiàn)有的預(yù)編譯庫(kù),使用新的pragma設(shè)置重新編譯該庫(kù)。

rm-rfima_adpcm_lib

重新運(yùn)行后,SYNTH_5159警告消除。

77ad2a7e-39ef-11ee-9e74-dac502259ad0.png

注意: 手動(dòng)刪除 ima_adpcm_lib的替代方法是在.prj文件中臨時(shí)添加set_option force_compile yes以強(qiáng)制重新編譯庫(kù)。

UndrivenInTerm-ML錯(cuò)誤

77c81ea6-39ef-11ee-9e74-dac502259ad0.png

查看違規(guī)消息,發(fā)現(xiàn)“conmax_u1”矢量輸入端口“m0_addr_i”的上半部分(31:16)范圍被發(fā)現(xiàn)是浮動(dòng)的:

77e3f45a-39ef-11ee-9e74-dac502259ad0.png

首先雙擊違規(guī)消息, RTL 代碼中突出顯示的行顯示了矢量端口m0_addr_i的端口映射,該端口映射與矢量信號(hào)WB_master_addr。

在RTL顯示行上,選擇WB_master_addr信號(hào)(雙擊),從右鍵菜單窗口中選擇選項(xiàng)Signal:WB_master_addr:

77f65938-39ef-11ee-9e74-dac502259ad0.png

折疊菜單顯示了聲明、加載和驅(qū)動(dòng)程序的許多超鏈接(藍(lán)色字樣)。可以看到向量信號(hào)WB_master_addr的寬度為32位,與映射的實(shí)際端口m0_addr_i的寬度相同,即端口與相同大小的信號(hào)總線完全連接,不是問(wèn)題所在。

因此我們繼續(xù)檢查向量信號(hào)WB_master_addr的驅(qū)動(dòng)程序:

使用 View -> Windows -> HDL Navigator打開 HDL Navigator窗口,這顯示了所選WB_master_addr的驅(qū)動(dòng)器和負(fù)載。

78106346-39ef-11ee-9e74-dac502259ad0.png

注意到存在一個(gè) RTL 驅(qū)動(dòng)程序信息:

783db580-39ef-11ee-9e74-dac502259ad0.png

驅(qū)動(dòng)程序是實(shí)例ahb2wb_u0的o/p端口adr_0,但這僅驅(qū)動(dòng)矢量信號(hào)WB_master_addr的低位(15:0),其余位沒(méi)有報(bào)告其他驅(qū)動(dòng)程序 WB_master_addr ,即高位沒(méi)有驅(qū)動(dòng)程序。

此違規(guī)的修復(fù)方法是將高 16 位賦值為0,并需要更新 RTL。

78643764-39ef-11ee-9e74-dac502259ad0.png

可以看到RTL中有通過(guò)拼接進(jìn)行的驅(qū)動(dòng)程序,但通過(guò)ifdef結(jié)構(gòu)進(jìn)行控制。

因此可以通過(guò)設(shè)置Fix_UndrivenInTerm宏來(lái)調(diào)用目標(biāo)程序:

set_optiondefine{Fix_UndrivenInTerm}

788bbb22-39ef-11ee-9e74-dac502259ad0.png

通常,用戶不希望每次運(yùn)行 SpyGlass 時(shí)都看到違規(guī)消息。可以通過(guò)定義Waive來(lái)過(guò)濾它們 。

右鍵單擊Waive Selected Messages這將打開Waive編輯器窗口,并為其填充相關(guān)信息(違規(guī)消息、規(guī)則和設(shè)計(jì)單元 (DU))

78af68c4-39ef-11ee-9e74-dac502259ad0.png

78c71f32-39ef-11ee-9e74-dac502259ad0.png

單擊Apply,如下圖,已忽略剛剛的警告信息。

78e40d4a-39ef-11ee-9e74-dac502259ad0.png

在界面底部選擇Waiver Tree可以查看已經(jīng)被過(guò)過(guò)濾掉的錯(cuò)誤選項(xiàng)。

79146b66-39ef-11ee-9e74-dac502259ad0.png

如果想在后續(xù)繼續(xù)使用當(dāng)前生成的Waiver,可以將這些信息保存在一個(gè)Waiver文件 (.awl) 中。在waivers編輯器窗口中右鍵文件,然后選擇選項(xiàng)Save Waiver Files。:

7937136e-39ef-11ee-9e74-dac502259ad0.png

SpyGlass會(huì)為每個(gè)Goal保存一個(gè)關(guān)于檢查過(guò)濾的文件,本例中文件路徑為:

./wb_subsystem/wb_subsystem/lint/lint_rtl/wb_subsystem_waiver_file.awl

我們可以將其復(fù)制到當(dāng)前工作目錄下,方便調(diào)用:

cp./wb_subsystem/wb_subsystem/lint/lint_rtl/wb_subsystem_waiver_file.awl./wb_subsystem.awl

然后將該過(guò)濾文件包含到工程中并將其設(shè)置為默認(rèn)waiver 文件:

read_file-typeawl./wb_subsystem.awl
set_optiondefault_waiver_file./wb_subsystem.awl

然后重新加載工程文件且運(yùn)行Goal。

生成Dashboard/Datasheet

在GUI界面下打開shell命令窗口,輸入如下命令生成Dashboard/Datasheet:

write_aggregate_reportdatasheet
write_aggregate_reportdashboard

7948e9ea-39ef-11ee-9e74-dac502259ad0.png

通過(guò)在終端中輸入下面命令可以在瀏覽器中查看報(bào)告

firefoxwb_subsystem/html_reports/dashboard.html
firefoxwb_subsystem/html_reports/datasheet.html

7956d866-39ef-11ee-9e74-dac502259ad0.png

79867972-39ef-11ee-9e74-dac502259ad0.png

最后可以查看.prj文件:

79aa3358-39ef-11ee-9e74-dac502259ad0.png







審核編輯:劉清

聲明:本文內(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)投訴
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    51

    文章

    8017

    瀏覽量

    145107
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59534
  • 過(guò)濾器
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    19403
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    631

    瀏覽量

    39319

原文標(biāo)題:Spyglass 中常見(jiàn)Lint錯(cuò)誤

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何在CYGWIN的IFX環(huán)境安裝cysecuretool?

    嗨, 我正在嘗試在 cygwin 安裝 cysecure 工具但遇到了錯(cuò)誤。 誰(shuí)能指導(dǎo)如何在 CYGWIN 的 IFX 環(huán)境安裝 cys
    發(fā)表于 01-25 08:25

    何在地圖編譯修復(fù)警??告?

    大家好,你有建議如何在地圖編譯修復(fù)此警??告嗎?包裝:2912-LUT-1變換器“RD_HIT_inv321_INV_0”未能加入與輸出緩沖器“VMEDATA_INP_13_IOBUF
    發(fā)表于 10-23 10:31

    何在STM32CubeMx環(huán)境中去移植easyflash

    何在STM32CubeMx環(huán)境中去移植easyflash?有哪些移植步驟
    發(fā)表于 11-26 07:27

    何在無(wú)ROOT的環(huán)境下使用XPOSED

    有什么方法將XPOSED植入RK3288 Android7.1?如何在無(wú)ROOT的環(huán)境下使用XPOSED
    發(fā)表于 03-03 07:59

    何在Ubuntu上開發(fā)測(cè)試SDK開發(fā)環(huán)境

    何在Ubuntu上開發(fā)測(cè)試SDK開發(fā)環(huán)境?有哪些測(cè)試步驟?
    發(fā)表于 03-09 06:47

    DOS命令修復(fù)U盤文件錯(cuò)誤

    Chkdsk命令是在DOS下用于修復(fù)文件系統(tǒng)錯(cuò)誤的關(guān)鍵命令。U盤的文件系統(tǒng)錯(cuò)誤會(huì)對(duì)我們的數(shù)據(jù)安全造成危害。
    發(fā)表于 01-17 15:08 ?9091次閱讀

    怎樣修復(fù)Fusion 360的自相交T樣條錯(cuò)誤

    如果您在自相交遇到自相交錯(cuò)誤雕刻環(huán)境,然后建議遵循以下核心步驟:
    的頭像 發(fā)表于 12-13 16:23 ?4507次閱讀
    怎樣<b class='flag-5'>修復(fù)</b>Fusion 360<b class='flag-5'>中</b>的自相交T樣條<b class='flag-5'>錯(cuò)誤</b>

    關(guān)于PC-lint,以及如何在MDK添加PC-lint工具

    關(guān)于PC-lint,以及如何在MDK添加PC-lint工具
    的頭像 發(fā)表于 03-04 09:31 ?4300次閱讀
     關(guān)于PC-<b class='flag-5'>lint</b>,以及如<b class='flag-5'>何在</b>MDK<b class='flag-5'>中</b>添加PC-<b class='flag-5'>lint</b>工具

    何在五小時(shí)修復(fù)凸輪軸磨損

    何在五小時(shí)修復(fù)凸輪軸磨損
    發(fā)表于 12-16 13:51 ?10次下載

    細(xì)碎機(jī)軸徑磨損后如何在修復(fù)

    細(xì)碎機(jī)軸徑磨損后如何在修復(fù)
    發(fā)表于 02-11 11:30 ?4次下載

    詳解Spyglass使用(一)

    作為IC設(shè)計(jì)人員,熟練掌握數(shù)字前端語(yǔ)法檢查工具Spyglass的重要性不言而喻,本文手把手教你學(xué)習(xí)Spyglass工具。
    的頭像 發(fā)表于 12-28 09:27 ?5654次閱讀

    詳解Spyglass使用(二)

    接著上文繼續(xù)聊,詳解Spyglass使用(一),在看到一條條lint Warning信息后,怎么才能更清晰地知道warning的具體原因?告訴你一個(gè)好習(xí)慣!
    的頭像 發(fā)表于 12-29 09:16 ?4529次閱讀

    景芯SoC的Spyglass檢查

    作為IC設(shè)計(jì)人員,熟練掌握數(shù)字前端語(yǔ)法檢查工具Spyglass的重要性不言而喻,本文講解景芯SoC的Spyglass檢查。
    的頭像 發(fā)表于 08-15 09:45 ?1231次閱讀
    景芯SoC的<b class='flag-5'>Spyglass</b>檢查

    SpyGlass?Lint Turbo結(jié)構(gòu)用戶指南

    電子發(fā)燒友網(wǎng)站提供《SpyGlass?Lint Turbo結(jié)構(gòu)用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 09:48 ?0次下載

    何在修復(fù)提升機(jī)軸磨損

    電子發(fā)燒友網(wǎng)站提供《如何在修復(fù)提升機(jī)軸磨損.docx》資料免費(fèi)下載
    發(fā)表于 03-05 17:51 ?0次下載