标签 FPGA 下的文章

FPGA中如何使用内嵌逻辑分析仪

在 FPGA 调试中,很多问题无法通过仿真复现,例如时序相关 Bug、跨时钟域问题、上板后异常行为等。这时,内嵌逻辑分析仪(ILA, Integrated Logic Analyzer)是最有效的调试手段之一。本文简要介绍 FPGA 中 ILA 的使用方法和工程要点。FPGA的开发流程采用Synplify+Vivado流程实现。什么是 ILA?ILA 是集成在 FPGA 内部的逻辑分析仪,能...

继续阅读 »

从零开始写一个Xilinx FPGA Loader

本篇文章开始,我会记录一下自己从零开始搭建一个Xilinx FPGA Loader的过程。背景之所以会有这么一个想法,主要是Xilinx FPGA的下载器非常贵,即使淘宝上面的不正经的下载器也是非常贵,我买一个廉价的FPGA才不到100块,而配套一个下载器就要好几百,真的是很不人性。另外一个原因就是Vivado下载器似乎是不支持Spartan 6 FPGA SPI Flash下载的,总之各种...

继续阅读 »

SWD硬件实现

最近还在研究SWD协议,前面一篇文章中我们已经讲到了SWD的基本协议,这篇文章我们来看一下这个协议的一个硬件实现。本次硬件设计采用Verilog,因为Verilog也已经扔下了很久了,所以代码质量一般,也没有做什么测试,这里只是简单的看了一下输出的波形,其它的暂时没有关心。设计的总体思路实际上整个SWD协议还是非常简单的,硬件实现也是通过简单的状态机就可以实现,这里也刚好回顾一下状态机的写法...

继续阅读 »

用FPGA模拟fuse时出现的一个小问题

我们知道现在很多芯片里面都会有一个fuse的模块,通过fuse我们可以来定义芯片的生命周期,保存相关的秘钥等等,可以说fuse是芯片安全的一个基础,fuse虽然简单,但是至关重要,我们在芯片前期进行FPGA验证的时候,也需要在FPGA上实现FUSE的功能,但是FPGA本身并没有FUSE,所以我们还是要通过SRAM来模拟FUSE。这次发现的问题就是FUSE模拟的时候出来的一个问题,在实际芯片中...

继续阅读 »

FPGA Emulation移植中出现的一个小问题

在ASIC设计中,我们经常会用到FPGA来做一些流片之前的芯片测试,这个时候我们就需要将我们的Design porting到FPGA平台上来,一般我们都要手动将设计中的模拟模块去除,简化时钟设计,尽量减少门控时钟数量,毕竟FPGA并不喜欢门控时钟。还有一个比较大的改动就是padring,因为ASIC设计中,pad往往会有很多模拟相关的设计,比如ESD等东西,这个FPGA一般是无法支持的,所以...

继续阅读 »