博客

ZYNQ学习之路——时序仿真

发表于:10/28/2021 , 关键词: Zynq, 时序仿真
在编写ZYNQ的FPGA逻辑代码过程中,往往需要对时序进行分析。时序信号的分析一般通常有软件仿真和在线仿真两种,本文介绍这两种方法的具体使用方法。

Xilinx Vitis 2020.1无法创建SREC SPI Bootloader工程,提示缺少xilisf库的解决办法

发表于:10/26/2021 , 关键词: Vitis 2020.1
在BSP设置中,手动添加xilisf库的引用。首先,在Platform工程(这里是microblaze_test)上点击鼠标右键,选择“Open Platform Editor”命令。在Board Support Package里面,点击Modify BSP Settings按钮,勾选xilisf复选框,然后点击OK。

ZYNQ学习之路——创建PetaLinux工程

发表于:10/22/2021 , 关键词: Zynq, Petalinux
在前面的学习中,我们知道如何根据PetaLinux BSP设计去创建一个工程,现在,我们结合Vivado设计我们自己PetaLinux系统。

Xilinx 2020.1 MIG核读写DDR3内存,新建工程时配置MIG核的完整步骤

发表于:10/21/2021 , 关键词: MIG, DDR3L
本文以XC7A35TFGG484-2这款芯片为例,采用米联客FPGA开发板,用MIG核驱动DDR3内存。FPGA外接的晶振大小为50MHz,DDR3内存的驱动频率(ddr3_ck_p和ddr3_ck_n)为400MHz。选用的DDR3内存型号为MT41K128M16,内存容量为256MB。

ZYNQ学习之路——PetaLinux开发环境搭建

发表于:10/18/2021 , 关键词: Zynq, Petalinux
本文转载自:亦梦云烟的博客 简介 PetaLinux是一个嵌入式Linux系统开发工具,用于设计Xilinx基于FPGA的SOC片上系统。本节为第一节,旨在介绍如何使用PetaLinux工具。 软件环境: windows 10 64bit,VMware 12, ubuntu 16, Vivado2018.2 硬件环境: 米尔科技Zturn board 安装vmware后在其中安装ubuntu。... 阅读详情

在Vivado 2020.1中用MIG核读写DDR3内存,编译代码时提示Sub-optimal placement错误的解决办法

发表于:10/15/2021 , 关键词: DDR3, MIG
板子使用的是米联客的XC7A35TFGG484-2的开发板,上面带有256MB的型号为Micron MT41K128M16的DDR3内存。板子上的V4引脚上接了50MHz的晶振。 用MIG核来驱动这片DDR3内存。DDR3的运行时钟Clock Period为400MHz(由MIG核自己产生这个时钟,从ddr3_ck_p和ddr3_ck_n引脚输出出来,用来驱动DDR3)

ZYNQ学习之路——AXI DMA

发表于:10/14/2021 , 关键词: Zynq, AXI-DMA
AXI DMA IP核提供了AXI4内存之间或AXI4-Stream IP之间的内存直接访问,可选为分散收集工作模式,初始化,状态和管理寄存器等通过AXI4-Lite 从机几口访问,结构如图1所示,AXI DMA主要包括Memory Map和Stream两部分接口,前者连接PS段,后者连接带有流接口的PL IP核

FPGA中截位导致的直流分量如何去除?

发表于:10/12/2021 , 关键词: System Generator, 直流分量, 数字信号处理
在用FPGA做算法时,由于FPGA中一般都是使用定点数据,因此经常需要移位操作。比如一个16bit的信号经过滤波器后,由于滤波器的增益,输出结果肯定不是16bit,如果我们想保持输入输出的位宽是一致的,那就必须要进行移位。

FPGA调用浮点数IP核实现浮点运算、以及CORDIC核计算三角函数,连续进行多次运算的时序

发表于:10/12/2021 , 关键词: FPGA, cordic
单片机的硬件串口,发送和接收完毕都有相应的标志位,例如TC(发送完成)和RXNE(接收完成)位。FPGA则不同,FPGA采用的是AXI4-Stream协议,数据送入IP核后,经过固定数量的时钟周期后,就得到运算结果,没有任何标志位表明运算完成。

ZYNQ学习之路——DMA PS(PL330)基础

发表于:10/11/2021 , 关键词: DMA, Zynq, PL-330
DMA是直接内存访问(Direct Memory Access),DMA引擎可以将数据从一个地方传输到另一个地方,在传输过程中不经过CPU的控制。最简单的DMA用法是将数据从内存的一个区域搬运到另一个区域。

Vivado时序收敛技术(二) 时序违例的根本原因及解决方法

发表于:10/08/2021 , 关键词: Vivado, 时序收敛
本文整理自Xilinx公开课:Vivado时序收敛技术。有些知识在公开课中讲的并不是很细,因此我又对齐进行了整理,分为了几篇文章。

Vivado ECO实例教程一 增加LUT(GUI操作)

发表于:09/30/2021 , 关键词: ECO
本篇文章我们以Vivado的wave_gen工程为例,来看下如何通过ECO来增加一个LUT,并对内部信号实现取反的功能。

ZYNQ学习之路——USB总线学习(二)

发表于:09/28/2021 , 关键词: Zynq, USB总线
Linux中USB驱动程序依然遵循标准的设备驱动模型——总线、设备、驱动。和I2C总线设备驱动一样,所有的USB驱动程序都必须创建的主要结构体是struct usb_driver,它们向USB核心代码描述了USB驱动程序,但这只是外壳,只实现了设备与总线的挂接,具体的USB设备是什么,如何实现,还需要编写相应的文件操作接口。本文详细介绍USB的驱动框架。

Vivado时序收敛技术(一) Baseline基础理论

发表于:09/28/2021 , 关键词: Vivado, 时序收敛, Baseline
本文整理自Xilinx公开课:Vivado时序收敛技术。有些知识在公开课中讲的并不是很细,因此我又对齐进行了整理,分为了几篇文章。

Vivado2021.1、Vitis2021.1、Petalinux2021.1与Vitis AI 1.4安装详解与软件下载

发表于:09/27/2021 , 关键词: Vitis
本文对vivado、vitis、petalinux2021.1版本以及Vitis AI 1.4安装过程进行详细描述,并提供安装软件网盘地址。