基于CPLDFPGA的NOSII处理器设计.doc

上传人:doc321 文档编号:12771783 上传时间:2021-12-06 格式:DOC 页数:26 大小:1.37MB
返回 下载 相关 举报
基于CPLDFPGA的NOSII处理器设计.doc_第1页
第1页 / 共26页
基于CPLDFPGA的NOSII处理器设计.doc_第2页
第2页 / 共26页
基于CPLDFPGA的NOSII处理器设计.doc_第3页
第3页 / 共26页
基于CPLDFPGA的NOSII处理器设计.doc_第4页
第4页 / 共26页
基于CPLDFPGA的NOSII处理器设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《基于CPLDFPGA的NOSII处理器设计.doc》由会员分享,可在线阅读,更多相关《基于CPLDFPGA的NOSII处理器设计.doc(26页珍藏版)》请在三一文库上搜索。

1、基于CPLDFPGA的NOSII处理器设计 作者: 日期:2 个人收集整理 勿做商业用途基于CPLD/FPGA的NiosII软处理器设计 1Nios简单介绍Nios II是一个用户可配置的通用RISC嵌入式处理器。 Altera推出的NiosII系列嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能,把Nios II嵌入到Altera的所有FPGA中,例如StratixII、Stratix、CycloneII,Cyclone、APEX,ACEX和HardCopy系列器件中,用户可以获得超过200 DMIPS的性能,用户可以从三种处理器以及超过60个的IP核中选择所需要的,Ni

2、os II系统为用户提供了最基本的多功能性,设计师可以以此来创建一个最适合他们需求的嵌入式系统。 2Nios II处理器的优点和特性 使用Nios II处理器的用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,快速使得产品推向市场,扩展产品的生命周期,并且避免处理器的更新换代。 1)提高系统性能 一系列的处理器核可供选择,其中包括了超过200 DMIPS性能的核 实现任何数量的处理器或将不同的处理器核组和在一起 增加了已有的处理器,在FPGA中添加一个或更多的Nios II软核处理器 更低的系统成本 通过将处理器、外设、存储器和I/O接口集成到一个单一的FPGA中,从而降低了系统成本

3、、复杂性和功耗 * 通过将Nios II处理器嵌入到低成本的FPGA中只需花费35美分或者更低(编者:对大多数用户而言,NiosII所占逻辑资源的成本大约是1020元人民币,具体取决于所选FPGA的类型和NiosII的配置)个人收集整理,勿做商业用途个人收集整理,勿做商业用途2)应对产品的生命周期 * 提供易用的设计工具从而快速将产品推向市场。 * 提供永久的,免费的许可从而使基于Nios II处理器的产品避免了处理器的更新换代而带来的损失。 3)功能强大、易用的开发工具 * 通过使用Nios II集成开发环境(IDE),从而加速了软件的开发 利用Altera的强大的SOPC Builder系

4、统开发工具和Quartus II设计软件可以在几分钟内设计一个系统 使用完全功能的开发包 * 使用易用的Nios II 开发包开始一个设计 * 使用易用的Nios II开发包开始设计 可以选择具有低成本特性的Cyclone FPGA开发套件,或高性能的Stratix FPGA开发套件   下面我们就设计一个最简单的NiosII系统,使用NiosII去控制一个LED灯,通过这个例子我们可以了解整个介绍NiosII的设计流程3EDA软件的安装 许多朋友在配置EDA环境的时候,就遇到了更多问题,我现在总结一下: 1。安装QuartusII4.2 2。安装NiosII IDE 用于软件开发3

5、。安装ModelSim6.0。 用于系统仿真如下是ModelSim下的安装说明: 1.Install, Select Full product instllation. When asked for security key, select no. When you see License Wizard dialog, select close because license wizard dont know our license's format。 2.Use our keygen to generate license。dat, copy it to c:flexlm direc

6、tory。 3。set enviroment string: LM_LICENSE_FILE = c:flexlmlicense。dat 4.Start Modelsim and have fun。 仍有许多人表示搞不定,通常是因为第三步有问题,可以如下设置: 在W2K下,在开始 -系统 ->设置 系统 高级 - 环境变量 系统变量中设置 变量名为 LM_LICENSE_FILE ,值为 你的存放license.dat的路径 + 文件名,比如 c:flexlmlicense。dat, (在unix/linux下,在.bashrc中export LM_LICENSE_FILE=/thePa

7、thOfLicenseFile/yourLicenseFileName就可以了!)  4建立niosII系统。 1:建立项目。 建立一个目录,比如H:DB2005projectniosDKExampleNiosSmall 启动QuartusII4。2软件。 选择File -> New Project Wizard 在Diectory,Name,Top-Level Entity中如下填写,在你自己的项目中,你可以类比着填写:   在Add Files中如下填写,在你自己的项目中,你可以类比着填写:   在EDA Tools Setting中

