实验四 Nios II 嵌入式处理器关浩亮029180002_嵌入式实验四实验报告
实验四 Nios II 嵌入式处理器关浩亮029180002由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“嵌入式实验四实验报告”。
关浩亮2012029180002 实验四 Nios II 嵌入式处理器
一、实验要求:
1、实现一个由Nios II控制的由18个发光二级管组成的流水灯效果;
2、为了点亮LED灯,程序运行速度不要太快,需要进行适当延时。
二、实验目的:
1,掌握基于SOPC Builder和Nios SBT实现嵌入式系统的硬件、软件设计过程; 2,学会根据需求定制一个Nios II硬件系统,并在此基础上编写应用程序。
三、实验原理和实验内容:
1、SOPC技术
SOPC(System On a Programmable Chip)是指用可编程逻辑技术把整个系统放到一块硅片上。它是一种特殊的嵌入式系统。一方面,它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;另一方面,它是可编程系统,具有灵活的设计方式,可裁减、扩充、升级,并具备软硬件在系统可编程的功能。这项技术将EDA、计算机设计、嵌入式系统、DSP等技术融为一体。SOPC 结合了SOC 和PLD、FPGA 各自的优点,一般具备以下基本特征:至少包含一个嵌入式处理器内核;具有小容量片内高速RAM 资源;丰富的IP Core 资源可供选择;足够的片上可编程逻辑资源;处理器调试接口和FPGA 编程接口;可包含部分可编程模拟电路;单芯片,低功耗,微封装。
随着EDA 技术的发展和大规模可编程器件性能的不断提高,SOPC 技术已被广泛应用于许多领域。首先,SOPC 在极大提高了许多电子系统性能价格比的同时,还开辟了许多新的应用领域,如高端的数字信号处理、通信系统、软件无线电系统的设计、微处理器及大型计算机处理器的设计等等;同时,由于SOPC 具有基于EDA 技术标准的设计语言与系统测试手段、规范的设计流程与多层次的仿真功能以及高效率的软硬件开发与实现技术,使得SOPC 及其实现技术无可争议地成为现代电子技术最具时代特征的典型代表。与基于ASIC 的SOC 相比,SOPC 具有更多的特点与吸引力:开发软件成本低,硬件实现风险低,产品上市效率高,系统结构可重构及硬件可升级等,它还具有设计者易学易用、高附加值、产品设计成本低等优势。
关浩亮2012029180002 Nios II是Altera公司推出的新一代软核嵌入式处理器。借助于Nios II、FPGA和Altera公司完整的开发套件,可以快速实现设计和验证,有效提高系统性能。
2、基于Nios II的硬件开发基本过程
(1)定义NiosⅡ嵌入式处理器系统:使用SOPC Builder系统综合软件选取合适的CPU、存储器以及外围器件,并定制其功能。
(2)指定目标器件、分配引脚、编译硬件:使用QuartusⅡ选取Altera器件系列,并对SOPC Builder生成的HDL设计文件进行布局布线;再选取目标器件,分配管脚,进行硬件编译选项或时序约束的设置。编译,生成网表文件和配置文件。
(3)硬件下载:使用QuartusⅡ软件和下载电缆,将配置文件下载到开发板上的FPGA中。
3、基于Nios II的软件开发基本过程
(1)在使用SOPC Builder/Qsys进行硬件设计的同时,就可以开始编写独立于器件的C/C++软件,比如算法或控制程序。用户可以使用现成的软件库和开放的操作系统内核来加快开发过程。
(2)在NiosⅡSBT中建立新的软件工程时,SBT会根据SOPC Builder/Qsys对系统的硬件配置自动生成一个定制HAL(硬件抽象层)系统库。这个库能为程序和底层硬件的通信提供接口驱动程序。
(3)使用NiosⅡSBT对软件工程进行编译、调试。
(4)将硬件设计下载到开发板后,就可以将软件下载到开发板上并在硬件上运行。
4、基于Nios II的流水灯实现
在Nios II处理器定制完成后,编写程序控制与发光二极管相连的引脚电平,循环点亮每一个发光二极管,同时熄灭其它二极管,实现简单的流水灯效果。其基本结构如下图所示:
关浩亮2012029180002 CLKPIO_0PIO_1LED_0LED_1CPURESETPIO_171.图中,CLK为CPU的运行时钟;RESET为CPU的复位信号,一般与电源VCC相连,当系统上电时自动完成处理器的复位;并行I/O引脚PIO_0~PIO_17分别与发光二极管相连,用于控制二极管的发光和熄
„„LED_17四.实验设计及仿真波形结果:
硬件设计步骤为:(1)(2)创建QuartusⅡ工程
Nios II 软核配置:启动SOPC Builder,对系统进行命名,添加Nios II Proceor,经济型内核“Nios II/e”,JTAG Debug Module配置,配置存储器,配置并行I/O口,(3)完成硬件设计:完成Nios II 软核配置后,回到Quartus II ; • 在原理图编辑窗口中单击鼠标右键将打开一个浮动菜单,选择“Insert→Symbol”命令打开电路符号“Symbol”选择对话框,或者双击原理图空白处。在对话框左侧的“Libraries”选择栏中选择Project下的“Nios2WalLd”,右边的符号窗口将出现对应的电路符号。这个模块就是SOPC Builder工具产生的Nios II软核处理器系统。
• Nios II软核处理器系统引脚“clk_50”应该与时钟输入连接; 复位信号输入端“reset_n”与电源符号“VCC”连接,当芯片上电时自动完成关浩亮2012029180002 处理器的复位;引脚“pio_18led[17...0]”分别与18个发光二级管连接。
• 执行命令Aignments->Import Aignments„导入板载FPGA的引脚分配文件DE2_115_pin_aignments.csv,并正确命名原理图上的引脚名,使之与正确引脚一一对应。• 正确编译。软件设计步骤为:
Nios II嵌入式开发环境的软件开发工作需要前面产生的Nios II软核处理器系统硬件的支持。在SOPC Builder的“System Generation”选项卡的“Nios II Tools”栏目中单击“Nios II Software Builder Tools for Eclipse”按钮可以打开Nios II SBT开发平台。Nios II SBT工程建立 :
在Quartus工程目录下,建立“software”文件夹;
File->Switch Workspce->Other„,切换为上述“software”文件夹 建立项目
Nios II SBT工程设置 :
选择Quartus工程目录下的SOPC Information File,设定项目名,并选择参考模板中的“Blank_project”,会自动载入相关信息。C源程序设计: File→New→Source File 编译:
“Project→Build Project 编译完成后,“console”栏目将给出储存器的占用情况。之后硬件下载,然后调试/运行程序。C语言程序代码为:
关浩亮2012029180002 #include “system.h” #include “altera_avalon_pio_regs.h” void delay(void);int alt_main(void){
} void delay(void){ unsigned int i;i=1000000;unsigned char led_data;unsigned int led_code;while(1){
IOWR_ALTERA_AVALON_PIO_DATA(PIO_18LED_BASE,led_code);
} return 0;} delay();for(led_data=0;led_data
关浩亮2012029180002
}
while(i>0){ } i--;实验板仿真结果如下:
关浩亮2012029180002
关浩亮2012029180002
关浩亮2012029180002
实验结果分析:
在实验板上,正确显示了流水灯依次点亮的实验现象,图示为流水灯依次点亮间隔时间的图像结果,满足实验要求,该实验成功的完成了。
五、问题及思考:
1、如何通过软件设计,将实验中的简单流水灯效果设计得更加多样化? 在while循环语句中添加下面的程序段: for(led_data=0;led_data
IOWR_ALTERA_AVALON_PIO_DATA(PIO_18LED_BASE,led_code);} { led_code =led_data>>0x001;delay();
关浩亮2012029180002 可实现左右来回循环的流水灯,增加流水灯的设计效果。
2、如果将流水灯效果用实验板上的LCD来实现,硬件和软件上应该做哪一些修改?
LCD为液晶显示屏,在硬件上需要将显示屏的按键连接到原理图的输入输出上。在软件中,要将液晶屏初始化,并添加按键实现灯亮的程序块。
六,心得体会:
本实验完成了流水灯的实现,根据课件的实验步骤内容,基本掌握了基于SOPC Builder和Nios SBT实现嵌入式系统的硬件、软件设计过程;学会了根据需求定制一个Nios II硬件系统,并在此基础上编写应用程序。程序需用C语言来写,利用已有的Nios II嵌入式处理器实现了简单的流水灯依次点亮的实验。本实验使我明白了如何利用已设计好的嵌入式处理器来实现所需的具体实验。