博客

ZYNQ学习之路——在SDx中使用xfOpenCV图像加速处理

本文以Zturnboard为例介绍如何在SDSoC中使用OpenCV,本文在Ubuntu 16 64位,SDSoC2018.2(安装在ubuntu中)中测试通过。

Zynq-PS-SDK(1) 之 MIO 使用

Zynq 7020 的 PS 端(ARM 端)的外设 IO(也叫 IOP)分为 MIO 和 EMIO,他们有什么区别呢?

Xilinx Vivado 2020.1里面AXI Interrupt Controller无法选择中断的个数

虽然看起来AXI Interrupt Controller的intr[0:0]位宽无法修改,但实际上,添加一个Concat IP,这个IP可以设置In0的个数,设置为2。In0连接上中断线后,再把dout和intr相连

false path和asynchronous的区别

在FPGA的开发中,对于两个异步时钟,如果我们可以在RTL的设计中保证这两个时钟域之间的处理都是正确的,那就可以让工具不分析这两个时钟域之间的交互。

ZYNQ学习之路——创建基于Linux系统的SDSoC平台

在第三节中,我们成功创建了ZYNQ裸机下的SDSoC平台文件,但在实际使用中,要求使用Linux操作系统。本节介绍如何创建基于Linux系统的硬件平台。

【教程】Xilinx Vivado/Vitis 2020.1创建最简单的MicroBlaze工程运行Hello World C语言程序(不使用外部DDR3内存),并固化到SPI Flash

本教程以米联客XC7A35T FGG484-2开发板为例,详细讲解一下用Xilinx Vivado 2020.1创建MicroBlaze软核工程,然后再用Xilinx Vitis 2020.1建立Hello World C程序工程的完整操作步骤。

PYNQ在PS端进行图片缩放

在完成PYNQ环境搭建后(zynq7035单板创建PYNQ镜像V2.6),本文介绍如何在PS端进行图片缩放。

Xilinx FPGA的DNA是什么?

对于Xilinx的FPGA,每一片都有一个专门的ID,就像我们的身份证号一样,每个都不一样,Xilinx也形象的把这个ID叫做DNA。7系列以及之前FPGA的DNA有57bit,Ultrascale FPGA的DNA有96bit,Zynq Ultrascale+的FPGA有两个DNA,PL端一个,PS端也有一个。

Xilinx约束学习笔记(二)—— 定义时钟

为了获得最佳精度路径覆盖信息,必须正确定义时钟。

时钟要定义在时钟树的根 pin 或 port 上,称为 source point。
时钟的边缘应该由周期和波形进行组合描述。
周期使用纳秒做为单位进行定义。它对应于波形重复的时间。

Xilinx Vitis 2020.1用SREC SPI Bootloader固化Microblaze程序,断电再通电后程序运行不了的解决办法

FPGA的型号为XC7A35TFGG484-2,开发板用的是米联客的。主程序hello_world运行于外部DDR3内存,SREC SPI Bootloader运行于FPGA片内BRAM。

ZYNQ学习之路——自定义SDSoC硬件平台

在前面的学习中,我们已经学会了使用Vivado及SDK开发环境,熟悉了硬件开发与Linux软件驱动之间的联系及开发流程。本系列教程我们学习SDSoc的开发,在SDSoc IDE中,Xilinx为我们集成了比较流行的开发板硬件平台,如果我们使用的是其中的一个,可以直接使用。但笔者使用的是米尔科技的7z010开发板,在开发之前首先要定义我们自己的硬件平台,作为之后创建应用的模板工程

Xilinx约束学习笔记(一)—— 约束方法学

Xilinx 建议将时序约束和物理约束分开保存为两个不同的文件。甚至可以将针对某一个模块的约束单独保存在一个文件中。可以使用 USED_IN_SYNTHESIS 和 USED_IN_IMPLEMENTATION 属性指定约束文件是在综合或实现过程中使用。

ZYNQ学习之路——SDSoC开发环境介绍

本节教程介绍如何使用SDSoC软件创建硬件平台,并且使用它来加速程序函数。

Xilinx Ethernet MAC IP调试的小坑

本篇文章要写的是调试Xilinx网络IP时踩到的一个坑,也是控制PHY芯片时的一个坑,板卡上的PHY芯片是非常经典的88E1111,使用MDIO接口控制。

Zynq7035单板创建PYNQ镜像V2.6

本次设计是在zynq7035器件上进行,创建PYNQ框架v2.6版本,构建需要如下步骤:

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法

修改了代码后编译工程,有时会因为BRAM空间不足而编译失败,出现下面的错误提示,这时,需要回到Vivado工程里面,在Block Design中将分配的BRAM空间大小改大。具体方法如下。

ZYNQ学习之路——时序仿真

在编写ZYNQ的FPGA逻辑代码过程中,往往需要对时序进行分析。时序信号的分析一般通常有软件仿真和在线仿真两种,本文介绍这两种方法的具体使用方法。

Xilinx Vitis 2020.1无法创建SREC SPI Bootloader工程,提示缺少xilisf库的解决办法

在BSP设置中,手动添加xilisf库的引用。首先,在Platform工程(这里是microblaze_test)上点击鼠标右键,选择“Open Platform Editor”命令。在Board Support Package里面,点击Modify BSP Settings按钮,勾选xilisf复选框,然后点击OK。

ZYNQ学习之路——创建PetaLinux工程

在前面的学习中,我们知道如何根据PetaLinux BSP设计去创建一个工程,现在,我们结合Vivado设计我们自己PetaLinux系统。

Xilinx 2020.1 MIG核读写DDR3内存,新建工程时配置MIG核的完整步骤

本文以XC7A35TFGG484-2这款芯片为例,采用米联客FPGA开发板,用MIG核驱动DDR3内存。FPGA外接的晶振大小为50MHz,DDR3内存的驱动频率(ddr3_ck_p和ddr3_ck_n)为400MHz。选用的DDR3内存型号为MT41K128M16,内存容量为256MB。