技术
有了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.gz;fatload mmc 0 0x4000000 zynqmp-sf-zcu102.dtb;
setenv bootargs root=/dev/ram0
bootm 0x1000000 0x2000000 0x4000000
将上述参数固化到flash里,免得每次都要输入
本文是该系列的第22篇。上一篇介绍了使用Image From File和Video Viewer完成图像的采集和输出,并将两部分分别打包为子系统,使其具有通用性。本文将介绍如何使用Simulink提供的回调函数机制,实现从MATLAB工作空间采集和输出图像。
开发环境:
Windows下的Vivado套件
Linux ubuntu
Step1:首先从Xilinx GitHub上下载Device Tree Generator(设备树生成器)的BSP https://github.com/Xilinx/device-tree-xlnx/pulls 并将其复制到SDK的安装目录下
PYNQ = Python + ZYNQ —— ZYNQ部分功能的Python化
<strong>PYNQ</strong>
优点:
1、 Python用于ZYNQ开发,Python库和FPGA硬件库可以直接调用,极大加快开发进程、缩短开发周期、降低开发难度,更方便、快捷;
2、 用PYNQ开发,当Python有更加有效的可用库时(如图像处理—OpenCV),其性能要比C/C++开发更强。
缺点:
目前,PYNQ还不支持任何高级的综合,也无法将Python应用直接移植到FPGA中,仅能调用已有库。
<strong>ZYNQ</strong>
优点:
在设计中,所有的算数运算符都是按照无符号数进行的。如果要完成有符号数计算,对于加、减操作通过补码处理即可用无符号加法完成。对于乘法操作,无符号数直接采用“*”运算符,有符号数运算可通过定义输出为 signed 来处理。
通过“*”运算符完成有符号数的乘法运算。
module ceshi (out, clk, a, b);
output [15:0] out;
input clk;
//通过 signed 关键字定义输入端口的数据类型为有符号数
input signed [7:0] a;
input signed [7:0] b;
<font color="#FF8000">作者:leon_zeng0 </font>
Zynq 有一个64位全局定时器,我觉得有点实用价值,比如精确的实时计算,代码运行时间计算。
怎么用呢?我就google 了一下,有篇文章推荐查看2个文件。这2个文件名分别是 sleep.c, xtime_l.c。
这2个文件是Vivado 安装的时候就安装好了的样例程序,我的是在这个目录下:
C:\Xilinx\SDK\2015.4\data\embeddedsw\lib\bsp\standalone_v5_3\src\cortexa9
查看这2个文件,就可以清楚其用法了。
用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 ramdisk.image -L "ramdisk" -b 1024 -m 0
tune2fs ramdisk.image -i 0
chmod a+rwx ramdisk.image
执行过程:
鉴于芯片设计的复杂度提升, 成功设计一个芯片所牵扯的步骤与过程也愈加复杂,所需花费的资金也成倍增加,一个典型的芯片开发项目的周期和花销如下所示
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201810/13736-398…; width="670"></center>
<font color="#FF8000">作者:胡建东,玩儿转FPGA</font>
实现一个4bit的移位寄存器如下,不带复位
module shift_reg(
input clk,
input rst,
input din,
output dout
);
reg [ 3:0] buff;
assign dout = buff[3];
本文从软件工程师角度对HDMI spec进行解析,基于的spec版本为1.4,也是设备支持最多最成熟的版本,目前最新版本为2.0。
<strong>1 概述</strong>
HDMI(High-Definition Multiface Interface)是Hitachi, Panasonic, Philips, SiliconImage, Sony, Thomson, Toshiba几家公司共同发布的一款音视频传输协议,主要用于DVD, 机顶盒等音视频source到TV,显示器等sink设备的传输。传输基于的是TMDS(Transition Minimized Differential Signaling)协议。此外,使用TMDS也是DVI标准的主要特点 。
本文是该系列的第21篇。前几篇介绍的音频信号处理本质上属于一维信号,直接采样与输出即可。但图像属于二维信号,如果想在Simulink中采集和输出图像,进行图像处理算法的仿真时会遇到一些问题。本文将介绍如何搭建图像的采集与输出模型。
<strong>采集图像需要解决的问题</strong>
Computer Vision System Toolbox中包含两个模块:Image From File可以读取图片格式的文件;Video Viewer可以输入图像并显示(类似于Scope观察信号波形一样)。
IP核描述
10 Giga Ethernet Sub System , 参考文档PG157:
https://www.xilinx.com/support/documentation/ip_documentation/axi_10g_e…
尽管 Vivado 不支持 “placement cost tale”的功能,InTime 却有一个相似功能叫做“Placement Exploration”配方(Receipe),并且不会对性能产生任何影响。在本文中,我们将通过展示几则用户案例的结果,来了解这个布局配方的作用以及它能对您有哪些帮助。
<strong>1. 什么是“Placement Exploration”配方?</strong>
Placement Exploration 这种策略可以将非关键的寄存器位置随机化。这样可以让 Vivado 探索更多的可能性,使用不同的布局布线计算来产生不同的结果,同时不会影响设计的功能。
<strong>2. 运行原理</strong>
<font color="#FF8000">译 | 王坚 整理 | AI时间</font>
下面是十个Python中很有用的贴士和技巧。其中一些是初学这门语言常常会犯的错误。
注意:假设我们都用的是Python 3
1. 列表推导式
你有一个list:bag = [1, 2, 3, 4, 5]
现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10]
大多初学者,根据之前语言的经验会大概这样来做
bag = [1, 2, 3, 4, 5]
for i in range(len(bag)):
bag[i] = bag[i] * 2
<strong>一、前言</strong>
利用FPGA设计算法一直以来都是热点,同样也是难点。将复杂的数学公式 模型通过硬件系统来搭建,在低延时 高并行性等优势背后极大提高了设计难度和开发周期。Xilinx公司的sysGen(system generator)工具扩展了MATLAB的simulink,提供很多IP Catalog中没有的基础模块和针对DSP应用的硬件模型。工程师利用丰富的模块和MATLAB强大的数据处理及可视化能力能够更快速完成设计与仿真验证工作。
<strong>二、sysGen算法系统设计</strong>
<strong>1、介绍</strong>
本用户指南介绍了Digilent DVI-to-RGB视频解码器知识产权。 该IP直接连接到Sink器件的DVI 1.0规范中定义的原始转换最小化差分信号(TMDS)时钟和数据通道输入。 它解码视频流并输出24位RGB视频数据以及从TMDS链路恢复的像素时钟和同步信号。
0.顶层Makefile增加交叉编译器
顶层makefile:
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
改为:
ARCH ?= arm64
CROSS_COMPILE ?= aarch64-linux-gnu-
1.生成.config
<strong>Vivado Simulator基本操作</strong>
Vivado Simulator是一款硬件描述语言事件驱动的仿真器,支持功能仿真和时序仿真,支持VHDL、Verilog、SystemVerilog和混合语言仿真。点击运行仿真后,工具栏中显示了控制仿真过程的常用功能按钮:
<strong>什么是ttl电平</strong>
TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑"0",这被称做TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。