本篇文章开始,我会记录一下自己从零开始搭建一个Xilinx FPGA Loader的过程。背景之所以会有这么一个想法,主要是Xilinx FPGA的下载器非常贵,即使淘宝上面的不正经的下载器也是非常贵,我买一个廉价的FPGA才不到100块,而配套一个下载器就要好几百,真的是很不人性。另外一个原因就是Vivado下载器似乎是不支持Spartan 6 FPGA SPI Flash下载的,总之各种...
我的代码我做主
本篇文章开始,我会记录一下自己从零开始搭建一个Xilinx FPGA Loader的过程。背景之所以会有这么一个想法,主要是Xilinx FPGA的下载器非常贵,即使淘宝上面的不正经的下载器也是非常贵,我买一个廉价的FPGA才不到100块,而配套一个下载器就要好几百,真的是很不人性。另外一个原因就是Vivado下载器似乎是不支持Spartan 6 FPGA SPI Flash下载的,总之各种...
最近还在研究SWD协议,前面一篇文章中我们已经讲到了SWD的基本协议,这篇文章我们来看一下这个协议的一个硬件实现。本次硬件设计采用Verilog,因为Verilog也已经扔下了很久了,所以代码质量一般,也没有做什么测试,这里只是简单的看了一下输出的波形,其它的暂时没有关心。设计的总体思路实际上整个SWD协议还是非常简单的,硬件实现也是通过简单的状态机就可以实现,这里也刚好回顾一下状态机的写法...
我们知道现在很多芯片里面都会有一个fuse的模块,通过fuse我们可以来定义芯片的生命周期,保存相关的秘钥等等,可以说fuse是芯片安全的一个基础,fuse虽然简单,但是至关重要,我们在芯片前期进行FPGA验证的时候,也需要在FPGA上实现FUSE的功能,但是FPGA本身并没有FUSE,所以我们还是要通过SRAM来模拟FUSE。这次发现的问题就是FUSE模拟的时候出来的一个问题,在实际芯片中...
在ASIC设计中,我们经常会用到FPGA来做一些流片之前的芯片测试,这个时候我们就需要将我们的Design porting到FPGA平台上来,一般我们都要手动将设计中的模拟模块去除,简化时钟设计,尽量减少门控时钟数量,毕竟FPGA并不喜欢门控时钟。还有一个比较大的改动就是padring,因为ASIC设计中,pad往往会有很多模拟相关的设计,比如ESD等东西,这个FPGA一般是无法支持的,所以...
终于到了上板的时刻了,对于玩硬件的人来说上板总是让人激动的,毕竟可以看到码的代码可以变成实际看得见摸得着的东西了。不过对于Zebu来说,上板看起来就是换了一个地方仿真而已,并没有什么,代码还是代码,和仿真相比除了速度快点,似乎没有什么特殊的地方。不过,速度快点也是很不错的呀,嘿嘿。Zebu的运行一般有以下几种方式,并且和系统设计采用的方法也是相关的。Cycle based C/C++程序控制...