vivado的vio怎么使用_Vivado功能完善:如何用Tcl/VIO更新BRAM中的数据

本文介绍了在Xilinx Vivado中利用VIO更新BRAM内容的方法,以解决上板测试时数据源更新的问题。通过VIO连接BRAM的A端口,结合Tcl脚本实现BRAM的读写控制,从而达到动态更新BRAM数据的目的,避免了重新编译工程的繁琐。此外,还提到了Xilinx后来推出的JTAG AXI IP作为官方的BRAM更新方案。
摘要由CSDN通过智能技术生成

Quartus软件工具向来都比较容易上手,尤其是提供了一些辅助工具,用起来非常方便。本文介绍一个Quartus工具支持但是ISE/Vivado不支持的小功能,并给出Vivado的实现方案,让Xilinx FPGA的开发/使用也更加便利。

在使用FPGA做设计的时候,有时候的一些场景,不太适合仿真来进行验证。比如:

1.已经完成了仿真,需要上板测试获取结果和仿真结果做对比,验证设计实现的正确性,自然就不能再用仿真来对比仿真结果;

2.一些接口的仿真,比如外界DAC测试,仿真只能到FPGA的output pin,无法涵盖PCB的走线部分和DAC的处理,也就无法验证DAC是否能正常工作。

这种需求都是要求上板测试的。这种测试工程,通常并不复杂,上板测试也不是非常麻烦。不过有一个需要考虑的问题,就是数据源。

仿真的数据源可以写死在testbench中,但更常用的方法是写在文件中,由testbench读文件来获取数据源。上板实测的问题就是,测试数据源从哪里来。

通常有如下几个方案

1.做一个高速接口,比如PCIE、以太网;

2.做一个低速接口,比如RS232;

3.存在BRAM中。

高速接口的问题是过于复杂,首先需要等接口完成(设计、验证通过)才能开始测试,其次引入新的接口,也引入了新的问题源;低速接口的问题是速度过慢,可能内部的逻辑需要工作在100MHz以上但接口速度只有几KHz,而等待低速接口的数据也无法验证完整的数据流工作。毕竟,FPGA更适合连续的流水线工作而不是等待。

所以BRAM的方案成了一个不错的选择。将数据存在BRAM中,读取BRAM中数据的操作,数据时钟可以直接使用真实时钟,数据也可以连续输出。由于测试工程通常都不是完整工程,BRAM资源通常也不是大问题。

不过BRAM也带来一个问题:数据源的更新。如果需要更换数据源,该怎么办呢?

1.重新跑工程生成bit文件,缺点是太麻烦了,而且重跑工程有时序不过的风险;

2.在线更新BRAM内容。

由于大部分FPGA的BRAM都是双口RAM,所以可以利用BRAM的一个端口来更新BRAM内容,另一个端口来读取BRAM内容作为测试数据源。暂时看起来是个不错的方案。

那么,更新BRAM,应该如何操作呢?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值