中级知识库

为有一定FPGA开发基础的工程师提供进阶所需的设计知识、方案分析以及深度技术介绍。

Xilinx 7series FPGA SelectIO资源--ODDR

OLOGIC 资源

OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块。OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和OLOGIC2(位于HR I/O banks)。在本文的下述论述中,除非特殊说明,OLOGIC2和OLOGIC3在功能和端口上都是相同的。

OLOGIC2和OLOGIC3不属于原语,正因为这样,所以它们不能被直接例化。它包含在布局布线后用户可例化的一些元素,例如一个输出触发器(OFD--output flip-flop)或者一个ODDR(output DDR element).

OLOGIC主要由两个block组成,一个用于配置输出路径。另外一个用于配置三态控制路径。这两个block具有共同的时钟,但是具有不同的使能信号OCE和TCE。两者具有由SRVAL属性精致的一部和同步set和reset(S/R信号)。

输出路径和三态枯井可以以下列模式之一独立配置:

  • 边沿触发的D触发器
  • DDR模式(ASAME_EDGE 或 OPPOSITE_EDGE)
  • 电平敏感锁存器
  • 异步电路/组合逻辑
  • 下图说明了OLOGIC block中的各种逻辑资源

    Python环境下的8种简单线性回归算法

    作者:Tirthajyoti Sarkar,文章来源:机器之心

    本文中,作者讨论了 8 种在 Python 环境下进行简单线性回归计算的算法,不过没有讨论其性能的好坏,而是对比了其相对计算复杂度的度量。

    GitHub 地址: https://github.com/tirthajyoti/PythonMachineLearning/blob/master/Linear_...

    对于大多数数据科学家而言,线性回归方法是他们进行统计学建模和预测分析任务的起点。但我们不可夸大线性模型(快速且准确地)拟合大型数据集的重要性。如本文所示,在线性回归模型中,「线性」一词指的是回归系数,而不是特征的 degree。

    特征(或称独立变量)可以是任何的 degree,甚至是超越函数(transcendental function),比如指数函数、对数函数、正弦函数。因此,很多自然现象可以通过这些变换和线性模型来近似模拟,即使当输出与特征的函数关系是高度非线性的也没问题。

    最近,Digilent开源技术社区收到了两个关于如何在Zynq SoC和Zynq UltraScale + MPSoC上实现SPI接口的问题。在回答了这些问题之后,我认为有必要写一篇如何实现SPI的文章,在此分享。

    当我们在设计中使用Zynq SoC或Zynq UltraScale + MPSoC时,可以有两种方法来实现SPI接口:
    1. 使用PS端的SPI控制器(PS端有两个SPI控制器)
    2. 在PL端使用配置成标准SPI通信的AXI Quad SPI (QSPI) IP模块

    我们可以根据应用的要求来选择使用哪种方法实现SPI控制器。两种SPI的实现方式都支持四种SPI模式,并且都可以作为SPI主设备或SPI从设备。下表列出了它们之间的一些差异:

    基于Zynq的HDMI视频解码方式和相关IP核介绍

    在图像处理应用开发中,捕获或显示图像的最简单方法之一是使用HDMI(高清晰度多媒体接口)。HDMI是一种可以传输高清数字视频和音频数据的专有标准,被许多显示器和相机支持并广泛采用。这个特点使得HDMI成为Zynq图像处理应用的理想接口标准。

    在这篇文章中,我们将向大家介绍如何在不同目标开发板上使用基于Zynq的HDMI传输。

    图:Arty Z7 HDMI输入输出案例

    图:Arty Z7 HDMI输入输出案例

    如何以开挂的方式来查看Zynq启动顺序?

    当新入手一款Zynq开发板后,一般新手在串口输出一个hello world,实现功能就可以了。而对于一些对于Zynq有一定了解的老手而言,往往则会去尝试了解板上硬件的特性和时序,探究hello world输出背后整个系统是如何运作的。

    事实上,对于一款新的Zynq板卡来说,在启动序列中QSPI传输的速度不是一个明显的规范,本文教程就将教你如何使用Digital Discovery口袋式高速逻辑分析仪来快速分析启动序列并确定时序。

    硬件清单

  • Digital Discovery口袋式高速逻辑分析仪
  • 带有flash的Zynq开发板(本文中使用Digilent Zybo作为被测对象)
  • SOIC测试夹(若有最佳)
  • 杜邦线
  • 主流机器学习算法简介与其优缺点分析

    机器学习算法的分类是棘手的,有几种合理的分类,他们可以分为生成/识别,参数/非参数,监督/无监督等。

    例如,Scikit-Learn的文档页面通过学习机制对算法进行分组。这产生类别如:1,广义线性模型,2,支持向量机,3,最近邻居法,4,决策树,5,神经网络,等等…

    但是,从我们的经验来看,这并不总是算法分组最为实用的方法。那是因为对于应用机器学习,你通常不会想,“今天我要训练一个支持向量机!”相反,你心里通常有一个最终目标,如利用它来预测结果或分类观察。

    所以在机器学习中,有一种叫做“没有免费的午餐”的定理。简而言之,它的意思就是说没有任何一种算法可以完美地解决每个问题,这对于监督式学习(即预测性建模)尤其重要。

    例如,你不能说神经网络总是比决策树好,反之亦然。有很多因素在起作用,比如数据集的大小和结构。因此,您应该为您的问题尝试许多不同的算法,同时使用数据的“测试集”来评估性能并选择优胜者。

    当然,你尝试的算法必须适合你的问题,这就是选择正确的机器学习算法的重要性之所在。打个比方,如果你需要清理你的房子,你可以使用真空吸尘器,扫帚或拖把,但是你不会拿出一把铲子然后开始挖掘。

    因此,我们想要介绍另一种分类算法的方法,即通过机器学习所负责的任务来分类。

    机器学习的任务

    在诸多关于MicroBlaze软核处理器的例程中,往往都是使用JTAG下载然后借助SDK执行程序代码。然而无论是在项目展示还是实际应用中,我们都希望我们的设计可以即插即用,免去重复烧写的麻烦和必须使用SDK运行程序的限制。

    事实上,为了部署一个真实的系统,需要在没有任何人为操作的情况下从非易失性存储器中启动MicroBlaze处理器并加载程序代码。

    本篇文章,我们就围绕这个话题,以Digilent Arty Artix-7开发板为例,教你如何在板载的QSPI Flash中存储比特流配置文件和应用程序。

    QSPI有两个主要作用:

  • 配置Artix FPGA
  • 存储应用软件
  • 对于第一个功能,我们在Vivado设计中不需要包含QSPI接口。我们只需要在Vivado配置中更新对QSPI的设置,提供QSPI Flash存储器与FPGA配置管脚的连接。然而,一旦FPGA配置完成并调用MicroBlaze软核处理器,我们则需要在设计中引入与QSPI Flash通信的接口。这个新添加的接口允许引导程序(bootloader)从QSPI Flash存储器中复制应用程序到Arty实际执行的DDR SDRAM存储介质中。

    当然,这会引起一个问题,即MicroBlaze bootloader(引导程序)从何而来?

    作者:Sleibso,编译:蒙面侠客

    高性能的语音控制系统在智能家具和机器人的发展过程中显得越来越重要。语音控制系统的信号采集端使用麦克风阵列会得到更丰富的声音信号,为声音定位提供了可能,处理语音的硬件的性能和相应的软件算法直接决定了语音控制系统的处理效率和精确度。亚马逊和谷歌等大型互联网公司都在努力的研究高性能的语音控制系统,作为极客的你是不是也想入手一个硬件平台,开始自己的智能硬件的开发之旅呢?好的平台是成功的一半!

    给AI换个“大动力小心脏”之OCR异构加速

    作者: derick,腾讯架构师

    OCR在通用文字识别等场景下有广泛应用,基于FPGA异构加速的OCR识别相比CPU/GPU实现具有延时小、成本低的优势。我们设计了多FPGA芯片协同的异构加速架构,能快速适配业务OCR模型变化,检测识别整体性能为GPU P4 130%,处理延时仅为P4的1/10,CPU的1/30。

    1.文字识别技术- OCR

    OCR技术,通俗来讲就是从图像中检测并识别字符的一种方法,在证通用文字识别、书籍电子化、自动信息采集、证照类识别等应用场景中得到了广泛应用。通用场景的OCR因此通用场景下的OCR技术一直都是人工智能领域挑战性极强的研究领域,不需要针对特殊场景进行定制,可以识别任意场景图片中的文字。

    通用OCR技术包含两大关键技术:文本检测和文字识别。检测模型的作用简单来说就是确定图片中哪里有字,并把有字的区域框出来。文字识别是将文本检测box作为输入,识别出其中的字符。

    在Arty Z7上入门Xilinx SDSoC开发工具

    作者:阿Q 来源:开源硬件创客坊微信公众号

    细心的小伙伴们可能早已留意到,在Digilent今年全新出品的Zynq评估板中,无论是第二代经典入门级的Zynq™ Board - ZYBO Z7,还是创客最爱的ARTY Z7,都全面支持Xilinx SDSoC开发环境。意味着如果你是一名系统或软件工程师,现在无需深度的硬件专业知识,就能广泛地利用Zynq® SoC,畅享超过100倍的软件性能加速。

    本篇干货教程中,我们就将带你入门了解如何使用Xilinx SDSoC工具来创建嵌入式C/C++/OpenCL应用开发,并实现直接在ARTY Z7嵌入式视觉开发平台的器件上进行软件设计。

    SDSoC软硬协同设计与其开发流程

    由于集成了ARM处理器内核与可编程逻辑,对于众多应用开发而言,Zynq 非常的灵活。这意味着开发人员可以将设计按不同的元素来优化划分,例如将其中那些高层次决策的部分放入ARM内核(PS端),并将诸如图像处理流水线等需要加速的部分用可编程逻辑(PL端)来实现。

    当然,传统的Zynq开发流程会将Vivado和SDK分离开来,这种方法很难在可编程逻辑(PL)和处理系统(PS)之间分配功能,因此无法获得最优的系统性能。

    同步内容