技术

FPGA供电分析

FPGA是一种多电源需求的芯片,主要有3种电源需求:VCCINT,VCCA,VCCD_PLL......

FPGA 时钟分频

时钟信号的处理是FPGA的特色之一,因此分频器也是FPGA设计中使用频率非常高的基本设计之一。一般在FPGA中都有集成的锁相环可以实现各种时钟的分频和倍频设计,但是通过语言设计进行时钟分频是最基本的训练,在对时钟要求不高的设计时也能节省锁相环资源。

【驱动初发】一个简单到不能再简单的块设备驱动

像IIC、LED、KEY等都属于字符设备,这些设备的驱动是所有驱动类型中最为简单的。块设备是另外一种不同于字符设备的类型,这两类设备在linux的驱动结构中有很大差异。总体来说,块设备驱动比字符设备驱动复杂的多,在IO操作上也表现出很大的不同。

FPGA中亚稳态——让你无处可逃

在FPGA系统中,如果数据传输中不满足触发器的Tsu和Th不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recovery time)不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值。

【驱动初发】如何在zynq上做个按键驱动

随着深度学习和5G的应用,对FPGA的功能要求越来越多。因此近几年FPGA大厂纷纷将自己的器件集成了更多的内核,比如赛灵思的zynq系列就集成了arm,GPU,PCIE,射频处理模块等等,用于满足各种各样的需求。

Python 依赖库管理哪家强?pip、pipreqs、pigar、pip-tools、pipdeptree 任君挑选

在 Python 的项目中,如何管理所用的全部依赖库呢?最主流的做法是维护一份“requirements.txt”,记录下依赖库的名字及其版本号。那么,如何来生成这份文件呢?

zynq中一个中断程序分析

本文通过分析一个中断例程来了解zynq中断执行过程

verilog的时钟分频与时钟使能

时钟使能电路是同步设计的基本电路。在很多设计中,虽然内部不同模块的处理速度不同,但由于这些时钟是同源的,可以将它们转化为单一时钟处理。

解决跨时钟域问题的三大方法

在本篇文章中,主要介绍3种跨时钟域处理的方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit和多bit数据的跨时钟域处理,学会这3招之后,对于FPGA相关的跨时钟域数据处理便可以手到擒来。

【网络压缩六】深度压缩

这篇论文来自作者韩松,是一篇经典的网络压缩论文,获得了ICLR2016最佳论文。它主要结合了剪枝,量化和霍夫曼编码的方法,将卷积神经网络的权重大大的压缩了,而且用于FPGA的部署。

由浅入深:Python 中如何实现自动导入缺失的库?

在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误:ImportError: No module named 'xxx'或者ModuleNotFoundError: No module named 'xxx'。

VerilogHDL可综合设计的注意事项

组合逻辑可以得到两种常用的RTL 级描述方式。第一种是always 模块的触发事件为电平敏感信号列表;第二种就是用assign 关键字描述的数据流赋值语句。

【网络压缩五】降维分解

在上一篇介绍了如何将高维度卷积核拆分成低维度小卷积核,从而降低计算量的方法。本篇介绍的也是采用了降维的思想来加速网络推理,但是数学上采用了不同的方法。而且这篇文章提出的方法可以加速深度网络,其在vgg-16上进行了实验,获得了4倍的加速效果,而在imageNet分类中top-5错误率仅有0.3%升高。

为什么range不是迭代器?range到底是什么类型?

迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存在。在关于迭代器的系列文章中,我至少提到了 23 种生成迭代器的方法。有些方法是专门用于生成迭代器的,还有一些方法则是为了解决别的问题而“暗中”使用到迭代器。

【重磅干货】手把手教你动态编辑Xilinx FPGA内LUT内容

FPGA是实现高性能计算与网络的重要工具,得益于其高度的并行性与用户可编程的特性,FPGA得到了越来越广泛的应用。FPGA由CLB、BRAM、DSP48E1、可编程布线资源、可编程IO资源等部分组成,其中,CLB是实现逻辑功能的基础

FPGA产生基于LFSR的伪随机数

通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取其中一个数字,该数字称作伪随机数,由于所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。

FPGA中的多时钟设计策略

设计中最快的时钟将确定 FPGA 必须能处理的时钟速率。最快时钟速率由设计中两个触发器之间一个信号的传输时间 P 来决定,如果 P 大于时钟周期 T,则当信号在一个触发器上改变后,在下一个逻辑级上将不会改变,直到两个时钟周期以后才改变。

视频编码基本概念

在视频压缩中有损(Lossy )和无损(Lossless)的概念与静态图像中基本类似。无损压缩也即压缩前和解压缩后的数据完全一致。有损压缩意味着解压缩后的数据与压缩前的数据不一致。

Python进阶:设计模式之迭代器模式

在软件开发领域中,人们经常会用到这一个概念——“设计模式”(design pattern),它是一种针对软件设计的共性问题而提出的解决方案。

【网络压缩四】CP分解

在CNN网络中卷积运算占据了最大的计算量,压缩卷积参数可以获得显著的硬件加速器的性能提升。在即将介绍的这篇论文中,作者就是通过张量的降维来降低卷积计算量的。作者通过CP分解将一个4D张量分解成多个低维度的张量,并且最后通过微调参数来提升网络精度。