创建综合运行
一个“运行(run)”是指定义和配置设计在综合过程中的各方面,包括:使用 的Xilinx器件、应用的约束集、启动单个或多个综合的选项、控制综合引擎结果的选项。点击Flow菜单中的Create Funs,或在Design Runs窗口中:
点击工具栏中的+,即可打开新建运行窗口:
选择Synthesis,点击Next,打开配置综合运行的窗口:...
技术
作者:高世皓
仿真命令
vlib work // 建库(在该目录下建立一个work目录,请注意不要用操作系统来新建一个work的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE自动生成的_info文件)
vmap work work // 映射(将目前的逻辑工作库work和实际工作库work映射对应...
一、概述
LUT中文名字叫查找表。以7系列的FPGA为例,每一个Slice里面有四个LUT。FPGA就是通过LUT实现大量的组合逻辑,以及SLICEM里面的LUT还可以构成RAM,Shift Register,以及Multiplexers。这篇文章我们一起来学习LUT如何构成组合逻辑。
二、LUT实现原理
LUT,中文名字叫做查找表,...
最近在学习FPGA DSP相关设计,从滤波器开始学习,最开始先生成两个正弦信号,产生混频信号,通过modelsim仿真来验证设计。 本案例用Block Design方法进行设计(也可以选择编写.v文件的形式进行设计)。
信号源产生
本次案例用DDS IP核产生两个简单的正弦信号,为了方便后面观察,这里分别产生一个4M和一个5M的正弦信号。
双击打开DDS IP核进入设置,...
一、前言
之前ZYNQ与PC之间的网络连接依赖于外接硬件协议栈芯片,虽然C驱动非常简单,但网络带宽受限。现采用LWIP+PS端MAC控制器+PHY芯片的通用架构。关于LWIP库,已经有很多现成的资料和书籍。其有两套API,一个是SOCKET,另一个是本例中要用到的RAW。RAW API理解起来较为复杂,整个程序基于中断机制运行,通过函数指针完成多层回调函数的执行。SOCKET...
在sdk中选择lwip模板,编译调试可轻松连接成功并进行通信,模板中代码完成的任务是client给server发什么,server就会回复什么。
但是传输速度非常低下,只有50KB左右,所以需要改进速度,修改lwip BSP中的设置参数可明显改进传输速度,默认BSP参数是:
需要修改的参数如下:
MEM_SIZE 524288
MEMP_NUM_PBUF 1024...
最近一个项目开始使用Xilinx的ZU+系列MPSoC,于是对其官网上的相关文档进行了学习梳理,包括电源、时钟、复位、配置和外围接口等。
本篇就电源部分进行梳理,其他部分会在后续的文章进行梳理,如有不妥之处,敬请留言指正为谢!
1、电源概述
引用UG1085中的一张图可以看出ZU+的电源还是相当复杂的,不过细细琢磨也就分为两部分:PL和PS,...
作者:huyr830
下是看书归纳所写。
Python语言介绍:
1. Python是一门跨平台、开源、免费的解释型高级动态编程语言。
2. Python支持命令式编程(How to do)、函数式编程(What to do),完全支持面向对象程序设计,拥有大量扩展库。
3. Python也被誉为胶水语言。
胶水语言:可以把多种不同语言编写的程序融合到一起实现无缝拼接,...
作者:OpenSLee,来源:FPGA开源工作室
1 背景知识
在肤色识别算法中,常用的颜色空间为Ycbcr,Y代表亮度,cb代表蓝色分量,cr代表红色分量。
由于肤色在YCbCr 空间受亮度信息的影响较小,本算法直接考虑 YCbCr 空间的 CbCr分量,映射为两维独立分布的 CbCr空间。在 CbCr空间下,肤色类聚性好,利用人工阈值法将肤色与非肤色区域分开,形成二值图像...
作者:没落骑士
一、前言
本文设计思想采用明德扬至简设计法。以太网这一高效实用的数据传输方式应用于各个领域,如网络交换设备,高速网络相机等。虽然各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...