技术

本文主要介绍如何使用 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学习(二)...
作者 | Conor Dewey 编译 | 专知 整理 | Yingying, Jiahui 不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数据分析,这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够提升运行效率,还能够使代码更加“优美”。 一行代码定义List 定义某种列表时,写For 循环过于麻烦,幸运的是,...
本文是该系列的第9篇。FPGA设计中经常用到一些控制逻辑,如有限状态机(FSM),如果用各种block搭建一个FSM比较麻烦。System Generator支持调用MATLAB代码,通常可以编写MATLAB代码来实现FSM等控制逻辑,通过MCode block调用到System Generator设计中。 本文将使用MATLAB代码设计一个FSM,对“1011”这个序列进行检测。...
近日,想必各位科技爱好者的朋友圈都被一篇发表在第25届IEEE国际讨论会上,用Python开发FPGA的论文刷屏了吧,那么这是如何实现的呢?今天,就请各位看官和小编一起来了解一下,这个构想的实现基础——PYNQ。 图为该篇论文 PYNQ介绍 PYNQ全称为Python Productivity for Zynq,即在原有Zynq架构的基础上,添加了对python的支持。...
作者:Paul S.Levy, 赛灵思功能安全系统高级工程师 “功能安全(Functional Safety)”研究的是机器发生故障或运行环境中断时如何降低其对人和设备造成的危害的方法和措施。试想一下,在刚刚结束的 2018年的足球世界杯(2018 FIFA)中,如果我们将这种研究应用到足球比赛中,裁判员就有能力和权力在他们觉得有犯规行为时暂停比赛。当然,...
简介 前段时间买了一块米联客的7010开发板,打算尝试为这块开发板搭建一个简单平台。 用户自定义开发板与SDSoc直接支持的开发板的区别在于,直接支持的开发板已经根据板子上的硬件完成了一系列重要配置(如时钟、DDR型号),所以在为用户开发板搭建平台时,只需要根据该开发板的硬件实际情况进行相应的配置即可。 这里先尝试着点亮一个直接连在MIO(MIO7)...
1.定义   FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。   FIFO一般用于不同时钟域之间的数据传输,...
前言 利用vivado高层次综合工具可将C代码综合成HDL语言。本文将详细解析一维有限长离散卷积的例子,并分析综合结果。另外,vivado HLS的使用方法见笔者另一篇博文: http://xilinx.eetrend.com/blog/13178 本文不再赘述。 维离散卷积原理 一维离散卷积就是卷积核与输入序列值两两相乘再求和,公式为:...
PetaLinux 工具提供在 Xilinx 处理系统上定制、构建和调配嵌入式 Linux 解决方案所需的所有组件。理想适用于提升设计生产力,该解决方案与 Xilinx 硬件设计工具协同工作,为 Zynq® UltraScale+™ MPSoC、 Zynq®-7000 SoC、和 MicroBlaze™ 简化了 Linux 系统的开发。 PetaLinux 开发工具(主机)...
本文是该系列的第8篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第7篇介绍了其中数据类型的选择与位宽截断的问题。本文将对其中使用到的Reinterpret和Convert模块进行详细介绍。 模块功能概述 数据转换,数据类型、位宽等问题都会影响到计算精度,对于设计者而言,需要考虑的就是相关影响是否可以接受,即是否会影响到实际的系统性能。...