| bo's profileDuuboo's Work StudioPhotosBlogLists | Help |
Duuboo's Work StudioWaitting for tomorrow
|
NiosII软处理器快速入门- 10分钟学会NiosIINios简单介绍: Nios II是一个用户可配置的通用RISC嵌入式处理器。在这儿,我引用了Altera公司关于NiosII的官方介绍: Altera推出的Nios® II系列嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能,并降低了其性能。 稍微了解一下NiosII后,我们就来开始设计、应用它吧! 第一节:EDA软件的安装。 许多朋友在配置EDA环境的时候,就遇到了更多问题,我现在总结一下: 1。安装QuartusII4.2 2。安装niosIDE 3。安装ModelSim6.0。 如下是ModelSim下的安装说明: 1.Install, Select Full product instllation. When asked for security key, select no. When you 仍有许多人表示搞不定,通常是因为第三步有问题,可以如下设置: 在W2K下,在开始 -〉系统 -〉设置 -〉 系统 -〉 高级 -〉 环境变量 -〉系统变量中设置 第二节:建立niosII系统。 第一小节:建立项目 建立一个目录,比如H:\DB2005\project\niosDK\Example\NiosSmall-〉启动QuartusII4.2软件。-〉选择File -> New Project Wizard-〉在Diectory,Name,Top-Level Entity中如下填写,在你自己的项目中,你可以类比着填写: 在Add Files中如下填写,在你自己的项目中,你可以类比着填写:
在EDA Tools Setting中如下填写,在你自己的项目中,你可以类比着填写:
最后,选择Finish,就OK了!
在H:\DB2005\project\niosDK\Example\NiosSmall下建立一个name为Setup.tcl的file,其内容如下: #Setup.tcl 然后打开Tools -> Tcl Scripts,选中刚才编辑的Script文件:Setup,并点击Run
在H:\DB2005\project\niosDK\Example\NiosSmall下建立一个name为Setup.tcl的file,其内容如下: #Setup.tcl 然后打开Tools -> Tcl Scripts,选中刚才编辑的Script文件:Setup,并点击Run
第二小节:生成一个可调试的nios 最小系统 选择 Tools -> SopcBuilder,启动Altera SOPC Builder启动Altera SOPC Builder后,SOPC Builder会立刻弹出对话框填入System Name,比如niosII_e;HDL Language ,比如选择verilog,如下图:
选择Board Target ,比如,我选择Unspecified Board;选择Target Device Family,比如,我选择Cyclone;填入Clock,比如,我填入22.1184如下图:
添加Nios II到项目中:双击Nios II Processor -Altera Corporation,会弹出Altera niosII 对话框, 在NiosII core配置选项中,点击Nios II/e区域,选择Nios II/e,如下图。然后Next,进入下一步。
在JTAG Debug Module配置选项中,选择Level 1,如下图。然后Next,进入下一步。 在Custom Instructions配置选项中,我由于无需增加任何定制指令,所以为空,如下图 : 最后选择Finish,你的项目中会增加一个niosII 处理器,名字为cpu_0,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为该处理器取个名字。如下图:
然后双击On-Chip Memory(RAM or ROM),(在Avalon Modules -> Memory -> 下),为系统添加RAM.Memory Type选择RAM;Data Width选择32bits,Total Memory Size 可以选择2K bytes,然后选择Finish确认
如下图,系统中会添加name 为onchip_memory_0的ram,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为其取个名字。
之后,双击PIO(在Parallel I/O)(在Avalon Modules -> Other 下),为系统添加输出接口。Width 选择8 bits,然后点击Finish如下图
如下图,系统中会添加name 为pio_0的PIO,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为其取个名字。
然后,选择System ->Auto-Assign Base Addresses,让系统自动分配基地址。如下图:
然后,选择Sysetm->Auto-Assign IRQs,让系统自动分配中断。如下图 : 点击Nios II More "cpu_0" settings选项卡,进行处理器设定。在该例中,无需做任何更改;Reset Address、Exceptiong Address、Break Location默认值如下图所示。
点击System Generation选项卡,进行最后的设定并生成系统。选中HDL.Generate system module logic inVerilog,如果需要仿真,也请选中Simulation.Create ModelSim(tm) project files然后点击Generate,进行系统生成的任务。如下图:
然后,就是漫长的等待,你可以悠闲得喝一杯咖啡(因为等待的时间还是蛮长的,比如我,要等近10分钟)。一般没有问题的话,可以看到系统提示:SUCCESS: SYSTEM GENERATION COMPLETED.如果看到此信息,恭喜恭喜,系统被正确生成了。如果失败,请返回并检查、修改!如下图: 第三小节:在QuartusII中使用上述niosII系统在SOPC Builder正确运行完毕后,可以在QuartusII中,打开SOPC Builder生成的niosII_e.bsf,检查一下引脚,看看跟你的设想是否有误,如下图,niosII_e有两个input:clk,reset_n,一组output:out_port_from_the_piop[7:0]如下图: 你可以使用上述的niosII_e,来构造你自己的系统。如下图,我简单得创建了nisoSmall.bdf,来使用该niosII_e。nios clk to clkniso reset_n to VCCout_port_from_the_pio_0[7:0] to LED[7:0]
第三节:编写程序。 在Alter SOPC Builder中,点击Run Nios II IDE,启动Nios II IDE,如下图:
在Nios II IDE中,选择File -> New -> Project,开启New Project 对话框选择 C/C++ Application,如下图。然后选择Next,进入下一步。
填写你自己的Project Name,比如我填写hello_led_1;在Select Project Template中,我选择Hello LED(因为存放程序的sram只有2kbytes,所以许多Template不可用),如下图。然后选择Next,进入下一步。
选择Create a new system library named:,最后点击Finish,创建项目。如下图:
打开项目中的文件:hello_led.c,进行适当的修改。比如,我将PIO的基地址修改为PIO_0_BASE;while(i<200000)修改为while(i<20000).你可以依照你的需求修改! 然后选择Project->Build All(Ctrl+B),编译整个项目。如果无误,可以看到以下信息:Build completed.如果看到了该条提示,恭喜恭喜,距离成功只有一步之遥了!
第四节:编译整个项目。 然后,在QuartusII中,选择Processing -> Star Compilation,开始编译整个项目。你又可以坐下来喝杯咖啡了,反正我是等了又十来分钟。成功后,可以看到如下信息:如果到了这一步,赫赫,基本上大功告成了!
第五节:下载与测试。 最后,选择Tools ->Programmer,下载整个配置到FPGA中,如下图。 下载成功后,可以看到LED的有规律的变化。(物理硬件中,我只用了一个LED,观察到LED是常亮,有规律得熄灭,因为我的LED是低电平才发光,与设计完全吻合!)OK,做到这一步,就大功告成了! tiddly的一些东东转: 最近接了个比较有挑战性的任务--写帮助文档...@_@。由于需要收集资料,第一时间就想到了Tiddlywiki。以前用Tiddlywiki的时候只是当个好玩的记事本来用,这几天脑力过剩,工作之余就摆弄下插件,改改样式,看看代码,倒也不亦乐乎。越来越发觉Tiddlywiki的确是个好东东,如果让我早几年发现,也许我会早点开始重视javascript,不会象如今这样看着一些ajax的应用兴叹:原来javascript还可以做成这样的……。 tiddlywiki明确地分离了内容、表现和行为。其中内容是由用户输入,行为是由插件和宏来实现。表现则可以通过定义一些特殊的条目来进行配置。这些条目在英文版中称为shadowed tiddler,中文标准版中称为默认tiddler,也有些版本称为影子条目。在原始版本中,页面右下方有一标签页,有一页叫"更多"或"more",点进去后下面又是一个子标签页,有一页叫"默认tiddler"或"Shadowed",此页列出了所有的默认特殊条目。 FPGA论坛也许会用得着,先收了。 FPGA/CPLD论坛里的一个帖子 终于完成了DDS的所有论文找个地方投了就ok了。 删掉了所有的东东重新开始 |
|||||
|
|