0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

VIO比chipscope有多大优势?

FPGA之家 来源:陈年丽 2019-07-19 10:19 次阅读

debug,尤其是通信芯片的debug,可以有很多的方法。一个数据帧从进入到输出,可以在通路上的关键节点处设置监测如各种计数器等,可通过VIO(xilinx)定时上报实时状态。可以把VIO的各个信号线设置成类似于CPU总线的结构,监测计数器或者状态寄存器编成相应的地址,轮询读取回PC,在PC上通过TCL或者其它语言捕获数据。甚至可以将多个FPGA芯片都通过VIO进行调试,远程操作,效率也可以大大提升。另外,也可以设置专门的测试帧,在里面打各种不同大小的闭环,层层检测,发现问题。

这个VIO比chipscope有多大优势?

原理是一样的,不同的就是可以方便操控,可以写脚本抓取数据,还可以远程操控。VIO有输入也有输出,可以实时的配置寄存器。http://xilinx.eetrend.com/blog/11987,VivadoVIO (virtual input output)虚拟IO使用;

一、使用方法概述

一般情况下VIO用在设计中,可以提供模拟IO(我们主要用到模拟输出接口的功能)。如图1所示,红框内vio_0模块的两个输出probe_out[0:0]和probe_out[7:0]都可以接到其他模块直接使用,但是我们不需要用到板子上的实际接口(比如按键)。那么为什么我们在电脑上点一点鼠标,就可以将数据传递到FPGA内部呢?数据是通过什么传输到FPGA内部?答案是JTAG,电脑上的VIVADO软件可以通过JTAG软件与FPGA实现通信,这就是VIO模块在FPGA内部模拟IO引脚的原理。

图1 VIO IP核

1、VIO IP核的配置

下面用实际例子说明VIO IP核的配置过程:

在某设计中,需要使用按键出发,但是板子上没有设计按键,所以需要使用VIO模拟按键输入还有其他信号的输出。具体过程如下:

(1)例化VIO IP核 ;

(2)参数配置,配置输入探针数量和输出探针数量,如图2所示。分别可以设置0-256个。(一般输入探针用不到,最常用的是输出探针,在这里这两种探针都在图里体现了)。

图2 探针数量设置

(3)配置输出探针数据位宽及初始值

输出探针的数据位宽,及初始化数据(in hex)配置如图3所示

图3配置输出探针数据位宽及初始值

3、 VIO IP核的例化

VIO IP核代码实例化如下图所示。

ILA_wrapper ILA(

.clk ( ),

.probe0 (),

.probe1 (),

.probe_out0 (),

.probe_out1 (),

.probe_in0 ()

);

4、 VIO IP核的使用

在hw_vio界面加入输出探针,并且配置对应的参数,此时FPGA内部的输出探针就会相应地发出信号,如图4所示。

图4 VIO IP核的使用

二、使用VIO实现大量寄存器读写

1、背景

在FPGA调试中,如果没有CPU接口及操作系统,但同时希望能够有一种类似于有CPU且可以实时在线读写FPGA内部状态寄存器或者配置FPGA内部寄存器的功能,就可以采用VIO来实现一个模拟的CPU接口,以下进行详细的介绍。

2、 原理框图及VIO字段定义

在Vivado 2016.2 软件环境,Zedboard硬件平台下,实现了一个示例工程,该工程的功能是,电脑运行Vivado软件,并通过Jtag与zedboard相连,利用VIO模拟CPU接口,实现寄存器读写功能(寄存器数量为32个,位数为32位),如图5所示。

图5原理框图

其参数配置说明如下:

如图6所示,vio_out_1的前32位是写地址,后32位是写数据;

图6 VIO写地址与写数据

如图7所示,vio_rd_addr代表读地址;

图7 VIO读地址

如图8所示,vio_rd_data代表读数据

图8 VIO读数据

3、操作示例

这里给出一个寄存器读写的例子,在这里不用tcl脚本,直接用图形界面,使用更加方便。

(1)给地址为1的寄存器写入数据32'hffff_ffff,即配置vio_out_1[63:0]为64'h0000_0001_FFFF_FFFF,如图9所示。

图9 VIO写入数据

(2) 将读地址设置为1,观察读数据变化,如图10所示。

图10 VIO读数据

观察图10可以发现,配置读地址vio_rd_addr为32'h0000_0001后,读数据vio_rd_data[31:0]由图9中的32'h0000_0000变为图10中的32'hffff_ffff,与写入的数据相同,寄存器读写操作成功。

三、源代码

1、约束文件源码

