Vivado爬坑指南(1)

本文面向FPGA新手,分享了使用vivado软件进行FPGA开发时的两个实用技巧:一是如何利用ILA(Integrated Logic Analyzer)进行实际信号检测,避免复杂的testbench编写;二是如何通过pblock进行区域约束,优化大程序的布局布线,确保时序满足。这两个方法能有效提升FPGA设计的效率和准确性。
摘要由CSDN通过智能技术生成

FPGA作为新兴的可编程芯片,由于其可并行处理的特性而大幅提高运算速度,以及具有半定制的特性,可以反复使用而受到广大芯片开发人员的喜爱。xilinx作为全球高端FPGA的生产厂家之一,可以通过旗下的vivado软件对xilinx的芯片、开发板进行编程开发。作为一名刚入坑的新手小白,我将分享自己的一些建议,为新手爬坑提供帮助。

1.集成逻辑分析器(Integrated Logic Analyzer, ILA)

作为新手,在设计程序时,为了保证各个模块在运行时的准确性,需要通过各种方式对设计模块的功能、时序做验证。特别是针对大型项目,一旦出现bug,就需要落实到各个小模块,保证小模块的准确性。

常用的验证方式是通过编写testbench文件,利用vivado自带的simulation模块或者其它第三方仿真工具做仿真,但是该方法需要自己设计输入变量,针对复杂信号时难以完全模拟全部输入信号,特别是噪声信号;这里介绍vivado自带的另一种验证工具ILA,通过vivado自带的ILA可以做实际信号检测,即通过XDC文件进行变量约束,可以将约束变量的变化状况实时显示。通过ILA就可以不需要自己设计输入信号,直接将真实信号接入到FPGA即可。

具体调用该模块的方式大致可以分为两步:第一步,对变量做标记(mark_debug);第二步,创建ILA核并添加标记变量至ILA核。

第一步,对变量做标记。做标记的方式目前我用的比较方便有两种:第一种,在约束变量前面添加代码(* mark_debug = "true" *),该方式比较方便,可以在编写代码时就标记变量,如图一所示;

 

图1. 直接标记

第二种,直接在综合之后的原理图上对“数据线”做标记。将代码综合之后,调出原理图(schematic),此时通过原理图可以很清晰的看到各个模块之间通过各种“数据线”连接,即表示变量传递,此时可以单独选定想做标记的“数据线”来添加变量,如图二所示;

 图2. 对数据线做标记

第二步,创建ILA核并添加标记变量至ILA核。对于新手而言,最简单的方法是直接通过综合之后的set up debug创建ILA核并添加标记变量。打开set up debug界面之后,点击next就会出现图3所示的界面,在界面中出现了已经标记的变量,如果还想添加额外的变量只需要点击find net to add即可;添加完变量之后,点击next直至finish即可,然后ctrl + S保存信息至XDC文件,此时打开XDC文件就会出现创建好的ILA核以及添加的约束变量。

 图3. 创建ILA核

2.区域约束(pblock)

作为新手,在布局布线的过程中大多数时候偶不会注意到内部资源的布局情况,只会说是程序编译成功就觉得OK了。但是在进行大程序(需要的资源比较多)编译时,往往很容易出现时序不满足的情况,此时需要对内部资源进行优化布局,一个很简单的方式就是通过将设计的模块约束在不同的物理区域内即可。

网上有很多详细的方式,但是大多都比较复杂,这里介绍一种很简单的方式,一键生成约束区域。首先将写好的项目进行综合、布局布线之后,打开IMPLEMENTATION 截面之后,点击device,可以看到内部资源的分布情况;第二步,点击Netlist界面,选择需要约束的模块,右键点击选择floorplanning → draw pblok,然后鼠标变成十字形光标,此时就可以在device界面中画出需要的约束区域;第三步,ctrl +S 保存修改至XDC文件即可保存物理分区模块。此时再从新布局布线便可以将需要约束的模块布局在划定的区域内,如图4所示。

 图4. 区域约束

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值