跳转到主要内容

技术

Vivado常见问题集锦

<font color="#FF8000">作者:NingHeChuan(宁河川)</font>

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

SDSoc学习(四):搭建包含AXI_GPIO的平台(解决找不到基地址的问题)

<strong>简介 </strong>
本篇博客大部分内容前三篇博客都已经包含了,此处重点叙述不同之处,主要对比Tcl命令的不同和解决SDSoc程序找不到基地址的问题。

使用ZedBoard开发板,SDSoc 2017.4, Win10系统;此处通过AXI_GPIO点亮ZedBoard板子上连接在PL端的8个LED灯。

<strong>Tcl命令</strong>
搭建平台的步骤在 SDSoc学习(二)中进行了较为详细的描述,同时也可以参见官方文档 ug1146 和 ug1236 。

8个Python高效数据分析的技巧

<strong>作者 | Conor Dewey</strong>
<strong>编译 | 专知</strong>
<strong>整理 | Yingying, Jiahui</strong>

不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数据分析,这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够提升运行效率,还能够使代码更加“优美”。

学会System Generator(9)——MCode调用MATLAB代码

本文是该系列的第9篇。FPGA设计中经常用到一些控制逻辑,如有限状态机(FSM),如果用各种block搭建一个FSM比较麻烦。System Generator支持调用MATLAB代码,通常可以编写MATLAB代码来实现FSM等控制逻辑,通过MCode block调用到System Generator设计中。

本文将使用MATLAB代码设计一个FSM,对“1011”这个序列进行检测。序列检测应该是很多Verilog/VHDL学习者在学习FSM时接触到的一个简单设计。本文将以该设计在System Generator中的实现为主题,介绍MCode的使用。

本设计使用到的block
1.Xilinx block:
MCode(->Index):调用MATLAB函数

用Python玩FPGA背后的故事

近日,想必各位科技爱好者的朋友圈都被一篇发表在第25届IEEE国际讨论会上,用Python开发FPGA的论文刷屏了吧,那么这是如何实现的呢?今天,就请各位看官和小编一起来了解一下,这个构想的实现基础——PYNQ。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/news/201808/13256-38595-…; alt="图为该篇论文"></center>

突破功能安全设计的复杂性

<font color="#FF8000">作者:Paul S.Levy, 赛灵思功能安全系统高级工程师</font>

“功能安全(Functional Safety)”研究的是机器发生故障或运行环境中断时如何降低其对人和设备造成的危害的方法和措施。试想一下,在刚刚结束的 2018年的足球世界杯(2018 FIFA)中,如果我们将这种研究应用到足球比赛中,裁判员就有能力和权力在他们觉得有犯规行为时暂停比赛。当然,这也不能让他总能发现所有犯规并且总能作出正确的判罚。

SDSoc学习(三):用户自定义开发板搭建平台

<strong>简介 </strong>
前段时间买了一块米联客的7010开发板,打算尝试为这块开发板搭建一个简单平台。

用户自定义开发板与SDSoc直接支持的开发板的区别在于,直接支持的开发板已经根据板子上的硬件完成了一系列重要配置(如时钟、DDR型号),所以在为用户开发板搭建平台时,只需要根据该开发板的硬件实际情况进行相应的配置即可。

这里先尝试着点亮一个直接连在MIO(MIO7)上的LED。

<strong>第一步:搭建平台</strong>

平台地搭建在SDSoc学习(二)中已经进行了较为详细的描述,且大部分操作的是一样的,所以这里就着重叙述不同之处。

同步FIFO和异步FIFO

1.定义
  FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

基于Vivado HLS的一维离散卷积的高层次综合

<strong> 前言</strong>
利用vivado高层次综合工具可将C代码综合成HDL语言。本文将详细解析一维有限长离散卷积的例子,并分析综合结果。另外,vivado HLS的使用方法见笔者另一篇博文: http://xilinx.eetrend.com/blog/13178 本文不再赘述。

PetaLinux 工具

PetaLinux 工具提供在 Xilinx 处理系统上定制、构建和调配嵌入式 Linux 解决方案所需的所有组件。理想适用于提升设计生产力,该解决方案与 Xilinx 硬件设计工具协同工作,为 Zynq® UltraScale+™ MPSoC、 Zynq®-7000 SoC、和 MicroBlaze™ 简化了 Linux 系统的开发。

学会System Generator(8)——Reinterpret和Convert详解

本文是该系列的第8篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第7篇介绍了其中数据类型的选择与位宽截断的问题。本文将对其中使用到的Reinterpret和Convert模块进行详细介绍。

<strong>模块功能概述</strong>
数据转换,数据类型、位宽等问题都会影响到计算精度,对于设计者而言,需要考虑的就是相关影响是否可以接受,即是否会影响到实际的系统性能。FPGA设计中还经常需要截位,否则位宽在整个系统中不断积累,大大增加资源的消耗。

