随着FPGA规模的不断增大,其封装形式大多向球形方式转移,这样使得传统的探针方式监测信号变得越来越困难。Chipscope pro是一种片内逻辑分析工具,它能通过JTAG口,将FPGA内部信号实时读出,传入计算机进行分析。它的基本实现方法是通过利用FPGA中未使用的BLOCKRAM,利用设置的触发条件将相应信号实时的存储其中,然后利用JTAG口将数据传入计算机,最后在计算机中显示其波形。. 在XILINX EDK中提供的了5个Chipscope pro核, - chipscope_icon — 集成控制核,与其它的ChipScope cores进行通讯,最后将数据通过JTAG口送出。
- chipscope_opb_iba — 监测OPB总线动作
- chipscope_plb_iba — 监测PLB总线动作
- chipscope_vio — 创建虚拟IO(Virtual IO), 通过JTAG实现监测和驱动FPGA内部信号。
- chipscope_ila — 监测单独的非总线信号,现行版本只支持MHS级信号的探测。
下面简要介绍其在EDK中实现过程: 在MHS中加入相应的IP cores,图中加入了chipscope_icon,chipscope_opb_iba和chipscope_ila。 建立模块信号的连接关系,并对其相应参数做设置, 相应的MHS文件为, BEGIN chipscope_icon PARAMETER INSTANCE = chipscope_icon_0 PARAMETER HW_VER = 1.00.a PARAMETER C_NUM_CONTROL_PORTS = 2 PARAMETER C_SYSTEM_CONTAINS_MDM = 1 PORT control0 = chipscope_icon_0_control0 PORT control1 = chipscope_icon_0_control1 END BEGIN chipscope_opb_iba PARAMETER INSTANCE = chipscope_opb_iba_0 PARAMETER HW_VER = 1.00.a PARAMETER C_NUM_DATA_SAMPLES = 512 PARAMETER C_CONTROL_UNITS = 1 PARAMETER C_ADDR_UNITS = 1 PARAMETER C_DATA_UNITS = 1 BUS_INTERFACE MON_OPB = mb_opb PORT OPB_Clk = sys_clk_s PORT SYS_Rst = sys_rst_s PORT chipscope_icon_control = chipscope_icon_0_control0 END BEGIN chipscope_ila PARAMETER INSTANCE = chipscope_ila_0 PARAMETER HW_VER = 1.00.a PARAMETER C_ENABLE_TRIGGER_OUT = 1 PARAMETER C_DATA_SAME_AS_TRIGGER = 1 PARAMETER C_TRIG0_TRIGGER_IN_WIDTH = 8 PORT CHIPSCOPE_ILA_CONTROL = chipscope_icon_0_control1 PORT CLK = sys_clk_s PORT TRIG0 = fpga_0_LEDs_8Bit_GPIO_d_out END 相应的设置完成之后,连接好硬件,就可以将包含chipscope核的整个系统重新下载到FPGA中,然后利用打开chipscope pro analyzer进行信号的上传观察, 点击 ,扫描JTAG键, 找到JTAG键上的两个器件,选择XC3S400,点OK。导入.cdc文件,Platgen 和ChipScope cores的 Tcl wrappers基于设计参数在<EDK Project Directory>/implementation/<OPB IBA instance name>_wrapper/<OPB IBA instance name>.cdc 目录中创建了包含信号的.cdc 文件,如设计中的OPB ILA例化为chipscope_ila_0,然后录<Project>/implementation/chipscope_opb_ila_0_wrapper/chipscope_opb_ila_0.cdc 中建立 ChipScope信号的 .cdc 文件,将其导入ChipScope analyzer即可得到其信号信息, 此时可选择相应的DEV(XC3S400,XCF02S)和DEV中的UNIT(MyIBA/OPB0和MyILA1),然后对其触发条件进行设置,将关心的信号加入波形窗口中,最后执行触发即可。 上述过程只是简单介绍,具体关于chipscope的使用,请参见其帮助文档。文中错误在所难免,希望大家指正,.
|