上篇该系列博文中讲述W5500接收到上位机传输的数据,此后需要将数据缓存起来。当数据量较大或者其他数据带宽较高的情况下,片上缓存(OCM)已无法满足需求,这时需要将大量数据保存在外挂的DDR SDRAM中。
最简单的方式是使用Xilinx的读写地址库函数Xil_In32()和Xil_Out32(),当然不仅支持32bit位宽,还包括8 16和64bit。...
技术
本文介绍了采用创建一个Python脚本,用该脚本模仿R风格的函数的方法来方便地进行统计。
是用R语言还是用Python语言?这是一个旷日持久的争论。在此,我们可以尝试采用折中路线:创建一个Python脚本,用该脚本模仿R风格的函数,来方便地进行统计!
简介
用R语言还是用Python语言?这是数据科学和机器学习的一场大的争论。毫无疑问,这两种语言在最近几年都取得了巨大的进展,...
仿真功能概述
仿真FPGA开发中常用的功能,通过给设计注入激励和观察输出结果,验证设计的功能性。Vivado设计套件支持如下仿真工具:Vivado Simulator、Questa、ModelSim、IES、VCS、Rivera-PRO和Active-HDl。
Vivado的仿真流程如下图所示:
仿真可以在设计阶段的不同时间点进行,主要包括如下三个阶段:...
petalinux使用太不方便,捆绑的太死板,也不通用,还不如直接用编译器来的简单高效。本文说明从petalinux中提取出源代码的过程,前提是已经petalinux-build完成。
1. uboot
编译结果里没有uboot的源码,可能是编译完了就删除了。
从git上下载吧。
git clone https://github.com/Xilinx/u-boot-xlnx.git...
本文通过一个简单的例子,介绍Vivado 下的仿真过程。主要参考了miz702的教程,同时也参考了Xilinx的ug937, xapp199.。
我的软件平台是Vivado 2015.4, 硬件平台是黑金的AC7010, Zynq 7000, 其实与平台关系不大。
本文分为四部分:工程的建立,测试代码,仿真图形输出,更复杂点的例子。
工程和源码下载链接: 链接:http://...
作者:宋 凯,高 寒;来源:2018年电子技术应用第9期
摘要: 实现一种基于Zynq-7000全可编程片上系统(AP SoC)的板级支持包(BSP)设计方法及应用流程。该BSP设计主要面向工业自动化监测领域,提供了一种行之有效的嵌入式系统BSP实现流程,有利于提高工业自动化监测系统的开发效率。针对使用串行通信方式的工业监测设备,设计面向小型自动化监测系统的FPGA工程,...
本文是该系列的第19篇。语音编码压缩的目的是在尽量不损失信息的情况下降低码率,从而节省存储空间和通信带宽。To Multimedia File这个block就提供几种语音压缩方式:CCITT A律、CCITT μ律、GSM 6.10、PCM、ADPCM。本文将介绍一种很简单的增量调制(DM)编码方式。
DM编解码
DM(Delta Modulation)编码的原理很简单,...
在上一篇该系列博文中讲解了MATLAB待处理数据写入.bin二进制数据文件的过程,接下来需要将数据通过以太网发送到ZYNQ验证平台。之前了解过Xilinx公司面向DSP开发的System Generator可以通过硬件协仿真的方式,进行算法板级验证。一个是本人不熟悉这种方式,再一个缺乏通用性,也无法在系统层面进行硬件验证。当然方案有很多,...
作者:OpenSLee ,来源:FPGA开源工作室
1. 背景
这篇文章主要介绍了DDR3IP核的写实现。
2. 写命令和数据总线介绍
DDR3 SDRAM控制器IP核主要预留了两组总线,一组可以直接绑定到DDR3 SDRAM芯片端口,一组是留给用户端使用的,框图如图1所示。
如图1 所示的中间部分为我们调取的IP 核,user FPGA Logic...
PCIe 学习笔记
一、PCIe概况
随着现代处理器技术的发展,使用高速差分总线替代并行总线已是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而可以使用更少的信号线达到更高的通讯速度。PCIe总线解决了PCI总线的不足,它的发展将取代PCI成为新型的数据总线,其提供了更加完善的性能,更多的功能,更强的可扩展性和更低的成本 。
在PCIE中有两种数据传输方式...
本文说的CAN即是一种总线,也是一种协议。因此,我们常听见CAN总线,也常听见CAN协议。
CAN协议和CANOpen协议是两套不同的协议。从软硬件层次来划分,CAN协议属于硬件协议,而CANOpen属于软件协议。
本篇文章先概述一下CAN网络,让大家对CAN总线协议有一个全局的概念,再到底层的CAN总线协议知识。
1、CAN网络...
IBIS模型概述
IBIS是一种器件模型标准,允许使用行为模型进行开发,这些行为模型描述了器件内部互联的信号。IBIS模型保留专用的电路信息,不像SPICE这种结构化模型,IBIS模型是基于测量或电路仿真得到的 V/I曲线数据。
每个IOB标准都有IBIS模型,器件的所有I/O标准的IBIS模型组合在一起便是IBIS文件。IBIS文件还包含器件中所使用的管脚列表,...
摘要: 深度学习背后的主要原因是人工智能应该从人脑中汲取灵感。本文就用一个小例子无死角的介绍一下深度学习!
人脑模拟
深度学习背后的主要原因是人工智能应该从人脑中汲取灵感。此观点引出了“神经网络”这一术语。人脑中包含数十亿个神经元,它们之间有数万个连接。很多情况下,深度学习算法和人脑相似,因为人脑和深度学习模型都拥有大量的编译单元(神经元),这些编译单元(神经元)...
作者:没落骑士
最近本人一直在学习ZYNQ SOC的使用,目的是应对科研需要,做出通用的算法验证平台。大概思想是:ZYNQ PS端负责与MATLAB等上位机数据分析与可视化软件交互:既可传输数据,也能通过上位机配置更新硬件算法模块配置寄存器内容,同时可计算分析PL端算法实现性能指标。PL端的FPGA逻辑则负责算法的硬件实现,以探索高效并行硬件架构。为此本人后续会持续编写《...
作者:liuwanpeng
ubuntu虽然能正常安装,但是build时会出现闪退情况,闪退后一切归零,没啥错误提示,改用centos来安装petalinux。
0.环境
vmware pro 14,centos 7.3
petalinux 2017.2
1.petalinux安装环境配置
除了python,其他都用yum直接安装即可,安装UG1144里的所有库...
作者:谭检成1,2,吴定祥2,3,李明鑫1,2,唐立军1,2;2018年电子技术应用第9期
摘要: 针对Canny边缘检测算法在实时图像处理过程中运算耗时长、数据运算量大的缺点,研究了利用Vivado HLS实现Canny边缘检测算法的硬件加速方法。该方法由FPGA的逻辑资源生成算法对应的RTL级硬件电路,实现算法硬件加速。实验结果表明,该方法能快速实时检测图像边缘,...
当我们安装好Vivado 的时候,也同时装好了Vivado HLS.。 这是个什么东西?我就有一种想一探究的感觉。网上一查,Vivado High-Level Synthesis。学习了一段时间的Zynq 7000, 找了一个HLS的教程,就开始了如下入门实验,体验高级语言综合设计IP。Vivado HLS是Xilinx 推出的高层次综合工具,采用C/C++语言进行FPGA设计。...
本文是该系列的第18篇。数字信号处理的内容博大精深,音频信号处理、数字图像处理、雷达信号处理等等都属于DSP系统。从本文开始将记录一些简单的音频信号处理算法在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。
音频信号基础概念
音频信号属于一维信号,一些基本概念如下:
采样频率:根据奈奎斯特采样定理,采样频率Fs应该不低于声音信号中最高频率2倍。...
Rapid IO协议由于无主机,且各设备之间可以并行交换信息,所以广泛应用于对交换速率要求高,且交互复杂的应用中。
图0.1 SRIO应用场景
Xilinx现在有支持Serial RapidIO Gen2的核,可以应用在此场景中,但Xilinx 的 Rapid IO 核对外接口仅有 AXI 流接口 ,且对各类数据流的处理需要外部单独设计,不能方便的对消息、门铃、数据进行读写传输。...
作者:Steve Leibson
人们经常需要开发定制的仪器用于实验或生产测试。早期的方法是通过 GPIB/IEEE-488 接口来连接仪器,并通过台式电脑或工作站进行控制。如今流行的则是 PXI 和 PXI Express 机架系统等更加模块化的方法。然而,此类安装可能很昂贵,尤其对于一次性测试或一次性堆叠更是如此。
为加快开发速度并降低定制仪器的成本,...
作者: ChuanjieZhu
前言:
学习Xilinx的ZYNQ 7000系列,用的板子是zc702(注意不是zedboard),SOC型号是xc7z020。虽然设计思路一样,但不同的套件引脚和io标准是有区别的,zc702评估板的的外观图如下,可以对照下自己的板子:
作为入门体验,本设计实现的功能是控制8个流水灯,循环闪烁,每隔1s移位一个。...
MPSOC的linux开发需要使用petalinux,选择Ubuntu操作系统。
1.Ubuntu
1.1. Ubuntu安装
版本16.04.03
vmare版本:12.0
安装时注意选择“稍后安装”,否则是阉割版。另外,有个界面显示“删除整个磁盘”指的是虚拟机的磁盘,不会删除host上的内容,可以放心。
剩下就是一路next了,比较简单。
1.2. Vmware...
相比于其他语言,Python的语法比较简单易学,但一旦不注意细节,刚入门的新手很容易就会掉进语法错误的坑里。
1. 忘记写冒号
在 if、elif、else、for、while、class、def 语句后面忘记添加“:”
if spam == 42
print('Hello!')
2. 误用 “=” 做等值比较
“=”是给变量赋值,“==”...
如果高速PCB设计能够像连接原理图节点那样简单,以及像在计算机显示器上所看到的那样优美的话,那将是一件多么美好的事情。然而,除非设计师初入PCB设计,或者是极度的幸运,实际的PCB设计通常不像他们所从事的电路设计那样轻松。在设计最终能够正常工作、有人对性能作出肯定之前,PCB设计师都面临着许多新的挑战。这正是目前高速PCB设计的现状--设计规则和设计指南不断发展,如果幸运的话,...
作者:罗 军,范剑峰,吕宏峰,王小强,罗宏伟,2018年电子技术应用第9期
摘要: 可编程逻辑阵列由于具备片内资源丰富、灵活、可重构等特点在数字信号处理、硬件加速及芯片原型验证中具有广泛的应用。块存储器作为可编程逻辑阵列中的重要片内资源,具备高速及大容量的特点。为了解决高速块存储资源功能验证时序约束要求高等不足,设计了采用跨时钟域的高速块存储器资源功能验证方法,...
1.MPSOC overview
MPSOC是xilinx公司推出的新一代集成SOC,比ZYNQ厉害了一个等级。
熟悉一个芯片,不能一头扎进详细的数据手册,应该从overview开始大概了解,然后浏览user manual的前几章,具体外设用时细读。
文档:ds891-zynq-ultrascale-plus-overview.pdf
与ZYNQ相比,...
从Vivado开始,配置GTX的时候,多了一个SATA协议支持,但有些小地方还需要自己另外设置。整理了一下,分享给大家。
首先打开Transceivers wizard:
打开页签,线速率和参考时钟选择,在协议里面选择SATA2或者SATA3,设置参考时钟。
选择编码和时钟设置,设置外部数据宽度为32位,内部40bit,8B/10B编码,使能收发缓存,全部使用发送时钟...
SSN概述
SSN(Simultaneously Switching Noise)分析可以估计I/O Bank中管脚在同时转换输出状态时对其它输出端口造成的干扰。这是一个常见的问题,许多总线有大量的位宽,当总线数据有多位同时变化时,很容易在其它I/O上产生噪声。比如数字电路设计中倾向于使用格雷码编码,正是因为两个相邻的数字用格雷码表示时只有1bit的差异,使得同时转换噪声最小。...
作者:OpenSLee
1 背景知识
IP(Intellectual Property)在嵌入式FPGA设计中,指的是某些设计好的模块,分为软件模块和硬件模块。这些模块,一般都是已经测试好,所有功能完善的,由一些用户自己设计的。有些模块是免费的,也有收费的模块。所有用户都可以将这些IP核(IP Core)导入到自己的工程中,同样,所有用户也都可以定制自己的IP核。...
Zynq的IO包括对外连接的GPIO和内部PS与PL通信的AXIO。其中对外的GPIO又分为两种:MIO和EMIO。MIO直连到PS;EMIO则是PS扩展到PL,从PL接出的IO。所以MIO不需要管脚约束,而EMIO需要管脚约束。
1.MIO寄存器
上图为MIO内部构造,对MIO操作即是对以下寄存器进行配置:
DATA_RO: 此寄存器使软件能观察 PIN 脚情况,当...
本文是该系列的第17篇。上一篇介绍了使用低层次封装的block搭建直接型FIR滤波器结构的方法,对设计进行时序分析,并将设计流水线化来提高系统的工作频率。转置型FIR滤波器是一种由直接型FIR滤波器变换而来的结构,在几乎相同的结构下有着更好的性能,本文将对此做介绍。
转置型FIR滤波器
滤波器结构框图如下:
直接型FIR滤波器是对输入数据做寄存,这样当设计没有采用流水线时,...
近年来,市面上已涌现出越来越多的嵌入式视觉应用,它们是由嵌入式计算板和相机模块组成的系统。与其他系统相比,这类系统能以更经济、更有效的方式管理视觉任务。
相机接口在上述嵌入式视觉系统的设置中扮演着关键作用,因为它承担着将相机模块与主机连接在一起的重任。
即插即用的USB 3.0、LVDS(Low Voltage Differential Signaling,低电压差分信号)...
作者:OpenSLee
1 背景知识
电子相册的实现就是通过按键来改变显示器的图片轮换。本节将通过ps端的按键来控制ARM选择不同的图片通过HDMI输出到显示屏。
1.1 AXI_VDMA的介绍
Xilinx的AXI VDMA(Video Direct Memory Access)核是个软核。它提供了高带宽的直接内存存取在内存和支持AXI4-Stream...
引言
什么叫做“嵌入式视觉”?
嵌入式视觉=小型处理板 + 小型相机模块
在嵌入式视觉领域中,处理器有许多分类,SoC, SoM,SBC,FCD分别是什么?他们之间有什么区别和联系?通过本文,您可以有个系统的归纳和了解。
片上系统(SoC)
片上系统(SoC)是嵌入式架构的核心,是实际成像处理的所在点。很多场合里,人们将专业术语“SoC”通俗地等同于“处理器”。...
在I/O和时钟规划之后,需要验证设计以确保其满足设计需求。Vivado提供了两种验证途径:DRCs用来检查设计违反规则情况;SSN分析用来估计转换噪声等级。本文将介绍DRCs,本系列第16篇介绍了SSN分析。
运行DRCs
DRCs可以说是管脚规划中最严苛的一个步骤,DRCs会使用一套设计检查项(通常称作rule deck),来检查当前设计是否违反这套规则。本文将以运行DRCs检查I/...
很多人对FPGA理解还停留在CPLD阶段,认为FPGA只是用来做一些逻辑接口或算法而已,那就大错特错了,如果你一直做FPGA的逻辑而又不是很精通,又或者做其它嵌入式(如单片机、ARM)开发可以看下这篇文章,或许对你有所帮助。
1. 如果你是学习数字电路后,直接入行FPGA的话
你比较容易吃透FPGA的并行编程思想,比较容易入门FPGA的逻辑编程,然后在逻辑编程中越走越远,...
本文是该系列的第16篇。流水线(pipeline)是FPGA设计中经常提到的一种技巧,通过消耗更多的资源来提升系统的运行速度。本文将以FIR滤波器的设计为主题,详细介绍如何把一个设计“流水线化”,并进行时序分析体会流水线设计带来的好处。
流水线
这里先用通俗易懂的语言描述一下流水线设计思想。假设小A要从成都到哈尔滨旅游,如果直接坐火车过去恐怕要累得受不了;如果在旅程中间加几站,比如到西安...
作者:OpenSLee
1 背景知识
HDMI(High Definition Multimedia Interface)是高清晰多媒体接口线的缩写,能高品质地传输未经压缩的高清视频和多声道音频数据,最高数据传输速度为5Gbps。同时无需在信号传送前进行数/模或者模/数转换,可以保证最高质量的影音信号传送。
HDMI线支持5Gbps的数据传输率,最远可传输30米,...
作者:德州仪器 Atul Patel
大家许多人可能都与“低语者”有过交谈—低语者是指说话声音超低几乎让人听不明白的人。与低语者交谈往往会导致沟通错误且混杂各种信号,这种场景在上世纪90年代知名情景喜剧《低语者》中体现得淋漓尽致。
那么,低语者与电子系统及其设计有何关系呢?现代电子信号链已开始更多地采用在较低电压节点运行的集成电路(IC)。Sub-1V器件,如大型微处理器、...
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它作为专用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。主要用于信号处理及各类高速模拟仿真。
以PWM信号的捕获为例,说明FPGA与CPU(不考虑芯片专用外设)在处理上的差异。当CPU通过GPIO对PWM信号采样时,...
CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。
这个算法也算是码率控制最难的算法了,因为无法确定何时有motion发生,假设在码率统计窗口的最后一帧发生motion,就会导致该帧size变大,...
一、TFTP协议简单介绍
1、定义
TFTP(Trivial File Transfer Protocol):简单文件传输协议)。
TFTP是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议,传输不复杂、开销不大的文件。端口号固定为69。
TFTP是一个传输文件的简单协议,它基于UDP协议而实现。
2、特点
简单、占用资源少、...
ZYNQ简介
ZYNQ系列是Xilinx推出的高端嵌入式SoC,其在片上集成了ARM处理器和FPGA。ZYNQ与传统的嵌入式CPU相比,具有强大的并行处理能力。开发人员利用FPGA强大的并行处理能力,不仅可以解决多种不同信号处理应用中的大量数据处理问题,而且还能通过加入更多外设来扩展处理系统的功能。ZYNQ通过引入最新的高速AXI-4总线,可轻松实现外设的扩展与高速互访。
ZYNQ...
如何区分CPLD或FPGA和哪一个更适合自己?这是一个老生常谈的问题,尤其是学生和初学者。如果您也在这个问题上很迷茫,那么就请听小编为您区分FPGA与CPLD。
CPLD
我们先来看看CPLD,在此以Xilinx CoolRunner-II为例。下图是Xilinx CoolRunner-II的架构图。
现在小编为您解释一下上图的内容。
1.该CPLD具有从“功能块1”...
作者:晨,来源:FPGA开源工作室
1. 帧差法原理
帧差法的实现非常简单:
如图可见,由目标运动引起的运动变化区域包括运动目标在前后两帧中的共同位置(图中黑色区域)、在当前帧中新显露出的背景区域和新覆盖的背景区域三部分。
数学原理:
2.vivado HLS实现
Vivado HSL是xilinx公司推出的高层次综合工具,使用C/C++...
简介
这是学习PCIe DMA传输的第二篇博客,在前一篇中叙述了PCIe DMA传输的部分基础知识,并且较为详细的分析了接收引擎的各个状态,这里接着分析第二个关键模块:发送引擎(BMD_64_TX_ENGINE.v)。
软件:VIVADO2017.4
第一步:模块功能分析
在分析发送引擎的具体操作之前,需要多这个模块实现的功能进行简单的分析。...
本文是该系列的第15篇。数字控制振荡器(NCO)是FPGA中常用的一个模块,在《FPGA数字信号处理系列》第一篇就对其做了相关介绍。System Generator中的block大致可以分为两类:高层次封装(面向系统级,如第2篇设计中用到的Digital FIR Filter)和低层次封装(面向底层,与FPGA资源的联系更直接)。
本文将采用IIR滤波器、DDS、DDS Compile...
1. 原地交换两个数字
Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例:
x,y= 10,20print(x,y)x,y= y,xprint(x,y)#1 (10, 20)#2 (20, 10)
赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量 和 。
一旦赋值完成,...
一 、前言
本文设计思想采用明德扬至简设计法。VGA是最常见的视频显示接口,时序也较为简单。本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采集图像以及HDMI高清数字显示方式打个基础。
二、VGA显示原理
关于VGA的详细解释可查看参考文献1,这里主要讲解下根据VGA的分辨率计算时钟频率的方式。...
第一章 FPGA基础及电路设计
FPGA基础及电路设计包含两个方面的内容,一个是FPGA基础及7系列FPGA基本原理,另外就是FPGA电路设计,FPG广泛应用于军事、医疗、工业、通信等领域,下面是两款实验板:
FPGA基础及7系列FPGA基本原理
FPGA概述
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、...