Zinus教你学SOPC和NiosII.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Zinus教你学SOPC和NiosII

系统环境: 操作系统:windows7 旗舰版 QuartusII:QuartusII 9.1 sp2 Nios II IDE:Nios II IDE 9.1 sp2 打开QuartusII file-new project wizard 设置工程名 xxx Finish Tools-SOPC Builder 设置系统名 xxxsopc 设置系统时钟频率 (即PLL的输出system时钟)(笔者使用 Cyclone EP3C10E144 设置频率 130 MHz) 新建 NiosII 系统 e经济型 s标准型 f快速型(不建议使用f,因为f型有自己的cache,笔者在上面创建工程总是不能下载软件) (1DMIPS 的性能是指:这个处理器测整数计算能力为1*100万条指令/秒) (系统的DMIPS 与Fsystem相关) 选择外部SDRAM 选择Custom 根据开发板,我们做如下设置 Bits:16 Chip Select:1 Banks:4 Row:12 Column:8 选中 Generic memory model 其余不变 Finish 再次进入 cpu ,设置 reset vector 和 exception vector 新建 I/O口,8位输出 选择自动配置地址,自动配置中断。 System-auto-assign base address System-auto-assign IRQs 然后生成符号文件 点击 Generate 在生成NiosII符号文件的同时,我们回到QuartusII界面 新建block文件并立即file-save as-xxx 拖出一个ALEPLL 并设置两个输出 c0 c1 input设置为晶振频率(笔者为20MHz) C0 用作 Fsystem C1 用作Fsdram 拖出刚刚生成的NiosII符号文件(双击屏幕空白地方 选中选项并单击OK) 因为altpll的复位端为高电平有效,而我们的按键为低电平有效,所以我们在pll的复位端前面加上一个非门 添加I/O引脚,并修改每个引脚的名称 其中最注意为SDRAM的时钟引脚,其前缀和后缀最好与SDRAM的其他引脚保持一致 保存并编译文件,然后打开Assignments-Pin Planner 配置引脚如下图(笔者开发板引脚配置图),并再次编译和下载 (这时候编译会报错,说不能多匹配Pin_101 解决方法如下:Assignment-Settings-Device and Pin Options-Dual-PurposePins-nCEO 双击改为 use as regular I/O) 打开NiosII IDE (需要运行在 XP sp3 兼容模式 和 管理员模式 下面有设置方法) File-new-nios II application and BSP from template SOPC Info file Name 路径为 Quartus II 工程的路径,并选择 .sopcinfo 文件 Project name 为 xxxnios 其余不变 Finish 在下载软件时,要先进行 project-Build All 在工程名上右击-run as-nios ii hardware 在弹窗时,选中标签 target connection - refresh connection 选中 两项ignore 和 reset 再 apply 和 run 下面是笔者在Hello模板下写的一个LED流水灯程序,其中操作I/O口就是对特定地址赋值,0和1分别对应L和H电平。 系统每个外设的地址都放在system.h文件中,对地址进行操作时需要包含此文件。 #include stdio.h #include ../lednios_bsp/system.h int main() { volatile unsigned char * led = (volatile unsigned char *)PIO_0_BASE; *led = 0x01; printf(Hello from Nios II!\n); while (1) { *led = *led 1; if (*led == 0) { *led = 0x01; } } return 0; } 如果出现 downloading elf process failed 请查看以下整理信息 时钟过高,导致程序下载失败 设置时钟时,同时还要注意SDRAM clk和SYSTEM clk之间的相差 地址最好不要从 0x00 开始分配 每次烧写NiosII系统,

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档