
Vivado/ISE 区
文章平均质量分 88
本分类主要存放与Vivado以及ISE工具使用的相关知识总结。
李锐博恩
退网中
展开
-
Vivado 随笔(6) Timing Summary 相关讨论(一)
Vivado运行完Implementation后,Design Runs都会有如下的提示:当然Timing Summary中也会有:从上面的Design Timing Summary中可以看出,WNS以及TNS是针对Setup Time Check的,而WHS以及TNS是针对Hold Time Check的,Design Timing Summary对应的Tcl命令为:r...原创 2019-11-02 17:24:04 · 14053 阅读 · 1 评论 -
Vivado中如何避免信号被优化掉?
刚写了一段 Verilog代码,辛辛苦苦花了很长时间综合,在debug的过程中,却找不到需要debug的信号了,查看网表发现没有?这种情况是因为我们的某些中间信号被优化掉了。被优化掉的原因有可能是你这个信号确实对后面的输出没用,我写的这个项目由于还在中间过程,功能还没有完善,所以不想把大量的中间信号作为输出,所以被优化掉了,以至于在debug过程中找不到这些信号。如何解决这个问题呢?...原创 2019-08-14 11:54:14 · 17772 阅读 · 5 评论 -
Vivado之增量编译的实现
增量编译对于电路设计之后的调试非常重要,每次也许只修改了一行代码,改了某个值,如果没有增量编译,就只能重新跑一边项目,对于小项目貌似没有太大影响,但是对于一个大项目,每次改一点内容就要重新进行一遍综合,实现,生成比特流,这个过程及其浪费时间,所以增量编译是很必要的。下面是官方对于增量编译的描述:增量编译:使用增量编译满足最后时刻 HDL 变动需求,仅针对已变动逻辑进行布局布线,从而可节省...原创 2019-08-13 20:38:38 · 12030 阅读 · 8 评论 -
Vivado中Debug的用法总结
本文总结使用Vivado进行Debug的三种方式,总结起来,第二种最好用啦。原创 2019-07-20 15:55:41 · 17506 阅读 · 10 评论 -
【 Vivado 】通过IP Integrator进行设计示例
本文采用Vivado2014.4来完成一个二进制转格雷码的IP的设计与封装。格雷码的编码原理:实验步骤:打开Vivado,创建名为Gray_Code_converter的工程,创建原理图,添加IP,进行原理图设计。之前需要自己按照上篇博文的方式:打包属于自己的IP来创建一个2输入4位异或IP核。之后,通过下图方式将设计的IP添加进来:右击端口,选择Mak...原创 2019-01-06 21:37:19 · 5850 阅读 · 15 评论 -
【 Vivado 】打包属于自己的IP
本文在Vivado 2014.4下自己动手创建一个IP,并打包,以便后来使用。1、创建工程打开Vivado设计开发软件,创建一个新工程:下面省略一些描述:工程名自己取,目录按自己情况随意定:选择RTL工程,不用创建源文件:2、添加设计文件双击设计文件:输入设计代码:设计综合验证:综合验证成功:3...原创 2019-01-06 19:54:30 · 4928 阅读 · 0 评论 -
【 Vivado 】XDC文件的约束顺序
由于XDC约束是按顺序应用的,并且基于明确的优先级规则进行优先级排序,因此必须仔细检查约束的顺序。如果多个物理约束发生冲突,则最新约束将获胜。 例如,如果通过多个XDC文件为I / O端口分配了不同的位置(LOC),则分配给该端口的最新位置优先。Vivado IDE可全面了解您的设计。 要逐步验证您的约束:1.运行相应的报告命令。2.查看Tcl控制台或“消息”窗口中的消息。推荐的约...原创 2018-12-30 15:59:19 · 11518 阅读 · 0 评论 -
【 Vivado 】输出延迟约束实例
Output Delay Constraints Instance本节讲解一下output delay的实例。依旧是Ethernet PHY和FPGA的接口,框图如图1所示,其中TX接口,MII管理接口输出方向需要output delay约束。图1TX接口:TX接口由时钟TXCK和数据TXD[3:0]组成,都是从FPGA输出,即时钟和数据同源,因此TX接口为源同步输出接口。 ...转载 2018-12-27 21:28:56 · 6064 阅读 · 0 评论 -
【 Vivado 】输出延迟约束(Constraining Ouput Delay)
FPGA内部时序单元到输出端口的路径也需要约束其output delay,如图1所示框图。图1 约束output delay的命令是set_output_delay,具体的参数如下:set_output_delay –clock reference_clock –min/-max delay_value [get_ports {DOUT}] [-clock_fall...转载 2018-12-27 21:25:40 · 9218 阅读 · 1 评论 -
【 Vivado 】输入延迟约束实例
上篇博文讲了输入延迟约束( Input Delay Constraints):输入延迟约束(Constraining Input Delay)这篇博文讲解具体的实例,通过实例去学习是最有效果的。实例1如图1所示系统,以太网PHY芯片与FPGA相连,分为三组接口: RX接口:时钟RXCK和数据RXD; TX接口:时钟TXCK和数据TXD; MII管理接口:时钟MDC和数据...转载 2018-12-27 21:20:36 · 6195 阅读 · 0 评论 -
【 Vivado 】输入延迟约束(Constraining Input Delay)
前几篇博文提到了四种时序路径:基本的时序约束、分析的概念1) FPGA内部时序单元间的路径2) 输入端口到FPGA内部时序单元的路径3) FPGA内部时序单元到输出端口的路径4) 输入端口到输出端口的路径其中1. FPGA内部时序单元间的路径中,时序分析所需要的时间参数:Tclk-D1, Tclk-Q, Tdata_...原创 2018-12-27 20:47:36 · 14084 阅读 · 5 评论 -
【 Vivado 】时钟组(Clock Groups)
Vivado会分析所有XDC约束时钟间的时序路径。通过set_clock_groups约束不同的时钟组(clock group),Vivado在时序分析时,当source clock和destination clock属于同一个时钟组时,才会分析此时序路径;而source clock和destination clock属于不同时钟组时,则会略过此时序路径的分析。下面讲解一下set_clock_gr...转载 2018-12-27 20:25:48 · 12254 阅读 · 0 评论 -
【 Vivado 】时钟类型
Vivado进行时序分析,对时钟的约束是必不可少的,设计中的时钟可分为一下几种:Primary Clocks 主时钟; Generated Clocks 衍生时钟; Virtual Clocks 虚拟时钟。Primary Clocks主时钟一般是FPGA外部芯片如晶振提供的时钟,通过FPGA引脚输入。Vivado进行时序分析时,以主时钟的源端点作为延时计算起始点(0ns点)。主时钟...转载 2018-12-27 20:19:06 · 6813 阅读 · 0 评论 -
【 Vivado 】基本的时序约束、分析的概念
目录时序路径:Clock Setup Check:Clock Hold Check:Timing Report in Vivado:时序路径:关于时序路径,曾也有几篇博文讲到:【 FPGA 】时序分析中的基本概念和术语时序路径分为四种,下面这张图明明白白我的心。图1中包含了主要的时序分析路径:1.输入端口到FPGA内部时序单元的路径2.FP...原创 2018-12-27 17:53:17 · 6835 阅读 · 1 评论 -
【 Vivado 】UCF到XDC之间的转换
有时候会有这样的需求,就是之前在ISE上的工程,现在需要用Vivado来操作,这样其中的一部分工作就是将ISE上的时序约束文件UCF转换为XDC文件。如下图1所示为UCF与SDC的约束命令比较,可以发现常用的命令都能对应上。(图1)下面简单举例说明:Clock Period:UCF :NET "clka" TNM_NET = "clka";TIMESPEC "TS_...转载 2018-12-27 17:47:19 · 9851 阅读 · 0 评论 -
【 Vivado 】工程模式下运用Tcl脚本示范
以下是一个示例脚本,用于创建项目,添加各种源,配置设置,启动综合和实现运行,以及创建比特流。# Typical usage: vivado -mode tcl -source run_bft_project.tcl# 创建项目和目录结构create_project -force project_bft_batch ./project_bft_batch -part xc7k70tfbg48...原创 2018-12-25 15:21:19 · 5199 阅读 · 0 评论 -
【 Vivado 】Working with Sources in Non-Project Mode
与为您管理源文件的项目模式不同,源文件在非项目模式下由您控制。 使用Tcl命令,指定要处理和输出要生成的文件的文件,包括网表,比特流和报告文件。 项目模式和非项目模式命令显示常用的项目模式命令和相应的非项目模式命令。For more information on Project Mode and Non-Project Mode, see this link in the Vivado Des...原创 2018-12-24 22:26:42 · 1708 阅读 · 0 评论 -
【 Vivado 】在工程模式下通过jou文件来学习 Tcl 命令
Xilinx 的数据手册UG895提供了一些系统级设计的方法,写得很详细,详细到得不到重要的消息(我菜)。Tcl命令在工程模式下以及非工程模式下有一些差异,具体什么差异,这里暂时不说,后面我想应该会有一篇博文专门讲解。(我懂了的话会有,我相信会有。)这里寻求一种方法来学习Vivado的工程模式下如何掌握Tcl命令(工程模式下的Tcl命令)。那就是通过vivado.jou 和 vivado....原创 2018-12-24 16:43:38 · 4364 阅读 · 0 评论 -
【 Vivado 】Performing System-Level Design Entry(总览)
目录 Automated Hierarchical Source File Compilation and ManagementRTL DevelopmentRTL Elaboration and AnalysisTiming Constraint Development and VerificationAutomated Hierarchical Source File ...原创 2018-12-24 11:21:38 · 1451 阅读 · 0 评论 -
【 Vivado 】使用工程模式
目录 OverviewProject Mode AdvantagesCreating ProjectsDifferent Types of ProjectsManaging Source Files in Project ModeUsing Remote, Read-Only SourcesArchiving ProjectsCreating a Tcl Scr...原创 2018-12-23 16:24:32 · 6873 阅读 · 0 评论 -
【 Vivado 】理解工程模式和非工程模式
目录 Understanding Project Mode and Non-Project ModeProject ModeNon-Project ModeFeature DifferencesCommand DifferencesUnderstanding Project Mode and Non-Project ModeVivado设计套件有两个主要使用模型:项...原创 2018-12-23 14:17:28 · 4299 阅读 · 0 评论 -
Vivado 随笔(5) 行为仿真(Behavior Simulation)相关事宜?
目录仿真界面仿真文件结构Scope & Object开辟新窗口这篇文章主要解决多个仿真窗口显示的问题,但是为了内容的完整性,顺便记录一些有关仿真的相关事宜。这里只讲如何使用Vivado自己的仿真工具XSIM,而不涉及第三方仿真工具。仿真界面如下为仿真界面下常使用的功能:仿真文件结构这里所说的仿真文件结构不是指仿真文件(TB文件)的内容结构,...原创 2019-10-31 21:38:32 · 4738 阅读 · 1 评论 -
Vivado 随笔(3) 其他综合属性 dont_touch、fsm_encoding?
目录dont_touchfsm_encodingdont_touch可以参考:Vivado中如何避免信号被优化掉?fsm_encoding我们在RTL设计中,在状态机的设计中,会给状态变量一些状态编码,在parameter中给出,例如:这是二进制编码:这是格雷码:这是独热码:但是在RTL中这么设计真的有用吗?或者说综合工具就会给综合...原创 2019-10-23 17:28:52 · 3821 阅读 · 0 评论 -
Vivado 随笔(4) 创建及管理多个Runs?
目录为什么要创建多个runs?如果创建多个runs?runs的类型相关的TCL命令为什么要创建多个runs?你有没有遇到过这种情况,我建立的一个Vivado项目,需要在不同的板子上使用,如果仅仅使用一个runs的话, 那么我必须创建两个Vivado项目,分别选择不同的fpga芯片,或者来回切换fpga芯片类型?这都不是好的选择,我们可以通过创建多个runs来解决这...原创 2019-10-23 14:40:44 · 4150 阅读 · 3 评论 -
Vivado 随笔(2) 综合属性之use_dsp48?
目录背景正文测试放置在Module前放置在变量声明前附加测试放置在某个变量声明前放置在Module前相关链接背景在做一些FPGA算法的时候,我们不可避免的使用到大量的算术运算,例如复数乘法器,乘法器,加法器,减法器,还有乘加,乘减,乘累加等等。我们都知道FPGA底层有专用的DSP48E资源,也有大量的逻辑资源,放着专用资源DSP48E不用,或者只用D...原创 2019-10-22 23:16:02 · 9971 阅读 · 1 评论 -
Vivado 随笔(1) 综合属性之 ram_style & rom_style?
目录背景正文相关文献背景在很多情况下,我们会定义一个二维数组来作为RAM或者ROM来使用,例如我们在设计一个异步FIFO时,我们需要例化一个双端口RAM来作为FIFO的存储空间,当然我们可以通过例化一个IP核的方式去做(可以直接在IP核定制时候选择使用Block RAM或者Distributed RAM资源),但是如果我们不去设计这么一个IP核呢?我们就可以直接定义一个二位...原创 2019-10-22 21:50:41 · 9032 阅读 · 6 评论 -
Vivado2018如何与Notepad++关联?
打开VIvado2018,选择Tools,之后setting:选择custom editor,之后点击后面的三个点...:按照格式提示,输入命令即可:例如:C:/Program Files/Notepad++/notepad++.exe [file name] -l[line number]只需要将我的目录换成你的notepad++目录即可:C:/Program Fil...原创 2019-04-28 21:35:17 · 22720 阅读 · 19 评论 -
【 Vivado 】使用Vivado设计一个加/减法器的IP核(简洁英文版)
数据手册地址:Adder/Subtracter v12.0Vivado Integrated Design EnvironmentYou can customize the IP for use in your design by specifying values for the various parameters associated with the IP core using t...原创 2018-10-20 15:02:36 · 7840 阅读 · 4 评论