如何使用chipscope

参考: https://www.cnblogs.com/liujinggang/p/9813863.html

    Xilinx FPGA开发实用教程---徐文波 田耘

1.ChipScope Pro工作原理

ChipScope Pro是一款在线调试软件,可以观察FPGA内部的任何信号,触发条件,数据宽度和深度等。不足在于速度和数据量。

ChipScope用于在测试过程中观察芯片内部信号。便于调试。

将逻辑分析仪、总线分析仪、虚拟IO小型软件核直接插入到用户的设计当中,信号在操作系统速度下被采集下来,从编程接口中引出,再将采集到的信号通过Chipscope Prol逻辑分析仪中进行分析。

怎么做到的?

在线调试:在用户设计中插入相应的核,当用户程序运行时,所测信号经过核送到JTAG链,传到PC机上ChipScope软件。便于观察。

信号---》ILA--》ICON--》JTAG--》Alalyzer

组件:

核生成器:

      集成控制核ICON:具备JTAG边界扫描端口通信功能,必不可缺,一个ICON可同时最多连接15个核。

      集成逻辑分析仪核ILA:提供触发和跟踪功能.

        1输入输出触发逻辑

        2数据捕获逻辑:储存在芯片的RAM中

        3控制核状态逻辑

      虚拟输入输出核VIO:实时监控和驱动FPGA内部的信号,可以观测FPGA任意信号的输出结果。

        异步输入信号

        同步输入信号

        异步输出次您好

        同步输出信号

      适用于处理器外设总线的集成总线分析核 OPB/IBA

      适用于处理器本地总线的集成总线分析核 PLB/IBA

      安捷伦跟踪核ATC2

      集成的误比特率测试核IBERT

核插入器:

      自动将上述核插入到用户经过综合的设计中

分析仪:

      完成核的芯片配置,触发设置,跟踪显示等功能。

TCL脚本接口:

      通过TCL脚本语言和JTAG链,完成与芯片的交互通信

2.开发流程

1.建立工程 
2.插入及配置核 
2.1运行Synthesize 
2.2新建cdc文件 
2.3 ILA核的配置 
3. Implement and generate programming file 
4.利用Analyzer观察信号波形 
4.1连接器件 
4.2下载配置fpga 
4.3载入信号端口名 
4.4设置触发信号 
4.5运行并观察信号波形

开发实例:ISE如何使用ChipScope

https://www.cnblogs.com/liujinggang/p/9813863.html

3.Vivado如何使用Chipscope

Vivado作为新的设计工具,并没有集成Chipscope,取而代之的是新的debug工具:hardware debug。后者的优势是可以与SDK联合调试,软硬件协同开发时非常有用,但其无法实时持续的观测信号的变化,且从目前2013.4的版本反应的无法抓取非顶层文件信号的问题(大量时序错误)对设计开发非常不便。

通过对Chipscope工作原理的分析,应该可以通过间接的方式在VIVADO工程中使用,经过上板测试,确实可以做到,下面是实现的步骤:

1、  Synthesis后点击Open Synthesized Design,完成后点击File原工程综合后导出netlist(.edn)和constraint(.xdc);

2、  打开Chipscope的Core Insert,将step1中的netlist作为输入,指定输出文件名及路径;

3、  Chipscope随后自动加载step2的netlist,按照需求添加信号,方法与ISE调用时相同;

4、  点击Chipscope界面里的insert按键,生成携带ILA核的netlist文件;

5、  建立新的VIVADO工程,选择post-syn方式,随后加入step4的netlist(.ngo)和step1的constraint;

6、  Implement  step5建立的VIVADO工程,获得BIT文件(此过程会报一个ucf与xdc的critical warning,不用关注它);

7、  原工程按照规范流程implement、bitgen,最后导出SDK;

8、  按照规范流程完成SDK应用程序开发;

9、  用Chipscope Analyzer配置step6生成的bit文件到芯片,配置界面选择导入step2保存的cdc文件,配置完成后,运行SDK中的run as,随后设置chipscope的触发条件;

10、此时可以观察信号的实时输出;

