ZYNQ之路--带你弄明白Vivado设计流程

       

目录

 界面介绍

设计流程 

        设计          

         综合

        实现

        生成比特流

        其它

结尾


        哈喽大家好,这一篇ZYNQ之路我想给大家介绍一下Vivado的入门级使用。为什么要写这篇博客呢?

        当然不是因为水啦!

         作为一名初学者,用惯了Quartus的我刚开始对于Xilinx的开发工具家族是十分迷惑的,什么Vitis和Vivado都是干嘛的?等等诸如此类的问题,最重要的是网上并没有介绍这些软件关系的资料(当然了,可以参考我这篇博客

        经过一段时间的摸索,我大概对于使用这些软件有了一些心得体会,所以为什么要写这篇博客呢?当然是因为网上有关的内容太少了。各类五花八门的教材打着教会你ZYNQ的旗子,实际上做的都是一些填鸭式的教学,我们往往只知其然而不是所以然,不得其精髓,这是我们应该避免的。

        从我个人角度出发,我认为掌握Vivado软件的使用思路,比学会点亮一个LED灯所带来的意义大多了,所以下面且听吾言之一二吧!

 界面介绍

     

         咱们打开Vivado工程之后展示在我们面前的应该是上图的界面,具体创建工程请参考网络教程。初学者可能会比较蒙圈,第一因为界面是英文,第二,因为对软件比较陌生。其实我们开始并不需要了解太多细节,但是我还是会根据序号框介绍,先给大家一个整体的印象。

  1.  Flow Navigator,即流程导航器,这是今天学习的重点,里面包含了整个Vivado的设计流程。
  2. 数据窗口,这个窗口分为 Source 和 Netlist 两个栏目,Source栏目用来管理工程文件和展示我们设计的层次。
  3. Properties(特征)窗口,展示选择的文件的特征信息,即有关所选逻辑对象或器件资源的特性信息。
  4. WorkSpace窗口,这个窗口在每个设计流程中所展示的信息都不一样,下面摘录正点原子对WorkSpace窗口内容的总结:
  5. 运行状态与运行结果窗口,这部分是对各个流程状态和结果的展示。包括了:Tcl Console:允许您输入 Tcl 命令,并查看以前的命令和输出的历史记录。• Messages:显示当前设计的所有消息,按进程和严重性分类,包括“Error”、“Critical Warning”、 “Warning”等等 • Log:显示由综合、实现和仿真 run 创建的日志文件。 • Reports:提供对整个设计流程中的活动 run 所生成的报告的快速访问。 • Designs Runs:管理当前工程的 runs。
  6. 主工具栏,主工具栏提供了对 Vivado IDE 中最常用命令的单击访问。
  7. 主菜单栏,主菜单栏提供对 Vivado IDE 命令的访问。
  8. 窗口布局(Layout)选择器:Vivado IDE 提供预定义的窗口布局,以方便设计过程中的各种任务。 布局选择器使您能够轻松地更改窗口布局。或者,可以使用菜单栏中的“Layout”菜单来更改窗口布局。

        上面是对Vivado IDE界面的一个大致的介绍,这并不是今天的重点;感觉复杂是正常的,使用时间长了之后自然而然就会熟悉了,这里建议大家没事就挨个点一遍(反正点一点又不要钱) 

设计流程 

        Vivado IDE最突出的一个亮点就是左侧的Flow Navigator,这个窗口,从上到小包含了使用Vivado进行硬件设计的整个流程,我们有必要对设计流程进行细致的分析:

        

         我们首先要理解Vivado的设计初衷:即提升生产力

        这句话比较抽象,但是无外乎概括出来就是两点:

  • 设计重用:核心就是IP核
  • 快速开发:核心就是BlockDesign

         上面的话总结来说就是Vivado IDE的开发核心就是以一个个子IP作为核心部件,并在BlockDesign中对这些部件进行调用,组合成一个系统,再对这个系统进行分析与综合。

        IP核可以是用户自己的,也可以使用官方提供的。这样的好处就是避免重复造轮子。

         所以从现在开始,我们要明确一个十分重要的思路

开发流程:设计 --> 综合 --> 实现--> 生成比特流

        设计          

        系统设计的过程主要在 IP INTERGRATOR 当中进行。

        也可以通过添加源文件通过传统的方法进行:

         综合

        所谓的综合就是将RTL语言转换为基本的触发器,选择器,加法器乘法器等等数字电路的组合,这个过程主要在SYTHESIS中进行。

         注意,一般我们在综合之前要先进行引脚约束和时序约束。

        实现

        实现就是IMPLEMENT,主要的作用就是将综合后的电路使用PL的资源进行生成,因此必须要先进行综合之后才能进行实现。

        

         实现完成后,其实就可以生成实际的比特流了,因此实现也是最接近实际的一个操作,实现之后再进行仿真,我们就称为 “后仿真 ”,实现之前的仿真,我们叫“前仿真”

        生成比特流

        比特流就是FPGA进行编程的二进制文件,这个过程主要再在PROGRAM AND DEBUG中进行。

         我们在这个窗口可以进行下载和在线的调试。

        其它

        大家应该注意到了,其实Flow Navigator窗口还有另外两个栏目:

         第一个是对RTL进行仿真,下面那个RTL ANALYSIS主要是对RTL进行一个分析,并且生成电路。同学们可能会疑惑,这个过程是否和综合重复了呢?

        我的答案的否定的,为什么呢?因为世界上没有人能保证他们写的RTL代码一定正确。也许会出现语法错误,也许没有描述出自己想要的电路,如何不先经过一次检查,直接去综合,会消耗很多的时间(综合消耗的时间比较长)

        因此,RTL ANALYSIS最大的作用就是综合前的检查。

结尾

        上面的内容就是本讲的全部了,一口气说了这么多我也很无奈,因为百度能查到的资料十分有限,希望上面的内容能够解答初学者的疑惑,这也不枉我凌晨两点还在写这篇博客的初衷了。

本人能力有限,上述内容如有错误恳请各位留言斧正!

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值