Chinaunix首页 | 论坛 | 博客
  • 博客访问: 154708
  • 博文数量: 101
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 9
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-17 08:11
文章分类
文章存档

2017年(91)

2016年(10)

我的朋友

分类: 嵌入式

2017-03-08 14:43:09

原文地址:FPGA映像下载实现方法 作者:1032120121

FPGA型号:xilinx-vertex5;
接口:CPLD提供给LPC2468有FPGA的4个bit控制位PROGRAM,INIT,CS,DONE,以及8bit宽的静态存储器控制器接口数据总线地址0x810000ff;
原理图:LPC2468通过静态存储器接口与CPLD连接,CPLD再与FPGA的RAM连接。
FPGA下载时序按顺序为:(PROGRAM,INIT,CS,DONE四个管脚初始为高)
1.CPLD将PROGRAM拉低,发起操作,同时将CS信号一同拉低;
2.FPGA将INIT拉低,响应操作;
3.CPLD将PROGRAM拉高,结束发起操作;
4.FPGA将INIT拉高,表示FPGA状态正确等待进一步读写,在后面的读写过程中INIT一直为高,若FPGA出错则拉低;
5.CS信号开始有效,一般将CS与读写信号RDWR绑定在一起,因为在CCLK为高且CS为低有效时,出现RDWR发生变化则表示FPGA出错,进入ABORT;
6.LPC2468向地址总线地址连续写映像数据,直到写完整个映像的数据后再连续写0x00用来继续发起时钟信号CCLK给FPGA,同时监测DONE信号是否拉高,若done拉高表示写完成,再连续写至少8个字节的任意数据用于提供给FPGA完成startup过程的CCLK,最后将CS拉高。
 
FPGA下载实现需要注意几点:
1.FPGA需要下载的映像文件是由专门工具生成的,其大小固定,格式为bit或bin型,FPGA通过检测文件内容首先判断映像文件下载需要采用的数据总线宽度为8,16或32,然后再接收固定大小的映像文件,从而判断出合适文件下载结束,所以LPC2468不需要通知FPGA合适下载结束;
2.下载的速率一般在50MHz以下,LPC2468工作频率60MHz,通过内存写操作输出的CCLK为500ns的周期,所以不会出现写速率过高的问题;
3.FPGA的读写数据在一个字节内是bit0为高位,bit7位低位,这与我们通常CPU读写数据bit0位低位,bit7为高位不同,所以下载之前要对映像文件一个字节内的数据位进行反转,然后再下载。POWER PC也会出现这种情况。
阅读(1144) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~