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里面执行。
文章评论(0条评论)
登录后参与讨论