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個周期,波形前后數據的變化