Verilog——Chipscope简单实用的使用方法(基于ISE14.7 )

FPGA程序设计也避免不了需要进行在线调试工作,XILINX的ISE提供了Chipscope工具进行在线调试。
但之前查阅了很多Chipscope的调试方法,总是觉得这些方法很多都复杂冗长。最近寻找到一种较为简单的Chipscope的在线调试方法。

Chipscope在线调试的两个步骤:

  • 生成Chipscope文件(生成的文件可以保存起来,以后重复利用)
  • 项目中Chipscope在线调试

1. 生成Chipscope文件

本步骤生成的四个文件可以保存起来,在以后其他项目中直接拷贝过去,并将这四个文件添加到项目中。

最后生成的四个文件分别是:

  • chipscope_ila.v
  • chipscope_ila.ngc
  • chipscope_icon.v
  • chipscope_icon.ngc

2.项目中Chipscope在线调试

1) 代码修改
将上一步骤中最后生成的四个文件加入到要调试的项目中,然后根据程序中出现的问题推断大概是哪个module的哪些信号(以rd_req和rd_cmd信号为例)出现问题,然后在有问题的module中加入调试代码:

//DEBUG
//---------------------------------------------------------------------
wire [ 35:0]    CONTROL0        ;
wire [255:0]    TRIG0           ;
chipscope_icon  icon_debug(.CONTROL0   (CONTROL0) //INOUT BUS[35:0]
);
chipscope_ila  ila_filter_debug(.CONTROL    (CONTROL0       ),.CLK        (clk50M         ),.TRIG0      (TRIG0          )
);
//以上代码直接复制粘贴//=====================================================================
//以下代码请根据自己的程序进行修改
//---------------------------------------------------------------------
assign TRIG0[0]     = rd_req        ;//待观测信号
assign TRIG0[4:1]   = rd_cmd        ;//待观测信号

完成代码修改后重新编译工程,并连接仿真器下载程序。
2)启动Chipscope

  • 点击Xilinx Designer Tools -> Analyzer启动Chipscope

  • 启动后点击下面的按钮与电路板连接

  • 弹出下面的对话框单击ok

  • 进入到Chipscope主界面。Chipscope的主界面主要包括工程窗口、信号窗口、触发条件设置串口、波形窗口。

  • 在主界面首先对波形窗口waveform的信号进行设置。主要是对DataPort各个信号进行组合和命名,使debug代码中输出的信号和观测数据接口对应起来。右键单击信号选择Rename即可重命名:

    选择多个信号后右键单击选择Move to Bus -> New Bus即可将选择的多个信号组合起来。

  • 然后对Trigger Setup触发条件设置窗口内的信号进行触发条件设置。找到Trigger Setup串口下面Match窗口里面的触发信号,对触发条件Value进行设置,触发条件包括:

符号 触发条件
X 不定值(默认)
0 逻辑0
1 逻辑1
R 上升沿
F 下降沿
N 非沿
  • 完成触发条件设置后点击“▶”开始调试,当遇到设置的触发条件时Waveform窗口会展现捕捉到的波形,这样就可以开始观察波形寻找bug了。如果不对触发条件进行修改,即全部都是X,波形窗口会展现波形,但可能不是想要的。

