ISE_ChipScope Pro的使用

news2024/11/17 5:38:40

1.ChipScope Pro Core Inserter 使用流程

       在之前以及编译好的流水灯实验上进行学习 ChipScope的使用。

一、新建一个ChipScope 核

点击Next,然后在下一个框中选择 Finish,你就会在项目菜单中看到有XX.cdc核文件。

二、对核文件进行设置

       右键“Synthesize – XST” 后点击“Process Properties…” , 这里我们将 keep Hierarchy(保留层次结构) 栏中选择 Yes(默认为 No) 。 这样设置是方便我们找到所想观察的信号,否则,很多信号会被优化掉, 导致 ChipScope 找不到。

   设置完之后,双击工程中的 ds18b20.cdc 文件,进行 ChipScope 核的配置。

   双击工程中的 ds18b20.cdc 文件后出现如下图核文件路径页面, 该页面按默认设置即可,直接点击 Next:

       同样的该页面我们也保持默认设置即可,直接点击 Next:

 该页面我们只需将 Trigger Width 选择为最大值 256 即可(后续不需可以根据实际数量更改),其他设置不变,点击 Next:

       该页面我们将 Data Depth( 采样深度) 设置为 2048, 在不超过FPGA 的存储量内该设置可根据实际抓取情况进行设置, 设置的值越大所占的存储空间就越大, 其余设置按默认设置即可,点击 Next:

    如下图所示,双击 CLOCK PORT 来添加时钟信号和采样信号。

      如下图所示, 我们选择sys_clk作为采样时钟, 选中后点击Make Connections 进行添加(这里需要注意选择的采样时钟信号必须是带有 buffer的信号,否则会报错)。 时钟信号添加完之后,切换到 Trigger/Data Signal 进行采样信号的添加。

      然后我们发现TRIGGER PORTS 显示红色,这是因为前面配置的采样端口数设置的是 256, 与我们添加的信号数不匹配, 这里我们点击Previous 回到 Trigger Parameters 页面将 Trigger Width( 触发信号数) 设置为 30后,发现TRIGGER PORTS 显示黑色。

         最后点击 Return to Project Navigator 完成配置,点击之后出现如图所示, 点击
“是”。

       配置完成之后就可以进行波形图的查看了, 将电源与下载线与开发板连接好,连接好后上电再点击 Analyze Design Using ChipScope 进入 ChipScope 波形抓取界面。(后面截图截取网上主要给大家参考)

三、配置ChipScope 波形抓取界面

      进去之后,首先点击左上角箭头所指图标, 跟开发板建立连接。

       若开发板和 JTAG 连接正常的话,则 ChipScope 就能找到开发板使用的 FPGA 芯片,可以看到正是我们使用的芯片信号 XC6SLX16,直接点击“OK”。

        连接成功后可以看到左上角 P 图变为绿色了,说明连接成功了。然后我们右键“ DEV: 0 MyDevice0( XC6SLX16)” , 点击“ Configure…” 来添加 bit 文件。

        其中1 框中是我们连接的 bit 文件信息, 包括文件名以及存储位置,同时我们也可以通过点击“Select New File”来添加新的 bit 文件,这里“ds18b20.bit” 正是 ds18b20 的工程 bit 文件,所以我们直接点击“OK”。

    我们分别双击“Trigger Setup”和“Waveform”, 点击后界面如下图所示。 其中“Trigger Setup”为触发设置窗口, “Waveform”为波形图窗口。

      接下来我们展开 Data port, 选择端口,右键点击 Rename 可对端口进行重命名(也可以双击端口进行重命名) ,这里我们将端口名都改为我们添加观察的信号名。

       若我们加入的信号为多位宽信号,那么我们可选中对应的端口, 右键点击 Move to bus -> New Bus 将这些信号加入一个组并将名字命名为对应信号的名字。

       更改完端口名后如图 36-34 所示, 其中1 框中是我们更改后的端口名; 2 框中可设置
波形图的采样触发信号, 触发前波形图的长度等; 3 框中为波形图显示框。

       点击箭头所指的钥匙形状将信号展开设置触发信号。

       展开后如图 36-37 所示,其中我们可在1 框 Value 栏设置触发方式; 可在2 框中设置触发长度,由于我们调用 ILA 核时设置的采样长度为 2048, 故这里最大只能设置为2048; 3 框可设置触发前波形图的显示单位, 比如我们设置为 100, 则波形图则会从触发条件前 100 个单位开始显示


      设置触发主要目的就是更加可以准确定位到这个条件下,信号的实际执行情况。这里我们抓取当led_out = 0010时的波形。

 抓取波形如下:      最后根据抓取的波形图进行分析波形图是否与我们设计的结果一致, 若不正确可根据抓取的波形图进行分析问题出在哪里, 找出问题, 回去更改代码后, 重新进行编译,编译完成后需重新配置 bit 文件,即重复图 36-29 所示步骤。 如此反复直到实现出与实际设计相符的的波形图为止。

