- 博客(6)
- 收藏
- 关注
原创 ZYNQ开发进化史—— 我的非阻塞裸跑机制
在ZYNQ编程初期,据大多数时候都在裸跑。这时候绝大多数时候程序是阻塞的,也就是说必须得等一行代码执行完才能进行下一步
2021-06-01 22:31:21 500 1
原创 如何魔改Xilinx Vivado 的MIG IP核
出于科研需求,需要修改DDR4控制器的物理层(PHYLater)。DDR4控制器代码虽然好找,但是不一定能适配手上的ZCU104;从头开始写一个DDR4控制器工程量太大了,于是决定魔改一下Xilinx官方的MIGIP(v2.2forUltrascale+)核。首先,官方的MIG并没有被lock,是可以看见源码的,也不构成侵权行为,官方论坛甚至也给出了一个修改的方法(https://forums.xilinx.com/t5/Memory-Interfaces-and-NoC/Editing-MIG...
2021-04-15 09:46:40 3412 3
原创 ZYNQ开发进化史——结构体对硬件的使用
在上一个篇章中,我们已经能把一个自己写的在FPGA上的设备挂在AXI总线上了,这时,其实在vivado中软件回帮你自动连接并且分配了基地址。例如,我们现在有这样一乘法器设备,它的地址对应如下:0X43C0_0000~0X43C0_0001 A[15:0] 0X43C0_0002~0X43C0_0003 B[15:0] 0X43C0_0004~0X43C0_0007 C...
2019-12-12 04:42:18 599
原创 ZYNQ开发进化史——AXI总线的使用
AXI总线的解释CSDN上比比皆是,我只发表我对AXI的理解和看法。AXI4总线是由AMBA简化而来的,其中又被Xilinx分割成了三类:AXIStream,AXILite,AXIFull。它们最核心的就是一个握手准则:ready——valid在一次通讯中,不管通讯内容是数据还是控制,都是使用这一个握手方式。及发送方高速接收方数据是否有效,接收方高速发送方下一个时钟自己是否能成功接...
2019-12-12 03:58:40 1984
原创 ZYNQ开发进化史——概述
这个系列包含了我一步一步让ZYNQ从裸跑到自己的小操作系统,到LinuxC,LinuxDriver在到PYNQ的过程。其中涵盖了许多碎知识,包括AXI总线、C语言内存管理、linux的移植等等,在此也对其做一个整理。首先,ZYNQ是一个把FPGA作为ARM外设的结构(注意,ARM是主,FPGA是从,启动的时候也是先启动ARM)。其最大特点是方便了控制以及加速部分计算。众所周知,FPGA...
2019-12-11 23:55:07 867
原创 ZYNQ使用AXI VDMA搭建图像通路
本人大四小白最近尝试使用ZYNQ进行图像处理,第一步自然是实现输入输出,参考了南京米联电子等前辈的实现方法后,自己尝试实现了一种新方法,并实现了OV7725的视频输入输出,在此分享一下经验~ 一、简介ZYNQ包括一个Cortex A9双核处理器(ps)和外部FPGA(pl),两者之间除了少量EMIO相互连接外,PS提供了对外的几个AXI总线接口。在ZYNQ体系中,DDR控制器处...
2017-10-02 09:13:07 7724 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人