FPGA
文章平均质量分 85
bt_
这个作者很懒,什么都没留下…
展开
-
Nios II 基础工程和自定义组件
软件环境:Quartus Prime Standard 18.1 Window 10硬件环境:小梅哥 AC501 开发板主要参考:Intel Quartus Prime Standard Edition User Guide/Platform DesignerAvalon Interface Specifications本实验使用 Nios 的自定义组件控制开发板上 LED 闪烁。...原创 2020-04-13 07:26:45 · 1288 阅读 · 6 评论 -
hls_zcu102_0_基础流程与放弃
本系列文档通过实例说明 Vivado HLS 的使用方法。开发环境:zcu102 开发板Windows 10Vivado 2018.2.1Visual Studio CodeMatlab 2017b主要参考资料包括:ug998ug871ug902ug1197Vivado HLS 基本应用与图像处理视频教程本文档说明了使用 Vivado HLS 实现算法功能的基本...原创 2020-02-06 15:02:55 · 1837 阅读 · 0 评论 -
vitis_zcu102_3_Vitis 实现多核工作
文章目录添加 Domain添加 Application Project配置 Application 的指令空间编写测试代码:a0 代码a1 代码a2 代码a3 代码测试运行SD 卡加载镜像具体方法与 SDK 的多核工作实现方法基本一致,详细操作可以参考 zcu102 系列文档。本文的代码工程继承 vitis_zcu102_1 文档添加 Domain打开 Platform Project,双...原创 2020-01-19 12:34:51 · 3004 阅读 · 1 评论 -
vitis_zcu102_2_Vitis 实现 Bare-Metal 工程
文章目录建立 Vivado 工程建立 Platform Project建立 Application Project运行测试Vitis 自带的串口 Terminal具体方法与 SDK 的 Bare-metal 工程基本一致,详细操作可以参考 zcu102 系列文档。建立 Vivado 工程建立基于 zcu102 开发板的 Vivado 工程。建立 Block Design,添加 Zynq U...原创 2020-01-15 14:58:36 · 1736 阅读 · 0 评论 -
vitis_zcu102_1_Hello Vitis
主要参考:ug1400安装串口调试软件安装串口软件 tinyserial本人使用 Qt 5.12.6 编译后使用(deb 安装后无法运行)。建立 Platform Project启动 Vitis Software Platform,设置 Workspace 路径后点击 Launch 按钮。进入 IDE 后在菜单栏选择 File > New > Platform Proj...原创 2020-01-09 09:38:42 · 1885 阅读 · 0 评论 -
vitis_zcu102_0_建立开发环境
文章目录前言开发环境安装步骤安装 opencl下载并安装 Vitis Software Platform安装加载线驱动安装 Xilinx Runtime (XRT)设置运行路径前言Vitis 被 Xilinx 称为 “统一软件平台”,从目前已了解的情况来看,嵌入式软件开发在 Vitis 上更为简单方便。从 ISE 到 Vivado,再到 Vitis 的升级趋势来看,Vitis 将是未来数年的...原创 2020-01-09 09:10:35 · 2916 阅读 · 7 评论 -
zcu102_注意_解决SDK链接静态库bug
在SDK中开发PS程序时,如果改动工程配置中的Path and Symbols中Libraires参数,则可能出现链接时undefined reference的错误因为添加的静态库失效,没有链接,原因在于改动Libraries之后,gcc的链接指令多出一个-l指令,与SDK建立工程时默认的Libraries的指令格式不匹配,导致链接失败比如新建工程时,在工程上右键菜单选择Properties,...原创 2019-03-12 10:54:50 · 3038 阅读 · 5 评论 -
zcu102_14_Zynq在Standalone下使用uGUI
uGUI的基本工作原理是将GUI组件的像素通过数据修改或者替换的方法叠加在原始图像数据上uGUI的使用非常简单,将下载的ugui.h和ugui.c文件导入PS工程中即可以使用,通过官网手册和代码注释可以查看详细用法下载在官网下载uGUI的最新版本在网页的下方可以找到使用手册,源代码和示例程序导入PS工程可以通过复制粘贴的方式将下载的源码文件ugui.h和ugui.c文件导入PS工程...原创 2019-04-11 09:21:19 · 1134 阅读 · 2 评论 -
zcu102_15_Vivado中使用SysGen
SystemGenerator的具体使用方法见ug897/ug948/ug958配置Matlab版本在开始菜单打开System Generator 2018.2 MATLAB Configurator使用Find MATLAB选择对应版本的MatlabStatus显示的Configured表示当前的Matlab版本R2017b与Vivado 2018.2版本完全匹配点击OK关闭窗口...原创 2019-05-16 17:23:31 · 1319 阅读 · 0 评论 -
zcu102_16_PL端读写DDR4
文章目录建立工程板卡器件及对应IPIP用户接口地址映射DDR4 MIG IP的读写时序封装设计测试工程说明本试验建立DDR4读写的MIG IP核,并且对其读写时序进行封装实现类似FIFO的读写接口。测试工程已上传至<>建立工程参考之前的文档在Vivado内建立基于zcu102开发板的测试工程板卡器件及对应IP参考ug1182,在zcu102板卡上与PL连接的DDR4外部存储...原创 2019-07-10 08:48:00 · 8012 阅读 · 30 评论 -
zcu102_注意_PS程序DDR空间分配
PS工程建立后在BSP工程的在xparameters.h文件中定义了可访问的DDR内存空间范围需要注意的是,此空间范围包括两个部分,程序指令空间和用户空间在编程时如果将数据写入程序指令空间则可能出现不可理解的异常状况,因此程序中读写DDR内存应当尽量避开程序指令空间程序指令空间的定义在工作工程的linker script文件lscript.ld中双击打开lscript.ld文件默认建立...原创 2019-07-25 08:41:19 · 3634 阅读 · 2 评论 -
zcu102_13_PS多核协同工作
本试验在 PS 中使用 zynq 内部全部 4 个 A53 核分别独立运行程序,并且使用 DDR 进行数据通信。除了在 SDK 中使用 Debug 进行运行调试外,还试验了以镜像文件的方式在 SD 卡中加载启动。除了官方的 ug1186(本试验未使用 openamp)、xapp1079 以外,还有以下:https://blog.csdn.net/long_fly/article/detail...原创 2019-07-25 15:42:33 · 2253 阅读 · 2 评论 -
zcu102_17_PS通过I2C接口读写外设寄存器
根据 ug1182,zcu102 板卡上 PS 连接 2 个 I2C 接口,分别是 I2C0(MIO 14-15) 和 I2C1(MIO 16-17)。本试验使用 I2C1 通过 zcu102 板卡的 FMC HPC1 接口连接外设,PS 作为 I2C Master,外设作为 I2C Slave。I2C 接口说明由于 PS 程序通过 API 封装函数使用 I2C 接口,因此本文不再详述 I2...原创 2019-07-31 10:39:32 · 2649 阅读 · 0 评论 -
zcu102_10_Standalone读写SD卡文件
本文在PS的Standalone程序中使用xilffs库实现对SD卡文件的读写操作。本文主要参考以下两篇博客:https://blog.csdn.net/jinhua1990/article/details/84100100https://blog.csdn.net/lixiaolin126/article/details/83959214Block Design建立zcu102的Viv...原创 2019-03-04 09:58:21 · 2668 阅读 · 8 评论 -
zcu102_12_Standalone以太网数据的TCP传输
本文在PS的Standalone程序中使用lwip库通过TCP协议实现网络数据传输。包含TCP Server和TCP Client两种形式本文主要参考lwip的SDK内部说明和工程模板,xapp1026, xapp1306, SDK以及3篇博客:https://www.cnblogs.com/54zorb/p/9609021.htmlhttps://www.cnblogs.com/54zo...原创 2019-03-06 10:51:08 · 3211 阅读 · 7 评论 -
zcu102_12_Standalone以太网数据的UDP传输
本文在PS的Standalone程序中使用lwip库通过UDP协议实现网络数据传输。包含UDP Server和UDP Client两种形式本文主要参考lwip的SDK内部说明和工程模板,xapp1026, xapp1306, SDK以及两篇博客:https://www.cnblogs.com/54zorb/p/9609021.htmlhttps://www.cnblogs.com/54zo...原创 2019-03-05 16:51:04 · 2209 阅读 · 2 评论 -
基于Quartus Prime的NiosII基础开发流程
基于Quartus Prime的NiosII基础开发流程软件版本:Quartus Prime Standard Edition 18.0 Windows1. 建立工程启动Quartus Prime选择New Project Wizard设置工程名及工作目录根据提示使用默认配置直到器件选择页面,选择FPGA型号2. 建立顶层模块在File菜单选择New在弹出窗口中选择Bloc...原创 2018-11-23 21:44:13 · 13543 阅读 · 10 评论 -
zcu102_1_PS端LED开关
文章目录建立工程Block DesignSDK建立工程参考之前的文档建立基于zcu102的Vivado工程,名称为zynq_1Block Design在Flow Navigator &amp;gt; IP Integrator,选择Create Block Design在弹出窗口输入名称在打开的Diagram界面选择Add IP在弹出的IP搜索窗口选择Zynq UltraScale+ ...原创 2018-12-26 17:20:01 · 3102 阅读 · 27 评论 -
zcu102_2_PS端使用UART通信
UART的设置本文档继承zcu102_1建立的工程,打开Vivado工程后,打开Block Design,双击zynq模块进入配置界面在PS UltraScale+ Block Design页可以看到UART0和UART1已使能点击图中的UART0或者UART1进入I/O Configuration页并打开UART设置根据ug1182的说明,前述的2个UART接口通过CP2108 US...原创 2018-12-27 19:49:30 · 6384 阅读 · 16 评论 -
zcu102_4_AXI_GPIO实现按钮控制LED及PS响应PL中断
AXI_GPIOAXI GPIO模块将PL端连接的GPIO信号通过AXI接口与PS模块连接,PS通过AXI接口的地址映射对PL端的GPIO信号进行读写等控制与EMIO可以实现相同的功能,区别主要在于EMIO对于少数GPIO接口进行单独的控制,而AXI GPIO可以对多个GPIO接口合并成的总线进行整体读写控制Block Design建立zcu102的Vivado工程,建立Block Des...原创 2019-01-10 17:21:59 · 5684 阅读 · 8 评论 -
zcu102_0_PL端LED闪烁
本文档及此文档系列中使用zcu102开发板的全部文档均使用以下开发环境:zcu102开发板Windows 10Vivado 2018.2.1Matlab 2017b文章目录建立工程添加时钟添加设计文件添加约束文件综合添加管脚约束添加时钟约束实现生成并烧写仿真调试本文首先说明了PL开发的完整流程,再对仿真和调试功能进行单独说明。建立工程启动Vivado,选择Create Pro...原创 2018-12-26 10:06:21 · 6033 阅读 · 16 评论 -
zcu102_5_AXI_BRAM实现PL与PS数据互联
AXI BRAM ControllerPS模块通过axi_bram模块,可以使用AXI接口读写PL内的Block RAM,实现PS与PL之间的数据互联axi_bram需要与Block Memory Generator模块共同使用,axi_bram将PS的AXI操作转化为bram的控制接口时序Block Design建立Vivado工程,并且添加Zynq模块,AXI BRAM Control...原创 2019-01-11 15:09:23 · 8827 阅读 · 17 评论 -
zcu102_7_AXI_LITE实验
文章目录axi lite时序写操作时序读操作时序建立工程配置Zynq模块自定义Slave AXI_LITE接口的IP模块自定义Master AXI_LITE接口的IP模块接口模块代码顶层模块代码建立Verilog的master端测试模块实现Vivado工程SDK编程从本文档开始将介绍PS和PL之间通过AXI总线互联。三种AXI总线协议为AXI_LITE:性能较低的地址映射传输,一次只能传输...原创 2019-01-02 18:16:04 · 2263 阅读 · 1 评论 -
zcu102_6_AXI_TIMER精确计时
AXI Timeraxi_timer模块即为PS可以访问的PL计数器,通过计数值以及接入axi_timer的计数时钟周期,可以在PS内取得比较精确的计时axi_timer有2种使用方式,一种是作为计数器使用,另一种是作为定时器使用Block Design建立Vivado工程,新建Block Design,并且添加zynq模块,AXI Timer模块,以及ILA模块保持zynq模块的默认配...原创 2019-01-14 12:36:13 · 4412 阅读 · 0 评论 -
zcu102_9_hello_petalinux
文章目录安装PetaLinux硬件设计生成镜像运行PetaLinuxLinux程序安装PetaLinux由于本人习惯在Windows环境下做FPGA开发,因此将PetaLinux安装在Linux虚拟机中开发环境如下:Windows 10Vivado 2018.2.1VMware Workstation 14 ProUbuntu 16.04.5 desktop amd6...原创 2019-01-25 14:20:33 · 3084 阅读 · 12 评论 -
zcu102_8_AXI_STREAM实现AXI_DMA
AXI_STREAM的时序AXI_STREAM接口一般用于大规模持续的无地址映射关系的流数据传输数据从master单向流动至slave,参考自定义IP生成的示例代码进行说明master端接口如下:// Master Stream Ports. TVALID indicates that the master is driving a valid transfer, A transfer ...原创 2019-01-09 18:13:14 · 15757 阅读 · 34 评论 -
zcu102_3_EMIO实现按钮控制LED
EMIOEMIO是由PS负责控制,由PL负责连接管脚的GPIO具体说明见ug1085的General Purpose I/O章节根据Zynq MPSOC的设计,EMIO占用GPIO BANK3至5的全部32位,对应GPIO的序号78至174,共96个EMIO但是在PS模块中引出的PL中断会默认占用高序号值的EMIO,如本实验中PS模块的pl_resetn0复位信号占用了序号174的EMIO...原创 2019-01-10 11:29:22 · 2119 阅读 · 2 评论 -
zcu102_A_PetaLinux运行Qt程序
文章目录建立PetaLinux镜像运行PetaLinux下载Qt安装包及源码Windows环境下的Qt交叉编译安装Qt安装Active Perl安装Python安装Vivado System Edition交叉编译编写Qt程序配置编译环境建立Qt工程运行Qt程序此实验实现了在PetaLinux上运行Qt图形界面程序,效果仅用于演示,不包含有意义的实际功能,具体细节的实现见后续的文档。本文主要内...原创 2019-01-31 11:20:31 · 8448 阅读 · 18 评论 -
基于Quartus Prime Std 18.0的FPGA基础开发流程
基于Quartus Prime Std 18.0的FPGA基础开发流程软件版本Quartus Prime Standard Edition 18.0 Windows安装进入Intel官方网站,打开左上角的产品菜单选择FPGAs和可编程的设备选择设计工具和软件在页面下方选择下载在下载页面根据器件选择版本,最好选择直接下载一般情况在“组合文件”中选择Complete Down...原创 2018-11-21 08:35:35 · 10076 阅读 · 7 评论