Altera FPGA——AS配置的小坑

前言:作为一个初学者,面对Altera FPGA这么多的配置方式,难免感到糊里糊涂。而百度搜到的几乎都是几行简单的解释,看了之后似懂非懂,更加糊涂。故自行查阅资料,记录下自己的理解,如有错误欢迎指正。

参考资料:cyclone4-handbook
链接:https://pan.baidu.com/s/1M3BJvsrRjRMtnv5FP6kbUw
提取码:69pm


1.啥是AS配置?

AS即Active Serial,主动串行配置。
先来看handbook中对AS的描述:


AS Configuration

大意翻译:AS配置模式中,cyclone器件由一串行存储器(即EPCS)来配置。这种串行配置设备是一种低成本的非易失性存储器。进行配置工作时,cyclone器件通过串行接口读取得到配置数据,然后配置自己的SRAM单元。之所以称之为“主动配置”,是因为cyclone在此过程中控制着传输接口。

注意!!!并没有提到USB-Blaster等下载电缆,也没有提及PC和Quartus II。AS配置过程只涉及专用存储器和FPGA器件本身。例图如下:

Single-Device AS Configuration

捋一捋:
一般情景下,我们说AS配置指的是:把USB-Blaster等下载电缆插到板子AS下载接口上,在PC端使用Quartus II,把.pof文件下载到FLASH中。
而官方的解释是:FPGA上电,主动到存储器中找配置文件,然后配置自己。

我一个小白懵了,开发板上明明有两个下载口,一个AS下载,一个JTAG调试。怎么到了官方这里的AS配置,连10Pin接口的影子都没有?

2.报道出了偏差?谁来负泽任?

问题其实出在对配置这一词的理解上。

在接触FPGA前,很多人都大概率接触过单片机。下载程序到MCU上很简单,接好线,PC上点一下下载,就完事了。然后很容易地,就把这个MCU下载的过程类比到FPGA的配置,默认PC一定会参与其中,以为配置就是“接线、PC按下载”这个过程。

这种认识是错误的,FPGA配置指的是“配置数据传入FPGA器件内的SRAM”这一过程。可以没有PC,可以没有下载电缆,可以没有10Pin接口。只要达到配置数据传入SRAM这一终极使命就行。

为了达到“配置数据传入SRAM”的终极使命,有花样繁多的手段:AS、AP、PS、FPP、JTAG......无论怎么样,他们都是殊途同归的,都是要达到“配置数据传入SRAM”这个目标的。

每次上电都要重新传数据叫“配置”,只需传一次数据叫“下载”。假设在另一个平行宇宙里没有RAM,都是用非易失性存储器件来存信息,FPGA的“配置”工作只需进行一次即可,不会丢失。你仔细一想,这不就跟单片机意义上的“下载”一模一样了吗,只不过在运行时架构上不一样而已。这么一来,那个宇宙里没必要另创一词“配置”,FPGA跟单片机的烧录都统一称为“下载”得了。

世界上本没有“配置”,有了易失性器件,才有“配置”。

3.那平常用PC下载.pof文件到板子上,这个过程到底该叫啥?

数据的传输目标是EPCS芯片,是专用EPROM,是非易失性器件,那得叫“下载”吧。
官方把这个过程称为 In-System Programming of Serial Configuration Devices,即串行存储器的ISP下载方式。
我们下载.pof文件到板子上这一步骤实际上是ISP!
我们下载.pof文件到板子上这一步骤实际上是ISP!
我们下载.pof文件到板子上这一步骤实际上是ISP!
ISP + 官方意义上的AS配置,才是我们常做的“AS下载”。

Programming Serial Configuration Devices

我们手中FPGA开发板上的“AS下载接口”,原理图就是这样的。

In-System Programming of Serial Configuration Devices

上面的官方英文描述中可以看到,ISP过程中,下载电缆会拉高nCE引脚,把所有接在AS接口上的设备禁用。同时拉低nCONFIG引脚,使Cyclone处于复位状态。烧写完毕后,再释放nCE和nCONFIG引脚,允许他们通过上下拉电阻恢复常态。
(个人疑问:既然ISP过程中FPGA处于禁用且复位的状态,能否去除FPGA,单独使用下载电缆烧写EPCS?)

小结
需要用到PC和下载电缆,进行常见意义的“AS下载”,实质上分为两步:

  1. 使用下载电缆进行ISP下载,把配置文件下载到串行存储器中
  2. FPGA对串行存储器主动出击,进行真正意义上的AS配置

真正的AS配置指的是:配置文件已经提前在存储器中躺好,FPGA上电后主动找存储器要配置数据,然后存到内部的SRAM中,完成。

4.补充

在Programming Serial Configuration Devices这一章中,除了ISP下载,官方还提到了另一种下载到存储器的方法,称为Serial FlashLoader

Serial FlashLoader1

按照上面提示的,搜索AN370文档,大概了解了这种方法。
理解起来并不复杂,把FPGA配置成Flash烧录器,就可以使用此模拟烧录器写入到Flash中。而IP核又是Altera提供的,按照下图三步走即可。
Serial FlashLoader2

SFL(Serial FlashLoader)的好处在于节省空间。若要同时实现AS配置和JTAG配置两种方式,通常需要分别引出供ISP下载的AS接口和JTAG接口。而SFL可以省略供ISP下载的AS接口,只留下JTAG接口也可实现AS配置。


你可能感兴趣的:(Altera FPGA——AS配置的小坑)