Xilinx spartan3e FPGA掉电配置及应用程序引导

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Xilinx spartan3e FPGA掉电配置及应用程序引导

Xilinx公司的spartan3e开发板上面有丰富的外围器件,就存储器来说有一个16M并行flash,一个4Mbits串行flash,还又一个64M的DDR,在嵌入式开发中,一般我们可能会在FPGA中嵌入cpu软核,让C语言程序在里面运行。这就涉及到FPGA配置文件的引导,如果C语言程序太大,需要在DDR里面运行的话也涉及到应用程序的引导的问题。我刚接触到xinlinx的spartan3e开发板时,只会将FPGA配置文件(.bit)直接通过JTAG口下载到芯片里。后来编写的程序大了,如果将程序直接放到内部的RAM里面就装不下了,这时就只有将程序放到DDR里面运行,如果仅仅是调试应用程序不需要重启开发板后程序也可以运行,那么可以直接用EDK里面的XDM工具通过dow命令直接下载到DDR里面,然后就可以执行了。但是但我们的应用程序和硬件配置调试通过,达到了我们的要求以后我们就想到可不可以将让程序在板子上电时就可以自动运行呢。因为FPGA是掉电要丢失的,重新上电就必须重新配置。我们通过查找相关资料,找到了解决烧写问题的解决办法。首先是配置文件的烧写。spartan3e提供了3个掉电不丢失的外部存储器,就是上面提到的并行flash,串行flash和Flash PROM。配置文件都可以烧写到其中任何一个储存器里面。但是,在我看来,一般的配置问件都是烧写到Flash PROM里面。烧写方法有很多,可以用Xilinx公司的专门的烧写.mcs文件的工程烧写,也可以用iMPACT烧写。一般用iMPACT工具烧写,烧写过程如下:

打开iMPACT,弹出新建工程时选择Cancle,然后双击窗口左边的

PROM File Formater如下图:

弹出的窗口中选择Xilinx PROM文件格式选择mcs,PROM File name为:test.mcs,选择好保存路径点击下一步如下图:

上步中点击Next,Select a PROM(bits)选择xcf->xcf04s,点击Add,然后点下一步如下图:

上图中点击Next后出现窗口中点击filinsh,弹出消息框点OK,会有一个选择bit问件的窗口,选择一个已经编写好的EDK或者ISE工程生成的.bit文件,OK后提示是否加入其他器件,选择NO,然后双击窗口右边的Generate File,生成.mcs文件如下图所示:

然后,双击Boundary Scan,在中间空白处,点击鼠标右键,选择Initialize chain,弹出的第一个窗口中选择Bypass,第二个选择刚才生成的.mcs文件,第三个也选择Bypass,然后选中中间那个模块,点击窗口左下角的program如下图:

弹出窗口中选中OK就可以了,烧写完后会看到,Program Successful 提示。此时已经烧写成功。开发板的引导模式跳线选择如下图所示:

此时,重启电路板就可以实现上电自动配置了。

上面只完成了FPGA配置文件的烧写,在嵌入式cpu时还需要将应用程序烧写,这样才能在上电自动配置,自动引导程序到DDR里面执行。一般应用程序都是烧写到并行的flash中。在EDK里面用BSB建立工程时要加入FLASH,要将应用程序分配到DDR里面,然后选择Device Configuration->Program Flash Memory,弹出窗口中,选择好软件工程所

生成的.elf文件,并选择“Auto-convert file to bootloadable SREC”,flash offset一般选择0x00000000,选中Create Flash Bootloader Aplication,然后点击OK即可如下图所示:

但如果是用EDK版本为9.2i的这样烧写一般不成功,但生成了相应的文件了的。这时,应该选用命名行方式烧写。在EDK中选择Project->Launch EDK Shell,在命令行方式下输入“xmd -tcl flashwriter.tcl”

回车就可以了。此时应用程序已经烧写到flash中了,下一步就要引导应用程序。上面的步骤昨晚了会看到software里面多了一个工程bootloader,将其初始化到bram里面,一定不要将其他的工程初始化到bram里面。此时重新生成.bit文件,然后按照前面烧写配置文件的步骤将其烧写到flash prom 里面,重启电路板整个系统就可以自动的的完成配置,加载应用程序了。如果串口连接好了,可以在超级终端里面看到,程序的引导过程。至此,整个系统的固化就完成了。

相关文档
最新文档