技术

作者:没落骑士 一、前言     本文设计思想采用明德扬至简设计法。以太网这一高效实用的数据传输方式应用于各个领域,如网络交换设备,高速网络相机等。虽然各FPGA厂商都提供MAC IP核,但大多收费,有时无法破解。不同厂家之间无法移植,而且为了通用性考虑牺牲了效率,因此自己动手写一个以太网MAC是个不错的选择。   本博文讨论通过MDIO接口管理PHY芯片来验证其正确工作,...
AXI-DMA的linux驱动 一、搭建硬件环境 vivado版本2017.4,芯片为7010,不过不管什么版本和芯片大致步骤是一样的 本文工程文件:https://gitee.com/long_fly/AXIDMA_linux 硬件平台PL的搭建同ZYNQ基础系列(六) DMA基本用法,在这个工程的基础上添加SD卡(根据自己的开发板硬件选择相应的引脚)...
一. 概述 这里以7系列的FPGA为例,先从整体上去了解一下FPGA内部可编程逻辑资源的结构。了解FPGA器件的内部资源与结构有利于我们优化设计与评估设计资源。 现在的FPGA里面有很多存储资源,DSP(数字信号处理)资源,布线通道,I/O资源,当然最根本的还是CLB(Configurable Logic Block)。Xilinx的资源分布采用ASMBL架构。...
串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数字GPIO数量。 SPI是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。...
作者:OpenSLee,来源:FPGA开源工作室 1背景知识 平滑也称模糊, 是一项简单且使用频率很高的图像处理方法。平滑处理时需要用到一个 滤波器 。 最常用的滤波器是线性滤波器,线性滤波处理的输出像素值 ( g(i,j)) 是输入像素值 (f(i+k,j+l))的加权和 : 称为 核, 它仅仅是一个加权系数。不妨把 滤波器 想象成一个包含加权系数的窗口,...
综合(Synthesis)是指将RTL设计转换为门级描述。Vivado开发套件中的综合工具是一款时序驱动型、专为内存使用率和性能优化的综合工具,支持System Verilog 2012、Verilog 2005、VHDL 2008、混合语言中的可综合子集,以及XDC设计约束文件(基于工业标准的SDC文件),此外还支持RTL属性来控制综合细节。 综合设置选项 在Flow...
作者:做但不能忘思考,来源:FPGA2嵌入式 项目的设计初期,我们需要选型FPGA后进行FPGA原理图设计,FPGA的原理图设计和单片机的原理图设计有很大的区别:单片机的外设是固定的引脚,我们只需要根据数据手册确定各个外设的引脚就行,但是,FPGA却大不相同同,引脚外设既灵活又有很多约束条件,灵活是不同的UART/SPI等外设引脚的确定可以根据需求改变,很多约束条件指:配置引脚、...
对于一个新手来说,深度学习术语可能非常难以理解。本表试图解释深度学习常用术语并链接到原始参考,以帮助读者深入了解特定主题。 深度学习与“一般”的机器学习术语之间的界限非常模糊。例如,我这里不包括“交叉验证”,因为它是一种通用技术,用于整个机器学习。但是,我加入了softmax或word2vec等术语,因为它们通常与深度学习相关,即使它们不是深度学习技术。 激活函数...
利用ZYNQ验证算法的一大优势在于,可以在上位机发送指令借助CPU的控制能力和C语言易开发特点,实时配置算法模块的工作模式、参数等对来对其算法模块性能进行全面的评估。最重要的是无需重新综合硬件模块。   接着上篇该系列博文,在sysGen中设计模块功能为:根据模式选择输入,来完成乘2或除2两种运算,0乘1除。 测试激励选用From Workspace模块,...
时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习Vivado软件时序分析的笔记,小编这里使用的是18.1版本的Vivado。 这次的练习选择的是ZYNQ的芯片,原本工程是工作在100MHz的时钟,但是作为练习,我们可以把时钟调到一个极限的程度来进行优化。 首先,打开一个工程,更改一下时钟频率,...
tftp 可传输单个文件,不能传文件夹 需要通过命令传输文件,略显复杂 ==一般调试kernel时,用uboot通过tftp方式启动,不用每次都烧写存储介质== nfs 在host linux(ubuntu)上的nfs文件夹中存放文件 开发板上mount ubuntu的文件夹,mount后就像自己的文件一样 这种方式共享文件很方便 也有linux启动后,拿nfs作为根文件系统...
  Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本篇文章主要介绍BRAM  IP核的使用。     BRAM是FPGA定制的RAM资源,有着较大的存储空间,且在日常的工程中使用较为频繁。BRAM以阵列的方式排布于FPGA的内部,是FPGA实现各种存储功能的主要部分,是真正的双读/...
