作為IC設(shè)計人員,熟練掌握數(shù)字前端語法檢查工具Spyglass的重要性不言而喻,本文手把手教你學(xué)習(xí)Spyglass工具。
啟動Spyglass軟件:spyglass &
點擊左邊Add File(s):
將.v文件通過rtl.f統(tǒng)一添加,如下圖,點擊OK:
或者通過命令添加:
sg_shell> read_file -type sourcelist rtl.f
設(shè)置頂層,選中下圖左邊Set Options,手動設(shè)置Value為digital_top.v,這里我們留一個bug,后面看得到。
或者通過命令添加:
sg_shell> set_option top digital_top.v
我們也可以默認缺省頂層文件,此處,我們暫時不用remove_option top命令,注意剛才我們留了一個bug。
sg_shell> remove_option top
點擊Read Design,
選擇SynthesizeNetlist,在讀入設(shè)計的同時進行綜合
點擊Run Design Read:
讀取完成發(fā)現(xiàn):
top 'digital_top.v' : Design unit not found in the design
bug來了,什么問題呢?找不到Design unit, 聰明的你一定發(fā)現(xiàn)了,頂層是module名,不是module文件名。如下圖所示:
也就是說設(shè)置Top level Design Unit的value為DIGITAL_TOP, 而不是digital_top.v。
再次Run Read Design,如下圖,讀取成功。
接著,設(shè)置Goal Setup:
首先選中l(wèi)int,我們先看lint, 點擊Run Goal:
運行得到結(jié)果如下。
在看到一條條lint Warning信息后,怎么才能更清晰地知道warning的具體原因呢?告訴你一個好習(xí)慣!
Spyglass的Analyze Results默認GUI界面如下,
我們通過View -> Windows -> Help Viewer 來查看SolvNet對每個RTL lint warning類型的解釋。
舉個例子:
W528 : A signal or variable is set but never read
W528是Warning類型,說一個信號或者變量沒有負載。
舉個例子:
信號bigbus在第一個assign statement中被賦值了256bit位寬,但是在第二個assign statement中,bigbus僅128 bits (2**(13-7+1) 或者 2**(6-0+1)) 會被選擇。因此,W528 的warning message就會出現(xiàn)。
module test1 (a, b); input [13:0] a; output [1:0] b; wire [255:0] bigbus; assignbigbus={{16{4'h0}},{16{4'h0}},{16{4'h0}},{16{4'h0}}}; assign b={bigbus[a[13:7]],bigbus[a[6:0]]}; endmodule
審核編輯:劉清
-
IC設(shè)計
+關(guān)注
關(guān)注
38文章
1295瀏覽量
103918 -
TOP
+關(guān)注
關(guān)注
0文章
35瀏覽量
32120 -
GUI
+關(guān)注
關(guān)注
3文章
659瀏覽量
39654 -
Shell
+關(guān)注
關(guān)注
1文章
365瀏覽量
23356
原文標題:詳解Spyglass使用
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論