数据类型的转换和截位是FPGA系统设计的重要内容,博主在《FPGA数字信号处理》系列的很多设计中都有详细讨论。而在System Generator设计中,完成这项任务的便是Reinterpret和Convert模块。

Matlab导出eps或jpg图片的四种方法

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。无论是做项目还是写论文,我们都会遇到把Matlab画的图形(默认为matlab自带的图像格式.fig)转换为其他格式并导出的问题。用的最多的图片格式是eps格式(用latex编辑时用)和jpg(用word编辑时用)。下面以matlab 2011b为例介绍多种导出方法。

<strong>方法一:</strong>

最简单的方法,但是不灵活。选择Figure文件的“File”菜单下面的“Save As...”。

用于汽车ADAS SoC的数据转换器IP

<font color="#FF8000">作者:Manuel Mota,Synopsys公司模拟IP部产品营销经理</font>

需要数据转换器的传感器应用涉及十分广泛的范围,例如用于识别不同发动机状态的温度传感器,或者支持汽车驾驶辅助系统(ADAS)的雷达/激光雷达等。涉及到数据转换器的其他应用还包括用于与其他车辆或固定网络进行通信的无线收发器。数据转换器IP(“模拟-数字”和“数字-模拟”)为汽车片上系统(SoC)提供了多种模拟传感器的接口。对于ADAS而言,电子系统及其组件,例如SoC和IP,都必须提供最高程度的可靠性和安全性,同时还要能够经受极端温度范围考验并具备较长的使用寿命。由于这个原因,汽车电子系统及其组件必须遵守一套严格的汽车可靠性和功能安全性标准。

SDSoc学习(二):搭建平台,使用EMIO点亮LED

<strong>简介</strong>
这是学习SDSoc的第二个入门实验,通过EMIO点亮连接在PL上的8个LED。与上一个实验不一样,在这一个实验中,由于ZedBoard平台中没有使能EMIO,因此想直接通过SDSoc编写程序驱动MIO是不行的,所以这一个实验需要自己搭建包含EMIO的平台。

我用的是ZedBoard开发板,SDSoc2017.4。

学会System Generator(7)选择最佳数据类型

本文是该系列的第7篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程。不过仍然有些问题需要解决:
1. 如何选择一个最合适的数据类型(以最少资源达到性能需求)?
2. 如何选择系统的输出位宽(保证信号不失真)?

传统的HDL模型设计方法中,博主通常会用MATLAB进行仿真,确认位宽对数据量化的影响;或在Vivado中仿真,截取合适的滤波器输出位数。System Generator提供的相关特性可以大大简化该流程,本文将对此做介绍。

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

<font color="#FF8000">作者:OpenS_Lee</font>

<strong>1背景知识</strong>

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

<strong>1.1 ILA(Integrated Logic Analyzer)</strong>

ZYNQ之uboot,kernel,设备树,文件系统生成

Vivado:2016.4

  Linux:Ubuntu16.4

  ZYNQ:xc7z020

  下载文件名称

  2016.4-zed-release.tar.xz

  device-tree-xlnx-xilinx-v2016.4.zip

  linux-xlnx-xilinx-v2016.4.zip

  u-boot-xlnx-xilinx-v2016.4.zip

  arm_ramdisk.image.gz

一、环境搭建

SDSoc学习(一):使用MIO驱动LED

<strong>简介</strong>
在XILINX官网上看见了一些SDSoc的介绍视频,感觉这个工具很强大,我之前也有一点点VIVADO+HLS的学习经历,感觉会为学习SDSoc提供一些帮助,所以就尝试学习学习。

先从最基础的点亮一个LED入手,通过对官方资料的学习,惊奇的发现官方给的例程都是对算法加速,而没有一些入门例程,比如说点亮一个LED(可能是太简单了官方不屑说,也有可能是我没找到)。

我用的是ZedBoard开发板,SDSoc版本2017.4,Win10 64位系统。这个例子是我用ZedBoard开发板点亮一个直接连在MIO7上的LD9。

UltraScale+ GTH 的手动眼扫描

<strong>描述</strong>
UltraScale+ GTH 可实现实时无中断眼扫描。用户可同时接受数据并查看平衡信号眼扩展,以实现在不丢失一个比特位的情况下,全面控制 BER 及信号裕量。

所需的大多数信息都可在 (UG576) UltraScale 及 UltraScale+ GTH 的 RX 裕量分析中找到。

本答复记录将向您介绍一个逐步运行手动眼扫描的简单案例。

<strong>解决方案</strong>
IBERT 中已实现眼扫描特性,其中 GUI 有助于完成眼扫描的简单定制而且 IBERT 可自动驱动眼扫描。

眼扫描程序在 IBERT 外部实现时,例如与用户应用平行,我们可以参考“手动眼扫描”。