Verilog——Chipscope简单实用的使用方法(基于ISE14.7 )相关推荐

  1. 简易mysql数据库调优_MySQL数据库简单实用的优化方法

    1.定期分析表和检查表 分析表的语法如下: 引用 ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tb1_name[, tbl_name]... 以上语句用于分析 ...

  2. plusready html5,封装一个简单实用的 plusready 方法

    如果有小伙伴看过 mui.js 的源码的话,对于以下代码就不会陌生. var plusReady = function (callback) { if (window.plus) { callback ...

  3. 电脑计算机科学模式截屏,电脑截图的几种方法,简单实用-电脑怎么截图

    经常使用电脑的小伙伴,经常会需要用到截图功能,可能是一部分区域,也可能是整个屏幕.用手机拍的话会很麻烦,而且拍出来的照片也不够清晰.那么都有哪些简单实用的截图方法呢?小Y来告诉你~ 1.键盘上的快捷键 ...

  4. Windows服务器安全策略配置——简单实用!

    Windows服务器安全策略配置--简单实用! Windows服务器安全策略怎么做?不要觉得这是一个非常深奥遥不可及的问题,其实也是从各个方面去加固系统的安全性而已,它没有一个定论. 我是艾西今天和你 ...

  5. 一个简单实用的,基于EF的三层架构

    到底什么样的框架才是好框架呢?或许不同人有不同的看法.我个人觉一个好的框架,最重要的要是简单实用,能快速适开发,可维护性高(不会出现复制黏贴的代码),并能快速响应各种业务场景的变化的框架,同时性能不会 ...

  6. Android客户端连接服务器- OKHttp的简单实用方法

    文章目录 一 .OKHttp简介 二. OkHttp3使用 1.创建HTTPClient实例 2.Get请求 3.POST请求 三.Timeouts(超时) **写在前面:本文只是对OKHttp3的简 ...

  7. 分享几个用 Python 给图片添加水印的方法,简单实用

    作者 |俊欣 来源 |关于数据分析与可视化 今天来分享几种可以给图片添加水印的方法,都是十分的简单实用,大家在看了之后也可以私底下去自己试试,有些方法需要的代码量就比较少,有些方法需要的代码量就稍微多 ...

  8. 这两天老是有兄弟问到Vue的登陆和注册,登陆成功留在首页,没有登录回到登录页面,现在我用最简单实用的方法实现(两分钟技就看懂)...

    其实登录注册,并且登录一次保持登录的状态,是每个项目都需要实现的功能. 网上也有很多的方法,不过,不是通俗易懂,在这里说一下我自己的方法,非常简单实用 核心就是用localStorage存.取数据,这 ...

  9. 【Python】分享几个用Python给图片添加水印的方法,简单实用

    今天来分享几种可以给图片添加水印的方法,都是十分的简单实用,大家在看了之后也可以私底下去自己试试,有些方法需要的代码量就比较少,有些方法需要的代码量就稍微多一些,那我们开始吧 opencv模块 首先我 ...

最新文章

  1. shell 脚本中如何实现自加操作
  2. 在WP7下自定义RelativeSource 的Binding
  3. 洛谷P2766-最长递增子序列问题
  4. RxSwift之NotificationCenter的使用和自定义
  5. Linux中gsub函数,Linux中awk下 gsub函数用法
  6. 跳過 Windows RT的UI
  7. zookeeper 单机和集群搭建(windows环境+linux环境)
  8. [java] byte不能直接相加
  9. dockerfile实例
  10. 项目管理与项目组合管理的不同
  11. 如何让Linux上的GPG error 无法验证的这个公钥 NO_PUBKEY D97A3AE911FXXXXX 出错信息消失?
  12. OpenCV保存H264视频的问题
  13. Matlab 的fspecial函数用法
  14. 配置NodeJS免安装环境变量,win7,win10
  15. 微信小程序-图片放大与缩小
  16. 斯特林公式 (Stirling公式)
  17. Mac 上面编译POCO C++库
  18. 程序员快速成长的核心原则
  19. 使用deno和oak创建短链应用 1.0
  20. [Power Query] 删除重复项

热门文章

  1. toad for oracle如何执行sql文件,toad执行sql语句
  2. Anaconda Navigator Applications 缺少Notebook等应用
  3. WWDC20 Session 清单(06-23)
  4. WdatePicker使用方法
  5. FreeMarker的基础操作
  6. 用 NetworkX + Gephi + Nebula Graph 分析<权力的游戏>人物关系(上篇)
  7. 前端安全系列:如何防止CSRF攻击?
  8. hadoop中使用hprof工具进行性能分析
  9. CCNP学习笔记15
  10. 旗舰版win7系统电脑administrator密码忘记了破解