1.基於BASYS3板子,有如下代碼:
module top( input clk, input rst, output test_clk ); parameter DIV_CNT = 2; reg clk25M; reg [31:0] cnt = 0; always@(posedge clk)begin if (cnt==DIV_CNT-1) begin clk25M <= ~clk25M; cnt <= 0; end else begin cnt <= cnt + 1'b1; end end assign test_clk = rst ? 1'b0 : clk25M;
管腳配置XDC文件內容如下:
set_property PACKAGE_PIN W5 [get_ports clk] set_property IOSTANDARD LVCMOS33 [get_ports clk] set_property PACKAGE_PIN V17 [get_ports rst] set_property IOSTANDARD LVCMOS33 [get_ports rst] set_property PACKAGE_PIN L1 [get_ports test_clk] set_property IOSTANDARD LVCMOS33 [get_ports test_clk]
2.占擊左側Run Synthesis,綜合

3.完成之后,再點擊 Open Synthesized Design,打開之后,點Tools下的Set Up Debug...

如下

4.選擇Find Nets to Add...

5.點OK

6.選中想要觀察的信號,點OK

7.出現紅色,在紅色地方右鍵。

8.選擇Select Clock Domain

9.選擇ALL_CLOCK,然后選擇clk_IBUF或clk_IBUF_BUFG

10.選擇合適的采集深度,1024通常夠用

11.Finish

12.點擊左側的Generate Bitstream

13.完成后,點Open Hardware Manager

14.將板子連接到電腦上,然后Open Target -> Auto Connect

15.在xc7a35t上面,右鍵->Program Device...

16.Program

17.點擊Trigger

18.會自動彈出波形

19.此時,只有test_clk信號,沒有rst信號。在Debug Probes區域中,rst_IBUF上右鍵

20.Add Probes to Wave Form

21.即可看到rst也在波形中了,添加其它信號類似

22.鼠標點住rst_IBUF,拖拽到圖中區域放開鼠標

23.rst_IBUF信號會出現在框中

24.點開Compare Value下拉菜單,設置如下,點擊OK

25.把BASYS3板子上的SW0,拔到上面。點擊Run Trigger按鈕

26.注意到這里應該顯示Wait...

27.此時,在板子上,把SW0拔下來。注意到,這里會一閃而過Full,然后又顯示Idle。如果沒觀察到,可以從25步驟再重來

28.再打開波形,如下圖

29.回到這個界面,將Trigger Position 設置為500。再重復24-28步驟。然后再觀察波形中,第500個周期,波形前后數據的變化

作者:Craftor
鏈接:https://www.jianshu.com/p/aaae0524877e
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。