这几天开始研究niosII,把学习的过程记下来吧,给论坛的各位同胞们。
本例过程跟网上其它的基本差不多,只不过软件是用的6.1的。另外有些问题也归纳一下,给论坛的同志们。 一、EDA软件的安装
1.安装QuartusII 2.安装niosII
说明:本示例采用6.1版本软件,其它版本界面稍有不同。(安装过程非本文说明重点)板子是用烟鱼那款EP1C3T14。
二、建立niosII系统
1. 建立项目。
建立一个目录,比如F:\est
启动QuartusII6.1软件 选择File->New Project Wizard
做nios系统的时候最好先选好器件,以免引起不必要的麻烦。
bbs.5ifpga.com
2. 如何生成一个可调试的nios 最小系统:
选择 Tools -> SopcBuilder,启动Altera SOPC Builder
启动Altera SOPC Builder后,SOPC Builder会立刻弹出对话框
填入System Name,比如niosII_e;HDL Language ,比如选择verilog,如下图:
点OK。Board Target ,比如,我选择Unspecified Board; Target Device Family,我选择Cyclone(用的是EP1C3T144)Clock我用的是50M Hz. 如下图:
添加niosII处理器到系统中。
注意:论坛里有些人提到在装完niosii后看不到NiosII Processor。我今天也遇到过这样的问题,莫名其妙(以前没有遇到过)。解决的办法就是打开SOPC Builder系统界面后,在File->SOPC Builder Setup中的Component/Kit Library Search Path中添加相应的路
bbs.5ifpga.com
径(比如我的如下图(装在C盘下)),然后退出QuartusII(包括SOPC Builder) ,重启即OK。
双击 Nios II Processor -Altera Corporation,会弹出Altera niosII 对话框,
在NiosII core配置选项中,点击Nios II/e区域,选择Nios II/e,如下图。然后Next,进入下一步。 ( e代表经济型吧,s好象是标准型,需要的资源不一样,当然区别大大的有,开始选e就OK了)
bbs.5ifpga.com
在JTAG Debug Module配置选项中,选择Level 1,如下图。然后Next,进入下一步。(之前有俩步next,但由于开始选用的是e型,故没有选项目可选,跳过。)
在Custom Instructions配置选项中,我由于无需增加任何定制指令,所以为空,如下图:
最后选择Finish,你的项目中会增加一个niosII 处理器,名字为cpu_0,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为该处理器取个名字。如下图:
bbs.5ifpga.com
然后双击On-Chip Memory(RAM or ROM),(在Avalon Modules -> Memory -> 下),为系统添加RAM. Memory Type选择RAM;Data Width选择32bits,Total Memory Size 可以选择2K bytes,然后选择Finish确认。
Finish,如下图,系统中会添加name 为onchip_memory_0的ram,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为其取个名字。
之后,双击PIO(在Parallel I/O)(在Avalon Modules -> Other 下),为系统添加输出接口。 Width 选择8 bits,然后点击 Finish 如下图
bbs.5ifpga.com
如下图,系统中会添加name 为pio_0的PIO,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为其取个名字。
然后,选择System ->Auto-Assign Base Addresses,让系统自动分配基地址。如下图:
然后,选择Sysetm->Auto-Assign IRQs,让系统自动分配中断。如下图:
bbs.5ifpga.com
点击Nios II More \"cpu_0\" settings选项卡,进行处理器设定。
在该例中,无需做任何更改;Reset Address、Exceptiong Address、Break Location默认值如下图所示。
然后点 Generate,进行最后生成系统。选中HDL.Generate system module logic in Verilog, 如果需要仿真,也请选中Simulation.Create ModelSim(tm) project files 然后点击Generate,进行系统生成的任务。如下图:
然后,就是漫长(其实几分钟吧)的等待,期间可以上上厕所(比如我就出去小解了一下),出去活动活动。
bbs.5ifpga.com
(据说坐电脑前一个小时要出去活动一次,扭扭屁股动动腰哦)。看到系统提示SUCCESS:SYSTEM GENERATION COMPLETED,那么恭喜你,你的系统正确生成了。如果失败,返回检查,修改,直至成功。
3. 在Quartus6.1中使用上述最小NiosII系统。
在 SOPC Builder正确运行完毕后,可以在QuartusII中,打开SOPC Builder生成的niosII_e.bsf,检查一下引脚,看看跟你的设想是否有误,如下图,niosII_e有两个input:clk,reset_n,一组output:out_port_from_the_piop[7:0]
然后用图形输入的方法bdf文件中添加该系统并加入输入输出引脚。如下图所示。
bbs.5ifpga.com
三、 编写程序
在Alter SOPC Builder中,点击Run Nios II IDE,启动Nios II IDE,如下图:
在Nios II IDE中,选择File -> New -> Project,开启New Project 对话框 选择 Nios II C/C++ Application,如下图。然后选择Next,进入下一步。
bbs.5ifpga.com
点next,进如下图。
填写你自己的Project Name,比如我填写hello_led_0在Select Project Template中,我选择Hello LED(因为存放程序的sram只有2kbytes,所以许多Template不可用),如下图。然后选择Next,进入下一步。
next,如下图,选择Create a new…..
bbs.5ifpga.com
然后点Finish,进入项目,如下图。
打开项目中的文件:hello_led.c,进行适当的修改。
(注意:按道理是应该可以修改,比如,我将PIO的基地址修改为PIO_0_BASE(因为加PIO的时候系统默认的是pio_0),但保存的时候却保存不了,出现这个错误,暂时还不知道怎么回事),错误如下:
没办法,把添加的pio_0改成程序里LED_PIO了。还没研究到那一步,改天知道了再写出来。谁知道了也告诉我啊:)然后选择Project->Build All(Ctrl+B),编译整个项目。
如果无误,可以看到以下信息:Build completed.如果看到了该条提示,恭喜恭喜,距离成功只有一步之遥了!
bbs.5ifpga.com
四、 编译,下载 这个偶就不说了。下载后就看到流水灯一闪一闪亮晶晶啦~
今天就做到这,收工了,调试和把自己的模块挂到总线上等内容先学习一下再做吧。2:45的欧冠决赛,我赌利物浦,嘿嘿:) chuizi 2007-5-23
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务