
zynq
文章平均质量分 59
zynq
kunkliu
good good study
展开
-
【正点原子FPGA连载】第十三章双核AMP实验-领航者 ZYNQ 之嵌入式开发指南
第十三章双核AMP实验在前面的例程中,实现的都是基于单核CPU的实验,在很多应用场景中,往往只需要使用其中的一个CPU即可实现相应的功能。然而对于复杂的设计,如多任务处理、并行控制等,单个CPU将难以胜任。ZYNQ 7000 SOC芯片内部集成了两个独立的Cortex-A9内核处理器,即两个CPU,可以很好的应对各种复杂的设计。本章我们来学习下基于双核AMP的实验。本章包括以下几个部分:1313.1简介13.2实验任务13.3硬件设计13.4软件设计13.5下载验证13.1简介多核处理器从转载 2021-07-01 18:30:37 · 2245 阅读 · 0 评论 -
LINUX预留内存的实现
在LINUX应用开发中,可能需要使用连续的物理地址来存储一些数据或者进行DMA操作,但是由于LINUX具备MMU功能,MMU模块会自动的将物理地址与虚拟地址之间建立页表对应关系(但并不是线性对应),用户能访问的只是虚拟地址,虚拟地址上的连续并不一定代表物理地址上的连续。如果需要使用连续的物理地址,就需要进行预留内存,来将一部分内存保留起来,不用做LINUX...转载 2021-06-28 17:36:34 · 2070 阅读 · 0 评论 -
zynq-mpsoc系列之相关启动文件的讲解
转载地址:https://blog.youkuaiyun.com/luhao806/article/details/58591497作者:卢浩时间:2017.2.28转载请注明出处对于ZYNQ MPSoC有以下几个文件,1.FSBL这个FSBL跟zynq-7000的fsbl是一样的,用户可以选择用cortex-a53制作启动的fsbl文件,也可以...转载 2021-06-15 10:23:07 · 1373 阅读 · 0 评论 -
PCIE_DMA实例五:基于XILINX XDMA的PCIE高速采集卡
转载地址:https://www.cnblogs.com/yuzeren48/p/13755651.html一:前言这一年关于PCIE高速采集卡的业务量激增,究其原因,发现百度“xilinx pcie dma”,出来的都是本人的博客。前期的博文主要以教程为主,教大家如何理解PCIE协议以及如何正确使用PCIE相关的IP核,因为涉及到商业道德,本人不能将公司自研的IP核以及相关工程应用放到网上。但为了满足大家对PCIE高速采集卡这块的业务需求,博主特地利用业余时间,使用XDMA这个xilinx官方IP转载 2021-06-07 15:48:07 · 8399 阅读 · 4 评论 -
vivado中各个文件的含义
在Xilinx ISE中不同的操作都有不同的文件类型对应,例如综合、布局、布线、生成比特流等都会产生特定格式的文件,在vivado中也是一样,只不过在vivado中,文件的格式相比于ISE中更加同一。1,.dcp文件,在ise中每个过程都会产生特定格式的文件,例如.ncd, .pcf, .ngd等等,但是在vivado中,不论是综合还是布局布线都只会产生一种格式的文件,即.dcp文件,每个阶段的.dcp文件都是下一阶段的输入文件,.dcp文件实际上包含了对应阶段处理的信息,用vivado可以直接...转载 2021-05-13 19:02:30 · 2403 阅读 · 0 评论 -
Vivado 工程文件的结构
project_name.cache:Vivado 软件的运行缓存project_name.hw:所有波形文件project_name.ip_user_files:用户关于 IP 的文件project_name.runs:编译与综合结果,.\impl_1 文件夹中的.bin 和 .bit 即为编译生成的可执行文件project_name.sdk:SDK 环境代码,一般是 ZYNQ 设计中关于 PS 端的代码project_name.sim:仿真结果project_name.srcs:所有用户编写转载 2021-05-13 18:51:17 · 4371 阅读 · 0 评论 -
FPGA LUT查找表原理和编程方式
一、查找表LUT就是查找表,对于4输入的LUT而言,实际上就是4位地址位,一位数据位的存储器,能够存储16位数据,所以我们在FPGA设计中可以用LUT组建分布式的RAM。这样也可以解释我们在设计中为什么要采用流水线的实现方法因为当输入数据的位数远大于一个LUT的输入时,就需要用多个LUT级联来实现逻辑,那么级联产生的延时也就不可避免了,这样就会制约系统的运行频率。那么为了避免级联数过于多,就采用插入寄存器的方法来实现。举一个简单的例子,如果要实现一个6*1的mux可以用一个6输入的LUT或者转载 2021-05-13 16:36:59 · 5697 阅读 · 1 评论 -
FPGA内部硬件结构简介
我们知道FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑、可编程I/O、互连线、IP核等资源,很多学过数字电路的人都知道与或非门可以构成几乎所有的数字电路,但是FPGA内部最基本的主要单元并不是这些与或非门,而是由无数个查找表(Look Up Tabe,简称为LUT)和寄存器构成。 虽然FPGA的内部结构对于初学者来说是云里雾里,一头雾水,但是了解FPGA的内部结构能让我们更好的理解FPGA设计过程中我们所编写的代码和硬件是怎样的一个映射关系,从而更深刻理解FPGA和单片机、ARM的不同转载 2021-05-13 15:27:20 · 1632 阅读 · 2 评论 -
如何通俗理解FPGA与Verilog HDL
转载地址:https://zhuanlan.zhihu.com/p/677292992.FPGA学习之路学习的迭代过程FPGA的学习之路是一个模仿、学习、动手、创新、设计,不断迭代的过程。初学者往往是从模仿别人的代码开始,学习语法、学习建模方法、学习代码风格等等,在学习的基础上动手修改出自己的代码,熟练后开始加入自己的创新点,可以独立的做自己的设计。FFPGA初学者会常见现象:数字电路理论不扎实,概念不清。这个是最要命的,因为数字逻辑是FPGA的基础,就像是你要建一座房子,你可以转载 2021-05-13 14:46:30 · 2218 阅读 · 0 评论 -
快速理解FPGA设计流程及工具软件
转载地址:https://zhuanlan.zhihu.com/p/69415960快速理解FPGA设计流程及工具软件罗成FPAG高级工程师128 人赞同了该文章这是快速入门FPGA与Verilog HDL系列教程的第二讲,本系列教程致力于让新手入门FPGA和Verilog HDL。本文首发于我的微信公众号“花蚂蚁”,追更教程的可以关注我的公众号,后续还会有视频教程相继推出。一、FPGA设计流程FPGA设计流程是利用EDA开发软件和编程工具对FPGA芯片进行开发转载 2021-05-13 14:38:52 · 3859 阅读 · 0 评论 -
vivado中symthsis(综合)和implementation(执行)具体是为了完成什么操作?
1.synthesis首先,同学你综合的单次拼错了,综合是synthesis,不是symthsis。综合(synthesis)的概念是:将高级抽象层次的电路描述转化成较低层次的描述。也就是说将语言描述的电路逻辑转化成与门、或门、非门、触发器等基本逻辑单元的互连关系。也就是我们常说的门级网表。以四选一电路为例,综合过程将Verilog代码翻译成了门级互连网表。四选一电路的综合过程综合的概念很重要,利用Verilog 做电路设计时我们总是强调可综合的概念,可综合就是我们的这段代码可以被翻译成门级电路,不可综合就转载 2021-05-13 14:15:25 · 7238 阅读 · 0 评论 -
关于Vivado的综合设置使用总结
1、综合-优化资源 当选择为none,综合器优化的最少,当选择为full时,综合器优化的最多,选择rebuilt时,工具自动选择一个折中的方案,对当前工程做优化。如果在rebuilt的选项不希望一些信号被优化,则可以调用原语进行约束。 对于模块,想保留该模块的层次结构 (* keep_hierarchy=“yes” ) 对于信号,在...转载 2021-05-13 13:41:59 · 4482 阅读 · 0 评论 -
vivado2020.1 vitis
vivado2020.1的SDK是不是找不到了?对的,他已经摇身一变,集成进入了vitis,那么他如何使用?以及常见的问题?我们汇总一下: 1.你的工程中一定要包含最小系统中所需的microblaze+uart,其他的IP酌情添加,然后到处xsa文件: 然后就一路next直到finish. 2.手动找到vitis的快捷方式进入vitis(vivado中已经没有launch选项了,只能手动登录): 等待进度条跑完,我们就进入了vitis的主界面。 接下来我就不会配那么多文字了,按照图片一页一页操转载 2021-04-16 18:16:55 · 2381 阅读 · 0 评论 -
vivado各版本的区别
vivado各版本的区别Vivado HL Design Edition:Vivado HL System Edition:区别在于System Edition包含有system generator for dsp with matlab工具。转载 2021-04-16 17:25:56 · 14962 阅读 · 3 评论 -
S29GL128P norflash 读写擦除问题
最近用stm32调试S29GL128P norflash,遇到一些细节问题,和大家分享一下,希望大家能少走弯路。因为这个项目是半路接手,已经有产品了,我的任务就是在此基础上升级改bug.之前的程序写的不是特别好从新整理一下。由于S29GL128P用的是成品模块,卖家送的驱动历程。开始没有深究,直接调用测试一下读写,可以用就没有深究。测试代码如下:/**********************************************************************.转载 2021-01-20 19:19:41 · 1858 阅读 · 0 评论 -
Xilinx xdma Linux平台使用
作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 方法 官网下载驱动,我下载2017.4版本的,当时还有18.2版本,由于vivado是17.4,实测发现windows下,18.2版本的驱动无法操作17.4的F...转载 2020-09-30 16:57:18 · 5513 阅读 · 6 评论 -
Xilinx PCIe XDMA Linux驱动代码流程分析图
转载 2020-09-30 14:38:14 · 5145 阅读 · 1 评论 -
XDMA设备在WINDOWS下的驱动编程
博客里写的不够详尽,也不太方便阅读代码,我将源码放在百度网盘链接:https://pan.baidu.com/s/1yt1mbl6Unkam3huz8T9MRw密码:k6ti ;并在源码里做了注释了解一下什么叫总线模型(这是Linux下的概念,但是感觉和windows有相通之处),总线负责连接驱动和设备,通俗的来说就是总线提供接口给驱动,所谓接口就是设备的一些基本操作,驱动负责实现设备逻辑。比如:驱动读取设备数据时,先发地址再发命令,就可以调用总线提供的接口来实现这一简单逻辑。Windows下提供接口.转载 2020-09-28 20:02:22 · 7050 阅读 · 4 评论 -
xapp1052BMD_PCIE-DMA
觉得这篇讲解PCIE的FPGA设计不错,mark一下。写在前面近两年来和几个单位接触下来,发现PCIe还是一个比较常用的,有些难度的案例,主要是涉及面比较广,需要了解逻辑设计、高速总线、Linux和Windows的驱动设计等相关知识。这篇文章主要针对Xilinx家V6和K7两个系列的PFGA,在Linux和Windows两种系统平台下,基于Xilinx的参考案例XAPP1052的基础上,设计实现了总线主控DM...转载 2020-09-28 16:55:20 · 2995 阅读 · 0 评论 -
使用XDMA测试FPGA与PC通信
(PCIE学习应用教程)1.使用XDMA测试FPGA与PC通信万物皆可卷积武汉大学 电路与系统硕士在读19 人赞同了该文章Xilinx的Vivado中,有三种方式可以实现PCIE功能,分别为:调用7 Series Integrated Block for PCI Express IP核,这是最基础的PCIE IP核,使用起来较复杂。 调用AXI Memory Mapped To PCI Express IP核,对7 Series Integrated Block for ..转载 2020-09-28 16:38:22 · 5492 阅读 · 0 评论 -
Xilinx zynq系列pcie xdma通信(二):下位机PS端
在上一篇博文中介绍了PL端的设置,本文继续介绍PS端的设置。PS端仅用于验证上位机读写DDR3是否正确,因此相对比较简单。 一、新建SDK项目 在生成好bit文件之后先Export Hardware 启动SDK 打开SDK后界面如图,可以看到自动生成了一个platform_0的文件夹,这个文件夹里的内容就是之前文章中zynq的一些配置内容。当工程目录发生更改后,SDK又会再自动...转载 2020-09-28 16:15:45 · 2968 阅读 · 3 评论 -
Xilinx zynq系列pcie xdma通信(一):下位机PL端
一、前言 本人没什么FPGA的开发经验,然而一上来就要搞zynq和PCIE通信,上手真的太难了。查阅了各种网上资料,经历了一个多月各种测试终于成功调通了。因为网上关于pcie的资料太少,翻来翻去就是那么些内容,因此想要详细总结一下这方面的要点,帮助小伙伴少走弯路。我使用的平台是VIVADO 2017.4,芯片型号XC7Z015-2CLG485I,开发板是ALINX的AC7015。好了,废话不多说...转载 2020-09-28 16:14:42 · 7725 阅读 · 5 评论 -
XDMA驱动配置及详解
第一步:打驱动 在设备管理器中找到PCI内存设备,更新驱动程序 XDMA_Driver(整个文件夹),电脑调成测试模式 打完驱动断电重启后会出现XDMA设备第二步:找设备并打开和关闭 通过设备实例路径来识别每一个XDMA设备,因为每个XDMA设备的设备实例路径是唯一的。 如果想打开读写寄存器设备 1 : 设备实例路径 + “\\user” (中间有些步骤省略 详情查看 便携式记录仪V1.0//MyWinDriverLib.cpp 中的openControlD...转载 2020-09-28 16:11:36 · 10343 阅读 · 1 评论 -
PCIE XDMA 开发环境搭建以及环路测试
软件版本:VIVADO2017.4 操作系统:Ubuntu16.4 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! 1.1 课程介绍 这一章开始主要介绍XILINX FPGA PICE IP XDMAIP的使用。XDMA IP使用部分教程分LINUX 篇和WINDOWS篇两个部分。通过实战,面向应用,提供给大家 XILINX FP...转载 2020-09-26 16:11:13 · 9839 阅读 · 2 评论 -
PCIe的XDMA应用
之前介绍的PCIe实物模型为PIO模式,可编程PIO模式,软件控制CPU在主机总线上发起一个存储器或IO读写总线周期,并以映射在PCIe设备地址空间的一个地址为目标,根据PCIe总线宽度的区别,在每个时钟周期内可以传输4个或者8个字节的数据。传输效率低且占用CPU周期。 另一种PCIe实物模型为DMA模型,直接存储器读取方式实现PCIe设备与系统存储器之间的数据传送,这种传输放大效率较高,因为在数据传送过程中不需要CPU参与,且传送一个数据只需要一个突发总线周期。一、XDMA相关知识 绝...转载 2020-09-26 15:56:13 · 8271 阅读 · 2 评论 -
XILINX XDMA pcie 使用
前段时间在公司项目中调试了PCIE,正好做一个总结,那些介绍XDMA、PCIE之类的多余的东西网上能搜到很多,我这里就不多说。我写的只是自己的一些想法,以及自己的设计思路。 同每一个刚开始调试PCIE的人一样,作为初学者大家都是先去网上搜集大量的资料学习,我也搜集了很多,看完之后其实还是有点泪崩,不知道怎么做。 在Vivado的IP Catalog中我们可以看到有三个可用于PCIE控制的IP核,其中第三个IP使用起来是最简单的,是将PCIE快速应用到项目中的最好...转载 2020-09-26 15:31:26 · 23204 阅读 · 8 评论 -
how to reset CPU1 in AMP (petalinux + 裸核)
how to reset CPU1 in AMP (petalinux + 裸核)跳至解决方案Hi Xilinx, vivado/sdk/petalinux 2017.4, microzed 7020, AMP xapp1078按照 xapp1078,做成了 AMP (petalinux on cpu0 + 裸核 on cpu1)。现在想从 cpu0 reset cpu1,然后在cpu1上重新启动 app_cpu1.elf,找了一圈...转载 2020-09-11 18:48:59 · 787 阅读 · 0 评论 -
Zynq的AMP开发流程说明(基于OCM)
目录一.平台说明二.软件安装三.基本开发流程3.1.AMP模式介绍3.2.开发流程框图四.具体开发流程4.1.下载官方Demo源码4.2.Vivado工程创建(Windows 64位环境)4.2.1.工程创建4.2.2.配置ARM系统:4.2.3.工程编译并导出4.3.Petalinux工程(Ubuntu 16.04环境)4.4.SDK工程(Windows 64位环境)4.4.1.CPU1程...转载 2020-09-11 18:44:52 · 1591 阅读 · 0 评论 -
ZYNQ的AMP模式下,一种可以在线调试的重启CPU1的方法
问题背景ZYNQ的AMP模式开发中,常常会需要对CPU1进行software Reset ,reset之后的引导是一个比较麻烦的问题。按照官方手册的介绍,software Reset之后,CPU1会跳到0x00地址处执行。正常工作的情况下,0x00处加载的是FSBL的代码,由BSP中的boot.s来实现CPU ID的识别和代码跳转。当需要XSDK通过JTAG在线调试时,FSBL并不会加载,此时0x00处的代码未知,若对CPU1执行Reset,将无法正确实现跳转。解决思路按照XAPP1079的转载 2020-09-11 18:06:16 · 1456 阅读 · 0 评论 -
zynq双核AMP实验之cpu1唤醒代码
一·多核CPU的运行模式 从软件的角度看,多核处理器的运行模式有 AMP(非对称多处理)、SMP(对称多处理)和 BMP(受约束多处理)三种运行模式。 AMP 运行模式指多个内核相对独立的运行不同的任务,每个内核相互隔离,可以运行不同的操作系统(OS)或裸机应用程序。 SMP 运行模式指多个处理器运行一个操作系...转载 2020-09-11 17:59:12 · 2636 阅读 · 0 评论 -
SRIO中的关键数据包格式总结
1 SRIO事务及其类型SRIO(Serial Rapid IO)事务(transaction)类型有SRIO包(packet)中的Ftype和Ttype决定,其中比较重要的是Nread(Ftype = 2,Ttype = 4),功能是读制定的地址;NWRITE(Ftype = 5,Ttype = 4)表示往指定的地址写数据;NWRITE_R(Ftype = 5,Ttype = 5),表示往指定的地址写数据,写完之后接收目标期间的响应,即所谓的带响应的写;SWRITE(Ftype = 6,T转载 2020-09-10 17:07:57 · 12377 阅读 · 1 评论 -
Xilinx SRIO IP HELLO包格式
在利用Xilinx的IP进行开发时,为了简化报文的解析和组包,SRIO Gen2 usesAXI4-Stream,Xilinx推出了一种简化的报文格式,这样一来,我们可以发现,这样又很接近PCIE的TLP报文格式了。lHELLO format转载 2020-09-10 17:04:04 · 2051 阅读 · 0 评论 -
Xilinx FPGA RapidIO SRIO
参考RapidIO规范《RapidIO_Rev_2.2_Specification》书籍《RapidIO The Embedded System Interconnect》Xilinx手册pg007《Serial RapidIO Gen2 Endpoint v4.1 LogiCORE IP Product Guide》IDT CPS1848手册《CPS-1848™ User Manual》博客Zynq-Linux移植学习笔记之14-RapidIO驱动开发博客基于Xilinx的RapidIO核配转载 2020-09-10 16:54:19 · 1311 阅读 · 0 评论 -
xilinx zynq RapidIO系统配置
参考书籍《RapidIO The Embedded System Interconnect》xilinx手册pg007《Serial RapidIO Gen2 Endpoint v4.1 LogiCORE IP Product Guide》Zynq-Linux移植学习笔记之14-RapidIO驱动开发host初始化直接看RapidIO的初始化,一些底层的比如物理层链路层之类的不需要关心,用到了再去看,毕竟都是基于芯片或者IP来开发。先从高层了解这个过程。系统启动过...转载 2020-09-10 11:04:18 · 2286 阅读 · 1 评论 -
Zynq-Linux移植学习笔记之21-Linux启动时自动以root账号登录
在调试zynq开发板时,linux启动后总是需要手动输入root以登录系统,如下图所示:这对于自动执行应用程序来说很不方便。现在可以通过修改ramdisk的相关内容实现root账号自动登录。 1、创建可执行文件首先需要创建可执行文件,用对应板子的CROSS COMPILE编译为可执行文件,当前环境下选择的是arm-linux-gnueabihf-,将auto_login.c编译为auto_login. 2、修改ramdisk将原来的uramdisk.im.转载 2020-09-09 19:32:52 · 833 阅读 · 0 评论 -
Zynq-Linux移植学习笔记之14-RapidIO驱动开发
在对zynq进行linux驱动开发时,除了需要针对zynq内ARM自带的控制器适配驱动外,还需要对zynq PL部分的IP核进行驱动开发。对于ARM来说,zynq PL部分的IP核就是一段地址空间,这段地址空间包含了该IP的一系列寄存器,ARM操作该IP核的寄存器也就是操作这段地址空间,而PL部分IP的驱动也就是对IP寄存器的操作。 1、 硬件设计在vivado内进行设计时,RapidIO IP核通过AXI总线与ARM相连,地址空间区域如图:从0x40000000-0...转载 2020-09-09 19:28:22 · 1302 阅读 · 0 评论 -
ZYNQ PS端双MAC,MDIO共用
此为转帖,原文:https://forums.xilinx.com/t5/Embedded-Linux/Dual-Marvell-88e1512-PHY-Ethernet-problem-Xilinx-LInux/td-p/682660/highlight/false/page/3目前已经验证正常,Mark一下!!! Patch files attached. Patch is applicable O...转载 2020-09-02 13:47:21 · 2406 阅读 · 0 评论 -
Zynq中 PS接收PL中断
参考: https://blog.youkuaiyun.com/RZJMPB/article/details/50736918 https://www.cnblogs.com/milinker/p/5906004.html http://www.osrc.cn/forum.php?mod=viewthread&tid=1255 http://www.osrc.cn/forum.php?mod=viewthread&tid=1097 https://blog.csdn.n..转载 2020-08-31 17:24:54 · 1548 阅读 · 0 评论 -
基于FPGA Manager的Zynq PL程序写入方案
本文主要描述了如何在Linux系统启动以后,在线将bitstream文件更新到ZYNQ PL的过程及方法。相关内容主要译自xilinx-wiki,其中官网给出了两种方法,分别为Device Tree Overlay和Sysfs interface。由于项目需要,暂只对sysfs interface在线烧录的执行过程作简要介绍和实践,并附有相关的配置脚本文件,更多详情请参照Solution Zynq PL Programming With FPGA Manager。 1|0内核配置为...转载 2020-08-29 11:11:55 · 1546 阅读 · 0 评论 -
ZYNQ7020 AMP使用方法总结
本人使用的sdk版本为2015.4本人的方法适用于15.4之后的版本Zynq开发双核分为两种方法,第一种双核裸跑,第二种linux+裸跑。双核裸跑:先使用Debug调试器调试,通过SDK新建一个工程正常建造工程不需要更改任何地方,当工程建造好后,双击打开lscript.ld 文件。配置ps7_ddr_0_S_AXI_BASEADDR的起始地址和长度,之后再建造一个工程记得选...转载 2020-04-11 14:55:55 · 1237 阅读 · 0 评论