作者:桂。
时间:2017-08-07 06:47:31
链接:http://www.cnblogs.com/xingshansi/p/7297482.html
前言
Chipscope在FPGA调试中被用来观察内部信号,程序里加入Chipscope相当于有了数字示波器。
本文主要记录Chipscope的基本操作,以及如何借助MATLAB对Chipscope的数据进行分析。
一、Chipscope使用
A-Chipscope简介
参考:ug029_ChipScope Pro 11.4 Software and Cores。
Chipscope只要一个JTAG(Joint Test Action Group)口,就可以访问到FPGA内部的所有信号。
核心:两个关键Core+Analyzer
Core-ILA:集成逻辑分析仪。连接信号,触发条件和触发时钟;
Core-ICON:是Analyzer和ILA联络的桥梁。只有一个,ICON负责管理多个ILA,提供通过JTAG口访问多个ILA的途径;
Analyzer:Chipscope的信号GUI界面
附加:
IBA(Integrated Bus Analyzer):用来Debug IBM coreconnect总线;
ATC(Agilent Trace Core):Agilent为Xilinx FPGA开发的支持片外采样数据存储的设备。
B-Chipscope Pro Core Inserter流程
1)保留设计层次
XST 缺省设置是将设计打平以取得好的综合效果,因此需要设置:Synthesize XST → process properties:
2)选择对应芯片
Core Generator —— New project —— 选择存放目录,并设置Part,如果指定语言需要设置Generation,语言默认VHDL,以S6为例:
3)ICON设置
双击:
点击:Generate,完成最基本的ICON设置
4)ILA设置
双击:
参数可人为设定,
触发端口数量最大为256
点击:Generate.
这样一来,便完成了ICON与ILA核的设置,如果工程中需要用到Chipscope,不必每次都要生成,只需将其中四个文件拷贝到对应工程目录下即可。
综合后的网表文件:*.ngc以及对应的工程*.v,ICON与ILA各两个,共四个文件:
其中两个*.v文件:
ila:
`timescale 1ns/1ps module chipscope_ila( CONTROL, CLK, TRIG0) /* synthesis syn_black_box syn_noprune=1 */; inout [35 : 0] CONTROL; input CLK; input [255 : 0] TRIG0; endmodule
icon:
`timescale 1ns/1ps module chipscope_icon( CONTROL0) /* synthesis syn_black_box syn_noprune=1 */; inout [35 : 0] CONTROL0; endmodule
Chipscope相当于内部的示波器,有了工具如何调用呢?利用Analyze(本质是GUI界面)即可。
5)调用Analyze
打开Analyzer,通常可以自动识别芯片,点击OK。
工程中,Rddata描述:
在Analyzer中设置:选中0~7,move to bus,new bus:
点击三角运行:
即可抓取EEPROM写入FPGA的输入Rddata:
这与写入IIC总线的数据是一致的:
二、借助MATLAB对Chipscope的数据进行分析
通常希望从多个角度分析数据,因此考虑将Chipscope的数据导入MATLAB。
File —— Export:
输入存储的文件名,如test.prn;
利用MATLAB指令读取:xlLoadChipScopeData(‘test.prn’);