技术

人工智能引发能源问题,我们该怎么办?(一)

在 2014 年,斯坦福大学教授 Mark Horowitz 发表了一篇题目为“计算的能源问题(以及我们该怎么办)”的论文。 如果可以的话,我想借用并改编一下 Mark 的论文标题,这样我就可以就机器学习推断应用为什么应该考虑专用硬件,分享一下我的一些观点。

FPGA时序约束理论篇之两种时序例外

默认情况下,保持时间的检查是以建立时间的检查为前提,即总是在建立时间的前一个时钟周期确定保持时间检查。

Zynq中FPGA上电时序

因为ZYNQ 的PS 和PL 部分的电源有上电顺序的要求,在电路设计中,按照ZYQN 的电源要求设计,上电依次为1.0V -> 1.8V -> 1.5 V -> 3.3V -> VCCIO

AXI总线简介(二)

AXI协议是基于burst的,主机只给出突发传输的第一个字节的地址,从机必须计算突发传输后续的地址。突发传输不能跨4KB边界(防止突发跨越两个从机的边界,也限制了从机所需支持的地址自增数)。

FPGA时序约束理论篇之时钟周期约束

时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。

在 Vivado 中利用 report_qor_suggestions 提升 QoR

许多 FPGA 设计都难以达成所期望的性能目标。原因不尽相同,以下列出的只是其中部分可能的原因:未遵循 UltraFast 设计方法;时序约束不良;过高资源利用率;控制集过多;未采用最优化时钟设置;逻辑层次过多,难以达成目标性能;布局规划不良;布线拥塞;因约束导致工具优化受限。

Python 进阶之源码分析:如何将一个类方法变为多个方法?

前一篇文章《Python 中如何实现参数化测试?》中,我提到了在 Python 中实现参数化测试的几个库,并留下一个问题:它们是如何做到把一个方法变成多个方法,并且将每个方法与相应的参数绑定起来的呢?我们再提炼一下,原问题等于是:在一个类中,如何使用装饰器把一个类方法变成多个类方法(或者产生类似的效果)?

Xilinx FPGA的JTAG接口

随着USB接口的越来越普及,现在几乎所有的接口都可以转换成USB接口,本文主要介绍一下Xilinx FPGA的JTAG接口转换成USB接口的方案。

在Vivado中,您使用过TCL吗?

Vivado是Xilinx最新的FPGA设计工具,支持7系列以后的FPGA及Zynq 7000的开发。与之前的ISE设计套件相比,Vivado可以说是全新设计的。无论从界面、设置、算法,还是从对使用者思路的要求,都是全新的;在运行速度、算法优化和功能整合等很多方面都有了显著地改进。

AXI总线简介(一)

AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。

verilog学习之常用语法之状态机

状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路。通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态的时序逻辑电路,三是输出组合逻辑电路。

FPGA系列之“速度等级”

本文主要介绍FPGA选型时的速度等级这个参数。大家在进行FPGA选型时都会看见一个参数:Speed Grade,这就是芯片的速度等级。

FPGA时序约束理论篇之时序路径与时序模型

典型的时序模型如下图所示,一个完整的时序路径包括源时钟路径、数据路径和目的时钟路径,也可以表示为触发器+组合逻辑+触发器的模型。

Xilinx FPGA的FMC接口

本文主要介绍Xilinx FPGA的FMC接口。Xilinx FPGA的FMC是FPGA Mezzanine Card的简称。FMC分为处理引擎(载卡)和I/O引擎(FMC模块)两大部分。

Vivado 时序收敛技巧之总体脉冲宽度时序裕量违例 (TPWS) 第 2 部分

有多种类型的时序违例可归类为脉冲宽度违例:最大偏差违例;最小周期违例;最大周期违例;低脉冲宽度违例;高脉冲宽度违例。

FPGA时序约束理论篇之建立保持时间

什么是时序约束?泛泛来说,就是我们告诉软件(Vivado、ISE等)从哪个pin输入信号,输入信号要延迟多长时间,时钟周期是多少,让软件PAR(Place and Route)后的电路能够满足我们的要求。因此如果我们不加时序约束,软件是无法得知我们的时钟周期是多少,PAR后的结果是不会提示时序警告的。

干货!Verilog HDL初设计注意事项

“要养成良好的Verilog代码风格,要先有硬件电路框图之后再写代码的习惯,设计出良好的时序,这样才能在FPGA开发或者ASIC设计中起到事半功倍的效果,否则会事倍功半。”

Python 中如何实现参数化测试?

本文想针对测试中一种很常见的测试场景,即参数化测试,继续聊聊关于测试的话题,并尝试将这几个测试框架串联起来,做一个横向的比对,加深理解。

Vivado 时序收敛技巧之总体脉冲宽度时序裕量违例 (TPWS) 第 1 部分

有多种类型的时序违例可归类为脉冲宽度违例:最大偏差违例;最小周期违例;最大周期违例;低脉冲宽度违例;高脉冲宽度违例。

FPGA复位的正确打开方式

回想一下平时我们常用的复位方式:1.首先,上电后肯定是要复位一下,不然仿真时会出现没有初值的情况;2.最好有个复位的按键,在调试时按一下复位键就可以全局复位了;3.也许是同步复位,也许是异步复位,不同的工程师可能有不同的方案。