跳转到主要内容

技术

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

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

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

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

PetaLinux 工具

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

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 本文不再赘述。

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 外部实现时,例如与用户应用平行,我们可以参考“手动眼扫描”。

充分发挥 Python 的威力:用最简单的方法打造互联互通的智能产品

<font color="#FF8000">作者:赛灵思工业物联网战略部 Chetan Khona</font>

<strong>智能互联产品背后的心理学</strong>

如果采用适当的质疑心理去思考为什么现在所有东西都套上了只能互联的噱头,你也许就会进一步想到:“它们真的都需要互联互通吗?”比如说蓝牙电动牙刷搭配的手机 app,我至今都没有使用过这类技术和工具,但一样每天早晚把牙刷的干干净净。所以真正的答案在于“人的心理”,而不在于“科技本身”。至少对我来说是这样的(此处应有前情回忆 BGM):那是2011 年的春天,《Wired》杂志发表了一篇关于反馈回路的文章,而且并不是用来设计锁存器和触发器的那类反馈回路。

这篇文章提出反馈回路包括四个阶段:

MATLAB数组元素引用的三种方法

1. Matlab中数组元素引用有三种方法:
<li>下标法(subscripts)</li>
<li>索引法(index)</li>
<li>布尔法(Boolean)</li>

注意:在使用这三种方法之前,大家头脑一定要清晰的记住,Matlab中数组元素是按列存储(与Fortran一样),比如说下面的二维数组:
A=
8 1 6
3 5 7
4 9 2

Zynq PS读写PL端BRAM

本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示。

涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用。

本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性。 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍。

机器学习中的常见问题——几种梯度下降法

<strong>一、梯度下降法</strong>
在机器学习算法中,对于很多监督学习模型,需要对原始的模型构建损失函数l,接下来便是通过优化算法对损失函数l进行优化,以便寻找到最优的参数θ。在求解机器学习参数θ的优化算法中,使用较多的是基于梯度下降的优化算法(Gradient Descent, GD)。

梯度下降法有很多优点,其中,在梯度下降法的求解过程中,只需求解损失函数的一阶导数,计算的代价比较小,这使得梯度下降法能在很多大规模数据集上得到应用。梯度下降法的含义是通过当前点的梯度方向寻找到新的迭代点。

学会System Generator(6)——设计优化与导入MATLAB变量

本文是该系列的第6篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第4篇对设计进行了资源分析。本文将在此基础上,讨论如何对设计进行优化,以及介绍System Generator可以导入MATLAB的工作区(workspace)变量的特性。

ADC详解

<strong>ADC</strong>
ADC是模数转换器转换器 的供应商的英文简称,是一种能将模拟信号转变为数字信号的电子元件。通常是将信号采样并保持以后,再进行量化和编码,这两个过程是在转化的同时实现的。

<strong>ADC的转换步骤</strong>
  模数转换一般要经过采样、保持和量化、编码这几个步骤。在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。

  采样定理:当采样频率大于模拟信号中最高频率成分的两倍时,采样值才能不失真的反映原来模拟信号。

基于FPGA的DDR3六通道读写防冲突设计

<font color="#FF8000">作者:张凤麒,张延彬,王忠勇;2018年电子技术应用第7期</font>

<strong>摘要: 为了解决期货行情数据加速处理中多个通道同时访问DDR3时出现的数据读写冲突问题,实现了一种基于FPGA的DDR3六通道读写防冲突设计,完成了对单片DDR3内存条的多通道实时访问控制需求。通过ChipScope工具采样结果证明了设计的可行性,提高了并行处理的速度,极大程度地降低了期货行情数据处理中行情计算的时间开销,最高通道速率可达5.0 GB/s以上,带宽利用率可达80%以上,在多通道数据读写应用中具有很高的实用价值。</strong>

<strong>0 引言</strong>

异构计算,你准备好了么?

摩尔定律失灵了,已是不争的事实。单纯的提升一种芯片性能变的代价越来越高,与此同时,异构计算成为提高计算力的主流方向。

<strong>什么是异构计算?</strong>
<strong>异构计算的前景怎么样?</strong>
<strong>OpenPOWER系统上FPGA异构计算的先进技术又有哪些?</strong>

为此,小编恶补了一下异构计算的相关知识,并总结出如下几个基本知识点,给大家分享。如有不足,欢迎大家留言补充~

● 异构计算(Heterogeneous Computing)是指使用一种以上处理器的系统。

学会System Generator(3)——生成说明文档与testbench

本文是该系列的第3篇,上一篇以数字滤波器的设计为主题,介绍了System Generator的完整设计流程,最后自己编写testbench在示例工程中对System Generator导出的IP核进行测试。其实System Generator就可以导出整个设计的说明文档以及一个testbench,本文将介绍如何使用该特性。

Zynq-7000 Uboot如何编译

很多人拿到uboot,编译不知如何下手!
其实,这个世界上的万事万物,都有一个“纹理”。庖丁解牛之所以游刃有余,是因为他掌握了牛的纹理,顺着这些纹理就应该很容易。
那么我们的uboot的纹理在哪里呢?

很多初学者,拿到这种代码从来没有去看过它的README或者document!这两个文本文件是非常重要的东西,可惜呀!很多人不去看readme而去请教别人,google,baidu,跑图书馆。其实,有些东西当你问到别人的时候,聪明的人也是去看README然后给你解答的。

下面我们就去找uboot的纹理! 本文u-boot版本为Z-Turn板上带的U-Boot。