Vivado

Vivado中通过AXI配置可调时钟输出

作者:kevinc

项目需要:实现一个可调的时钟,来探测实验对象的速率边界。范围1mhz-50mhz。

现在时钟的产生一般都是PLL(Phase Locked Loop)实现的。锁相环通常由鉴相器(PD)、环路滤波器(LF)和压控振荡器(VCO)三部分组成。模拟电路实现的APLL,频率可以做到很高,但是控制jitter等参数比较困难;现在的DPLL数字锁相环,可以很容易用fpga来实现。

在xilinx的IP catalog中找到Clocking Wizard,能实现高达800mhz的输出。勾选其中的Dynamic Reconfig后,还可以实现通过AXI-Lite接口控制参数来调整clock输出频率。

https://www.xilinx.com/support/documentation/ip_documentation/clk_wiz/v5...

https://www.xilinx.com/support/documentation/application_notes/xapp888_7...

第一部分:实现原理

关于Vivado几个参数的设置

有时候,我们希望从windows的命令行或命令控制台中启动或调用vivado设计套件的各个工具,同时也希望每次新建vivado工程时能自动帮我们指定相应的工程目录(而不是每次都要指定工程目录),这就需要我们稍微设置几个简单的参数,下面一一道来。

一、设置环境变量

通过设置vivado环境变量,使我们能够在命令行或命令控制台中启动vivado设计套件的各个工具,如图1所示。

图1  命令行或命令控制台启动vivado

图1 命令行或命令控制台启动vivado

Vivado常用综合选项的设置

-flatten_hierarchy
full:综合时将原始设计打平,只保留顶层层次,执行边界优化
none:综合时完全保留原始设计层次,不执行边界优化
rebuilt:综合时将原始设计打平,执行边界优化,综合后将网表文件按照原始层次显示,故与原始层次相似。

当-flatten_hierarchy为none时消耗的寄存器最多,建议其设定为默认值rebuilt。

-fsm_extraction
用于设定状态机的编码方式,默认值为auto。
-fsm_encoding
功能同上,优先级高于-fsm_extraction,但如果代码本身已经定义了编码方式,该设定将无效。
one-hot:任意状态只有一个比特位置一。

-keep_equivalent_registers
equivalent registers,等效寄存器,即共享输入数据的寄存器。
勾选时,等效寄存器不合并;
不勾选时,等效寄存器合并。
等效寄存器可以有效的降低扇出,可以通过综合属性keep避免其被合并。

-resource_sharing
其目的是对算术运算通过资源共享优化设计资源
auto
on
off

【PPT下载】Vivado专家系列:高速时序收敛的技巧

赛灵思“Vivado专家系列”研讨会将由来自赛灵思Vivado开发者及资深技术支持团队成员为您带来包括技术分享、设计方法学、设计技巧等内容,以帮助用户快速提高其基于FPGA 的设计效率。此次研讨会为该系列的第一期,旨在深入剖析Vivado高速时序收敛技术。另外我们还将总结高速设计面临的挑战,介绍设计分析、设计向导以及设计复杂性和拥塞的分析方法。

Vivado的静态时序和时序约束

静态时序
静态时序中,组成设计的元件分类成组合逻辑和时序逻辑两大类。
在vivado中,设计是否满足性能要求是由静态时序分析(Static Timing Analysis,STA)来校验和验证的,在静态时序分析STA中元件的功能并不重要,重要的是元件的性能。

在vivado中,静态时序引擎是基于基本元件,这意味着时序特征是为每个基本元件而作的。

