前言
和 Quartus 的 SingleTapII 类似, ISE 也有自己的内置在线逻辑分析仪 Chipscope,在这里记录一下 Chipscope 的主要使用方法,以便以后回顾。
本文使用 UART 串口回环模块进行验证,我们要抓取的信号是子模块 UART_RX 中的波特率计数器:cnt_baud,位宽 13bit,理论计数范围是0~5207,使能 rx_en 拉高的时候进行循环计数。
创建Chipscope文件
首先打开一个已经调试好的工程文件,选择工程文件,右击添加 new source。

选择 chipscope definition and connection file,文件这里就命名为 CS,保存在工程 project 目录下,点击 Next ,下一界面直接点 Finish,完成 Chip Scope文件创建。

配置chip Scope文件
双击打开 CS文件,前面两个界面直接next跳过。

Number of input trigger port 为设置触发接口的数量,这里设置为 1 。TRIGO 是我们设置的触发接口,因为需要抓取的cnt_baud以及使能信号rx_en一共是14bit 。所以这里 Trigger width 设为14bit 。Match unit 是我们使用的比较器的数量。决定了后面触发条件能够设置的复杂程度。这里只需要对 rx_en 判断,所以设为1即可。 Max number of squares levels.默认为16即可,指的是一个信号可以做一个最大16个序列的匹配,也就是说一个信号可以最多匹配16种情况并作为触发条件,设置好后点击 next 。

设置采集信号存储深度。
Chipscope 实际上是在综合的RTL代码中插入RAM,使得数据经过RAM,再通过JTAG数据线把RAM当中的数据传回PC以供观察,所以这里设置的是RAM的深度。需要根据器件的资源合理设置。因为计数器 cnt_baud 最大为 5207 所以这里设置深度为8192,点击next。

设置采样时钟和数据信号。
双击 Clock port 。

在筛选栏中输入clk,点击 clk_BUFGP 再点击make connections ,建立好时钟连接。

选择trigger data singles。在筛选栏中。输入cnt_baud,找到计数器信号。如果高低位顺序和要连接的数据相反,可以点击net name把调整数据高低位顺序。再选中,通道CH0~12, 点击Make a connection 。
同样的方法找到 rx_en 信号,建立连接。完成后点击OK 。

完成 CS文件配置后,返回工程并保存文件。

在线调试
完成以上操作后。在工程文件中重新生成比特文件。连接好开发板并上电。
点击analyze design using chip scope,打开。


点击 ok 。

选择 Configure

点击OK 。

打开触发设置界面,将触发信号改为 rx_en 信号上升沿触发,位置 Position.改为100。

点击启动。

串口发送数据后。显示样本缓冲区已经满了。点击waveform打开波形界面,就可以看到我们采样的点了。

如果波形中显示的bit不全。,可以在左侧的data port中把其他bit信号添加到波形界面。
参考资料:
[1] V3学院FPGA教程
文章介绍了如何在ISE环境中利用Chipscope进行在线逻辑分析,通过创建和配置Chipscope文件来抓取UART串口回环模块中波特率计数器的信号,并设置了基于rx_en上升沿的触发条件,以观察和分析采样数据。
3886

被折叠的 条评论
为什么被折叠?



