作為IC設計人員,熟練掌握數字前端語法檢查工具Spyglass的重要性不言而喻,本文手把手教你學習Spyglass工具。
啟動Spyglass軟件:spyglass &
點擊左邊Add File(s):
將.v文件通過rtl.f統一添加,如下圖,點擊OK:
或者通過命令添加:
sg_shell> read_file -type sourcelist rtl.f
設置頂層,選中下圖左邊Set Options,手動設置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,在讀入設計的同時進行綜合
點擊Run Design Read:
讀取完成發現:
top 'digital_top.v' : Design unit not found in the design
bug來了,什么問題呢?找不到Design unit, 聰明的你一定發現了,頂層是module名,不是module文件名。如下圖所示:
也就是說設置Top level Design Unit的value為DIGITAL_TOP, 而不是digital_top.v。
再次Run Read Design,如下圖,讀取成功。
接著,設置Goal Setup:
首先選中lint,我們先看lint, 點擊Run Goal:
運行得到結果如下。
在看到一條條lint Warning信息后,怎么才能更清晰地知道warning的具體原因呢?告訴你一個好習慣!
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就會出現。
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設計
+關注
關注
38文章
1302瀏覽量
104280 -
TOP
+關注
關注
0文章
35瀏覽量
32263 -
GUI
+關注
關注
3文章
662瀏覽量
39886 -
Shell
+關注
關注
1文章
366瀏覽量
23443
原文標題:詳解Spyglass使用
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論