欢迎来到天天文库
浏览记录
ID:8527395
大小:371.00 KB
页数:6页
时间:2018-03-31
《基于niosii的跑马灯设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一、实验要求:采用niosII软件和QuartusII软件设计一个跑马灯,即使LED小灯循环点亮。二、实验步骤及实验结果:1、建立工程2、点击SOPCbuilder开始定制niosII模块命名为sk_cpu.Sopc选择verlog作为目标语言。图1sopcbuilder图2为niosII模块命名3、添加cpu模块如图1所示。因系统比较小,选择NiosII/e型可以满足设计要求,并为定制的cpu取一个名字(也可以默认)。图3在NiosII中定制CPU模块4、添加位宽8位,的4kbyte的ram模块定制完cpu,在右侧选择memoriesandmemorycontroller->
2、on-chip->onchipmemory(ramorrom)。在弹出的对话框中选择ram。其他参数默认即可。并修改名为ram。1、在Peripherals中的MicrocontrollerPeripherals中添加6位的pio并修改名字为led,如图所示自动分配存储器空间auto。图4添加个外设后的CPU模块2、生成定制的cpu模块,并建立.bdf的顶层文件,使顶层文件名与工程名一致。在原理图文件中添加SK_CPU模块以及输入输出引脚,分别命名如下图所示。3、建立顶层原理图.bdf文件(必须与工程名一致)。添加上述生成的CPU模块,并添加输入输出引脚如图5所示。图5顶层原理
3、4、编译上述工程5、引脚分配图6引脚分配后的顶层原理图视图图7引脚分配情况1、重新编译。2、点击niosIIIDE进入niosII界面建立工程,在SOPCBuilderSystemPTFFile中选择刚刚定制好的cpu模块SK_CPU.ptf作为编程目标cpu。选择helloword为模板,进行适当修改为IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,led);builtproject编译成功后,下载。图8在niosII界面定制工程模板下载有两种方式。一是采用传统的QuartusII下载。另一种是采用niosII软件下载。下面分别加以介绍。1)下载方式
4、1:下载后程序会自动运行。图9QuartusII界面下载2)下载方式2:在nioII界面点击tools/quartursIIprogrammer图10niosII界面下载下载后点runas,run使程序进入运行状态。同时按复位键使其为高电平。程序开始运行。可以看到8个led小灯循环点亮。12、运行程序,观察实验结果。8个led小灯循环点亮。三、源程序清单#include"system.h"#include"altera_avalon_pio_regs.h"#include"alt_types.h"/**Thisisafreestandingapplication,sowewan
5、ttousealt_main*astheentrypoint.However,ifthedebuggerisrunonthis*application,itwilltrytosetabreakpointatmain,which*theapplicationdoesnotcontain.Thebelowlinecreatesan*aliassothedebuggerisabletosetabreakpointatmain,*yettheapplicationretainsalt_mainasit'sentrypoint.*/intmain(void)__attribute__((
6、weak,alias("alt_main")));/**Usealt_mainasentrypointforthisfree-standingapplication*/intalt_main(void){alt_u8led=0x2;alt_u8dir=0;volatileinti;/**Infinitelyshiftavariablewithonebitsetbackandforth,andwrite*ittotheLEDPIO.Softwareloopprovidesdelayelement.*/while(1){if(led&0x81){dir=(dir^0x1);}if(
7、dir){led=led>>1;}else{led=led<<1;}IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,led);/**Thedelayelementinthisdesignhasbeenwrittenasawhileloop*toavoidconfusingthesoftwaredebugger.Atight,onelinesoftware*delayloopsuchas:*for(i=0;i<;i++);*cancauseproblemswhenit
此文档下载收益归作者所有