ZYNQ7000
文章平均质量分 74
夜幕下的灯火
FPGA工程师,数据采集类开发。欢迎交流!本人QQ1391074994
展开
-
PL和DDR之间的数据传输,使用DATAMOVER
我们总结一下已经掌握的PS与 PL进行 交互(耦合)的方式1, PS通过 AXI_LITE读写 PL的寄存器。实现对少量外设寄存器的控制。2, PL中断 PS PS调用中断服务程序响应。实现 PL主动通知 PS,协调工作。以上两个特性侧重于控制和小量低速 的数据,在很多应用中要求 PL以足够的带宽 传输连续大量 的数据到 DDR3存储器 。 那么我们 可以在很熟悉 AXI MASTER和 AXI Stream的基础上自己编写接口实现数据的搬运 假如的话) 。 而 通常在 VIVADO开发环境下原创 2021-08-20 22:14:07 · 3879 阅读 · 0 评论 -
基于FPGA的任意波形DDS发生器
基于FPGA的任意波形DDS发生器说明:1.采用XINLNUX平台,使用rom加载coe文件,产生波形,2.频率调节使用的是加载读取ROM速度的不同产生频率变换。3.对于调节频率的加减,写入按键值进去控制读取ROM地址加载的速度就可以。或者改变输入的全局时钟的频率,对应的输出频率也会改变的。4.对于输出的8为数据。后面加上DAC就可以下载程序上板子测试啦。一、测试如图:频率计算:一个周期:5470ns-4730ns=740ns=1.351Mhz(这个是最低的)后面的第三个频率可以达到5.5原创 2021-07-18 18:33:46 · 4082 阅读 · 3 评论 -
zynq7010之EBAZ4205
最近我开始捣鼓EBAZ4205,画了一个扩展版,可以插正点原子的OV5640摄像头,并且进行VGA显示。具体带我测试完成之后会把整个工程和pcb文件开源出来。欢迎关注:原创 2021-06-25 22:02:24 · 675 阅读 · 2 评论 -
ZYNQ7000 学习(三十一)PL 中断 PS 的原理和实现
实现步骤1 PL 与 PS 交互方式(1)PS配置 PL.(2)PS通过 AXI总线读写 总线读写 PL的寄存器或者储。( 的寄存器或者储。( 的寄存器或者储。( AXI LITE 读写外设的寄 读写外设的寄 存器, AXI FULL 读写 PL部分的片内或者外存储器)。 部分的片内或者外存储器)。 部分的片内或者外存储器)。(3)PL中断 PS。(4)PL主动读写 PS部分的 DDR3存储器。2 中断原理介绍中断是一种外设通过打正在进行 CPU处理的程序, 而立即执行中断服务处理的程序, 而原创 2021-06-19 22:41:18 · 3715 阅读 · 0 评论 -
ZYNQ7000 学习(三十) 定时器终端的原理和实现
学习内容将介绍ZYNQ 的定时器的原理和实现。实现步骤1 定时器中断原理分析定时器是 ARM 系统中的必要单元,在ARM 开发过程中起到重要的作用。定时器作为处理器外设独立于处理器之外单独运行,是处理器系统不可或缺的最重要外设,任何一个单片或者处理器都有一个或者多个定时器。定时器的使用场景主要可以分为产生中断,延时,计数器三类:(1)时钟中断。这种时钟中断一般是周期性的,我们跑操作系统都需要有一个心跳时钟,比方说UCOS 系统,每10ms 中断一次,进入核心态管理状态,对有延时的进程处理原创 2021-06-19 22:33:48 · 986 阅读 · 0 评论 -
vivado ise 关联设置
C:/Users/Admin/AppData/Local/Programs/Microsoft VS Code/Code.exe -g [file name]:[line number] // vc关联vivado路径c:\Program Files\Notepad++\notepad++.exe [file name] -n[line number] //notapad++关联vivado{c:/Program Files/Notepad++/notepad++.exe} $1 //ise关联not原创 2021-06-15 09:25:30 · 273 阅读 · 0 评论 -
ZYNQ7000 学习(二十九)片内逻辑分析仪的使用原理 使用ILA观测AXI总线以及用户逻辑
片内逻辑分析仪的使用原理 使用ILA观测AXI总线以及用户逻辑学习内容本课 重点介绍片内逻辑分析仪的使用原理,以及如何使用 ILA 对 AXI 总线进行观测分析,实现对 FPGA 设计的全局规划和细节分析。实现步骤逻辑分析仪主要有以下几个阶段:1,预触发阶段。2,触发并采集阶段。3,采集结束并上传到电脑。4,用户界面显示并解析。在vivado 中可以使用 ILA IP 核,使用片内的任意时钟来观测片内的任意信号。Step1 建立 vivado 工程,添加 IP ,进行布线。添加Pro原创 2021-05-10 23:51:48 · 2015 阅读 · 1 评论 -
ZYNQ7000 (二十七)将 VGA 控制器封装成AXI_LITE 外设并在PS端进行编程显示图像和点阵
将 VGA 控制器封装成AXI_LITE 外设并在PS端进行编程显示图像和点阵学习内容本课内容仍 基于 前几 课 中基于 VGA 显示, 具体实现 是 将 之前做的 VGA接口通过 AXI_LITE总线挂在 PS的 存储空间上 通过写地址寄存器和数据寄存保存内容到 VGA显示缓存,并在 SDK编写代码实现在字符的显示,以及位图文件的显示 。实现步骤(1) 学习 显示 点阵 字符。(2) 封装 IP(3) 调用 IP 实现 工程 。Step1 使用 VIVADO 新建 工程,并且新建 在原创 2021-05-07 22:09:24 · 421 阅读 · 0 评论 -
ZYNQ7000 学习(二十六)使用 VIVADO 例化 BRAM 实现VGA 缓存驱动
使用 VIVADO 例化 BRAM 实现VGA 缓存驱动学习内容本节课程的实现目标仍为VGA 显示,但是与第 25课的不同 之处 在于,本节将例化 VIVADO 中的 BRAM 实现缓存 ,分辨率 仍为 640*480,时序 驱动文件 不做 改动。实现步骤本节课程将在第 25课工程 基础上进行修改。下 图 为 第 25课 工程 文件 图。Step1 新建Block Design ,添加 BRAM 模块,并且进行参数设置。注意双击IP 进入 Re-customize IP 界面后,在原创 2021-05-06 20:55:57 · 1932 阅读 · 0 评论 -
ZYNQ7000 学习(二十五)纯PL 实现独立显存VGA驱动并显示画面
纯PL 实现独立显存VGA驱动并显示画面学习内容本课程在 上一 集 的课程基础上 通过 增加 BRAM 实现画面 的存储和 VGA 显示 。 由于 BRAM 资源 有限,所以 设计 分辨率为 640480。 本课主要是 在第 24《 VGA接口 分析 及 控制逻辑实现 》基础上完成 。实现步骤首先介绍 本次课程 提供的代 码相比第24课代码 主要 增加 了 图片 存储文件和 VGA 驱动 中的存储驱动 部分 。下面 按照 本次 课程实现 的目标进行修改和介绍。Step1 修改 VGA 时原创 2021-05-06 20:47:54 · 635 阅读 · 0 评论 -
zynq7000 学习(二十四)VGA 接口原理分析和控制逻辑的实现学习
VGA 接口原理分析和控制逻辑的实现学习学习内容本课程首先 进行 VGA 接口 的原理介绍,然后 编写逻辑 控制代码,最终进行仿真和实现。 本课程 主要包括原理介绍和 设计实现 两个部分。原理介绍原理介绍分成以下三个部分。(1) VGA 硬件 电路(2) VGA 显示器工作 原理(3) VGA 时序 分析下面对 本课程涉及 的原理进行简要介绍。(1) VGA 硬件 电路ZEDBOARD 开发板 VGA 接口 电路如下,采用 DB15 接口 VGA-R1~VGA-R4、 VGA-G1~V原创 2021-05-06 20:33:27 · 939 阅读 · 0 评论 -
ZYNQ7000 学习(二十二)SPI FLASH里启动LINUX的详细分析和实现
SPI FLASH里启动LINUX的详细分析和实现第一部分,LINUX启动分析之前我们跑LINUX例子都是从 SD卡启动,固化在 BOOTROM里面的启动代码先从 SD卡的第一个分区查找 BOOT.BIN文件,从 BOOT.BIN文件找到 FSBL,之后将执行 FSBL。 FSBL执行之后从 BOOT.BIN文件里面找出 U BOOT启动代码(如果不引导系统这部分也可以是用户程序)。之后UBOOT运行,执行我们给 UBOOT写的命令,我们可以看一下 INCLUDE / CONFIGS / ZYN原创 2021-05-06 20:20:31 · 1607 阅读 · 0 评论 -
ZYNQ7000 学习(二十一)ZYNQ7 双核处理的运行机制的原理和实现步骤
ZYNQ7 双核处理的运行机制的原理和实现步骤ZYNQ7 的 PS 系统有两个 ARM 处理器核,我们要发挥最大化系统性能,就要将这两个核合理分配都用起来。我们这一集视频的目的是和大家一起来看看双核运行的原理以及实现步骤。原理比较多,大家要结合资料多研究分析。1 OCM 相关1, 我们首先看 ZYNY 结构的框图,各自内核有独立 32K 字节私有的 I-CACHE 和 D-CACHE,两个核有公用的 512K 混合 CACHE(保存指令和数据)。2, OCM 是片内高速存储器,是我们要重点要强调的原创 2021-05-06 20:15:15 · 3781 阅读 · 0 评论 -
ZYNQ7000 (二十)等精度频率计的原理分析和实例实现
等精度频率计的原理分析和实例实现这一视频主要来分析实现等精度频率计。通过分析硬件实现原理,编写PL的逻辑实现部分,以及对应 PS的 C语言操作,操作挂在 PS寻址空间的寄存器,达到控制等精度频率计逻辑,读取计数结果,并在 PS里通过运算,计算出实际所要测试的频率值。这是一个很好的软件硬件分工协作的例子。硬件逻辑中有精确到时钟边缘的失序,而软件运算为了提高精度使用了双精度浮点运算。学习这一视频希望大家在掌握等精度原理和进一步熟悉软件操作的基础上体会如何下手分析一个设计,进行软件硬件的分工,并最终原创 2021-05-05 19:36:49 · 1940 阅读 · 3 评论 -
ZYNQ7000 ()中断控制部分的原理和SDK函数以及中断的试验
中断控制部分的原理和SDK函数以及中断的试验上一视频(视频 17)介绍了中断处理的情景,从 IRQ中断向量表转跳到中断服务程序保存现场后直接驱动小灯反转。为了凸显其中断处理过程,那个试验实际忽略很多中断设置细节,在这一个视频我们给大家详细展开。看PDF中中断部分两个图。中断来源分成三大类SPI Shared Peripheral Interrupts)),PPI CPU Private Peripheral Interrupts)),SGI Software Generated Inte原创 2021-05-05 19:26:37 · 900 阅读 · 0 评论 -
ZYNQ7000学习(十八)多路 PWM 原理分析以及实现试验
多路 PWM 原理分析以及实现试验基本原理(参考 http͗//www͘fpga4fun͘com/PWM_D_C͘html)PWM_(Pulse_Width_Modulation)A PWM takes an input value of any width and creates an output that is justone-bit wide.PWM using a free-running counterThat’s the simplest PWM we can make.modu原创 2021-05-05 19:21:45 · 1537 阅读 · 0 评论 -
ZYNQ7000 学习 (十七)GPIO中断源的配置以及中断试验
视频十七:GPIO中断源的配置以及中断试验本视频的目的是和大家一起详细看看GPIO的中断源配置,以及从汇编代码层面带大家一起分析中断的过程情景。注意:这里的GPIO是包含MIO和EMIO的GPIO;中断源配置分析到产生52号中断;GPIO有128个,所以可以有128个52号中断,这些中断源“或”的关系产生中断请求。在上一个视频里面讲到了GPIO的输入输出的控制原理以及从寄存器层面和库函数层面分别做了演示试验。这一节我们来看看GPIO中断源的原理,各个寄存器的意义,并在SDK环境下用C语言控制寄存器实现原创 2021-05-05 18:59:16 · 1388 阅读 · 0 评论 -
ZYNQ学习笔记(十六)MIO和EMIO下的GPIO分析和实例
视频十六:MIO和EMIO下的GPIO分析和实例General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,人们利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。学习目的:1,能够查看数据手册知道如何控制GPIO的输入输出。(手册)2,了解EMIO的GPIO的序号换算以及对应,能够调用库函数实现对GPIO的读写。3,继续熟悉VIVADO,SDK开发环境,展示了如何做FSBL,以及如何生成启动文件BOOT.BIN和QSPI FLASH启动文原创 2021-05-04 16:16:42 · 1065 阅读 · 0 评论 -
ZYNQ7000 学习 (十五)FIFO(存储器)的原理实现以及应用于PS与PL进行速度的协调
视频十五:FIFO(存储器)的原理实现以及应用于PS与PL进行速度的协调1,关于FIFO的原理看视频。这里注意虽然没有直接例化任何RAM,实际会调用RAM块的。2,考虑在OLED接口加入FIFO的必要性。1)PS高速运行,而SPI发送一个字节需要多个周期。2)在上一个字节没有发送完情况下,PS又要发送另外一个字节时候,PS只能等待。(通过设置READY==0告诉)。3)由于驱动是连续写多个字节(大约128*8个字节),这PS的速度实际是被瓶颈在SPI串行发送一个字节上。N* 128*8+24 =原创 2021-05-04 16:13:15 · 1667 阅读 · 0 评论 -
ZYNQ7000学习(十四)综合分析PS和PL部分对OLED驱动进行加速
视频十四:综合分析PS和PL部分对OLED驱动进行加速0,从C语言的软硬交界面开始分析,确定要加速的部分。1,首先分析时序,写加速器。2,仿真加速器。3,将代码PORT到AXI_LITE接口,并注意处理READY信号。4,更新SDK的代码,下板子运行。总结:给大家展示了软件硬件协调设计的加速方法的分析和实现。软件PS部分和PL部分合理分工。分离较高频度执行的部分,分离硬件可以加速的部分。注意总线的延迟。AWREADY .WREADY. RREADY .存在问题:总线挂起导致处理器等待,原创 2021-05-03 20:20:32 · 599 阅读 · 1 评论 -
ZYNQ7000学习笔记(十三) PL和PS协同设计实现对OLED的控制
视频十三:PL和PS协同设计实现对OLED的控制(这个视频前面都有相同的步骤 我只记录重点的部分)→1.新建一个OLED(这个就是板子上的那个小的液晶屏幕) ip 通过axi总线控制:→电路图:(时序图:只有写操作,)时序图与电路图对应看→写程序:output OLED_DC,OLED_RES,OLED_SCLK,OLED_SDIN,OLED_VBAT,OLED_VDD,(在底层和顶层都需要写,不然会出现找不到引脚的现象)→assign{OLED_DC,OLED_RES,OLED_SCL原创 2021-05-03 20:17:21 · 717 阅读 · 0 评论 -
ZYNQ7000(十二)学习使用VIO(virtual input output)以及进行试验
视频十二:学习使用VIO(virtual input output)以及进行试验1.配置Vio第一步:generate block designed → add ip vio 完成三个设置;学习数据手册:0:12分;下一步:增加角Ctrl+ t 加三个;生成顶层文件2.create HDL wrapper选择第一个:2.1进行修改:`timescale 1 ps / 1 psmodule design_12_wrapper(clk,SW,LED);input原创 2021-05-02 19:55:46 · 991 阅读 · 0 评论 -
ZYNQ7000学习(十一)VIVADO下的逻辑仿真试验
视频十一:VIVADO下的逻辑仿真试验1.首先建立硬件约束文件:设计代码:(在右边编辑)module decoder38( input [2:0] SW, output [7:0]LED ); assign LED = 1 << SW ; endmodule片再加约束:这个里面增加约束(约束文件以前有);再增加基定 文件在上面图的sim_1右击增加module decoder38_top ; reg [2:0] s原创 2021-05-02 19:52:45 · 648 阅读 · 1 评论 -
ZYNQ7000 (十)视频十:使用NFS文件系统在开发过程中进行调试
视频十:使用NFS文件系统在开发过程中进行调试STEP1 ,搭建nfs服务程序1,设置VMWARE网络是网桥模式。通过ifconfig 查看地址。3,板子和vmware网络确保通畅。4,sudo apt-get install nfs-kernel-server 安装nfs功能5, 修改/etc/exports 来设置nfs目录 : /home/z/WORK*(rw,sync,no_root_squash,no_subtree_check)sudo /etc/init.d/rpcbind re原创 2021-04-30 22:03:44 · 314 阅读 · 1 评论 -
ZYNQ7000 (九) 编写LINUX下C程序的步骤在线运行并最终固化到RAMDISK里
视频九:编写LINUX下C程序的步骤在线运行并最终固化到RAMDISK里编写LINUX下C程序在线运行并最终固化到RAMDISK里1,使用SDK生成hello文件,通过ftp传输到板子的ramdisc里面运行试验。2,使用LINUX界面生成hello文件。3,将hello文件固化到RAMDISK里面。固化和剪裁RAMDISK步骤:3.1,首先ftp传到虚拟机,并解压缩。gzip -dramdisk8m.gz,之后解压出一个文件(而非文件夹)。3.2,建立临时目录mkdir ram_disk 并原创 2021-04-30 21:54:18 · 956 阅读 · 3 评论 -
ZYNQ7000 学习 (八) 建立LINUX开发环境并编译LINUX和UBOOT以及生成设备树
视频八:建立LINUX开发环境并编译LINUX和UBOOT以及生成设备树打开虚拟机;打开Ubuntu系统;这个系统是在视频八里面网盘里面的UbuntuSTEP 1:1,几条简单LINUX命令: cd 进入文件夹。 ls 列表文件 。 sudo super do以当前登陆管理员方式运行 ,su 获取最高管理员权限【注3】,exit是当前用户退出终端。2,解压缩命令是**tar -zxvf ,**强制删除目录命令是 rm -rf .关机命令 sudoshutdown -h now .3, TAB原创 2021-04-29 20:44:01 · 984 阅读 · 0 评论 -
ZYNQ7000学习 7 创建并调用处理器外设的IP核
视频7:创建并调用处理器外设的IP核说明:VIVADO自带了一些处理器外设,比如第5节所介绍和调用的GPIO核。我们实际应用中要创建自己的外设,挂在处理器总线上,将寄存器映射到处理器的寻址空间,达到软件和逻辑的真正结合。这一张我们就做个演示如何创建用户外设以及如何调用。这个视频在注重演示说明步骤的同时,也跟大家说了如何分析IP核的实现代码,以及用户如何修改而适用自己的外设。ZYNQ7互联使用的是AXI总线。USER_IP_TEST-> Create_ip 是建立IP的项目。USER_IP_T原创 2021-04-29 20:34:36 · 650 阅读 · 0 评论 -
ZYNQ学习7000 笔记(六):固化程序和配置到SD卡和 QSPI FLASH
视频六:固化程序和配置到SD卡和 QSPI FLASH1,分析一下三个阶段 :BOOTROM(处理器固化的引导程序,初始化基本的处理器硬件,PLL,处理器等,判断跳线设置的模式MIO2 - MIO8 ,从指定的位置调入First Stage BootLoader;识别启动文件头部并调用FSBL到OCM , 开始执行BOOTLOADER)->FSBL(初始化特定的片内外硬件,比如DDR2以及以太网外设等,这部分代码长度限制在192K可以由用户修改,之后将用户程序用通讯介质或者存储介质调入DDR原创 2021-04-28 22:51:39 · 1468 阅读 · 0 评论 -
ZYNQ7000学习 (五):PS与PL协同设计实现GPIO
视频五:PS与PL协同设计实现GPIOZYNQ7的逻辑部分PL和处理器PS部分采集协同工作才能体现出其强大。这个例子只是简单的是一个实现:将FPGA当做一个PS处理器的外设,通过寄存器地址映射到PS的寻址空间。在处理器的使用C程序访问这些寄存器,来实现软件和逻辑结合的协同设计的效果。具体步骤就是先在VIVADO配置ZYNQ处理器吗,做好FPGA的外设,互联完成之后生产BIT流文件下载到板子。在SDK环境下开发好软件之后,进行在线调试运行。视频展示VIVADO的操作步骤,以及SDK的下对代码进行分析…前面原创 2021-04-28 22:45:07 · 1392 阅读 · 4 评论 -
ZYNQ7000 (四):PS部分HELLO_WORLD
视频四:PS部分HELLO_WORLDPS是PROCESSER SYSTEM的缩写,是处理器系统的意思。这里将ZYNQ7当做一个ARM处理器进行设计。具体简单介绍了软件的开发步骤:先在VIVADO里配置处理器,之后在SDK里面设计软件。这里演示和讲解基本的步骤,作为上手的第一个程序。1.创建一个new pergect注意:选择zedboard 板子2.create block design右键点击增加ip:2.1点击 run black automation3.剪裁(点击引脚+边上原创 2021-04-27 22:35:05 · 343 阅读 · 0 评论 -
ZYNQ7000 (三):PL部分创建一个流水灯
视频三:PL部分创建一个流水灯PL部分就是Programmable Logic的缩写,就是可编程逻辑部分。这里就是将ZYNQ7当做一个单纯的FPGA来使用。之用VIVADO开发环境,因为不牵扯处理器的软件开发,所以不使用SDK环境。写好VERILOG代码,对应好引脚对应文件就可以。1.创建工程:新建项目(Create a new project)→项目名与路径不要有中文名→RTL Project →选择默认语言→选择芯片:(可以选择开发板,选择后系列信息就不用选,但通常我们应该一个一个的写)原创 2021-04-27 22:20:49 · 659 阅读 · 0 评论 -
ZYNQ7000学习(二)建立桌面文件系统和启动盘
视频二.建立桌面文件系统和启动盘(1)SD卡格式化分区位置:2,Zedboard上运行桌面LINUX\2,Zedboard上运行桌面LINUX\硬盘格式化软件软件一:DiskGeniu硬盘格式化软件\DiskGeniu\DG480_x64\DiskGenius (64位机)硬盘格式化软件\DiskGeniu\DG480_x86\DiskGenius (32位机)只支持:FAT32或NTFS文件。打开软件→将SD卡放入USB接口读卡器→插上PC的USB→右键RD2(SD卡的盘)→快速分区原创 2021-04-26 23:03:57 · 776 阅读 · 0 评论 -
ZYNQ7000学习 (一):(测试视频)
视频一(测试视频):参考文档:1,测试视频\ZedBoard_OOB_Design6\ZedBoard_OOB_Design\sd_image\README.TXT1,测试视频\ZedBoard Getting Started Guide.PDF(1)安装USB—Serias工具,供超级终端使用CP210x_Windows_Drivers_with_Serial_Enumeration/CP210xVCPInstaller_x86.exe超级终端:putty_V0.63.0.0.43510原创 2021-04-26 22:52:09 · 462 阅读 · 0 评论 -
ZYNQ7000学习笔记总目录
分享以前我学习李工的zynq7000视频学习笔记不定时更新,下面是目录视频一(测试视频): 3(1)安装USB—Serias工具,供超级终端使用 3(2)格式化SD卡,装入Linux用户文件 3(3)开始连接 3(4)Linux命令操作 4(5)网络检测 5(6)输出端口检测 6(7)LED检测 6视频二.建立桌面文件系统和启动盘 6(1)SD卡格式化分区 6(2)安装虚拟光驱 8(3)虚拟光驱中将Linux系统装载到SD卡 9(4)验证: 14视频三:PL部分创建一个流水灯原创 2021-04-26 21:01:33 · 422 阅读 · 1 评论