基于ARM的FPGA加载配置实现.doc

基于ARM的FPGA加载配置实现.doc

ID:57700578

大小:75.50 KB

页数:6页

时间:2020-09-01

基于ARM的FPGA加载配置实现.doc_第1页
基于ARM的FPGA加载配置实现.doc_第2页
基于ARM的FPGA加载配置实现.doc_第3页
基于ARM的FPGA加载配置实现.doc_第4页
基于ARM的FPGA加载配置实现.doc_第5页
资源描述:

《基于ARM的FPGA加载配置实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于ARM的FPGA加载配置实现基于SRAM工艺FPGA在每次上电后需要进行配置,通常情况下FPGA的配置文件由片外专用的EPROM来加载。这种传统配置方式是在FPGA的功能相对稳定的情况下采用的。在系统设计要求配置速度高、容量大、以及远程升级时,这种方法就显得很不实际也不方便。本文介绍了通过ARM对可编程器件进行配置的的设计和实现。    1配置原理与方式    1.1配置原理    在FPGA正常工作时,配置数据存储在SRAM单元中,这个SRAM单元也被称为配置存储器(ConfigurationRAM)。由于SRAM是易失性的存储器,因此FPGA在上电之后,外部

2、电路需要将配置数据重新载入到片内的配置RAM中。在芯片配置完成后,内部的寄存器以及I/O管脚必须进行初始化。等初始化完成以后,芯片才会按照用户设计的功能正常工作。     1.2配置方式        根据FPGA在配置电路中的角色,其配置数据可以使用3种方式载入到目标器件中:   ·FPGA主动(Active)方式;  ·FPGA被动(Passive)方式;  ·JT AG方式;    在FPGA主动方式下,由目标FPGA来主动输出控制和同步信号(包括配置时钟)给专用的一种串行配置芯片,在配置芯片收到命令后,就把配置数据发到FPGA,完成配置过程。在被动方式下,由

3、系统中的其他设备发起并控制配置过程,FPGA只输出一些状态信号来配合配置过程。被动方式包括被动串行PS(PassiveSerial)、快速被动并行FPP(FastPassiveParallel)、被动并行同步PPS(PassiveParallelSerial)、被动并行异步PPA(PassiveParallelAsynchronous)、以及被动串行异步PSA(PassiveSerialAsynchronous)。JTAG是IEEE1149.1边界扫描测试的标准接口。从JTAG接口进行配置可以使用Altera的下载电缆,通过Quartus工具下载,也可以采用微处理器

4、来模拟JTAG时序进行配置。    2硬件电路设计    AT91ARM9200对EP1C6配置的硬件电路示意图如图1所示。    在配置FPGA时,首先需要将年nCONFIG拉低(至少40us),然后拉高。当nCONFIG被拉高后,FPGA的nSTATUS也将变高,表示这时已经可以开始配置,外部电路就可以用DCLK的时钟上升沿一位一位地将配置数据写进FPGA中。当最后一个比特数据写入以后,CONFIG_DONE管脚被FPGA释放,被外部的上拉电阻拉高,FPGA随即进入初始化状态。  图1ARM配置FPGA电路原理图    3软件设计        本文在设计时使用

5、Linux系统,软件编写和调试是在ADS下。主要程序如下:   staticAT91PS_PIOpioc;  inlinevoidpioc_out_0(intmask)  {  pioc->PIO_CODR=mask;  }  inlinevoidpioc_out_1(intmask)  {  pioc->PIO_SODR=mask;  }  inlineintpioc_in(intmask)  {  returnpioc->PIO_PDSR&mask;  }  inlinevoidxmit_byte(charc)  {  inti;  for(i=0;i<8;i+

6、+)  {  if(c&1)           pioc_out_1(DATA0);      else           pioc_out_0(DATA0);           pioc_out_0(DCLK);           pioc_out_1(DCLK);      c>>=1;   }  }   voidpioc_setup()  {   pioc->PIO_PER  =DATA0

7、nCONFIG

8、DCLK

9、nSTATUS

10、CONF_DONE;   pioc->PIO_OER  =DATA0

11、nCONFIG

12、DCLK;   pioc->PIO_

13、ODR  =nSTATUS

14、CONF_DONE;   pioc->PIO_IFER  =nSTATUS

15、CONF_DONE;   pioc->PIO_CODR  =DATA0

16、nCONFIG

17、DCLK;     pioc->PIO_IDR   =DATA0

18、nCONFIG

19、DCLK

20、nSTATUS

21、CONF_DONE;   pioc->PIO_MDDR=DATA0

22、nCONFIG

23、DCLK;   pioc->PIO_PPUDR =DATA0

24、nCONFIG

25、DCLK

26、nSTATUS

27、CONF_DONE;   pioc->PIO_OWDR=DATA0

28、nCONFI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。