基于CPLDFPGA的NOSII处理器设计Word文档格式.docx
- 文档编号:20857385
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:25
- 大小:593.60KB
基于CPLDFPGA的NOSII处理器设计Word文档格式.docx
《基于CPLDFPGA的NOSII处理器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于CPLDFPGA的NOSII处理器设计Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
*提供永久的,免费的许可从而使基于NiosII处理器的产品避免了处理器的更新换代而带来的损失。
3)功能强大、易用的开发工具
*通过使用NiosII集成开发环境(IDE),从而加速了软件的开发
*利用Altera的强大的SOPCBuilder系统开发工具和QuartusII设计软件可以在几分钟内设计一个系统
使用完全功能的开发包
*使用易用的NiosII开发包开始一个设计
*使用易用的NiosII开发包开始设计
*可以选择具有低成本特性的CycloneFPGA开发套件,或高性能的StratixFPGA开发套件
下面我们就设计一个最简单的NiosII系统,使用NiosII去控制一个LED灯,通过这个例子我们可以了解整个介绍NiosII的设计流程
3EDA软件的安装
许多朋友在配置EDA环境的时候,就遇到了更多问题,我现在总结一下:
1。
安装QuartusII4.2
2。
安装NiosIIIDE用于软件开发
3。
安装ModelSim6.0。
用于系统仿真
如下是ModelSim下的安装说明:
1.Install,SelectFullproductinstllation.Whenaskedforsecuritykey,selectno.Whenyou
seeLicenseWizarddialog,selectclosebecauselicensewizarddontknowourlicense'
sformat.
2.Useourkeygentogeneratelicense.dat,copyittoc:
\flexlmdirectory.
3.setenviromentstring:
LM_LICENSE_FILE=c:
\flexlm\license.dat
4.StartModelsimandhavefun.
仍有许多人表示搞不定,通常是因为第三步有问题,可以如下设置:
在W2K下,在开始-〉系统-〉设置-〉系统-〉高级-〉环境变量-〉系统变量中设置
变量名为LM_LICENSE_FILE,值为你的存放license.dat的路径+文件名,比如c:
\flexlm\license.dat,
(在unix/linux下,在.bashrc中exportLM_LICENSE_FILE=/thePathOfLicenseFile/yourLicenseFileName就可以了!
)
4建立niosII系统。
1:
建立项目。
建立一个目录,比如H:
\DB2005\project\niosDK\Example\NiosSmall
启动QuartusII4.2软件。
选择File->
NewProjectWizard
在Diectory,Name,Top-LevelEntity中如下填写,在你自己的项目中,你可以类比着填写:
在AddFiles中如下填写,在你自己的项目中,你可以类比着填写:
在EDAToolsSetting中如下填写,在你自己的项目中,你可以类比着填写:
最后,选择Finish,就OK了!
在H:
\DB2005\project\niosDK\Example\NiosSmall下建立一个name为Setup.tcl的file,其内容如下:
#Setup.tcl
#Setuppinsetting
set_global_assignment-nameRESERVE_ALL_UNUSED_PINS"
ASOUTPUTDRIVINGGROUND"
set_global_assignment-nameENABLE_INIT_DONE_OUTPUTOFF
set_location_assignmentPIN_16-toclk
set_location_assignmentPIN_37-toled\[0\]
set_location_assignmentPIN_39-toled\[1\]
set_location_assignmentPIN_1-toled\[2\]
set_location_assignmentPIN_41-toled\[3\]
set_location_assignmentPIN_42-toled\[4\]
set_location_assignmentPIN_49-toled\[5\]
set_location_assignmentPIN_50-toled\[6\]
set_location_assignmentPIN_51-toled\[7\]
很浅显的Script,你可以根据需要修改。
然后打开Tools->
TclScripts,选中刚才编辑的Script文件:
Setup,并点击Run
2:
生成一个可调试的nios最小系统
选择Tools->
SopcBuilder,启动AlteraSOPCBuilder
启动AlteraSOPCBuilder后,SOPCBuilder会立刻弹出对话框
填入SystemName,比如niosII_e;
HDLLanguage,比如选择verilog,如下图:
选择BoardTarget,比如,我选择UnspecifiedBoard;
选择TargetDeviceFamily,比如,我选择Cyclone;
填入Clock,比如,我填入22.1184
如下图:
添加NiosII到项目中:
双击NiosIIProcessor-AlteraCorporation,会弹出AlteraniosII对话框,
在NiosIIcore配置选项中,点击NiosII/e区域,选择NiosII/e,如下图。
然后Next,进入下一步。
在JTAGDebugModule配置选项中,选择Level1,如下图。
在CustomInstructions配置选项中,我由于无需增加任何定制指令,所以为空,如下图:
最后选择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.GeneratesystemmodulelogicinVerilog,
如果需要仿真,也请选中Simulation.CreateModelSim(tm)projectfiles
然后点击Generate,进行系统生成的任务。
然后,就是漫长的等待,你可以悠闲得喝一杯咖啡(因为等待的时间还是蛮长的,比如我,要等近10分钟)。
一般没有问题的话,可以看到系统提示:
SUCCESS:
SYSTEMGENERATIONCOMPLETED.如果看到此信息,恭喜恭喜,系统被正确生成了。
如果失败,请返回并检查、修改!
3:
在QuartusII中使用上述niosII系统
在SOPCBuilder正确运行完毕后,可以在QuartusII中,打开SOPCBuilder生成的niosII_e.bsf,检查一下引脚,看看跟你的设想是否有误,如下图,niosII_e有两个input:
clk,reset_n,一组output:
out_port_from_the_piop[7:
0]
你可以使用上述的niosII_e,来构造你自己的系统。
如下图,我简单得创建了nisoSmall.bdf,来使用该niosII_e。
niosclktoclk
nisoreset_ntoVCC
out_port_from_the_pio_0[7:
0]toLED[7:
第三节:
编写程序。
在AlterSOPCBuilder中,点击RunNiosIIIDE,启动NiosIIIDE,如下图:
在NiosIIIDE中,选择File->
New->
Project,开启NewProject对话框
选择C/C++Application,如下图。
然后选择Next,进入下一步。
填写你自己的ProjectName,比如我填写hello_led_1;
在SelectProjectTemplate中,我选择HelloLED(因为存放程序的sram只有2kbytes,所以许多Template不可用),如下图。
选择Createanewsystemlibrarynamed:
,最后点击Finish,创建项目。
打开项目中的文件:
hello_led.c,进行适当的修改。
比如,我将PIO的基地址修改为PIO_0_BASE;
while(i<
200000)修改为while(i<
20000).你可以依照你的需求修改!
然后选择Project->
BuildAll(Ctrl+B),编译整个项目。
如果无误,可以看到以下信息:
Buildcompleted.如果看到了该条提示,恭喜恭喜,距离成功只有一步之遥了!
第四节:
编译整个项目。
然后,在QuartusII中,选择Processing->
StarCompilation,开始编译整个项目。
你又可以坐下来喝杯咖啡了,反正我是等了又十来分钟。
成功后,可以看到如下信息:
如果到了这一步,赫赫,基本上大功告成了!
第五节:
下载与测试。
最后,选择Tools->
Programmer,下载整个配置到FPGA中,如下图。
下载成功后,可以看到LED的有规律的变化。
(物理硬件中,我只用了一个LED,观察到LED是常亮,有规律得熄灭,因为我的LED是低电平才发光,与设计完全吻合!
OK,做到这一步,就大功告成了!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CPLDFPGA NOSII 处理器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)