首页 > 代码库 > 关于NIOS ii烧写的几种方式(转)
关于NIOS ii烧写的几种方式(转)
源:http://www.cnblogs.com/bingoo/p/3450850.html
1. 方法一:.sof和.elf全部保存在FPGA内,程序加载和运行也是在FPGA内部。
把FPGA的配置文件.sof通过JTAG方式下载(其实是在线运行)进入FPGA本身,此时在NIOS II的界面中,点击“RUN”—“Run As Hardware”可实现在线运行。此时在SOPC配置时,需要有片内mem_rom和mem_ram,程序的复位向量为mem_rom,偏移0x00;异常向量为mem_ram,偏移0x20。断电后无法运行。
2. 方法二:.pof保存在EPCS4,.elf保存在FPGA内部,加载从EPCS4,运行在FPGA内部。
和方法一差不多,只是把FPGA的配置文件.pof以AS的方式下载到EPCS4中,而软件文件也是通过JTAG方式下载入FPGA中,断电也无法运行。CPU内部的两个配置是mem_rom和mem_ram。
3. 方法三:将.sof文件和.elf保存在EPCS4,加载从EPCS4,运行在FPGA内部。
先将.sof文件通过JTAG下载进入FPGA,然后通过NIOS II的flash programmer以JTAG方式把.sof和.elf文件下载入EPCS4,此时CPU的Reset Vector为EPCS,偏移0x00,Exception Vector为mem_ram,偏移为0x20。断电后仍能正常运行。
4. 方法四:将.sof文件和.elf保存在EPCS4,加载从EPCS4,运行在SDRAM中。
具体的下载方法同方法3相同,只是设置的过程有所不同。
需要在SOPC中添加SDRAM Controller,由于在开发板中只连接了8根数据线,所以SDRAM的宽度应该设置为8位。而且在顶层例化的时候不需要设置数据屏蔽字(每bit屏蔽一个Byte)。而且在SOPC中还需要例化一个PLL。使SDRAM的时钟为100M。而且对PLL的输出时钟C2需要进行相位调整。在CPU中设置异常向量为sdram。
关于NIOS ii烧写的几种方式(转)