设计中延时来自于以下因素:

  • FPGA的构图与设计的实现;
  • 元件构成的物理特性;
  • 元件的位置布局;
  • 器件工艺变化;
  • PVT环境因素。
  • 时序校验
    静态时序通道中需要考虑的两点是建立时间和保持时间的校验。

    1. 对于建立时间校验,是从一个时钟的上升沿到下一个时钟的上升沿,数据到达目的定时元件必须在下一时钟上升沿到达目的定时元件之前,依次检验所有的静态时序通道。

    2. 对于保持时钟校验,是从始终上升沿到相同时钟的上升沿,数据到达目的定时元件必须不能比相同时钟的上升沿到达目的定时元件早,依次检验所有的静态时序通道。

    Vivado下的Microblaze系统搭建:永远的Hello World

    目前,xilinx的zynq系列FPGA炒的火热,SOC成为FPGA发展的必然趋势。可见所有功能均用硬件描述语言设计是不科学的。硬件逻辑独有的并行性使其在实时处理和并行算法中占尽优势,但当执行串行操作时却需要使用笨重的状态机来完成。因此,要实现对实时性要求不高的串行操作,对各类IP核的总体控制调度,亦或是快速移植软件协议栈时,利用FPGA内部CPU是个比较好的选择。

      硬核CPU只在特定系列FPGA芯片中,性能当然没的说,占用的资源也非常少。但相比硬核,microblaze可移植性较强,性能要求不高的场合下还是非常灵活的。本文依然以经典的串口打印字符串“hello,world”为例,搭建基于microblaze的简单嵌入式系统。

       create block design,添加microblaze软核后点击Run Block Automation。

    这里暂时不使用DDR之类的缓存设备,利用片内Memory存储代码,因此将Local Memory容量增大。

    Vivado一项全新项目功能——可配置的报告

    作者:Brian Lay

    对设计的合并可能会很棘手。通常当你需要解决一个问题时,变化会影响设计的其他部分,从而不可避免地会出现其他问题。在2017.3我们推出了一项新功能可以帮助您解决这个问题。该功能被称作可配置报告。

    可配置的报告是一项全新的Vivado项目功能,可让您在流程的任何步骤运行任何报告。例如,假设您在实现后出现一个关键路径,而且您不确定如何解决它。为了理解这条关键路径如何在流程间“演变”,可配置的报告使得您可以在完成逻辑优化,布局设计,布线设计以及这之间的任何步骤报告那条确切路径的时序情况。图1显示了被添加到每个实现流程步骤的报告时序总结。了解每个步骤的时序可以帮助您理解问题是综合问题,利用率问题,时钟分配问题还是布线拥塞问题。

    图 1. 在运行实现属性选项卡中配置时序统计报告在三个流程运行完成之后再生成

    Vivado烧写Flash

    1)点击 bitstream setting ,将 bin_file 勾上,点击 OK。

    2)点击 generate bitstream ,生成 bit 文件和 bin 文件

    3)点击 open hardware manager,连接板子。

    4)选中芯片,右键如下操作。

    5)选择开发板上的 flash 芯片,点击 OK。

    6)点击 OK。

    Vivado入门与提高学习记录之时序分析基础

    一、发起沿和捕获沿

    捕获沿通常也是下一个发起沿,捕获沿与发起沿通常相差一个时钟周期

    二、四种时序路径

    三、时序路径段

    四、数据到达时间

    作者:Greg Daughtry,Xilinx产品营销总监

    早在2017年1月初,我们宣布Xilinx IP目录中的所有IP使用xci和xcix格式的文件,这已经不是什么新鲜事了,其实我们之前一直在说这是我们多年来的主要建议,这其中包括很多重要的原因,xci文件是一个xml格式的文件,它能够搜集ip所有的配置信息,更重要的是包括Vivado指向的ip所生成的大量文件,比如上下文综合、约束和模拟文件等。根据xci文件Vivado可以确定IP是否已经“完全生成”或者缺少哪些文件。

    许多客户都更喜欢与ISE core生成器接近的生成模型,因为这样会生成单个文件,将.dcp文件从生成目录拷贝到Vivado工程目录,作为源文件代替之前使用的.xci文件,我们尝试支持这种模式,但是这种方法存在很多问题我们还无法解决,因此从某种意义上讲,我们正远离这一点,并试图引导我们的客户使用我们所推荐的流程。

    为此从2017年1月开始,如果用户向工程中添加.dcp文件,尤其是涉及Xilinx IP目录中的模块将会看到一个严重的警告,提示他们不推荐这样做,这个流程将继续像以前一样持续,并且保持2017年1月之前就存在的一些限制条件。

    同步内容