预留空间。
文章作者: 君恒
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 君恒的博客!
相关推荐

2026-06-22
ZYNQ的ARM侧基础学习_Part1
1 初始Vitis前面应该学习过ZYNQ的PL端的开发,还不涉及PS端。ZYNQ实际上是以PS端为核心,PL端作为它的外设,来去比方说做一个硬件加速了或者是对PS端做一个外设的扩展,那么要学习ZYNQ,一定是要学习PS端开发的。 前面所学的FPGA开发是通过Verilog语言,是偏底层硬件的开发和设计。而这里所学习的一个Vitis软件是开发它的PS端,使用C或者是C++。 另外需要说明的是,ZYNQ是PS+PL,而这个MPSoC也是PS+PL,他们只不过是ARM处理器以及PL端的一些资源等等有些差异,但他们的开发很类似,所以说下面的教程以ZYNQ为主要目标来去讲解,那么针对它们的差异地方也会去做一些说明。 1.1 Vitis是什么AMD Vitis软件平台是一款开发环境,主要用于开发包括FPGA架构,ARM处理器子系统和AI引擎在内的设计。Vitis...

2026-07-23
ZYNQ的ARM侧基础学习_Part2
8 自定义IP核前面学过AXI GPIO,这个实验使用的是赛灵斯官方的IP核去实现的功能。赛灵斯官方提供了很多的IP核,比如AXI DMI、AXI VDMI等等,但这些IP核往往是针对通用的使用场景,并不能事完全适应各种情况,那这时候就需要程序员去自己编写Verilog代码,封装成自己的IP核加入到Block Design里面,这个就叫自定义的IP核。 ZYNQ包含PS和PL,PS跟PL是怎么通信的呢——通过AXI接口通信对吧,所以说自己在实现功能的时候,难免是需要写AXI的接口协议,而这个Vivado软件提供了一种封装IP核的形式,它可以封装带AXI接口的一个IP核,简单说程序员只专注实现核心功能,利用AXI进行PS和PL通信部分软件能自动生成。 8.1 自定义IP核概述自定义IP核是指在Vivado软件环境下,借助创建和封装IP向导的功能,把用户按照特定需求所设计的硬件模块封装成IP核的形式。 上图是正点原子创建的IP核,首先创建了一个带AXI接口的IP核,然后进行修改,最终实现PWM功能。 自定义IP核的官方参考文档:UG1118: User Guide:...

2026-06-20
ZYNQ的FPGA侧基础学习_Part2
4 流水灯实验4.1 LED简介LED是什么?全称:Light Emitting Diode,发光二极管。 4.2 硬件设计下面来看一下本次实验的硬件设计部分,也就是LED硬件电路,我们这里是将FPGA引脚直接连接到了发光二极管的阳极,然后LED的阴极接了一个电阻,电阻另一端连接到GND。所以引脚给高电平则LED亮,反之则熄灭。 注意,上面两个是PL的引脚,下面这两个PS的引脚。那由于底板上面只有两个灯,所以说我们是用两个灯来实现流水灯效果。 可以发现它这里都串联了一个电阻,其主要是起到一个限流的作用,就说限制流过发光二极管的电流。 4.3 实验任务本节的实验任务是使用开发板上的两个/四个LED灯顺序点亮并熄灭循环往复产生流水灯的效果,流水的间隔时间为0.5s。 4.4...

2026-06-22
ZYNQ的FPGA侧基础学习_Part4
预留空间。

2026-06-22
ZYNQ的FPGA侧基础学习_Part5
预留空间。

2026-06-17
ZYNQ的FPGA侧基础学习_Part1
1 ZYNQ初识1.1 PL简介这里PL就是指的FPGA(Field Programmable Gate Array,现场可编程门阵列),一种可以通过编程来修改其逻辑功能的数字集成电路 (芯片)。 1.1.1 CLB介绍 为什么它能通过编程改变硬件电路呢,是因为它有CLB(可配置的逻辑块),如上图所示,CLB由“片0”和“片1“组成(在赛灵思中片就是Slice)。在这个FPGA芯片当中是有很多的这个CLB组成了一个二维的矩阵,图中只是其中一个CLB的内部结构,它是由两个片组成,然后通过一个开关矩阵进行连接。这个开关矩阵你可以把它理解成一个布线资源,CLB呢可以通过这个开关矩阵跟其他PL端的资源进行连接,或者是连接CLB内部的一些资源。 这个片Slice是由四个LUT加上八个FF组成。其中LUT(Look UP...
