这两天基本完成了实验室工程从ISE向vivado的移植,包括了两片FPGA的两个工程,这两个工程还算是比较大的工程,包括了内存,接口,embedded system,算法模块等,在这过程中也很好的熟悉了vivado的开发流程,发现了一些很好用的工具。

首先从整体上对vivado这个工具有了更深入的认识,整个可以分为源代码的编辑(包括hdl代码的编辑,IP core的添加),这里有两个独立的工具,一个是IP integrator,其实就是生成block design用的,而这个block design往往是embedded system,采用图形化界面,最后是一个bd源文件,加上hdl的顶层wrapper;还有一个是RTL analysis,这个虽然我没有用,但是应该是和源代码编译相关的,这里有一个叫DRC(Design Rule Checks),其实就相当于以前ISE的synth check。这里因为是移植工程没有新的源代码的编辑,所以不了解这个编译器是否好用。

其次就是仿真,这里仿真不再是Isim,Xilinx重新编写了仿真工具,而且效率快很多,使用简便,点击对应testbench文件,run simulation就行。

再次就是synthesis步骤,这里每次synthesis结束之后,可以打开synth,对应着open synthesized design,这时候发现主界面原来是project manager,就变成了synth_1(对应implementation也是一样),synthesis结果打开之后,可以edit timing constraints,可以report timing summary,这个都是一个初步的结果,流程和implementation之后一致,这里就不在介绍了,一般我们都看implementation的结果。

最后就是implementation步骤,implementation结束后也是会在原来project manager这里出现一个impl_1,其实里vivado设计是可以允许打开多个impl设计的,这样可以方便对比不同设计的结果,并进行优化,提高优化的效率。

这里重点觉得好用的是open implementation design下面的几个小工具(前一篇文章都提到过用法),首先report clock network可以一目了然的看到都有哪些时钟约束,这个我觉得应该是优化时序的时候首先要做的,或者说在编辑约束文件结束后,准备布线是首先需要看的,保证时钟约束没有遗漏和问题;

report clock interaction,这个是为跨时钟域约束准备的工具,之前也给出了一个示例图,其实感觉用处也不大,看起来费劲;

report timing summary,其实这个才是常用的工具,他不仅可以查看静态时序分析报告,这是最基本的功能,关键是他的时序分析中,列出了单时钟的路径,跨时钟域的路径,异步时钟域跨时钟域路径,很清晰,这时候再看错误的路径就很清楚的了解到其所在的位置,然后点击错误的路径,可以在device中打开,双击可以列出详细的路径描述(和ISE中里面的static timing analysis一样)。这里device其实就是之前的plan ahead,其实可以根据此进行手动布线(但是感觉真正还是用的少,还是得想办法代码优化);最后还可以右键点击错误路径直接添加约束,这个适合于单个false path没有约束到,以及跨时钟约束没有约束到的情景。建议的使用方式是剪切其界面里给出的tcl约束代码,然后复制到xdc约束文件中,这样快一些。

讲了半天还是时序约束相关的多一点。毕竟这个是高级功能。

转载:https://blog.csdn.net/celery1124/article/details/42805613

Vivado开发工具熟悉之工具使用杂记的更多相关文章

  1. 4. web前端开发分享-css,js工具篇

    web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...

  2. Xamarin For Visual Studio 3.0.54.0 完整离线破解版(C# 开发Android、IOS工具 吾乐吧软件站分享)

    Xamarin For Visual Studio就是原本的Xamarin For Android 以及 Xamarin For iOS,最新版的已经把两个独立的插件合并为一个exe安装包了.为了区分 ...

  3. web前端开发分享-css,js工具篇

    web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...

  4. Xamarin Mono For Android 4.6.07004 完整离线安装破解版(C#开发Android、IOS工具)

      Xamarin是由Miguel de Icaza成立的一家新的独立公司,目的是给Mono一个继续奋斗的机会.Mono for Android (原名:MonoDroid)可以让开发人员使用 Mic ...

  5. Android高手速成--第四部分 开发工具及测试工具

    第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...

  6. fir.im Weekly - 17 个提升 iOS 开发效率的必备工具

    本期 fir.im Weekly 精选了一些iOS 开发工具和动画源码分享,希望每个开发者能专注效率.实用.灵感.  iOS开发工具--如何优化ipa包大小 @iOS程序犭袁 推荐了关于"如 ...

  7. ocket.chat 使用 Meteor 开发的实时协作工具,类似 丁丁。

    ocket.chat  使用 Meteor 开发的实时协作工具,类似 丁丁. https://rocket.chat/

  8. 传智播客C/C++各种开发环境搭建视频工具文档免费教程

    传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...

  9. MIP开发教程(一) MIP-CLI工具安装与环境部署

    依赖安装 安装 MIP-CLI 创建开发文件结构 1. 依赖安装 MIP-CLI 使用 NPM 安装,依赖 node 环境: node 安装-windows node 安装-mac MIP-CLI 开 ...

随机推荐

  1. 分布式系统理论--CAP理论、BASE理论

    问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景. 1.火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然 ...

  2. jupyter notebook connecting to kernel problem

    前几天帮同学配置 python 和 anaconda 环境,在装 jupyter notebook 时,出了点问题,搞了一天半终于搞好了,也是在 github 里找到了这个问题的解答. 当时显示的是无 ...

  3. 使用 Spring Boot 搭建一套增删改查(无多余代码)

    前言 这是我学习 Spring Boot 的第三篇文章,终于可以见到效果了.错过的同学可以看看之前的文章 我们为什么要学习 Spring Boot Spring Boot 入门详细分析 在入门的基础上 ...

  4. 【Ray Tracing The Next Week 超详解】 光线追踪2-9

    我们来整理一下项目的代码 目录 ----include --hit --texture --material ----RTdef.hpp ----ray.hpp ----camera.hpp ---- ...

  5. Ubuntu18.10&Ubuntu18.04安装Python虚拟环境

    Ubuntu18.04版本里面自带了最新的Python3.6.5版本,在安装Python虚拟环境时需注意: 1.首先是安装两个包 pip3 install virtualenv # python虚拟环 ...

  6. PHP抓取网页内容经验总结

    用php 抓取页面的内容在实际的开发当中是非常有用的,如作一个简单的内容采集器,提取网页中的部分内容等等,抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就 ...

  7. JNI编程实现(Windows)

    上一篇介绍了Linux平台的JNI编程方法,Windows平台的JNI本地调用基本类似,区别就是制作的动态库不同,Linux平台是*.so,Windows平台是*.dll.其中,Windows平台的函 ...

  8. 【转载】IntelliJ IDEA 内存优化最佳实践

    本文转自 http://blog.oneapm.com/apm-tech/426.html [编者按]本文作者在和同事的一次讨论中发现,对 IntelliJ IDEA 内存采用不同的设置方案,会对 I ...

  9. 写一个针对IQueryable<T>的扩展方法支持动态排序

    所谓的动态排序是指支持任意字段.任意升序降序的排序.我们希望在客户端按如下格式写: localhost:8000/api/items?sort=titlelocalhost:8000/api/item ...

  10. android:碎片的生命周期

    和活动一样,碎片也有自己的生命周期,并且它和活动的生命周期实在是太像了,我相 信你很快就能学会,下面我们马上就来看一下. 4.3.1    碎片的状态和回调 还记得每个活动在其生命周期内可能会有哪几种 ...