.    在进行波形显示的时候最开始显示波形如下图,无法清楚看清代码逻辑是否正确,后面发现原因时深度不够,故波形展示不全。要不减下代码中数据大小要不增加数据深度。这里只看验证逻辑正确性可以减小数据大小(如cat_max改小)即可。

 代码附录:

`timescale  1ns/1ns

module  water_led
#(
    parameter CNT_MAX = 8'd24_9
)
(
    input   wire            sys_clk     ,   //系统时钟50Mh
    input   wire            sys_rst_n   ,  //全局复位

    output  reg     [3:0]   led_out        //输出控制led灯

);

//reg   define
reg     [24:0]  cnt         ;
reg             cnt_flag    ;

//cnt:计数器计数500ms
always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        cnt <= 8'b0;
    else    if(cnt == CNT_MAX)
        cnt <= 8'b0;
    else
        cnt <= cnt + 1'b1;

//cnt_flag:计数器计数满500ms标志信号
always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        cnt_flag <= 1'b0;
    else    if(cnt == CNT_MAX - 1)
        cnt_flag <= 1'b1;
    else
        cnt_flag <= 1'b0;

//led_out:led循环流水
always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        led_out <=  4'b0001;
    else    if(led_out == 4'd8 && cnt_flag == 1'b1)
        led_out <=  4'b0001;
    else    if(cnt_flag == 1'b1)
        led_out <=  led_out * 2'd2; //左移
endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1040247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机丢失ac1st16.dll怎么解决?教你简单的修复ac1st16.dl文件

在使用Windows操作系统时&#xff0c;有时会遇到一些DLL文件丢失的问题&#xff0c;其中之一就是AC1ST16.DLL。AC1ST16.DLL是用于AutoCAD相关软件的动态链接库文件&#xff0c;当该文件丢失时&#xff0c;可能会导致软件无法正常运行。本文将详细介绍多种解决AC1ST16.DLL丢失问…

OpenGL超级宝典(第五版)第8章fbo_drawbuffers例子分析

目录 1. 概述 2. 疑难点剖析 2.1 SetupRC函数分析 2.2 multibuffer.vs分析 2.3 RenderScene分析 3. 其它 1. 概述 《OpenGL超级宝典(第五版&#xff09;》如下&#xff1a; 该书第8版的 fbo_drawbuffers工程展示了如下技术点&#xff1a; 什么是帧缓冲区对象&#xff08…

【Linux】进程间通信方式②——文件共享映射(附图解与代码实现)

我们来简单了解下文件共享映射的定义&#xff1a;通过映射文件&#xff0c;使用映射机制&#xff0c;实现资源共享&#xff0c;完成进程通信 具体是如何实现的呢&#xff1f;跟随着这篇博客&#xff0c;我们来看一看 进程通过文件共享映射实现通信的具体步骤 由某一进程创建映…

【湖科大教书匠】计算机网络随堂笔记第2章(计算机网络物理层)

目录 2.1、物理层的基本概念 2.2、物理层下面的传输媒体 导引型传输媒体 同轴电缆 双绞线 光纤 电力线 非导引型传输媒体 无线电波 微波 红外线 可见光 2.3、传输方式 串行传输和并行传输 同步传输和异步传输 单向通信&#xff08;单工&#xff09;、双向交替通信&#xf…

【LeetCode-简单题】110. 平衡二叉树

文章目录 题目方法一&#xff1a;后序递归 题目 方法一&#xff1a;后序递归 递归遍历的同时判断是否是平衡二叉树&#xff0c;如果不是&#xff0c;就置为-1&#xff0c;如果是 就正常做递归求最大深度 参考图解网址 判断平衡二叉树 class Solution {public boolean isBalanc…

誉天在线项目-放大招-Vue3集成RichText富文本客户端组件QuillEditor

背景 开发中我们需要填写图文内容&#xff0c;就是含有图片和文字&#xff0c;html标准组件中是没有的。都是第三方来实现&#xff0c;就需要我们去集成。 有早期的fckEditor、ckEditor等&#xff0c;新的我们使用了vue框架&#xff0c;市场又推出了quillEditor。下面我们就在…

【【萌新的SOC学习之绪论】】

萌新的SOC学习之绪论 Vitis 统一软件平台的前身为 Xilinx SDK&#xff0c;从 Vivado 2019.2 版本开始&#xff0c;Xilinx SDK 开发环境已统一整合 到全功能一体化的 Vitis 中。Vitis 开发平台除了启动方式、软件界面、使用方法与 SDK 开发平台略有区别&#xff0c; 其他操作几…

使用acme.sh申请免费ssl证书(Cloudflare方式API自动验证增加DNS Record到期证书到期自动重新申请)

下载acme.sh curl https://get.acme.sh | sh -s emailmyexample.comcd ~/.acme.sh/获取Cloudflare密钥 Preferences | Cloudflare 登录选择账户详情选择API Token选择创建令牌选择区域DNS模板&#xff0c;并设置编辑写入权限生成并复制令牌备用回到首页概览界面下部获取账号…

【RabbitMQ实战】3分钟在Linux上安装RabbitMQ

本节采用docker安装RabbitMQ。采用的是bitnami的镜像。Bitnami是一个提供各种流行应用的Docker镜像和软件包的公司。采用docker的方式3分钟就可以把我们想安装的程序运行起来&#xff0c;不得不说真的很方便啊&#xff0c;好了&#xff0c;开搞。使用前提&#xff1a;Linux虚拟…

3D设计软件Rhinoceros 6 mac 犀牛6中文版功能特征

Rhinoceros Mac中文版是一款3D设计软件“犀牛”&#xff0c;在众多三维建模软件中&#xff0c;Rhinoceros mac因为其体积小、功能强大、对硬件要求低而广受欢迎&#xff0c;对于专业的3D设计人员来说它是一款非常不错的3D建模软件&#xff0c;Rhinoceros Mac中文版能轻易整合3D…

苹果手机短信删除了怎么恢复?3种有效方法介绍

手机短信是一种即时通信方式&#xff0c;人们可以使用短信来达到快速传递信息的目的。在没有网络或者网络不稳定的时候&#xff0c;短信仍然可以做到发送和接收&#xff0c;这弥补了其他网络通信软件的缺点。 所以说&#xff0c;手机短信仍然是我们生活中不可缺少的一部分。当…

【rtp】mid 扩展: RtpMid 字符串扩展的解析和写入

mid 是uint8_t 类型? 扩展填写的是字符串,读取字符串后atoi 转 uint8_t : webrtc 看起来是个字符串:写入 扩展的值是改变了: 这里是更新扩展的长度: 新的大小小于原来的,没有缩减内存,而是对于多余的置位0了:if (len < current_len) {memset(

基于SSM的高校图书馆个性化服务的设计与实现(有报告)。Javaee项目。

演示视频&#xff1a; 基于SSM的高校图书馆个性化服务的设计与实现&#xff08;有报告&#xff09;。Javaee项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过S…

如何在低代码平台中应用可视化编程

可视化编程&#xff0c;亦即可视化程序设计&#xff1a;以“所见即所得”的编程思想为原则&#xff0c;力图实现编程工作的可视化&#xff0c;即随时可以看到结果&#xff0c;程序与结果的调整同步。可视化编程的理念来源于可视化技术&#xff0c;它指的是一种把计算机程序中的…

深度学习在视频直播美颜sdk中的应用

视频直播美颜SDK是一类用于实时视频美颜处理的工具包&#xff0c;它们利用深度学习算法来提高视频直播中的主播和观众的外观吸引力。本文将深入探讨深度学习在视频直播美颜sdk中的应用&#xff0c;以及这些应用对直播行业的重要性。 一、人脸检测与关键点定位 通过卷积神经网…

Centos7安装go解释器

Centos7安装go解释器 下载解压go压缩包编辑go变量结果验证 下载解压go压缩包 # 下载 wget -c https://go.dev/dl/go1.20.2.linux-amd64.tar.gz# 解压到指定目录 tar xvf go1.20.2.linux-amd64.tar.gz -C /usr/local/编辑go变量 /etc/profile.d/go.sh # 指定go执行程序位置 e…

多线程进阶:常见的锁策略、CAS

之前我们所了解的属于多线程的初阶内容。今天开始&#xff0c;我们进入多线程进阶的学习。 锁的策略 乐观锁 悲观锁 这不是两把具体的锁&#xff0c;应该叫做“两类锁” 乐观锁&#xff1a;预测锁竞争不是很激烈&#xff08;这里做的工作可能就会少一些&#xff09; 悲观锁…

【操作系统笔记六】内存分配

内存对齐 问题&#xff1a;为什么需要内存对齐呢&#xff1f; 主要原因是为了兼容&#xff0c;为了让程序可以运行在不同的处理器中&#xff0c;有很多处理器在访问内存的时候&#xff0c;只能从特定的内存地址读取数据。换个说法就是处理器每次只能从内存取出特定个数字节的数…

WKB近似

WKB方法用于研究一种特定类型的微分方程的全局性质 很有用这种特定的微分方程形如&#xff1a; 经过一些不是特别复杂的推导&#xff0c;我们可以得到他的WKB近似解。 该近似解的选择取决于函数和参数的性质同时&#xff0c;我们默认函数的定义域为当恒大于零,时&#xff1a; 当…

淘宝/天猫获得淘宝商品详情(关键词搜索,店铺所有商品)API接口返回值说明

淘宝API接口&#xff0c;简单而言&#xff0c;就是一套工具&#xff0c;可以帮助你与淘宝平台的数据与功能进行智能对接。它能够让你的店铺信息、商品信息、用户数据等信息实现高效流通&#xff0c;帮助你更好地理解客户需求 我们深知数据安全的重要性&#xff0c;因此&#x…