技术

FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片

<font color="#FF8000">作者:没落骑士</font>

<strong>一、前言</strong>  

  本文设计思想采用明德扬至简设计法。以太网这一高效实用的数据传输方式应用于各个领域,如网络交换设备,高速网络相机等。虽然各FPGA厂商都提供MAC IP核,但大多收费,有时无法破解。不同厂家之间无法移植,而且为了通用性考虑牺牲了效率,因此自己动手写一个以太网MAC是个不错的选择。

ZYNQ跑系统 系列(四) AXI-DMA的linux下运行

AXI-DMA的linux驱动

一、搭建硬件环境

vivado版本2017.4,芯片为7010,不过不管什么版本和芯片大致步骤是一样的

本文工程文件:https://gitee.com/long_fly/AXIDMA_linux

初识FPGA CLB之总览

<strong>一. 概述</strong>
这里以7系列的FPGA为例,先从整体上去了解一下FPGA内部可编程逻辑资源的结构。了解FPGA器件的内部资源与结构有利于我们优化设计与评估设计资源。

SPI接口简介

串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数字GPIO数量。

SPI是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI接口可以是3线式或4线式。本文重点介绍常用的4线SPI接口。

Ubuntu Opencv 图像平滑处理

<font color="#FF8000">作者:OpenSLee,来源:FPGA开源工作室</font>

<strong>1背景知识</strong>

Vivado使用技巧(22)——综合策略与设置的选择

综合(Synthesis)是指将RTL设计转换为门级描述。Vivado开发套件中的综合工具是一款时序驱动型、专为内存使用率和性能优化的综合工具,支持System Verilog 2012、Verilog 2005、VHDL 2008、混合语言中的可综合子集,以及XDC设计约束文件(基于工业标准的SDC文件),此外还支持RTL属性来控制综合细节。

Vivado中新建 IO Planning工程初步引脚分配

<font color="#FF8000">作者:做但不能忘思考,来源:FPGA2嵌入式</font>

这些深度学习术语,你了解多少?(上)

对于一个新手来说,深度学习术语可能非常难以理解。本表试图解释深度学习常用术语并链接到原始参考,以帮助读者深入了解特定主题。

深度学习与“一般”的机器学习术语之间的界限非常模糊。例如,我这里不包括“交叉验证”,因为它是一种通用技术,用于整个机器学习。但是,我加入了softmax或word2vec等术语,因为它们通常与深度学习相关,即使它们不是深度学习技术。

利用ZYNQ SOC快速打开算法验证通路(6)——利用AXI总线实时配置sysGen子系统

利用ZYNQ验证算法的一大优势在于,可以在上位机发送指令借助CPU的控制能力和C语言易开发特点,实时配置算法模块的工作模式、参数等对来对其算法模块性能进行全面的评估。最重要的是无需重新综合硬件模块。

Vivado时序分析练习

时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习Vivado软件时序分析的笔记,小编这里使用的是18.1版本的Vivado。

这次的练习选择的是ZYNQ的芯片,原本工程是工作在100MHz的时钟,但是作为练习,我们可以把时钟调到一个极限的程度来进行优化。

首先,打开一个工程,更改一下时钟频率,使得工程能够有一些时序问题,我们再通过时序分析的方法对它进行优化。我们这里把原本的100M时钟改成了200M时钟,具体步骤如下:

MPSOC之9——host、embeded间tftp、nfs、ftp环境搭建

tftp
可传输单个文件,不能传文件夹
需要通过命令传输文件,略显复杂
==一般调试kernel时,用uboot通过tftp方式启动,不用每次都烧写存储介质==

nfs
在host linux(ubuntu)上的nfs文件夹中存放文件
开发板上mount ubuntu的文件夹,mount后就像自己的文件一样
这种方式共享文件很方便
也有linux启动后,拿nfs作为根文件系统,方便调试根文件系统的内容

