http://www.cnblogs.com/oomusou/archive/2008/03/14/1106549.html
Abstract
Quartus II內的SignalTap II是debug Verilog很好的工具,不過似乎有時無法顯示reg的值,我發現一個小技巧可解決這個問題。
Introduction
使用環境:Quartus II 7.2 SP1 + DE2(Cyclone II EP2C35F627C6)
本文是我較早期的方法,並不是很理想,建議參考(原創) 如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)
在Altera提供的SignalTap II的tutorial中,大都強調trigger的使用,並且觀察的都是wire,可是在實務上,常需要觀察的是reg,如以下一個很簡單的計數器
Verilog
現在想用SignalTap II觀察counter這個reg的值。
但很不幸的,在SignalTap II竟然看不到reg counter。
若選擇Design Entry(all names),是可以找到reg counter。
嘗試將counter加進去後,用Quartus II重新編譯,並執行SignalTap II,卻發現counter值都是0,顯然不合理。
Solution
我發現了一個方法,可以在SignalTap II顯示reg值,若有人有更好的方法,歡迎告訴我。我們試著將Verilog改成如下所示
Verilog
和之前的程式的差異,在於我多了一個output oCounter,然後在21行將reg counter assign給oCounter,利用Quartus II重新編譯後,再用SingnalTap II觀察,發現多了reg counter。
將reg counter加入後,使用Quartus II重新編譯,並執行SignalTap II觀察之,就可觀察到reg counter的訊號。
完整程式碼下載
SignalTapII_register.7z
Conclusion
工具真的很重要,SignalTap II讓我們可以觀察wire和reg的訊號,這對debug非常重要,由於我也剛剛接觸SignalTap II而已,或許這並不是最正規的方法,但卻能真的看出reg訊號,若有更好的方法,歡迎指正,謝謝。
文章评论(0条评论)
登录后参与讨论