8、如下填写,在你自己的项目中,你可以类比着填写:   最后,选择Finish,就OK了!   在H:DB2005projectniosDKExampleNiosSmall下建立一个name为Setup。tcl的file,其内容如下: Setup.tcl # Setup pin setting set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS OUTPUT DRIVING GROUND” set_global_assignment -name ENABLE_INIT_DONE_OUTPU

9、T OFF set_location_assignment PIN_16 -to clk set_location_assignment PIN_37 to led0 set_location_assignment PIN_39 to led1 set_location_assignment PIN_1 to led2 set_location_assignment PIN_41 -to led3 set_location_assignment PIN_42 -to led4 set_location_assignment PIN_49 -to led5 set_location_assign

10、ment PIN_50 -to led6 set_location_assignment PIN_51 to led7  很浅显的Script,你可以根据需要修改.   然后打开Tools Tcl Scripts,选中刚才编辑的Script文件:Setup,并点击Run 2:生成一个可调试的nios 最小系统  选择 Tools -> SopcBuilder,启动Altera SOPC Builder 启动Altera SOPC Builder后,SOPC Builder会立刻弹出对话框 填入System Name,比如niosII_e;HDL L

11、anguage ,比如选择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,进入下一

12、步。   在JTAG Debug Module配置选项中,选择Level 1,如下图。然后Next,进入下一步.   在Custom Instructions配置选项中,我由于无需增加任何定制指令,所以为空,如下图:    最后选择Finish,你的项目中会增加一个niosII 处理器,名字为cpu_0,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为该处理器取个名字。如下图:      然后双击On-Chip Memory(RAM or ROM),(在Avalon Modul

13、es - 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

14、,然后点击 Finish 如下图    如下图,系统中会添加name 为pio_0的PIO,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为其取个名字。    然后,选择System -AutoAssign Base Addresses,让系统自动分配基地址.如下图:    然后,选择Sysetm-AutoAssign IRQs,让系统自动分配中断。如下图:      点击Nios II More ”cpu_0" settings选项卡,进行处理器

15、设定. 在该例中,无需做任何更改;Reset Address、Exceptiong Address、Break Location默认值如下图所示。     点击System Generation选项卡,进行最后的设定并生成系统。 选中HDL.Generate system module logic in Verilog, 如果需要仿真,也请选中Simulation。Create ModelSim(tm) project files 然后点击Generate,进行系统生成的任务.如下图:      然后,就是漫长的等待,你可以

16、悠闲得喝一杯咖啡(因为等待的时间还是蛮长的,比如我,要等近10分钟)。一般没有问题的话,可以看到系统提示:SUCCESS: SYSTEM GENERATION COMPLETED。如果看到此信息,恭喜恭喜,系统被正确生成了。如果失败,请返回并检查、修改! 如下图:   3:在QuartusII中使用上述niosII系统  在 SOPC Builder正确运行完毕后,可以在QuartusII中,打开SOPC Builder生成的niosII_e.bsf,检查一下引脚,看看跟你的设想是否有误,如下图,niosII_e有两个input:clk,reset_n,一组out

17、put:out_port_from_the_piop7:0 如下图:    你可以使用上述的niosII_e,来构造你自己的系统。如下图,我简单得创建了nisoSmall。bdf,来使用该niosII_e。 nios clk to clk niso reset_n to VCC out_port_from_the_pio_07:0 to LED7:0    第三节:编写程序。 在Alter SOPC Builder中,点击Run Nios II IDE,启动Nios II IDE,如下图:    在Nio

18、s 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:,最后点击Fin

19、ish,创建项目。如下图:    打开项目中的文件:hello_led.c,进行适当的修改。 比如,我将PIO的基地址修改为PIO_0_BASE;while(i<200000)修改为while(i20000).你可以依照你的需求修改!     然后选择Project>Build All(Ctrl+B),编译整个项目。 如果无误,可以看到以下信息:Build completed。如果看到了该条提示,恭喜恭喜,距离成功只有一步之遥了!    第四节:编译整个项目。 然后,在QuartusII中,选择Processing -> Star Compilation,开始编译整个项目。 你又可以坐下来喝杯咖啡了,反正我是等了又十来分钟。 成功后,可以看到如下信息:如果到了这一步,赫赫,基本上大功告成了!    第五节:下载与测试。 最后,选择Tools ->Programmer,下载整个配置到FPGA中,如下图.   下载成功后,可以看到LED的有规律的变化。(物理硬件中,我只用了一个LED,观察到LED是常亮,有规律得熄灭,因为我的LED是低电平才发光,与设计完全吻合!) OK,做到这一步,就大功告成了! 26

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1