作者:桂。
時間: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’);