利用ISE的ChipScope抓取FPGA内部信号

博客背景:做一个4路采集板,FPGA采用Spartan6,抓取与ADC通信的SPI信号

第一步

建立工程,SPI通信协议写好后,在项目中加入ICON和ILA核(使用ILA核或者VIO核时,必须要用ICON核的CONTROL与其相连,如下图所示)。


添加完IP核并设置好要监控的信号参数(参数个数及每个参数的宽度)后,在.v程序内例化上述两核,代码如下:

ICON ICON_inst1 (
    .CONTROL0(CONTROL0) // INOUT BUS [35:0]
);



ILA ILA_inst1 (
    .CONTROL(CONTROL0), // INOUT BUS [35:0]
    .CLK(clk), // IN
    .TRIG0(spi_cs), // IN BUS [0:0]
    .TRIG1(spi_sck), // IN BUS [0:0]
    .TRIG2(spi_sdio_in_r) // IN BUS [7:0]
);
即可完成观测三线SPI数据的准备工作了。接下来综合实现、生成BIT流文件后,双击Analyze Design Using ChipScope,
软件自动打开ChipScope Pro Analyzer。点击下图左下角的黑色按钮,完成JTAG扫描连接。



点击Device,选中连接器件,点击Confgure,将BIT流文件下载到FPGA内,此时左侧的工作栏会将生成的CDC文件一起导入到ChipScope内,数据端口的信号已经是我们想要观测的信号了。


将鼠标放在Data Port点击右键,将所有数据端口添加到Waveform上。


点击Trigger Setup,会出现一个触发设置的框,软件会根据用户的设置来完成信号的抓取。由于本次测试的是SPI信号,我只把触发信号设置为SPI_CS这个信号,SPI不工作时,SPI_CS是1,传输数据时是0,所以我们在中间的Trigger Condition Equation只设置M0为触发条件,并且M0的Value为0,表示当SPI_CS为0,也就是工作时被触发抓取。



在打开Trigger Setup的情况下,点击三角图标开始抓信号。

然后可以看到Trigger setup栏的下面一直在转圈,采样点是0,因为SPI现在没工作,SPI_CS一直是高电平,所以不触发。我们按下FPGA板用来作为复位的按键,可以看到已经出波形啦~~~~


  • 4
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值