Vivado

Vivado使用技巧(14)——IO规划方法详解

本系列第13篇简单介绍了使用RTL工程IO布局工程两种方法定义IO Ports。在I/O Planning View Layout中(IO布局工程中是Default Layout),显示了FPGA器件资源、封装管脚、I/O Ports等详细信息。设计者借助这些信息来完成I/O规划。

创建单端/差分I/O Ports
RTL工程会直接从RTL设计中获取I/O端口信息;IO布局工程可以从CSV/XDC文件中导入I/O端口信息,或者人工创建I/O端口(RTL工程不允许人工创建)。在I/O Ports窗口中右键->Create I/O Ports,弹出窗口:

设置端口名称、方向、是否是差分对、是否是总线、I/O标准、上下拉类型、端口位置等信息,当方向为Output时还可设置驱动强度和压摆率。

如果希望将I/O Ports窗口中已有的单端I/O组合为一对差分信号,选中两者,右键->Make Diff Pair:

Vivado使用技巧(13)——CSV文件定义IO Ports

定义I/O Ports信息
每个完整的FPGA设计必然包含I/O Ports定义与配置环节。I/O Ports包含了FPGA内部信号、管脚、PCB之间的连接关系。常用的设计方法有两种:
1. RTL工程:完成了RTL设计后,打开一个设计(如综合后设计)并换到I/O Planning View Layout,Vivado会自动从设计中读取I/O端口导入到I/O Ports窗口中,进行后续设置。

2. I/O Planning工程:可以在设计之前预先创建此工程,只定义I/O端口。此工程还可以读取包含I/O定义的CSV或XDC文件,将I/O信息导入到I/O Ports窗口。此类工程的意义是在设计前就确定好管脚约束信息,保证硬件设计与RTL设计工作同步展开。

无论是哪种工程,都可以将设计好的I/O端口导出到CSV格式文件。CSV文件是FPGA设计工程师与PCB设计工程师之间交流的一种重要文件。本文将对该文件内容及使用方法做详细介绍。

导入CSV/XDC文件
创建I/O Planning工程时,会让设计者选择需要导入的包含I/O信息的文件:

Vivado使用技巧(12)——设置DCI与内部参考电压

DCI与内部参考电压
Xilinx FPGA提供了DCI(Digitally Controlled Impedance)技术,包括两个功能:(1).控制驱动器的输出阻抗;(2).为驱动器或发送器添加一个并行端接,在传输线上得到精确的特征阻抗匹配,以提高信号完整性。DCI会主动调整I/O bank内的阻抗,以调整放在VRN和VRP管脚之间的外部精准参考电阻,这样可以补偿由于工艺变化、温度变化和电源电压抖动引起的I/O阻抗变化。每个I/O bank内都有两个复用引脚来控制该bank内所有I/O的阻抗或并行端接值。

带有差分输入缓冲区的单端I/O需要一个参考电压Vref,可以使用专用的Vref管脚为每个I/O bank提供参考电压。另外也可以使用INTERNAL_VREF约束来生成内部参考电压,这样PCB上就不需要为Vref提供电源线,也可以释放Vref管脚作为通用I/O使用。每个bank都可以设置一个可选的内部参考电压。

Ug471和ug571分别介绍了7系列和UltraScale系列中DCI和INTERNAL_VREF的详细信息。本文将介绍在Vivado中设置与之相关的DCI_CASCADE和INTERNAL_VREF属性。

创建DCI_CASCADE约束

Vivado及Zynq使用经验

1.添加debug核的合理方法是在源代码中添加(*mark_debug="true"*),综合后,打开综合结果,set debug内这些标记的信号全部在网标内,不会被优化掉。如果不在代码里加这些标记,直接在综合结果里添加net,很多感兴趣的信号会被优化掉,且残缺不全。

2.若果debug核使用的时钟是zynq ps端输出的时钟,那么烧录完bit文件后,是不会自动弹出debug界面的,需要在软件工程里,debug软件工程,让cpu跑起来,产生时钟信号,再回vivado内refresh device,即可弹出debug界面。

