这两天基本完成了实验室工程从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. VsCode下代码导航

    Visual Studio Code具有高效的代码编辑器,当与编程语言服务结合使用时,可以为您提供IDE的强大功能和文本编辑器的速度.在本主题中,我们将首先描述VS Code的语言智能功能(建议,参数 ...

  2. hdu 4738 Caocao's Bridges 求无向图的桥【Tarjan】

    <题目链接> 题目大意: 曹操在长江上建立了一些点,点之间有一些边连着.如果这些点构成的无向图变成了连通图,那么曹操就无敌了.周瑜为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥.但是诸 ...

  3. git一些实践命令,关于reabse和merge的区别在最后做了一个比较

    git命令 一. 克隆,提交,拉取代码 1. 克隆,提交代码 git clone:远端仓库地址 git remote add upstream: 上游远端仓库地址(fork代码的原地址).添加上游远端 ...

  4. Gephi可视化(二)

    继在园子里写的<Gephi可视化(一)——使用Gephi Toolkit创建Gephi应用>介绍了如何使用Gephi Toolkit工具集进行可视化编程后,本篇对Gephi Toolkit ...

  5. 安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label

    安卓工作室 android studio 汉化后,报错. 设置界面打不开. Android studio has been sinified and reported wrong.The setup ...

  6. C#获得窗口控件句柄

    /*整个Windows编程的基础.一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条, ...

  7. iptables转发端口

    1.本机端口转发 把发往本机80端口的数据重定向到8080端口 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-por ...

  8. Python3练习题系列(08)——代码阅读方法及字典跳转表理解

    问题:分析下面代码 cities['_find'] = find_city city_found = cities['_find'](cities, state) 分析过程: 一个函数也可以作为一个变 ...

  9. 1207 ACM 汉诺塔II 数学

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1207 中文题目,在原来三个柱子的情况下(汉诺塔一),增加了一个柱子,难度也增加了. 思路: 思考时尽量和汉 ...

  10. GDB高级调试

    一.多线程调试 多线程调试可能是问得最多的.其实,重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的线程. break ...