vivado中如何使用chipscope的更多相关文章

  1. vivado中如何调用chipscope或者impact

    vivado中并没有集成chipscope和impact,所以需要安装ISE,安装完ISE后进行以下操作: 1)     选择环境变量中的系统变量,新建以下变量 XILINX             ...

  2. Vivado中debug用法

    Vivado和ISE相比ChipScope已经大幅改变,很多人都不习惯.在ISE中称为ChipScope而Vivado中就称为in system debug.下面就介绍Vivado中如何使用debug ...

  3. 设置ISE/vivado中默认文本编辑器为gvim

    ise windows版,添加方式 ISE下点击菜单Edit -> Preferences -> Editor. 在Editor选项框里选择Custom,在Command line syn ...

  4. Tcl在Vivado中的使用

    http://blog.chinaaet.com/detail/36014 Vivado是Xilinx最新的FPGA设计工具,支持7系列以后的FPGA及Zynq 7000的开发.与之前的ISE设计套件 ...

  5. 在Vivado中调用ModelSim生成FSM的状态转移图

    如果我们已经书写了一段FSM代码,现在想倒过来把它转换成为状态转移图,方便我们直观地检查我们书写的状态对不对(在写论文什么的画图太麻烦的时候,有个自动生成的是多方便啊!),应该怎么弄呢?通过在Viva ...

  6. System Generator 生成IP核在Vivado中进行调用

    System Generator 生成IP核在Vivado中进行调用 1.首先在Simulink中搭建硬件模型 2.查看仿真结果 3.资源分析与时序分析 4.启动vivado,关联生成的IP核 5.调 ...

  7. Vivado中ILA的使用

    Vivado中ILA的使用 1.编写RTL代码      其中需要说明的是(* keep = "TRUE" *)语句的意识是保持cnt信号不被综合掉,方便以后的调试,是否可以理解为 ...

  8. vivado中设置多线程编译

    VIVADO中一个run编译时支持的线程数如下表:(综合时一般是2线程) Place Route Windows默认 2 2 Linux默认 4 4 Windows开启maxThreads=8 4 4 ...

  9. 73.Vivado使用误区与进阶——在Vivado中实现ECO功能

    关于Tcl在Vivado中的应用文章从Tcl的基本语法和在Vivado中的应用展开,继上篇<用Tcl定制Vivado设计实现流程>介绍了如何扩展甚至是定制FPGA设计实现流程后,引出了一个 ...

随机推荐

  1. springboot配置SSL自签名证书

    1.证书生成 每一个JDK或者JRE里都有一个工具,叫做:keytool,安装了jdk或jre之后,配置好JAVA环境之后,就可以直接在控制台使用该命令生成自签名证书: 在控制台输入: keytool ...

  2. python中使用redis发布订阅者模型

    redis发布订阅者模型: Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel.发布者和订阅者都是Redis客户端,Channel则 ...

  3. Bayes factor

     bayes因子为什么一定要除以先验机会比,如果是想用样本的作用,来判断支持原来的假设θ_0,H_0的力度,直接用后验概率比不就好了吗?   左边等于右边

  4. win10下安装ubuntu18.04

    在win10下安装Ubuntu18.04,双系统共存.Ubuntu 18.04 使用的是Gnome桌面. 查看系统的启动模式: Win+R打开运行,输入msinfo32,回车查看系统信息.在BIOS模 ...

  5. js全角字符转为半角字符

    //全角转半角 function CtoH(str){ var result=""; for (var i = 0; i < str.length; i++){ if (st ...

  6. [转帖][超级少儿不宜]一氧化氮(NO),为什么亚洲人是最硬

    阴茎科学:一氧化氮(NO),为什么亚洲人是最硬 尼堪巴图鲁   ​关注他 2,911 人赞同了该文章   https://zhuanlan.zhihu.com/p/55941740 超级少儿不宜.. ...

  7. Python基础:编码规范(4)

    1.命名规范 Python中不同代码元素采用不同命名方式: ◊ 包名:全部小写字母,中间可以由点分隔开.作为命名空间,包名需具有唯一性. ◊ 模块名:全部小写字母,如果是多个单词构成,使用下划线分隔. ...

  8. 基于Redis实现分布式锁

    分布式锁具有的特性: 1.排他性: 文件系统: 数据库:主键 唯一约束 for update 性能较差,容易出现单点故障 锁没有失效时间,容易死锁 缓存Redis:setnx 实现复杂: 存在死锁(或 ...

  9. Laravel数据库迁移

    Laravel的数据迁移功能很好用,并且可以带来一系列好处.通过几条简单的 artisan 命令,就可以顺利上手,没有复杂的地方 注意:该系列命令对数据库非常危险,请准备一个单独的数据库作为配套练习, ...

  10. IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式

    转载请注明来源:四个空格 » IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式: 环境 ideaIU-2018.3.4.win: 错误提示: Could no ...