在ISE中直接调用chipscope进行在线逻辑分析(2)
3250
` TI mescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 21:26:06 02/26/2010
// Design Name:
// Module Name: mycounter
// Project Name:
// Target Devices:
// Tool versions:
// Descrip TI on:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Addi TI onal Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module mycounter(
input clk,
// input reset,
output sout
);
reg [19:0] cnt=0;
always @(posedge clk)begin
/* if(!reset)
cnt<=0;
else*/
cnt<=cnt+1;
end
assign sout=cnt[19];
endmodule
这里为了简单起见,把同步复位等信号也给屏蔽掉了。我使用的是自制的Spartan3的板子,其中FPGA选择Xilinx公司的XC3S400-TQC144G;PROM 选择Xilinx公司的XCF02SV0G20C,FPGA的时钟管脚是P55;ISE套件使用的12.2版本。然后在PlanAhead中分配I/O管脚如下:
# PlanAhead Generated physical constraints
NET "clk" LOC = P55;
//NET "reset" LOC = P11;
NET "sout" LOC = P12;
接下来对代码进行综合,无误之后开始创建Chipscope的核。首先在ISE Project Navigator中点击Project---New Source Wizard,选择Chipscope Defini TI on and Connection Wizard,输入文件名,并一直点Next生产.cdc文件,如图1所示。
然后在工程文件视图中双击刚刚生产的.cdc文件,则进入Chipscope的设置界面,如图2所示。
进入Chipscope,首先出现是图3所示的ICON核的界面。
点击两次Next之后,进入到了ILA核的触发参数设置界面。“触发”的含义自然是,在什么条件下使能“示波器”来采集波形。这里的触发深度(trigger width)选择为20(因为前面程序中定义了reg [19:0] cnt),匹配方式选择为“basic”,其余参数在简单的设计中一般不需要更改(较为复杂的设置可详细参阅参考资料)。