源代码级别调试 Vivado Simulator提供了在仿真过程中debug设计的特性,通过为源代码添加一些可控制的执行条件来检查出问题的地方。总的来说有三种调试方法: 1.使用Step逐行调试 Step命令一次只执行HDL代码中的一行,从而验证和调试设计。运行仿真后,点击Run->Step或工具栏中的Step可执行该命令。Restart可以将时间复位到TestBench的开始。...
本博文主要是对基于PCIE(mcap)的部分可重构实现的步骤做一个简单的演示,如有错误之处,欢迎批评指正。值得说明的是,基于PCIE的部分可重构需在ultrascale系列及ultrascale+芯片才能实现,具体哪些系列能实现哪种配置方式如下图所示: 图1 本质上来说,无论是JTAG还是ICAP或者MCAP以及其它FPGA的配置方式,目的都是配置FPGA的逻辑。...
有了BOOT.BIN(fsbl+pmu+atl+uboot)、uImage、uramdisk.image.gz,dtb文件,就可以启动了。把上述文件统统拷贝到SD卡,并设置开发板为SD卡启动。 0. U-BOOT启动参数 设置启动参数,然后启动 fatload mmc 0 0x1000000 uImage;fatload mmc 0 0x2000000 uramdisk.image....
本文是该系列的第22篇。上一篇介绍了使用Image From File和Video Viewer完成图像的采集和输出,并将两部分分别打包为子系统,使其具有通用性。本文将介绍如何使用Simulink提供的回调函数机制,实现从MATLAB工作空间采集和输出图像。 Simulink回调函数机制 在空白处右键->Model Properties,切换到“Callbacks”标签下,...
开发环境: Windows下的Vivado套件 Linux ubuntu Step1:首先从Xilinx GitHub上下载Device Tree Generator(设备树生成器)的BSP https://github.com/Xilinx/device-tree-xlnx/pulls 并将其复制到SDK的安装目录下 Step2:配置SDK开发环境,Xilinx...
PYNQ = Python + ZYNQ —— ZYNQ部分功能的Python化 PYNQ 优点: 1、 Python用于ZYNQ开发,Python库和FPGA硬件库可以直接调用,极大加快开发进程、缩短开发周期、降低开发难度,更方便、快捷; 2、 用PYNQ开发,当Python有更加有效的可用库时(如图像处理—OpenCV),其性能要比C/C++开发更强...
在设计中,所有的算数运算符都是按照无符号数进行的。如果要完成有符号数计算,对于加、减操作通过补码处理即可用无符号加法完成。对于乘法操作,无符号数直接采用“*”运算符,有符号数运算可通过定义输出为 signed 来处理。 通过“*”运算符完成有符号数的乘法运算。 module ceshi (out, clk, a, b); output [15:0] out; input clk...
使用波形配置文件 Vivado Simulator允许用户自定义波形显示方式,当前的显示状态称作波形配置。波形配置可以保存为WCFG文件,供以后使用。一个波形配置对应一个Wave窗口,没有保存的波形配置显示为untitled。打开仿真后,File菜单中有与波形配置相关的指令: 这些控制功能依次是: New Waveform Configuration:创建一个新的波形配置...
作者:leon_zeng0 Zynq 有一个64位全局定时器,我觉得有点实用价值,比如精确的实时计算,代码运行时间计算。 怎么用呢?我就google 了一下,有篇文章推荐查看2个文件。这2个文件名分别是 sleep.c, xtime_l.c。 这2个文件是Vivado 安装的时候就安装好了的样例程序,我的是在这个目录下: C:\Xilinx\SDK\2015.4\data\...
用petalinux的预编译目录里有rootfs文件,选择rootfs.tar.gz作为初始输入。 1.原始文件——>uramdisk 1.1 解压原始rootfs.tar.gz,得到若干文件 1.2 !!!制作空ramdisk.image 命令: dd if=/dev/zero of=ramdisk.image bs=1024 count=131072 mke2fs -F...
鉴于芯片设计的复杂度提升, 成功设计一个芯片所牵扯的步骤与过程也愈加复杂,所需花费的资金也成倍增加,一个典型的芯片开发项目的周期和花销如下所示 可以见到在芯片制造出来之前,很多精力会花费在RTL代码验证工作上,另外软件的相关开发工作,也会在得到芯片前开始,这2方面都需要借助FPGA原形来模拟芯片的行为,帮助硬件开发和软件开发者,共同提升工作效率。 FPGA原型在数字芯片设计中,...
作者:胡建东,玩儿转FPGA 实现一个4bit的移位寄存器如下,不带复位 module shift_reg( input clk, input rst, input din, output dout ); reg [ 3:0] buff...
本文从软件工程师角度对HDMI spec进行解析,基于的spec版本为1.4,也是设备支持最多最成熟的版本,目前最新版本为2.0。 1 概述 HDMI(High-Definition Multiface Interface)是Hitachi, Panasonic, Philips, SiliconImage, Sony, Thomson,...
本文是该系列的第21篇。前几篇介绍的音频信号处理本质上属于一维信号,直接采样与输出即可。但图像属于二维信号,如果想在Simulink中采集和输出图像,进行图像处理算法的仿真时会遇到一些问题。本文将介绍如何搭建图像的采集与输出模型。 采集图像需要解决的问题 Computer Vision System Toolbox中包含两个模块:Image From File可以读取图片格式的文件;...
IP核描述 10 Giga Ethernet Sub System , 参考文档PG157: https://www.xilinx.com/support/documentation/ip_documentation/axi_10g_ethernet/v3_1/pg157-axi-10g-ethernet.pdf IP核提供一个MAC模块和一个PCS...
尽管 Vivado 不支持 “placement cost tale”的功能,InTime 却有一个相似功能叫做“Placement Exploration”配方(Receipe),并且不会对性能产生任何影响。在本文中,我们将通过展示几则用户案例的结果,来了解这个布局配方的作用以及它能对您有哪些帮助。 1. 什么是“Placement Exploration”配方?...
译 | 王坚 整理 | AI时间 下面是十个Python中很有用的贴士和技巧。其中一些是初学这门语言常常会犯的错误。 注意:假设我们都用的是Python 3 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10] 大多初学者,根据之前语言的经验会大概这样来做...
一、前言   利用FPGA设计算法一直以来都是热点,同样也是难点。将复杂的数学公式 模型通过硬件系统来搭建,在低延时 高并行性等优势背后极大提高了设计难度和开发周期。Xilinx公司的sysGen(system generator)工具扩展了MATLAB的simulink,提供很多IP Catalog中没有的基础模块和针对DSP应用的硬件模型。...
1、介绍 本用户指南介绍了Digilent DVI-to-RGB视频解码器知识产权。 该IP直接连接到Sink器件的DVI 1.0规范中定义的原始转换最小化差分信号(TMDS)时钟和数据通道输入。 它解码视频流并输出24位RGB视频数据以及从TMDS链路恢复的像素时钟和同步信号。 2、特性 •直接连接到顶级数字视频接口(DVI)端口 •24位视频(带同步信号的时钟并行视频数据)输出...
0.顶层Makefile增加交叉编译器 顶层makefile: ARCH ?= $(SUBARCH) CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) 改为: ARCH ?= arm64 CROSS_COMPILE ?= aarch64-linux-gnu- 1.生成.config...
Vivado Simulator基本操作 Vivado Simulator是一款硬件描述语言事件驱动的仿真器,支持功能仿真和时序仿真,支持VHDL、Verilog、SystemVerilog和混合语言仿真。点击运行仿真后,工具栏中显示了控制仿真过程的常用功能按钮: 这些控制功能依次是: Restart:从0时刻开始重新运行仿真; Run All:...
什么是ttl电平 TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑"0",这被称做TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。 TTL电平信号对于计算机处理器控制的设备内部的数据传输是很理想的,首先计算机处理器控制的设备内部的数据传输对于电源的要求不高以及热损耗也较低,...
一、AXI DMA介绍   本篇博文讲述AXI DMA的一些使用总结,硬件IP子系统搭建与SDK C代码封装参考米联客ZYNQ教程。若想让ZYNQ的PS与PL两部分高速数据传输,需要利用PS的HP(高性能)接口通过AXI_DMA完成数据搬移,这正符合PG021 AXI DMA v7.1 LogiCORE IP Product Guide中介绍的AXI DMA的应用场景:The AXI...
【导读】Python在解决数据科学任务和挑战方面处于领先地位。而一些方便易用的库则帮助了开发人员高效开发。在这里我们整理了20个在深度学习、数据分析中最常用、最好用的Python库,供大家一起学习。 作者| ActiveWizards 编译|专知 整理|Yingying,李大囧 核心库与统计 NumPy 我们从科学应用程序库开始说起,NumPy是该领域的主要软件包之一...
本文是该系列的第20篇。数字水印是一种将标识信息嵌入到载体当中,且不影响载体使用的一种技术,主要分为时域水印嵌入算法(将水印嵌入到时域采样数据中)和变换域水印嵌入算法(先对音频做变换,将水印嵌入到变换域系数中)。本文将介绍一种简单的时域水印嵌入算法——LSB算法。 LSB算法 通常数字水印技术有不可感知性的要求,即嵌入数字水印后载体数据发生了变化,但是不会影响到该数据的使用,...
程序的格式框架 下面是一段温度转换的代码示例: #TempConvert.py TempStr = input("请输入带有符号的温度值:") if TempStr[-1] in['F','f']: C = (eval(TempStr[0:-1]) - 32)/1.8 print("转换后的温度是{:.2f}F".format(F)) elif TempStr...
作者:liuwanpeng 需要把若干文件打成大包,烧写到flash或者sd卡中,才能启动运行。 1.petalinux打包 petalinux-packet打包时,需要petalinux的工程,限制太死了,不用。 2 windows环境SDK打包 2.1 制作BOOT.bin 用SDK的图形界面搞定也是一样的。(markdown显示本地图片,路径里的\要换成/,蛋疼...
我第一次安装petalinux2018.2, 是在 ubuntu18, 因为最新的ubuntu 就是 ubuntu18。 在安装中会报一些错,但能安装完成。配置的时候也会报错。看到论坛提问,说目前petalinux2018.2 只是支持ubuntu16。这样我最后选择了ubuntu16。 我的ubuntu16 是安装在虚拟机里的 vm14。  1: 下载 下载地址是:...
Python初学者编码实践中经常遇到encode error,decode error,如下: 例1: UnicodeEncodeError: 'ascii' codec can't encode character u'\u5728' in position 1 例2: UnicodeDecodeError: 'utf-8' codec can't decode bytes...
 上篇该系列博文中讲述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...