中级知识库

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

PYNQ上手笔记(4)——Zynq中断应用

作者:Mculover666

在实际玩Zynq中断之前,先扯一扯中断这个神奇的东西~

实时性是一个嵌入式系统很重要的性能,实时性体现在一个系统对外部事件的响应能力和处理能力上,而CPU对一个事件的响应及处理主要依托于 —— 中断。

通俗的来说,中断的一个基本过程就是:当一个事件发生时(比如按键按下),产生一个可以发送到CPU的中断信号(上升沿或下降沿无所谓,是个信号就行),当CPU接收到这个中断信号后,对这个中断信号所表示的事件进行处理(跳转去执行中断服务程序,对按键按下这个事件进行处理)。

对这个基本过程抽象出来一个中断系统模型如图所示:

在上图中只是一个中断信号,那么当这个系统中存在很多中断信号时,群龙无首,整个系统就会乱套,CPU会像一只无头苍蝇一样到处去执行中断服务程序,结果可想而知,最后CPU肯定什么也干不了~

这篇白皮书阐明了InTime和Xilinx软件是如何通过调整编译参数以及运行并行编译来优化FPGA时序性能的。InTime通过机器学习来决定一个FPGA设计的综合和布局布线的最佳配置组合。通过和计算服务器的连接,InTime迅速地优化时序,同时也解决了用户流程自动化所面临的限制。

监控FPGA内部温度和电压,你造吗?

作者:做但不能忘思考,来源:FPGA2嵌入式

FPGA设计的时候,我们需要考虑功耗,功耗自然与温度相关,还需要考虑电源供电电压的稳定性以满足高低温的环境,有没有考虑过,怎么监控FPGA内部的温度和电压变化情况,这对项目的优化和评估用处很大,Xilinx的7系列内部集成ADC有这个功能,Altera的MAX系列内部集成ADC也有这个功能(如下图),现在以Xilinx来学习这个技能。

其实,在Xilinx 7系列的FPGA中有一个IP核XADC,它可以用来监控FPGA的内部温度以及内核等各种供电电压,当然也可以用来做外部低速的ADC采样,例如ADC型按键的功能实现。其中,官网的介绍如下:

逻辑电平之差分互连(6-1)

本篇主要介绍LVDS、CML、LVPECL三种最常用的差分逻辑电平之间的互连。由于篇幅比较长,分为两部分:第一部分是同种逻辑电平之间的互连,第二部分是不同种逻辑电平之间的互连。

下面详细介绍第一部分:同种逻辑电平之间的互连。

输入

CML

Xilinx FPGA的片上存储资源

一. 概述

Xilinx FPGA有三种可以用来做片上存储(RAM,ROM等等)的资源,第一个就是Flip Flop;第二种就是SLICEM里面LUT;第三种就是Block RAMs资源。

在用Vivado建立工程的时候选择器件的时候就可以看到这些资源的多少。如下图所示。

这里面的LUT资源是所有的LUT资源,包括SLICEL和SLICEM里面,如果大家想获得其中SLICEM的LUT资源多少,需要查看相关器件手册。如果大家想要了解底层,SLICEM中的LUT是如何形成RAM等资源的原理,大家可以回顾文章《初识FPGA CLB之LUT实现RAM》。

FlipFlop即触发器资源,一个FlipFlop即一个1bit的触发器。

逻辑电平之CMOS Latch up(3)

作者:XCZ,来源:硬件助手微信公众号

本篇主要针对CMOS电平,详细介绍一下CMOS的闩锁效应。

1、Latch up

闩锁效应是指CMOS电路中固有的寄生可控硅结构(双极晶体管)被触发导通,在电源和地之间存在一个低阻抗大电流通路,导致电路无法正常工作,甚至烧毁电路。

  • Latch up是指CMOS晶片中,在电源VDD和地线GND(VSS)之间由于寄生的PNP和NPN双极性BJT相互影响而产生的一低阻抗通路,它的存在会使VDD和GND之间产生大电流;
  • 随着IC制造工艺的发展,封装密度和集成度越来越高,产生Latch up的可能性会越来越大;
  • Latch up产生的过度电流量可能会使芯片产生永久性的破坏,Latch up的防范是IC Layout的最重要措施之一;
  • Latch up最易产生在易受外部干扰的I/O电路处,也偶尔发生在内部电路。
  • 2、Latch up的原理分析

    【视频】使用 Tcl 命令完成设计分析

    使用 Vivado 设计套件中的各种设计分析特性。

    PYNQ系列学习(三)——pynq与zynq对比(二)

    上一期的学习中,我们系统性地介绍了PYNQ与ZYNQ地区别与联系。PYNQ = Python + ZYNQ,即将ZYNQ部分功能的Python化,直接调用Python库和FPGA硬件库进行功能的开发。

    Pynq降低了开发人员的门槛,但知其然也知其所以然,开发效率将会更高。因此,在进入PYNQ的python开发之前,我们先来学习ZYNQ的PL与PS开发,为接下来的学习提供良好的基础。

    本部分的学习,我们依旧借助PYNQ_z2来完成。

    1. ZYNQ功能块
    ZYNQ中包含两大功能块:PS部分和PL部分。

    PS部分指Processing System,一个基于双ARM Cortex A9内核的处理系统,其中集成了内存存储器和外部存储器接口,以及如GPIO、UART接口等大量的外设。

    PL部分指Programmable Logic,基于Xilinx 7系列架构的可编程逻辑单元,通过PL部分可以为ARM定制很多外设,这也是ZYNQ的一大优点。

    【专家分享 】在Docker里玩转PetaLinux

    作者:Alex He,Xilinx 嵌入式技术专家

    Xilinx 嵌入式技术专家 Alex He 与大家分享在Docker里玩转PetaLinux的上手教程~

    PetaLinux
    PetaLinux是Xilinx推出的针对Zynq Soc, Zynq MPSOC嵌入式开发板的基于Yocto二次封装的Linux BSP构建工具,支持Ubuntu/CentOS/RedHat等多个版本。通常,我们都是将其直接安装在所支持的Linux OS中。

    Docker
    Docker 利用Linux核心中的资源分离机制来创建独立的软件容器,具有轻量级的、可移植的、自包含等特点。
    关于Docker的原理和基本应用方法网上已经有很多文章,相信很多读者也或多或少有些使用经验。官方网站 https://www.docker.com/ 提供了第一手的信息,相信你很快就能上手。

    Combined Advantages
    高效部署

    (SelectIO)新IP核学习的正确打开方式

    作者: 做但不能忘思考,FPGA2嵌入式

    当我们使用一种新的IP核的时候,遇到的最大问题是:以前根本没有接触过的新东西,我们会感到恐惧,不知道如何下手。比如,SelectIO该怎么来实现LVDS的功能:

    Step1,我们新加一个接收的SelectIO的IP核,界面如下图:

    Step2,打开IP核对应的数据手册和文档来学习IP核的大致使用方法,见EDA中自带的IP核你会快速用吗?,根据参考的数据文档我们大致配置好为:DDR模式2*4的LVDS_25接口,配置完后保存。

    同步内容