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

FPGA设计的时候,我们需要考虑功耗,功耗自然与温度相关,还需要考虑电源供电电压的稳定性以满足高低温的环境,有没有考虑过,怎么监控FPGA内部的温度和电压变化情况,这对项目的优化和评估用处很大

基于FPGA的SCL译码算法优化与设计

作者:廖海鹏,卿粼波,滕奇志,何小海,邓媛媛,来源:2018年电子技术应用第12期

ZYNQ QNX开发——Resource Manger知识点总结

文章是对官方文档Resource Manger部分的总结,写得不是很有条理,仅是自己对这部分学习认识的一个总结,希望对看到的人有所帮助。
QNX OS是微内核操作系统,其内核仅仅提供进程调度、进程通讯等服务。文件访问、设备驱动等服务都属于用户空间的任务,下图是QNX系统的架构图

除了内核外其它所有进程都属于用户空间,内核作为一个软件总线,将其它所有资源互相连接起来,这种结构看起来像一个团队而不是层次结构,几个相同等级的“player”通过内核相互协调完成任务。

总的来看,资源管理器就是一个在文件系统名称空间中注册了一个名称的进程。其它进程使用其路径来与资源管理器通信。

资源管理器通常用来向各种各样类型的设备提供接口,涉及到管理实际的硬件设备。在其它操作系统这个功能作用通常归为设备驱动。但在QNX系统中,资源管理器不像是设备驱动,它是从内核中剥离出来,看起来就像其它用户级程序一样。若我们需要针对自己的板卡驱动硬件,这个驱动程序的开发就是资源管理器的开发。

【视频】:Alveo U200 & U250 入门

视频简要描述了 Alveo U200 和 U250 灵活应变加速器卡,并逐步介绍了硬件和软件安装步骤,包括下载安装包以验证开发板和软件安装。

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

本篇主要介绍LVDS、CML、LVPECL三种最常用的差分逻辑电平之间的互连。

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

1、LVPECL的互连

1.1、LVPECL到CML的连接

PYNQ上手笔记(2)——PL端和PS端的独立开发

作者:Mculover666

在上一篇中提到,Pynq是为了降低开发人员的门槛,但是作为一个学习嵌入式开发的学生,当然要一步一个脚印打好基础,所以选择从Zynq入手学习,等跑起来Linux系统再运用Python开发也不迟,知其然也知其所以然,开发效率更高,所以接下来的几篇都是关于Zynq的,如果想直接玩Pynq可直接跳过,毫无影响。

1.Zynq的架构
在开始实验之前对Zynq芯片有一个基本的认识,如果想深入了解关于Zynq的理论部分,推荐参考The Zynq Book,有英文版和中文版,在此对于Zynq的理论浅尝辄止,不做深究,重点放在实验应用上。

Zynq中包含两大功能块:PS部分和PL部分。

【视频】Algo-Logic Systems 演示超低延时 KVS

Algo-Logic 在 UltraScale + 架构上的新 Key Value Store(KVS)为内存中的对象存储提供了创纪录的延迟和吞吐量性能。

ZYNQ+Vivado2015.2系列(九)基于AXI总线的等精度频率计(测量数字信号频率)

上一节我们体验了一把PS和PL是怎样联合开发的,这种ARM和FPGA联合设计是ZYNQ的精华所在。这一节我们实现一个稍微复杂一点的功能——测量未知信号的频率,PS和PL通过AXI总线交互数据,实现我们希望的功能。

如何测量数字信号的频率

最简单的办法——在一段时间内计数

在我们设定的时间(Tpr) 内对被测信号的脉冲进行计数, 得Nx, Fx=Nx/Tpr。

Tpr 越大,测频精度越高。这种方法适合于高频信号,因为这里可能会有一个被测信号周期的误差,测量高频信号时误差小。

另一个变种——在一个周期内计数

在 被测信号一个周期内对基准时钟信号计数,得Nx, 基准时钟周期为T, 则Tx=T*Nx, Fx=1/Tx。
被测信号频率越低, 基准时钟频率越高,测量精度越高。因此这种方法适用于低频信号。

二者结合——多个周期同步计数

Xilinx A7 芯片内部结构分析(2)——存储单元

上一篇中提到了SLICEL和SLICEM都可用作ROM,后者还可以作为分布式RAM(Distribute RAM,DRAM)。本篇主要总结的是块状Memory(Block Memory),实际上就是FPGA内部独立于逻辑单元的专用存储器,更像是一种硬核。

1. 基本结构
如下图所示,一个Block Memory的大小为36KB(RAMB36E1),由两个独立的18KB BRAM(Block RAM,RAMB18E1)组成。因此一个36K的Block Memory可配置成4中情形:

  • 全部用于配置成36KB的BRAM;
  • 全部用于配置成36KB的FIFO;
  • 配置成18KB的BRAM和18KB的BRAM;
  • 配置成18KB的BRAM和18KB的FIFO;
  • 为什么不能配置成两个18KB的FIFO呢?因为一个Block Momery中间有一个叫FIFO Logic的结构,它用于生成FIFO控制信号,包括读/写地址等,由于它只有1个且不能共享,所以最多只能配置一个FIFO。

    嵌入式中通讯协议的设计

    作者:许雪松 ,硬件十万个为什么

    公司里做项目,嵌入式系统大大小小,到处都是。因为都是一个系统里的,所以都需要通讯,既然通讯就涉及到协议问题。