set_property PACKAGE_PIN Y9 [get_ports clk]

set_property IOSTANDARD LVCMOS33 [get_ports clk]

上述源码及约束文件适用于Xilinx的Zedboard开发板,已上板验证。另外,上面仅是原理性的简单演示,可以把寄存器应用于自己设计中的各个内部关键模块中,调试的过程中,实时的从VIO接口获取数据,或者动态的配置FPGA内部的寄存器,使其按照寄存器约定的功能运行。虽没有CPU,却等效有了CPU,可大大提高FPGA调试的效率。VIO占用资源情况与chipscope类似。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409096
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117715

原文标题:使用VIVADO中VIO模拟CPU接口进行在线寄存器读写调试(附源代码)

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    XILINX FPGA Debug with VIO and TCL

    方便的TCL应用接口xtclsh,可以方便调用Xilinx的库。Xilinx FPGA4条JTAG User Chain(User0/1/2/3),但自带的chipscope analyzer调试软件
    发表于 03-08 15:29

    ISE VIO的使用

    请问VIO输出的控制信号的类型该如何设置?如图三种类型分别是什么意思
    发表于 04-27 15:50

    使用VIO IP在ISE Design SUite软件中调试时遇到以下错误该怎么办?

    大家好。我使用VIO IP在ISE Design SUite软件中调试设计。当我运行工具有以下错误:检查扩展设计...错误:NgdBuild:604 - 类型为'chipscope_vio'的逻辑块
    发表于 08-02 08:10

    Chipscope中的ILA,VIO和ATC2什么区别?

    HI,Chipscope中的ILA,VIO和ATC2什么区别?问候Naveen G K.谢谢娜文G K.
    发表于 03-31 10:09

    FT232对CH430什么优势

    FT232对CH430什么优势
    发表于 10-09 07:06

    Chipscope学习教程

    本教程假定用户已有安装好仿真、综合、ISE 和相应的Chipscope,教程使用的环境如 下: 仿真:Modelsim 5.8 综合:Synplify pro 7.5.1 布局:ISE 6.2 分析:Chipscope 6.2
    发表于 05-10 14:49 0次下载
    <b class='flag-5'>Chipscope</b>学习教程

    CHipScoPe使用

    chipscope是一款在线逻辑分析仪,可实时有效的检查FPGA内部设计电路各需求中间节点的信号波形。
    发表于 11-23 11:36 2次下载

    Chipscope的使用

    Xilinx chipscope使用方法,针对刚刚开始接触FPGA的同学,零基础学习。
    发表于 03-21 16:57 1次下载

    ChipScope使用示例

    Xilinx FPGA工程例子源码:ChipScope使用示例
    发表于 06-07 14:13 7次下载

    Xilinx FPGA ChipScope的ICON/ILA/VIO核使用

    使用ChipScope有两种方式: 第一种,使用CoreInsert,可参考下面链接: 这种方法可以快速的使用ICON和ILA核,以及ATC2核,而且不必修改原代码。缺点是不能使用其他核,如VIO
    发表于 02-09 05:19 894次阅读
    Xilinx FPGA <b class='flag-5'>ChipScope</b>的ICON/ILA/<b class='flag-5'>VIO</b>核使用

    ise中chipscope的使用

     本文介绍了ise中chipscope的使用
    发表于 09-15 17:38 8次下载

    SDK和ChipScope配合工作

    如果使用ZC702单板内置的digilent电缆,SDK 14.6 和 ChipScope 14.6配合工作,可能会有问题,ChipScope在SDK 调试软件时不能触发,“Trigger
    发表于 11-22 15:19 2510次阅读

    Vivado之VIO原理及应用

    虚拟输入输出(Virtual Input Output,VIO)核是一个可定制的IP核,它可用于实时监视和驱动内部FPGA的信号,如图所示。     可以定制VIO的输入和输出端口的数量与宽度,用于
    的头像 发表于 09-23 16:11 7205次阅读
    Vivado之<b class='flag-5'>VIO</b>原理及应用

    VIOchipscope上的使用

    一般情况下ILA和VIO都是用在chipscope上使用,VIO可以作为在chipscope时模拟IO。
    的头像 发表于 06-12 15:51 1755次阅读

    ISE中ChipScope使用教程

    ChipScope是Xilinx提供的一个校验FPGA设计的工具。它的本质是一个虚拟的逻辑分析仪,能调用FPGA内部的逻辑资源对代码中的各个变量进行抓取分析。
    的头像 发表于 05-08 16:55 4157次阅读
    ISE中<b class='flag-5'>ChipScope</b>使用教程