将Quartus程序和Nios程序同时烧写到FPGA的FLASH中.doc_第1页
将Quartus程序和Nios程序同时烧写到FPGA的FLASH中.doc_第2页
将Quartus程序和Nios程序同时烧写到FPGA的FLASH中.doc_第3页
将Quartus程序和Nios程序同时烧写到FPGA的FLASH中.doc_第4页
将Quartus程序和Nios程序同时烧写到FPGA的FLASH中.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

笔者使用的FPGA硬件平台:康芯公司KX3C10F+ 核心板FPGAEP3C10E144FLASHEPCS16SI16NSDRAMHY57V641620FQuartus II9.1 sp2SOPC Builder9.1 sp2Nios II IDE9.1 sp2操作系统Win 7 旗舰版不同的平台,只是某些步骤的顺序或者软件的界面不一样罢了,笔者也是看着网络中的各种各样资料走过来的,究其本质所有的设置参数都是通用的,好了不多说,开始介绍怎样把Quartus的程序和Nios的程序同时都下载到FLASH中达到掉电不失,上电自动运行。1. 首先是创建一个工程,选好器件型号,不多说。(注:工程的路径不要包含 中文 和 空格,同时工程不要创建在 桌面 后面的flash programmer 不识别桌面工程)2. 新建一个 block 文件,并立即 save as ,文件名不需要改。3. Tools - SOPC Builder ,选好型号并设置CPU的工作时钟(输入时钟)。4. Processor - Nios II Processor,创建自己的一个 Nios II 核。Nios II/e 经济型 最慢 最省空间Nios II/s 标准型 标准 标准Nios II/f 快速性 最快 最费空间 (如果选择此类,需将cache关闭)选好类型之后,即可直接finish5. 程序运行都需要memory,而笔者使用的为核心板上的外部ram,且一般情况下on_chip_memory的大小太小不足以跑中大型Nios系统。Memories and Memory Controllers - SDRAM - SDRAM Controller,将数据线改为16,其余不变。6. 因为我们下载程序的过程是,先在FPGA上烧写一个Nios核,然后通过Nios核将quartus和nios工程一次性烧写到flash中去。所以我们构造的Nios核必然要包含一个CFI控制器。Memories and Memory Controllers - Flash - EPCS Serial Flash Controller,直接finish。7. 为了让程序便于调试,我们再添加一个JTAG串口。Interface Protocols - Serial - JTAG UART,直接finish。8. 当程序断电之后,我们让一排LED灯以二进制形式闪烁,便于我们观察程序上电运行。Peripherals - Microcontroller Peripherals - PIO(Parallel I/O),8位输出,finish。9. 为系统创建一个ID,用于下载识别。(必要)Peripherals - Debug and Performance - System ID Peripheral,直接finish。10. 用户可通过 右击 - rename 对器件进行重命名,其中 sysid_0 只能命名为 sysid。笔者在此只更改了 sysid_0 - sysid 。11. 设置中断向量。双击cpu将reset向量设置为epcs控制器的地址,而exception向量设置为sdram控制器的地址。12. 让软件自动配置地址和中断号。System - Auto-Assign Base AddressesSystem - Auto-Assign IRQs13. 点击generate,生成Nios核。(等待生成完成、要去洗手间的,打电话的,吃饭的,喝水的,赶紧去、)14. 双击 block 文件,调出刚刚生成的Nios核,由于笔者的型号属于 Cyclone III ,所以会多出下面框框中的引脚。(坑爹的 Cyclone III ,尼玛其他型号就不会这样,害老子还有自己去配控制器的引脚、)15. 拖出一个PLL,c0做系统时钟,c1做SDRAM的时钟,c1与c0相差75(deg)相位。Inclk0为晶振输入。16. 连接c0和clk_0,全选PLL和Nios核,右击 - Generate Pins for Symbol Ports可以双击修改所有引脚的名称,笔者采用默认名称。17. Assignments - Pins,按以下说明配置引脚。Inclk0 外部晶振的输入引脚C1 SDRAM CLK 引脚Reset_n 接一个按键即可,注意此引脚为低电平有效data0_to_the_epcs_flash_controller_0 EPCS 的 DATA0 引脚dclk_from_the_epcs_flash_controller_0 EPCS 的 DCLK 引脚ds_MISO_from_the_epcs_flash_controller_0 空NCsce_from_the_epcs_flash_controller_0 EPCS 的 nCSO 引脚sdo_from_the_epcs_flash_controller_0 EPCS 的 ASDO 引脚out_port_from_the_pio_07.0 用户自己决定 led 灯引脚zs_addr_from_the_sdram_011.0 SDRAM 的 A11.0zs_ba_from_the_sdram_01.0 SDRAM 的 BA1.0zs_cas_n_from_the_sdram_0 SDRAM 的 /CASzs_cke_from_the_sdram_0 SDRAM 的 CKEzs_cs_n_from_the_sdram_0 SDRAM 的 CSzs_dq_to_and_from_the_sdram_015.0 SDRAM 的 DQ15.0zs_dqm_from_the_sdram_01.0 SDRAM 的 ULDM LDQMzs_ras_n_from_the_sdram_0 SDRAM 的 /RASzs_we_n_from_the_sdram_0 SDRAM 的 /WE18. Assignments - settings - Device and Pin Options - Dual-Purpose Pins,Cyclone III 需设置下面参数。19. Ctrl + L,编译文件。程序编译完成之后将sof文件下载到FPGA开发板上。20. 打开Nios II IDE软件(此软件需运行在 xp 和 管理员 模式下)File - New - Nios II Application and BSP from TemplateSOPC Information File name 即为刚刚我们生成的 .sopcinfo 文件。Project name 即为我们要创建的 nios 工程名。(不要有 中文 和 空格)在 Templates 中选择一个模板,点击finish。21. 在工程的 main 函数部分添加我们自己的代码。笔者选的是 Hello World 模板,二进制led 灯代码如下#include #include ./flash_nios_bsp/system.hint main()volatile unsigned char * p = (volatile unsigned char *)PIO_0_BASE;unsigned int i;while (1)(*p)+;i = 0xFFF;while (i-);return 0;22. 在左侧工程列表的当前工程上右击 - Build Project,创建elf文件。23. 在左侧工程列表的当前工程上右击 - Run As - Run Configurations,配置下载信息。红色格子内的按钮按照 上 - 下 的顺序逐个点过去。(第一次配置之后,可直接 右击 - Run As - Nios II Hardware)24. 如果仿真没错,我们进开始进行最后一步也是最重要的一步,烧写flash。尼玛,终于快写完了。在win7下,Nios II - Flash Programmer 在 IDE 中打开不能用,所以我们要找到软件的安装目录下的D:altera91nios2edssdk2binnios2-flash-programmer-gui.exe打开。最好是弄个 桌面快捷方式25. File - New。通过 SOPC Information File 来找到我们的 nios 核。然后点击 OK26. Hardware Connections,3个按钮逐个点击过去27. 添加我们要烧写的nios程序和quartus程序,ADD 按钮。Nios

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论