原创 关于fpga启动过程的一些理解

2011-3-15 09:43 5161 10 13 分类: FPGA/CPLD

        首先,FPGA相当于一个万能芯片,可以通过编程来实现其逻辑功能。为了实现其功能,就要把这个万能芯片变成自己想要的芯片,因此其内部结构就必须要改变,也就是它内部的资源要重新互联(通过熔丝的断与连),这就必须要有一个文件,这个文件也就是我们经常说的配置文件,因为fpga内部的逻辑结构是有配置数据决定的。

        那好,既然我们想要这样的配置文件,那么这个配置文件从哪里来呢?fpga上电前还是一片空白的万能芯片,即使上次用它做成了一个系统,但只要断电,它又恢复了空白,也就是说其万能的内部如果落实到一个具体的结够必须要有电的维持。一旦fpga上电,它首先就会通过一定的严格时序去读取内部SRAM(因为fpga芯片内部嵌有ram,这里装有配置文件的sram应该就是其内部嵌有的ram,比如cyclon系列的M4KRAM等)的配置文件,当然这里不仅仅是读,因为FPGA是基于SRAM结构的,这里读的目的就是实现万能芯片最终的功能,即把硬件也固化了。

       我们平时一般都是用JTAG模式下载.sof(SRAM Object File)到fpga中,既然是sof,这里下载到fpga是指下载到fpga的SRAM中,因为下载时候是必须上电的,所以这时候SRAM就有配置文件了,此时的FPGA在一定时序下读取并配置了其逻辑就可以开始运行了。一旦fpga开始工作了,我估计此时的内部SRAM(开始说的M4K等)就可以被我们用来读写或其他应用,比如FIFO啊什么的。也就是说我们的fpga内部ram在fpga没有工作时是装载配置数据的,当fpga开始工作了,就可以覆盖其配置数据了,把它当一个存储器来用。

        那如果fpga上电按照初始固定的时序去读取内部的SRAM,发现其中没有配置数据怎么办?这里就要讨论下我们所说的AS下载配置了。如果上电后fpga发现内部SRAM没有配置数据,它又会通过固定引脚和时序去看看有没有配置芯片(比如说epcs系列)存在,如果有(下载到配置芯片内部的是.pof文件)它就会先把配置芯片的数据主动读取到内部sram中,至于后面的过程跟上一段所描述的就一样了。因为配置芯片都是基于ROM的,所以其内部的数据不会改变,因此我们系统掉电后上电通过此过程照样可以启动工作,它需要的时间非常少,只是人反应不过来,就好像fpga内部数据固化了一样。

        鉴于上述原因,我们一般调试时下载.sof文件,调试成功定板时下载.pof文件。

注:小弟刚接触fpga,很多东西不了解,最近虽然能用fpga实现一些小功能,但对fpga启动过程很少不了解,为了了结这个纠结,就查了几天的资料,单独介绍这方面的资料很少,自己只能根据这些资料来推测其启动过程了,估计很多理解有误,因为我才刚接触,但是这个纠结不搞定,我都没心思往下学,呵呵。所以下面的理解算是给我自己找的一个暂时性的理解吧,如果哪位大虾发现我理解有错误,非常欢迎指出,谢谢!

 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2014-5-23 15:54

不错

用户377235 2014-4-14 15:16

有帮助

用户466857 2011-7-24 11:22

不错,顶一个~
相关推荐阅读
用户253961 2012-03-03 11:54
Matlab DIP(瓦)ch3小笔记
         对应上篇文章Matlab DIP(瓦) ch3中用到的一些小知识点,自己联系时写下的小笔记。 matlab版本2009a,matlab7.8的。 f = imr...
用户253961 2012-03-03 11:51
Matlab DIP(瓦) ch3练习
      Matlab是一种图像视频处理实现的好工具,因为matlab是基于数组操作的,而一副图像就是一个数组。因此搞DIP或者CV的是一种必需掌握的工具。     为了学会使用matlab...
用户253961 2012-03-01 18:46
opencv源码解析之滤波前言
     对图像的滤波和平滑是出来数字图像处理和计算机视觉非常重要的一个步骤,那么什么是滤波呢?滤波用编程语言到底是怎么实现的呢?效果怎么样?本人打算学习opencv有关滤波的源码,进一步加强图像...
用户253961 2011-09-24 23:14
怎样在MFC中捕获摄像头并显示出来
Visual_C++编程实现摄像头视频捕捉.pdf 说实话,要用MFC显示摄像头视频,对于入门者来说真是件难事情。网上这方面的文档简直就是太少了。倒是有很多源代码,但是对于MFC不熟悉的同学有源代码...
用户253961 2011-05-31 16:53
Hdb3之FPGA实现
  (转载请写明出处,谢谢!) 一:前言     这2天在帮一同学弄用cpld实现hdb3的编码和解码,要用vhdl,可惜我只是会一点verilog,所以我开始就用verilog来写,写出来后看点v...
用户253961 2011-05-30 21:53
基于FPGA的bmp图片显示
好久没有更新博客了,最近去了趟厦门参加考研复试,在深圳实习了1个月,然后赶回来弄毕设,一时间没更新博客。下面把我毕业设计的论文放上来,毕设题目是《基于大规模fpga的bmp图库管理》,这个题目名字...
EE直播间
更多
我要评论
3
10
关闭 站长推荐上一条 /3 下一条