CrazyBingo

Chapter21: 国产FPGA之8051外部SRAM运行

0
阅读(5583)

第二十一章

国产FPGA之8051外部SRAM运行

wps_clip_image-15949

记得前面的博客我讲过,当8051代码大于1K的之后,得用外部SRAM,即国产FPGA第二种运行模式:

wps_clip_image-28361

主要是在FPGA和8051配置数据大于1K的情况下。首先,从SPI FLASH,导入FPGA的Bootloder到AstroII内部的2块EMB中,然后从2块EMB搬运8051代码到外挂SRAM中,最后再从SPI FLASH配置FPGA,并且开始运行SRAM中的8051代码。

wps_clip_image-1447

我们的板子上有一块LY62256SL,特某某同学特意设计的!手册资料如下:

http://www.alldatasheet.com/datasheet-pdf/pdf/316594/LYONTEK/LY62256SL.html

这是一块32K*8Bit的SRAM,可以作为8051内核代码运行的存储器。

FPGA程序的运行不需要外置SRAM,因为FPGA本身就是SRAM结构,上电初始化由SPI Flash配置电路,开始执行。

但是8051内核有代码的限制,一般片内都在EMB上运行,但最多只能支持1K容量的代码,超过1K后,就需要外部SRAM扩展内存,用来运行代码。传统的 8051单片机有一个外扩SRAM的接口,我们的国产FPGA也不例外,可以外扩SRAM用来运行8051代码。只是这个稍微复杂那么一点点……

要想实现8051代码在外部SRAM中运行,最重要的就是需要一个FPGA 的BootLoader,即SRAMLoader,他的功能就是将FLASH中8051的代码搬运到2快EMB,之后再搬运到外部的SRAM中。

SRAMLoader的实现,我们直接修改京微的例程即可,由于我们的板子,特某人没给我原理图,不能掩饰,下面简单说明一下工程的架构。

下载地址:http://www.chinaaet.com/lib/detail.aspx?id=89634

wps_clip_image-12809

主要是修改系统的时钟,要与你所在的工程一致(都从PLL出来,或者……)根据外部sram IC,修改地址宽度即可:

wps_clip_image-23586

根据SRAM引脚,同时锁定引脚,编译即可。

最后,使用Primance3.2.0的Download的Configuration Packer功能,打包SRAMLoder_spi_acf和你需要运行的工程的spi_acf,同时加入8051的HEX,三者打包,如下图,生成mcf

wps_clip_image-2440

最后,下载mcf文件即可,如何操作再上一章中已经说的清清楚楚。

(一般人超不出1K的代码O(∩_∩)O哈哈~)