3.自定义IP内代码被改动后,Block Design内会提醒刷新IP路径,然后在窗口下方勾选改动的IP,点击UPDATE IP按钮,即可更新IP核。

4.重新生成bit文件后,建议关闭eclipse软件工程,vivado内file-> export hardware,重新输出.hdf等硬件信息文件,然后重新打开eclipse软件工程,eclipse会自动更新硬件信息,并重新编译整个工程。

Vivado报告指定路径时序

Vivado运行Report Timing Summary时,只显示各个子项目最差的十条路径,很可能并不包含你最关心的路近,这个时候显示指定路径的时序报告就显得很重要了,下面就简单介绍一下Vivado下显示指定路径时序报告的流程。

1.打开布局布线后的结果

2.指定到工具下的时序报告

3.选择路径的起点和终点

Vivado常见问题集锦

作者:NingHeChuan(宁河川)

 对于电子工程师来说,很多电路设计仿真软件都是特别大的,安装下来一般都是上G,甚至几十G,而且win7的兼容性也是最好的,不愿意升级win10是因为麻烦,而且没有必要,对于很多的设计软件来说win10还没有完全兼容,而且还不停自动更新,时间很珍贵的,谁愿意浪费大把时间搞什么兼容性问题,而不是code or design。所以EE一般会把Wndows自动更新关闭。对于普通用户来说就无所谓了,用电脑写写报告,看看片子,跟着win10升级还能体验到很多新功能,完全不会被兼容性问题困扰。关闭Windows10自动更新的方法请自行百度。

七、Vivado在Win10上出现的BUG

  我的Vivado一段时间没用后,出现了问题,可能是我不小心把系统的那个文件弄丢了,出现了Vivado在运行Run RTL 分析会闪退,调用IP核和综合的时候会报错误,问题是我之前写的代码明明没问题,连最起码的流水灯都跑不下去。这个问题博主在Xilinx官网论坛上寻求了帮助,但是最终还是没能解决,重装了Vivado2016.4、2018.2、2017.3都是同样的问题无法解决,最后只能是系统的问题了,重装了系统后才解决了这个问题。

Xilinx Vivado 硬件诊断( ila和vio的使用)

作者:OpenS_Lee

1背景知识

在我们的FPGA设计项目中,硬件的诊断和校验可能会占去超过30%—40%的FPGA开发时间,FPGA的debug也是FPGA设计中重要的一环。掌握并灵活运用FPGA设计工具的debug功能也是加快FPGA设计的关键。

1.1 ILA(Integrated Logic Analyzer)

FPGA设计中的信号连接到ILA核的时钟和探针输入如图1。这些信号附加到探针输入,以设计速度采样,并使用片上块RAM(BRAM)存储。核参数指定探针的数量、跟踪样本深度和每个探针输入的宽度。使用与FPGA的JTAG接口连接的自动实例化调试核心集线器与ILA核进行通信。

图1 ILA Core

图1 ILA Core

按小时计费的 Vivado 许可证来了!

重磅消息

今天我们非常高兴宣布,Plunify 将与赛灵思在 Plunify Cloud 云平台上,合作推出按需供应的 Vivado 设计套装 HLx 版本软件的许可证!Plunify Cloud 云平台构建在世界上最大的云供应商 – 亚马逊网络服务 (Amazon Web Services)。

此次Plunify 和赛灵思的全新合作,会给您带来哪些全新云端体验呢?

按小时计费的 Vivado 许可证来了!

FPGA Expansion Pack 是一款 Vivado 插件,它可以让您直接在 Vivado 的界面上利用高性能的云服务器来编译设计。

Xilinx Vivado .coe文件生成

一、.COE格式文件生成

由于Quartus ii软件ROM用的是mif格式的文件,且可以用软件Guagle_wave生成正弦波、三角波、锯齿波。我们可以利用这个软件先生成数据,然后再将其转化为符合COE格式的文件。具体请参考以下步骤:

1. 先打开Guagle_wave软件;

2. 菜单栏-->查看-->全局参数设定(如下图所示):

3. 设定波形-->我们选择正弦波(如下图):

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...

第一部分:实现原理

同步内容