ftp
没有host linux环境时,可以把windows当成ftp client,开发板ftp server
方便拖动文件

Vivado(2017.1)中 BRAM IP核的配置与使用(1)

  Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本篇文章主要介绍BRAM  IP核的使用。

    BRAM是FPGA定制的RAM资源,有着较大的存储空间,且在日常的工程中使用较为频繁。BRAM以阵列的方式排布于FPGA的内部,是FPGA实现各种存储功能的主要部分,是真正的双读/写端口的同步的RAM。

    本片文章是基于Vivado的 2017.1的版本,其他版本都大同小异。

Vivado使用技巧(21)——仿真中的Debug特性

<strong>源代码级别调试</strong>
Vivado Simulator提供了在仿真过程中debug设计的特性,通过为源代码添加一些可控制的执行条件来检查出问题的地方。总的来说有三种调试方法:

Xilinx基于PCIE的部分重配置实现(一)

本博文主要是对基于PCIE(mcap)的部分可重构实现的步骤做一个简单的演示,如有错误之处,欢迎批评指正。值得说明的是,基于PCIE的部分可重构需在ultrascale系列及ultrascale+芯片才能实现,具体哪些系列能实现哪种配置方式如下图所示:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13754-39975-…; alt=""></center>

MPSOC之8——启动及错误处理

有了BOOT.BIN(fsbl+pmu+atl+uboot)、uImage、uramdisk.image.gz,dtb文件,就可以启动了。把上述文件统统拷贝到SD卡,并设置开发板为SD卡启动。

0. U-BOOT启动参数
设置启动参数,然后启动
fatload mmc 0 0x1000000 uImage;fatload mmc 0 0x2000000 uramdisk.image.gz;fatload mmc 0 0x4000000 zynqmp-sf-zcu102.dtb;
setenv bootargs root=/dev/ram0
bootm 0x1000000 0x2000000 0x4000000

将上述参数固化到flash里,免得每次都要输入

学会System Generator(22)——图像采集与输出(数据流方法)

本文是该系列的第22篇。上一篇介绍了使用Image From File和Video Viewer完成图像的采集和输出,并将两部分分别打包为子系统,使其具有通用性。本文将介绍如何使用Simulink提供的回调函数机制,实现从MATLAB工作空间采集和输出图像。

ZYNQ的Linux开发--使用SDK生成设备树

开发环境:
Windows下的Vivado套件
Linux ubuntu

Step1:首先从Xilinx GitHub上下载Device Tree Generator(设备树生成器)的BSP https://github.com/Xilinx/device-tree-xlnx/pulls 并将其复制到SDK的安装目录下

PYNQ 和 ZYNQ 对比

PYNQ = Python + ZYNQ —— ZYNQ部分功能的Python化

<strong>PYNQ</strong>

优点:

1、 Python用于ZYNQ开发,Python库和FPGA硬件库可以直接调用,极大加快开发进程、缩短开发周期、降低开发难度,更方便、快捷;

2、 用PYNQ开发,当Python有更加有效的可用库时(如图像处理—OpenCV),其性能要比C/C++开发更强。

缺点:

目前,PYNQ还不支持任何高级的综合,也无法将Python应用直接移植到FPGA中,仅能调用已有库。

<strong>ZYNQ</strong>

优点:

一文教你搞定FPGA有符号数、无符号数难题

在设计中,所有的算数运算符都是按照无符号数进行的。如果要完成有符号数计算,对于加、减操作通过补码处理即可用无符号加法完成。对于乘法操作,无符号数直接采用“*”运算符,有符号数运算可通过定义输出为 signed 来处理。

通过“*”运算符完成有符号数的乘法运算。
module ceshi (out, clk, a, b);
output [15:0] out;
input clk;

//通过 signed 关键字定义输入端口的数据类型为有符号数
input signed [7:0] a;
input signed [7:0] b;

Vivado使用技巧(20)——Waveform功能详解

<strong> 使用波形配置文件</strong>