Chipscope是XILINX推出的一款在线调试软件,价格便宜,通过它完全可以脱离传统逻辑分析仪(太贵)来调时序,观察FPGA内部的任何信号,触发条件、数据宽度和深度等的设置也非常方便,但是肯定也存在不足,比如速度和数据量方面。Chipscope本身是一个逻辑分析仪,主要用于在上板测试过程中采集并观察芯片内部信号,以便于调试。
它的原理是,在你综合完的网表里插入用于采集数据的core(包括ILA和ICON),插入的方式可以用core inserter,也可以用core generator,只不过后者需要在源代码中实例化。用core inserter更为快捷,基本上就是选择你要观察的信号以及触发源、时钟等,然后运行之后会自动生成一个新的网表文件,再用这个网表在ISE里面进行布局布线,生成下载文件,通过JTAG方式下载到芯片里运行。在芯片运行的过程中,如果你选择的触发源发生跳变,或满足触发条件时,芯片里的core会将你要观察的信号采集并存储在芯片内的RAM(也可以是FF)中,然后通过JTAG口将采集到的信号上载到PC,最后在PC的chipscope analyzer的界面中以波形的方式显示出来,因此你就能看到芯片里的信号波形。
我们平时都是使用Chipscope的 core inserter 方式来往我们的工程里面植入Chipscope核。凡事都是利弊相生的,XILINX的Chipscope core inserter工具帮你便捷地把core植入到你的工程里面,那么存在一定的弊端,那就是编译时间被延长得很长,而且每次编译过程中,都会根据你的cdc工程文件重新生成一次ICON、ILA内核网表,再重新编译整个工程,那么编译时间就不可避免地被延长了。
所以,如果要采集到你所要的信号波形,首先是你的触发条件被满足。chipscope不会去改变你的原始设计中的信号,只对他们作采集。
总结来说,chipscope是利用植入FPGA的两个core: ILA 和 ICON,利用JTAG数据线传回数据的方式来观察、调试设计的。