技术

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、...
机器人技术研究人员和工程师可以使用 MATLAB 和 Simulink 设计和优化算法,为真实系统建立模型,并自动生成代码——所有过程均在一个软件环境下完成。 MATLAB 和 Simulink 可以实现: 用您开发的算法连接并控制您的机器人 开发与硬件无关的算法并连接到机器人操作系统(ROS) 连接一系列传感器和执行机构,以便发送控制信号或分析多种类型的数据 为嵌入式目标(...
作者:lee神,FPGA开源工作室 1. xilinx FPGA简介 FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。...
本文是该系列的第14篇。第5篇中在介绍Gateway In block时谈到了System Generator中的数据类型,及不同的量化和溢出方式。本文将以两个简单的设计实例,更直观地说明不同的量化和溢出方式有什么区别。 溢出(Overflow)方式对比 从Simulink向System Generator的数据转换过程中可能会出现溢出(...
作者:Steve Leibson 很多嵌入式设计使用基于微处理器和微控制器的单板计算机 (SBC) 和系统级模块 (SoM)(例如,请参阅“使用 Raspberry Pi 3 构建低成本工业控制器”)。但是,更多嵌入式应用无法忍受与软件相关的响应时间所带来的延迟。 这些应用需要只有定制硬件方可实现的额外性能,而开发定制硬件的最快捷方法就是使用 FPGA。 本文将讨论使用 SoM...
vivado: 1,打开vivado,选择菜单栏里的Tools->options 2,选择options里的TextEditor->fonts SDK: 1,打开SDK,选择Window->Preferences 2,选择General->Appearance->Colors and Fonts ->Basic->text fonts->edit...
简介 经过一段时间的学习,这里将PCIe DMA模式的学习结果做一个总结,由于手里没有包含PCIe的板子,因此和学习PIO一样对DMA模式中的关键模块的代码进行逐条分析,希望对和我一样的初学者有所帮助。 软件:VIVADO2017.4。 第一步:PCIe DMA基础知识 在上一篇博客 PCIe学习(一)中已经对PCIe的部分基础知识进行了陈述,...
1.加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用“+”来连接两个字符串; print 'Python' + 'Tab' 结果: PythonTab 2.逗号 第二种比较特殊,使用逗号连接两个字符串,如果两个字符串用“逗号”隔开,那么这两个字符串将被连接,但是,字符串之间会多出一个空格;...
本系列第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端口信息;...
简介 学习PCIe有一段时间了,这里将这段时间的学习做一个总结。由于手里没有包含PCIe的板子,因此所做的也就是尽力将XILINX提供的实例工程中的关键模块进行分析,包括 PIO_RX_ENGINE.v,PIO_TX_ENGINE.v,PIO_EP_MEM_ACCESS.v ,希望对和我一样的初学者有所帮助。 软件:VIVADO2017.4 第一步:...