技术

机器人技术研究人员和工程师可以使用 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 第一步:...
本文主要介绍如何使用 HSI 工具来创建一个定制驱动程序,使 xparameters.h 文件驻留在 SDK 中。 第 1 步:在 IP 打包器中创建 IP 在以下实例中创建一个简单的 AXI 从 IP 并连接至 MPSoC 器件: 默认情况下,IP 打包器为 IP 生成一个简单的驱动程序,以便在硬件导出至 SDK 时,将该驱动程序打包在硬件平台中。 步骤 2:...
本文是该系列的第13篇。Vivado HLS是Xilinx FPGA开发套件中的一款软件,可以使用C/C++语言进行设计,并转换为RTL级模型。System Generator中的Vivado HLS block可以将HLS开发软件设计的C/C++代码整合到Simulink环境中,利用Simulink强大的仿真特性对设计进行仿真测试。 ug948中提供的官方例程为图像的中值滤波,...
作者:OpensLee,FPGA开源工作室 1 背景知识 上一节《Zynq-7000 ARM端MIO的使用》讲解了PS端MIO的使用,本节讲解ARM处理器通过emio(Extendable Multiuse I/O)控制PL端接口。如下图所示,ZYNQ-7000的GPIO分为两种(MIO,EMIO)。EMIO分布在Bank2和BANK3,共有64个引脚可以使用。 如下图所示,...
作者:作者:德州仪器 Chris Glaser 随着电子设备的尺寸越来越小,电源设计人员在设计电源时必须考虑热限值的问题。如果一个较小的电源无法在特定的应用环境(包括环境温度)下以高负载运行,那么它就等同于没有用处。 降额曲线中就有一种常见的热限值,该热限值可以在大多数的电源模块数据表中看到。降额曲线能够显示在不同环境温度下可拉电流或功率的大小,同时仍然保持电源模块在其温度规格范围内...
无线通信是现在应用最为广泛的通信技术之一,其核心是把要传输的数据调制在载波上发射出去,载波状态的变化承载了不同的信息。 如下图所示,载波信号的状态变化可以分为幅度变化、频率变化以及相位变化,因此对应的就有AM(Amplitude Modulation)或ASK(Amplitude Shift Keying)调制、FM(Frequency Modulation)或FSK(Frequency...
作者:卢佳柔,新通讯 2018 年 9 月号 211 期《 行家出手 》 自驾车商机诱人,驱动传统车厂与物联网厂商跨界抢进,更加速人工智能(AI)、先进驾驶辅助系统(ADAS)发展愈趋白热化。而嵌入式视觉也搭上AI与ADAS发展的顺风车,成为实现自驾车发展不可或缺的关键技术,为了要满足嵌入式视觉技术的灵活度,低延迟、低功耗与低成本的要素缺一不可。 赛灵思(Xilinx)...
阻塞与非阻塞赋值的语言结构是Verilog语言中最难理解的概念之一。 有这样的两个要点: (1)在描述组合逻辑的always块中用阻塞赋值,则综合成组合逻辑的电路结构; **(2)在描述时序逻辑的always块中用非阻塞赋值,则综合成时序逻辑的电路结构。 这样做的原因是:** 这是因为要使综合前仿真和综合后仿真一致的缘故。 为了更好地理解上述要点,...
作者:OpenSLee 1. 背景知识 Xilinx Zynq-7000 芯片的PS端MIO(multiuse I/O)所在位置如下图红色框所示。MIO(0:15)在bank0上,MIO(16:53)在bank1上。他们不需要管脚约束,既可以当做PS 端普通的IO也可以用做PS端SPI、I2C、CAN等总线。 本节将使用MIO的GPIO功能实现LED流水灯...
本文是该系列的第12篇,上一篇介绍了在System Generator设计中使用Black Box调用HDL代码的方法,并使用Simulink+Vivado Simulator进行了协同仿真。本文将对该block及其中涉及到的MATLAB配置文件作详细介绍。 HDL文件使用限制 想在Black Box中导入HDL文件,Verilog/VHDL文件必须遵循以下限制: 模块名/...
作者:Kevin Zhang 本篇文章整理一下同步FIFO的实现。首先介绍一下FIFO的基础知识: fifo是 first input first output 的缩写,即先进先出队列,fifo一般用作不同时钟域的缓冲器。fifo根据读和写的时钟是否为同一时钟分为同步fifo和异步fifo。异步fifo相比同步fifo来说,设计更加复杂一点。本文中先讲同步fifo的一种设计方法。...
初学Xilinx SDK的开发,下面记录使用到的API函数及自己的理解。若有误,还请指教。 1、XScuTimer_Config *XScuTimer_LookupConfig(u16 DeviceId) 名称 代码 解释 函数名...
作者:OpenSLee 1. 背景知识 Helloworld 实验总是各种编程语言的开始第一课,这里我们将使用xilinx zynq-7000芯片ARM端完成串口打印”Helloworld”实验,旨在体验一下zynq-7000 的开发流程,为以后的zynq-7000的开发打下基础。 2. Zynq-7000 HelloWord 本人使用的zynq-...
定义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窗口中,进行后续设置...
作者:圆宵,来源:FPGA那点事儿 串口是很常用的通信端口,其速率比较慢,控制也比较简单,一般来说,使用时不会出现太大的问题。但笔者前一阵调试一块zynq的板子,用CPU通过串口和板卡上的一款芯片进行通信时,却也碰到了不大不小的麻烦。现在把解决问题的过程分享出来,虽然犯的都是很low的错误,但是也希望能对读者有一些借鉴。 整个系统中,涉及串口通信的部分大概是这样的:...
作者:Keith Szolusha 和 Kyle Lawrence 机器视觉系统使用非常短的强光闪烁来产生用于各种数据处理应用的高速图像。例如,快速移动的传送带通过机器视觉系统进行快速标签和缺陷检测。红外和激光LED闪光灯常用于近程和运动检测机器视觉。安全系统发出高速、难以察觉的LED闪光灯来检测运动,捕获和存储安全影像。 所有这些系统都存在的一个挑战,即产生非常高的电流和短时间(微秒)...
没接触zynq之前,只用过FPGA,在FPGA中用verilog编程简单明了,后来稍微学习过一点nios ii,就在FPGA中也用过一点点nios ii。所以在刚接触zynq的时候,我就感觉zynq跟altera的FPGA和nios ii的编程肯定会有一些相似的地方。学习zynq的时候,一开始我就想弄清楚三个问题,第一zynq中怎么使用纯PL(programmable logic)部分?(...
作者:OpenS_Lee 1 概述 Vivado HLS 是 Xilinx 提供的一个工具,是 Vivado Design Suite 的一部分,能把基于 C 的设计 (C、C++ 或 SystemC)转换成在 Xilinx 全可编程芯片上实现用的 RTL 设计文件 (VHDL/Verilog 或 SystemC)。 1.1 vivado hls 的设计流程 图1...
对于FPGA编程时的v文件中的寄存器,在SDK编程时需要一些读写操作,以实现PS与PL部分的信息交换。下面用一具体例子记录所需要的步骤 。如若有误请指正。 首先需要将v文件代码封装为带有AXI总线的IP,才能实现PS与PL的通信。步骤如下: 1、vivado中打开工程,Tools->Create and Package IP,下一步; 2、选择封装带有AXI4总线的,如下图...
DCI与内部参考电压 Xilinx FPGA提供了DCI(Digitally Controlled Impedance)技术,包括两个功能:(1).控制驱动器的输出阻抗;(2).为驱动器或发送器添加一个并行端接,在传输线上得到精确的特征阻抗匹配,以提高信号完整性。DCI会主动调整I/O bank内的阻抗,以调整放在VRN和VRP管脚之间的外部精准参考电阻,这样可以补偿由于工艺变化、...
FPGA中有符号数和无符号数的加法运算 首先定义一个B比特的二进制数: verilog HDL表示正数就按一般的规则即可,这里主要讲如何表示负数? 无符号数 将(1)转换成十进制为: 有符号数 有符号数则指所有二进制数均是补码形式的整数。 首先声明端口时增加signed关键字即可。对于B比特的二进制数据,装换成十进制数为: //verilog...
zynq AXI是很重要的内容,本篇仅是简单的介绍。大量参考了其他书籍。 AXI (Advanced eXtensible Interface) 本是由ARM公司提出的一种总线协议, Xilinx从 6 系列的 FPGA 开始对 AXI 总线提供支持,目前使用 AXI4 版本。 1.AXI总线 ZYNQ有三种AXI总线: (1)AXI4:(For high-...
作者:葛兴 cortex-M0是ARM公司的一款开源内核,以低功耗著称,本文提纲挈领的讲述了用FPGA实现SOPC的流程。 1、开源核心 从头开始,在ARM官网上注册,下载ARM cortex M0的源代码以及大量的参考学习文献。 2、接口表 明确了cmsdk_mcu的系统接口表及其意义,列出了接口表。 3、内核研究...
DDR3:使用流程 一. 配置过程 1>首先找到IP核 2>选择兼容的片子,这个ddr兼容K7系列的三个片子 3>选择ddr3 4>配置工作时钟部分 配置时钟前我们先了解一下ddr3的ip核的时钟关系,如下图,共三个时钟。Ip核心的工作时钟和参考时钟,必须直接连在电路板上,不可由IP核分频得到。 IP核的工作时钟常用频率:50M...
1.添加debug核的合理方法是在源代码中添加(*mark_debug="true"*),综合后,打开综合结果,set debug内这些标记的信号全部在网标内,不会被优化掉。如果不在代码里加这些标记,直接在综合结果里添加net,很多感兴趣的信号会被优化掉,且残缺不全。 2.若果debug核使用的时钟是zynq ps端输出的时钟,那么烧录完bit文件后,是不会自动弹出debug界面的,...
作者:Kevin Zhang 在学习FPGA一段时间之后,昨天和师兄交流面试题,题目中问CLB、LUT的概念,我都是不知道这是什么?经过学习,总结如下内容: FPGA可以分为以下三种资源: 1. 逻辑资源:包含CLB,block rams,乘法器 2. 连接资源:可编程互联线、IOB 3. 其他资源:全局时钟网络; 4. 当然高端的FPGA除了以上三种资源,还有集成了其他资源...
Vivado运行Report Timing Summary时,只显示各个子项目最差的十条路径,很可能并不包含你最关心的路近,这个时候显示指定路径的时序报告就显得很重要了,下面就简单介绍一下Vivado下显示指定路径时序报告的流程。 1.打开布局布线后的结果 2.指定到工具下的时序报告 3.选择路径的起点和终点 4.双击路径时序结果显示详细的时序情况...
作者:Sefa Tanis 随着汽车雷达越来越普及,城市环境中拥挤不堪的射频频谱将变成一个电子战场。雷达将面临无意或有意干扰的组合式攻击,设计人员必须像在电子战(EW)中一样实施反干扰技术。 汽车雷达通常会遭受拒绝式或欺骗式干扰。拒绝式干扰会致盲受害车辆雷达。这种技术会降低信噪比,导致目标检测的概率降低。另一方面,欺骗式干扰会让受害车辆雷达"认为"存在虚假目标。...
初学Xilinx SDK的开发,下面记录使用到的API函数及自己的理解。若有误,还请指教。 xgpio函数 1、int XGpio_Initialize(XGpio * InstancePtr, u16 DeviceId) 名称 代码 解释 函数名...
作者:John Swanson,Synopsys公司高级产品营销经理 汽车电子系统的新时代已经减少了事故和死亡事件。进一步改进用于安全关键型汽车应用的先进驾驶辅助系统(ADAS)将是下一个浪潮,这需要大量的数据传输和后续处理。系统正变得越来越复杂,因为它们把来自紧急制动、碰撞避免、车道偏离警告、完全自动驾驶等方面的ADAS应用结合到了一起,使得预测延时和带宽保证越来越重要。例如,...
本文是该系列的第11篇。从前面的设计中可以看出,System Generator最适合的是完成DSP系统的设计,可以大大提高设计效率,而其它设计任务通常仍需要使用HDL模型来设计。 但是System Generator提供了一个特性:可以通过black box这个block将其它HDL文件以黑盒的形式封装到System Generator设计中,在仿真时使用Simulink+Vivado...
JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。 一、引脚定义 Test Clock Input (TCK) -----强制要求1 TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。 Test...
作者:Ian Collins 摘要: 锁相环(PLL)电路存在于各种高频应用中,从简单的时钟净化电路到用于高性能无线电通信链路的本振(LO),以及矢量网络分析仪(VNA)中的超快开关频率合成器。本文将参考上述各种应用来介绍PLL电路的一些构建模块,以指导器件选择和每种不同应用内部的权衡考虑,这对新手和PLL专家均有帮助。...
静态时序分析是学习FPGA必须学习的一个知识点,通过一段时间的学习,先将自己所学到的一点静态时序分析的基础稍作总结。 这是一张再熟悉不过的图形,以及两个基础公式 Tperiod>Tcko+Tlogic+Tnet+Tsetup-Tclk_skew (1) Tcko+Tlogic+Tnet>Thold+Tclk_skew...
CNN由由可学习权重和偏置的神经元组成。每个神经元接收多个输入,对它们进行加权求和,将其传递给一个激活函数并用一个输出作为响应。整个网络有一个损失函数,在神经网络开发过程中的技巧和窍门仍然适用于CNN。很简单,对吧? 那么,卷积神经网络与神经网络有什么不同呢? 和神经网络输入不同,这里的输入是一个多通道图像(在这种情况下是3通道,如RGB)。 在我们深入之前,...
最近在做载波同步锁相环的时候,需要用到FFT核对AD采样数据进行傅里叶变换,以得到锁相环中NCO的初始频率控制字。关于FFT蝶形算法,包括高版本的FFT核(带AXI4协议)在这先不阐述了。 本文主要是记录7.1版本的FFT核学习仿真记录,把摸索过程中遇到一些问题和解决方法都记录下来,方便以后借鉴和使用。 首先是IP核的配置: 配置的第一页主要是通道数量设置,转换点数设置,...
相信很多朋友在调试ZYNQ的时候也遇到过这个问题,在SDK模式先DEBUG电路板的时候,执行完debug后,分布运行有时候进入C语言的main函数,有时候进入编译后的汇编main函数。 对于我这种汇编小白,C函数显得更容易理解,也方便调试。下面解释一下为什么会出现这两种现象,完全是因为我们操作的原因,因而完全可以避免。...
1. Precision:仿真计算时可按任意精度定点数进行,Full Precision,提供足够的精度;User defined Percision,由开发人员定义位数和小数位。(FPGA上运行的是浮点型?) 2. Aritchmetic Type:可以定义无符号或带符号位(二进制补码)作为输出类型。 3. Number of bits:定义定点数的数据格式...
本文是该系列的第10篇,上一篇介绍了在System Generator设计中使用MCode模块调用MATLAB代码来完成逻辑控制。本文将介绍System Generator支持的所有MATLAB语法。 限于篇幅,本文只记录了经常用到或相对重要的内容,更详细的信息可以参考xilinx官方文档ug958->第一章->MCode小节。 MCode block特性...
一、嵌入式Linux系统组成 zynq平台上的Linux系统由四部分组成:BOOT.bin、devicetree.dtb、uImage、uramdisk.image.gz。 (1)BOOT.bin:启动引导程序,包括第一阶段引导程序(FSBL)和第二阶段引导程序(SSBL),zynq平台上一般还需要一个system.bit文件,用于构建PL部分。 (2)uImage:...
作者:NingHeChuan(宁河川)  对于电子工程师来说,很多电路设计仿真软件都是特别大的,安装下来一般都是上G,甚至几十G,而且win7的兼容性也是最好的,不愿意升级win10是因为麻烦,而且没有必要,对于很多的设计软件来说win10还没有完全兼容,而且还不停自动更新,时间很珍贵的,谁愿意浪费大把时间搞什么兼容性问题,而不是code or design。...
简介 本篇博客大部分内容前三篇博客都已经包含了,此处重点叙述不同之处,主要对比Tcl命令的不同和解决SDSoc程序找不到基地址的问题。 使用ZedBoard开发板,SDSoc 2017.4, Win10系统;此处通过AXI_GPIO点亮ZedBoard板子上连接在PL端的8个LED灯。 Tcl命令 搭建平台的步骤在 SDSoc学习(二)...