跳转到主要内容

技术

PYNQ系列学习(一): Pynq开发环境配置

PYNQ项目是一个新的开源框架,使嵌入式编程人员在无需设计可编程逻辑电路的情况下充分发挥Xilinx Zynq All Programmable SoC(APSoC)的功能。

在xilinx SDK中查询API函数的方法

当我们使用vivado搭建好硬件设计后就要在SDK下进行程序编写了,在SDK中我们可以建立C/C++工程,所以就有很多的库函数可以调用,那么问题来了,如何查询我想要的API函数呢?或者是该API函数如何使用?

下面我将以GPIO的IPCore为例介绍如何查询API函数。

1.将vivado设计好的硬件设计导入到SDK中,就可以把SDK代码编辑区的变迁也让切换到system.mss页面,可以看到Target Information,operating system,peripheral drivers和libraries。

2.可以看到所有的外设都已被列出来,单击每类外设后面的"Documentation"超链接即可打开其相应的API函数说明页面。以及个人外设可以导入例程供你参考。

Vivado平台IP核的封装方式

<font color="#FF8000">作者:浅搁 FPGA2嵌入式</font>

<strong>1. 前言</strong>

IP核这个东西相信很多人都不陌生吧,不管是哪个FPGA厂家,都会有自己的一些现成IP核供用户使用,从而节省设计的开发时间。在一个设计中,个人觉得将模块变成一个个直观的图形界面更有助于理清思路,增强整个设计的逻辑性。以前用过Microsemi的开发平台,觉得挺人性化的,你写完代码后,直接把.v文件拉到画布中,文件便会以图形模块的形式显示出来,然后拖动鼠标便可以把两个模块的对应引脚连接起来,十分方便直观。

<strong>2. Vivado中的IP核封装</strong>

Vivado使用技巧(23)——综合运行与OOC

<strong>创建综合运行</strong>
一个“运行(run)”是指定义和配置设计在综合过程中的各方面,包括:使用 的Xilinx器件、应用的约束集、启动单个或多个综合的选项、控制综合引擎结果的选项。点击Flow菜单中的Create Funs,或在Design Runs窗口中:

Modelsim仿真基本命令介绍

<font color="#FF8000">作者:高世皓</font>

初识FPGA CLB之LUT实现逻辑函数

<strong>一、概述</strong>

LUT中文名字叫查找表。以7系列的FPGA为例,每一个Slice里面有四个LUT。FPGA就是通过LUT实现大量的组合逻辑,以及SLICEM里面的LUT还可以构成RAM,Shift Register,以及Multiplexers。这篇文章我们一起来学习LUT如何构成组合逻辑。

<strong>二、LUT实现原理</strong>
LUT,中文名字叫做查找表,其原理其实也就是一个一个查找表,根据输入去找到相应位置的信号,然后做输出。说白了就好像一个小容量的ROM,把输入当作地址信号,对LUT里面预存的内容进行寻址。

Vivado FIR滤波器设计与仿真(一)

最近在学习FPGA DSP相关设计,从滤波器开始学习,最开始先生成两个正弦信号,产生混频信号,通过modelsim仿真来验证设计。 本案例用Block Design方法进行设计(也可以选择编写.v文件的形式进行设计)。

利用ZYNQ SOC快速打开算法验证通路(6)——LWIP实现千兆TCP/IP网络传输

一、前言

  之前ZYNQ与PC之间的网络连接依赖于外接硬件协议栈芯片,虽然C驱动非常简单,但网络带宽受限。现采用LWIP+PS端MAC控制器+PHY芯片的通用架构。关于LWIP库,已经有很多现成的资料和书籍。其有两套API,一个是SOCKET,另一个是本例中要用到的RAW。RAW API理解起来较为复杂,整个程序基于中断机制运行,通过函数指针完成多层回调函数的执行。SOCKET API需要支持多线程操作系统的支持,也牺牲了效率,但理解和编程都较为容易。实际上SOCKET API是对RAW API的进一步封装。

二、LWIP Echo Server demo解读

Zynq 轻量级以太网控制器LWIP传输速度优化

在sdk中选择lwip模板,编译调试可轻松连接成功并进行通信,模板中代码完成的任务是client给server发什么,server就会回复什么。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13814-40317-…; alt=""></center>

Zynq UltraScale+系列之“电源”

最近一个项目开始使用Xilinx的ZU+系列MPSoC,于是对其官网上的相关文档进行了学习梳理,包括电源、时钟、复位、配置和外围接口等。

本篇就电源部分进行梳理,其他部分会在后续的文章进行梳理,如有不妥之处,敬请留言指正为谢!

1、电源概述
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201810/13811-402…; width="670"></center>

Zynq-7000 人体肤色识别

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

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

在肤色识别算法中,常用的颜色空间为Ycbcr,Y代表亮度,cb代表蓝色分量,cr代表红色分量。

由于肤色在YCbCr 空间受亮度信息的影响较小,本算法直接考虑 YCbCr 空间的 CbCr分量,映射为两维独立分布的 CbCr空间。在 CbCr空间下,肤色类聚性好,利用人工阈值法将肤色与非肤色区域分开,形成二值图像。

RGB 转 YCbCr 的公式为:

Y = 0.257*R+0.564*G+0.098*B+16

Python语言特性

<font color="#FF8000">作者:huyr830 </font>

下是看书归纳所写。

Python语言介绍:
1. Python是一门跨平台、开源、免费的解释型高级动态编程语言。
2. Python支持命令式编程(How to do)、函数式编程(What to do),完全支持面向对象程序设计,拥有大量扩展库。
3. Python也被誉为胶水语言。

胶水语言:可以把多种不同语言编写的程序融合到一起实现无缝拼接,更好地发挥不同语言和工具的优势,满足不同应用领域的需求。

Python版本之争:

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等术语,因为它们通常与深度学习相关,即使它们不是深度学习技术。