NIOSⅡ简明教程.docx
- 文档编号:5255332
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:29
- 大小:2.06MB
NIOSⅡ简明教程.docx
《NIOSⅡ简明教程.docx》由会员分享,可在线阅读,更多相关《NIOSⅡ简明教程.docx(29页珍藏版)》请在冰豆网上搜索。
NIOSⅡ简明教程
第五章NIOSⅡ简明教程
NiosII是一个用户可配置的通用RISC的嵌入式处理器,Altera推出的NiosII系列嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能,把NiosII嵌入到Altera的所有FPGA中,例如StratixII、Stratix、CycloneII,Cyclone、APEX,ACEX和HardCopy系列器件中,用户可以获得超过200DMIPS的性能,用户可以从三种处理器以及超过60个的IP核中选择所需要的,NiosII系统为用户提供了最基本的多功能性,设计师可以以此来创建一个最适合他们需求的嵌入式系统。
NiosII处理器的优点和特性,使用NiosII处理器的用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,快速使得产品推向市场,扩展产品的生命周期,并且避免处理器的更新换代。
(1)提高系统性能
*一系列的处理器核可供选择,其中包括了超过200DMIPS性能的核
*实现任何数量的处理器或将不同的处理器核组和在一起
*增加了已有的处理器,在FPGA中添加一个或更多的NiosII软核处理器
(2)更低的系统成本
*通过将处理器、外设、存储器和I/O接口集成到一个单一的FPGA中,从而降低了系统成本、复杂性和功耗
*通过将NiosII处理器嵌入到低成本的FPGA中只需花费35美分或者更低(编者:
对大多数用户而言,NiosII所占逻辑资源的成本大约是10-20元人民币,具体取决于所选FPGA的类型和NiosII的配置)
(3)应对产品的生命周期
*提供易用的设计工具从而快速将产品推向市场。
*提供永久的,免费的许可从而使基于NiosII处理器的产品避免了处理器的更新换代而带来的损失。
(4)功能强大、易用的开发工具
*通过使用NiosII集成开发环境(IDE),从而加速了软件的开发
*利用Altera的强大的SOPCBuilder系统开发工具和QuartusII设计软件可以在几分钟内设计一个系统
(5)使用完全功能的开发包
*使用易用的NiosII开发包开始一个设计
*使用易用的NiosII开发包开始设计
*可以选择具有低成本特性的CycloneFPGA开发套件,或高性能的StratixFPGA开发套件
下图是一个简化的基于Quartus6.0和NiosII的SOPC开发流程。
这些步骤在SOPCBuilder(定制处理器和外设接口),NiosIIIDE(软件集成开发环境)工具的协助下显得相当轻松。
基于QuartusⅡ和NIOS的SOPC设计流程
下面我们就设计一个最简单的NiosII系统,使用NiosII去控制LED灯,该例子是NIOS自带程序,实现一个流水灯功能(使八个灯依次循环闪烁),通过这个例子我们可以了解整个介绍NiosII的设计流程。
5.1NIOSⅡ的安装过程:
双击如下图标,开始安装NIOSⅡ的开发环境,
出现如下图所示,
等待内容读完之后,单击Next,
当出现如下图时,单击Next,
当出现如下图时,单击Yes,
当出现下图所示时,在Browse选择你要安装的路径,也可保持默认值不变,单击Next,
出现下图所示时,单击Next,
当出现下图所示时,先单击是(Y),再单击Next,
出现下图所示时,再单击Next,
出现下图所示时,表示正在安装,需要等待一会儿,
当出现下图所示时,单击Finish表示安装已经完成。
5.2建立niosII系统
第一步:
建立项目
建立一个目录,比如E:
\Nios_example,启动QuartusII6.0软件,选择File->NewProjectWizard后单击NEXT,在Diectory,Name,Top-LevelEntity中如下填写,在你自己的项目中,你可以类比着填写:
单击NEXT直到出现如下的对话框,根据你要采用的开发板选择适当的器件和参数,如本例中选用的是EP1C6Q240C8的CYCLONE芯片,如下图所示填写:
之后连续单击NEXT,直到NEXT变为灰色,单击Finish.表明工程已经建立完成。
第二步:
生成一个可调试的nios最小系统
选择Tools->SopcBuilder,启动AlteraSOPCBuilder,启动AlteraSOPCBuilder后,SOPCBuilder会立刻弹出对话框,在对话框的系统名中添入nios,如下图:
然后,单击OK,出现下图所示:
再选中图中红笔标记处,单击ADD填加,出现下图所示,选择NiosⅡ/e,
选择JTAGDebugModule选项卡,
再选择Level1,单击Finish.你的项目中会增加一个niosII处理器,名字为cpu_0,
然后双击On-ChipMemory(RAMorROM),(在AvalonModules->Memory->下),为系统添加RAM.
MemoryType选择RAM;DataWidth选择32bits,TotalMemorySize可以选择2Kbytes,然后选择Finish确认。
如下图,系统中会添加name为onchip_memory_0的ram,之后,双击PIO(在ParallelI/O)(在AvalonModules->Other下),为系统添加输出接口。
Width选择8bits,然后点击Finish
如下图,系统中会添加name为pio_0的PIO,
然后,选择System->Auto-AssignBaseAddresses,让系统自动分配基地址。
然后,选择Sysetm->Auto-AssignIRQs,让系统自动分配中断。
如下图:
点击NiosIIMore"cpu_0"settings选项卡,进行处理器设定。
在该例中,无需做任何更改;ResetAddress、ExceptiongAddress、BreakLocation默认值如下图所示。
点击SystemGeneration选项卡,进行最后的设定并生成系统。
选中HDL.Generatesystemmodulelo如果需要仿真,也请选中Simulation.CreateModelSim(tm)projectfilesgicinVerilog,然后点击Generate,进行系统生成的任务。
如下图:
没有问题的话,可以看到系统提示:
SUCCESS:
SYSTEMGENERATIONCOMPLETED.如果看到此信息,系统被正确生成了。
如果失败,请返回并检查、修改!
如下图:
第三步:
在QuartusII中使用上述niosII系统
在SOPCBuilder正确运行完毕后,可以在QuartusII中,打开SOPCBuilder生成的nios,检查一下引脚,看看跟你的设想是否有误,
选择File->new,弹出如下对话框,再选择如图所示的block文件,单击OK.
然后双击block文件,弹出Symbol对话框,在Libraries中的Project下的nios,如下图,nios有两个input:
clk,reset_n,一组output:
out_port_from_the_piop[7:
0]
如图所示,单击OK,
你可以使用上述的nios,来构造你自己的系统。
如下图,
niosclktoclk
nisoreset_ntoVCC
out_port_from_the_pio_0[7..0]toLED[7..0]
设计好后,保存为.bdf文件。
第四步:
编写程序
在AlterSOPCBuilder中,点击RunNiosIIIDE,启动NiosIIIDE,如下图:
在NiosIIIDE中,选择File->New->Project,开启NewProject对话框。
选择C/C++Application,如下图。
然后选择Next,进入下一步。
填写你自己的ProjectName,比如我填写hello_led;在SelectProjectTemplate中,选择HelloLED,如下图。
然后选择Next,进入下一步。
选择Createanewsystemlibrarynamed:
,最后点击Finish,创建项目。
如下图:
打开项目中的文件:
hello_led.c,进行适当的修改。
这里,将PIO的基地址修改为PIO_0_BASE;while(i<200000)修改为while(i<2).再保存,如下图,
然后选择Project->BuildAll(Ctrl+B),编译整个项目。
如果无误,可以看到以下信息:
Buildcompleted.
第五步:
编译整个项目
然后,在QuartusII中,为设计的电路分配管脚,要与所用的开发板一致,如下图,然后保存工程。
选择Processing->StarCompilation,开始编译整个项目。
成功后,可以看到如下信息:
第六步:
波形仿真
先建立一个波形文件,File-〉new-〉OtherFiles-〉VectorWaveformFile,如下图:
在波形文件的空白处双击,出现如下图所示,再单击NodeFinder,
再单击List,选择需要的输入,输出填加到右边空白处,单击OK,
如下图:
填加到波形文件后,再对输入进行设置,本例中,将时钟设为50MHz,仿真时间设为100us,再保存为vwf文件,之后,单击
进行波形仿真,结果如图:
得出仿真结果与期望相同,可以进行下一步下载测试。
第七步:
下载调试
读者可先把C源程序更改一下,将while(i<2)修改为while(i<20000).再进行上述步骤。
改完之后再按上述的过程进行一边编译,这里不再赘述。
这是因为要将灯闪的时间调长,肉眼可以识别,容易观察结果,编译成功后,就可以下载到开发板上,进行调试,先把开发板接好5V电源,再把开发板的JTAG口通过下载线与计算机并口相连.之后单击
出现.CDF文件,打开HardwareSetup对话框,再单击AddHardware,选择ByteblasterMVorByteblasterⅡ,单击OK,如下图所示:
再关闭HardwareSetup对话框.再选中Program/Configure项(如果没有显示下载文件,可打开AddFile对话框,选择.SOF文件进行填加,如下图)。
Mode项选择JTAG,最后单击Start,开始下载,同时会在Progress中观察下载进程,如下图所示:
下载成功后,就可以在开发板上测试是否符合设计要求.本试验会看到八个灯轮流闪烁。
读者可在NIOSIDE中选择Run下的DebugAs中的NiosHardware如下操作,
会出现下图所示,单击Yes后,会出现调试界面,
读者可先双击C源文件的左边(图中已用红色标记)设置断点,再单击
进行单步调试,其中
表示暂停,
表示终止运行。
进行单步调试后便可以单步控制程序,此时,便可以控制流水灯的变化。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NIOS 简明 教程