跳转到主要内容
瑞苏盈科专栏
我与瑞苏盈科板卡的开发故事

Vivado

Vivado平台IP核的封装方式

judy /

<font color="#FF8000">作者:浅搁 FPGA2嵌入式</font>

<strong>1. 前言</strong>

IP核这个东西相信很多人都不陌生吧,不管是哪个FPGA厂家,都会有自己的一些现成IP核供用户使用,从而节省设计的开发时间。在一个设计中,个人觉得将模块变成一个个直观的图形界面更有助于理清思路,增强整个设计的逻辑性。以前用过Microsemi的开发平台,觉得挺人性化的,你写完代码后,直接把.v文件拉到画布中,文件便会以图形模块的形式显示出来,然后拖动鼠标便可以把两个模块的对应引脚连接起来,十分方便直观。

<strong>2. Vivado中的IP核封装</strong>

在Vivado平台中,我一直想寻找看看有没有这种形式,最终发现并没有~~。不过Vivado也提供了类似的方式,你首先要把.v文件封装成IP,然后才能放到画布中调用,虽然过程有点繁琐,不过有总比没有好呀~~

IP核的封装其实也不会很难,前提是你得把.v文件先准备好,如果连代码都没有还扯啥犊子哟。

Vivado使用技巧(23)——综合运行与OOC

judy /

<strong>创建综合运行</strong>
一个“运行(run)”是指定义和配置设计在综合过程中的各方面,包括:使用 的Xilinx器件、应用的约束集、启动单个或多个综合的选项、控制综合引擎结果的选项。点击Flow菜单中的Create Funs,或在Design Runs窗口中:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13826-40364-…; alt=""></center>

Vivado FIR滤波器设计与仿真(一)

judy /

最近在学习FPGA DSP相关设计,从滤波器开始学习,最开始先生成两个正弦信号,产生混频信号,通过modelsim仿真来验证设计。 本案例用Block Design方法进行设计(也可以选择编写.v文件的形式进行设计)。

<strong>信号源产生</strong>
本次案例用DDS IP核产生两个简单的正弦信号,为了方便后面观察,这里分别产生一个4M和一个5M的正弦信号。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13817-40325-…; alt=""></center>

双击打开DDS IP核进入设置,对相关参数进行设置

Vivado使用技巧(22)——综合策略与设置的选择

judy /

综合(Synthesis)是指将RTL设计转换为门级描述。Vivado开发套件中的综合工具是一款时序驱动型、专为内存使用率和性能优化的综合工具,支持System Verilog 2012、Verilog 2005、VHDL 2008、混合语言中的可综合子集,以及XDC设计约束文件(基于工业标准的SDC文件),此外还支持RTL属性来控制综合细节。

<strong>综合设置选项</strong>
在Flow Navigator中点击Settings,切换到Synthesis标签中:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13794-40192-…; alt="" width="670"></center>

Vivado时序分析练习

judy /

时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习Vivado软件时序分析的笔记,小编这里使用的是18.1版本的Vivado。

这次的练习选择的是ZYNQ的芯片,原本工程是工作在100MHz的时钟,但是作为练习,我们可以把时钟调到一个极限的程度来进行优化。

首先,打开一个工程,更改一下时钟频率,使得工程能够有一些时序问题,我们再通过时序分析的方法对它进行优化。我们这里把原本的100M时钟改成了200M时钟,具体步骤如下:

一:更改时钟之后进行综合,并打开timing analysis
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13782-40119-…; alt="" width="670"></center>

Vivado使用技巧(21)——仿真中的Debug特性

judy /

<strong>源代码级别调试</strong>
Vivado Simulator提供了在仿真过程中debug设计的特性,通过为源代码添加一些可控制的执行条件来检查出问题的地方。总的来说有三种调试方法:

<strong>1.使用Step逐行调试</strong>
Step命令一次只执行HDL代码中的一行,从而验证和调试设计。运行仿真后,点击Run->Step或工具栏中的Step可执行该命令。Restart可以将时间复位到TestBench的开始。当前执行的代码会高亮显示并且前方有箭头指示:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13758-40010-…; alt=""></center>

Vivado使用技巧(20)——Waveform功能详解

judy /

<strong> 使用波形配置文件</strong>

Vivado Simulator允许用户自定义波形显示方式,当前的显示状态称作波形配置。波形配置可以保存为WCFG文件,供以后使用。一个波形配置对应一个Wave窗口,没有保存的波形配置显示为untitled。打开仿真后,File菜单中有与波形配置相关的指令:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13744-39934-…; alt=""></center>

把WNS提升53%?使用Vivado的“Placement Seeds”

judy /

尽管 Vivado 不支持 “placement cost tale”的功能,InTime 却有一个相似功能叫做“Placement Exploration”配方(Receipe),并且不会对性能产生任何影响。在本文中,我们将通过展示几则用户案例的结果,来了解这个布局配方的作用以及它能对您有哪些帮助。

<strong>1. 什么是“Placement Exploration”配方?</strong>

Placement Exploration 这种策略可以将非关键的寄存器位置随机化。这样可以让 Vivado 探索更多的可能性,使用不同的布局布线计算来产生不同的结果,同时不会影响设计的功能。

<strong>2. 运行原理</strong>

这个配方需要设计有一些非关键的单元(单元已经达到时序路径),目标器件要有一些未使用的 slice。设计中未使用的 slice 越多,就有更多的运行组合可以创造出来,从而提升随机性,取得更好的结果。

Vivado使用技巧(19)——使用Vivado Simulator

judy /

<strong>Vivado Simulator基本操作</strong>
Vivado Simulator是一款硬件描述语言事件驱动的仿真器,支持功能仿真和时序仿真,支持VHDL、Verilog、SystemVerilog和混合语言仿真。点击运行仿真后,工具栏中显示了控制仿真过程的常用功能按钮:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201809/13721-39777-…; alt=""></center>