最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

SOPC课程设计实验报告--基于 NIOS 的 μCOS-II 实验

来源:动视网 责编:小OO 时间:2025-09-26 05:25:30
文档

SOPC课程设计实验报告--基于 NIOS 的 μCOS-II 实验

FPGA-CPLD原理及应用课程设计报告题目:基于NIOS的μC/OS-II实验学院:信息与电子工程学院专业:电子科学与技术学号:姓名:指导老师:时间:2013-7-15~2013-7-20一、摘要本实验项目使用QuartusII、SOPCBuilder和NiosIIEDS从零开始构建一个能够在DE2-115实验平台上运行的μC/OS-II操作系统的NiosII系统。初学者可以借此范例熟悉QuartusII、SOPCBuilder、NiosIIEDS的使用,并且了解基于FPGA的嵌入式系统开发
推荐度:
导读FPGA-CPLD原理及应用课程设计报告题目:基于NIOS的μC/OS-II实验学院:信息与电子工程学院专业:电子科学与技术学号:姓名:指导老师:时间:2013-7-15~2013-7-20一、摘要本实验项目使用QuartusII、SOPCBuilder和NiosIIEDS从零开始构建一个能够在DE2-115实验平台上运行的μC/OS-II操作系统的NiosII系统。初学者可以借此范例熟悉QuartusII、SOPCBuilder、NiosIIEDS的使用,并且了解基于FPGA的嵌入式系统开发
  

 

FPGA-CPLD原理及应用课程设计报告

                         

        题目:   基于 NIOS 的 μC/OS-II 实验   

学院:     信息与电子工程学院

专业:  电子科学与技术

学号:  

姓名:                  

指导老师: 

时间:2013-7-15~2013-7-20

一、摘要

本实验项目使用 Quartus II、SOPC Builder和Nios II EDS 从零开始构建一个能够在 DE2-115 实验平台上运行的 μC/OS-II 操作系统的 Nios II 系统。初学者可以借此范例熟悉 Quartus II、SOPC Builder、Nios II EDS 的使用,并且了解基于 FPGA 的嵌入式系统开发流程。

关键词: SOPC Builder  Nios II DE2  Nios II EDS

二、设计要求 

从零开始建立一个基于 Nios II 的 μC/OS-II 应用实验系统(也可以认为是一个Nios II+μC/OS-II 的应用框架)具有以下一些作用。

(1) 读者可以借助 SOPC Builder 工具自行对 Nios II 软核处理器进行配置。

(2) 很多范例都是纯硬件的VHDL代码,需要自行从零开始建立 Nios II 系统,不能够直接使用 Altera 公司已经建立好的 Nios II 系统。

(3) DE2-115并非Altera公司原创的开发板,而是友晶科技ODM的电路板,很多外围设备都与 Altera 提供的电路板不一样,所以很多Altera手册中范例都无法执行,必须要有自己从硬件到软件建立系统的能力,将来才有办法将 Altera 提供的范例移植到 DE2-115 上执行并做到最佳化。

三、设计内容”

1、SOPC Builder 硬件建立

        SOPC Builder是在Quartus II里的SOPC Builder进行的,先建立工程在SOPC Builder里添加硬件,包括CPU ,PLL,onchip_memory,SSRAM,SDRAM Tristate Bridge, Flash, JTAG UART,UART, Timer System ID

2、Quartus II硬件处理    

 硬件会自动建立一个顶层模块,通过建一个原理图来对对应的硬件进行输入输出的添加,再锁定引脚,编译工程,硬件下载。

 3、Nios II DE2嵌入软件编写

 在Nios II里建立工程,选择相应的模块,编写需要嵌入的软件,添加缺少的头文件对应的宏定义,编译工程,进行软件下载,在观察结果。

四、设计步骤

1、打开Quartus II新建工程

2、打开SOPC Builder生成相应的硬件如图所示

图1.SoPC配置

    建立好后点击Generate运行,看是否出错,然后点击exit退出。

 3、调用刚才生成的硬件系统,在Quartus II中建立图形文件,然后进行引脚锁定。

引脚锁定引脚文件如下:

图2.引脚配置

    然后进行编译,在Quartus I下生成文件如下图:

4、Nios II运行

打开Nios II IDE2,建立工程,选择count_binary模块,添加一个LCD.h的顶层文件。

在此写出C语言程序代码。

#include 

#include "includes.h"

/* Definition of Task Stacks */

#define   TASK_STACKSIZE       2048

OS_STK    task1_stk[TASK_STACKSIZE];

OS_STK    task2_stk[TASK_STACKSIZE];

OS_STK    task3_stk[TASK_STACKSIZE];

/* Definition of Task Priorities */

#define TASK1_PRIORITY      1

#define TASK2_PRIORITY      2

#define TASK3_PRIORITY      3

/* Prints "Hello World" and sleeps for three seconds */

void task1(void* pdata)

{

  while (1)

  {

    printf("Hello from task1\\n");

    OSTimeDlyHMSM(0, 0, 6, 0);

  }

}

/* Prints "Hello World" and sleeps for three seconds */

void task2(void* pdata)

{

  while (1)

  {

    printf("Hello from task2\\n");

    OSTimeDlyHMSM(0, 0, 5, 0);

  }

}

void task3(void* pdata)

{

  while (1)

  {

    printf("Hello from task3\\n");

    OSTimeDlyHMSM(0, 0, 4, 0);

  }

}

/* The main function creates two task and starts multi-tasking */

int main(void)

{

  OSTaskCreateExt(task1,

                  NULL,

                  (void *)&task1_stk[TASK_STACKSIZE-1],

                  TASK1_PRIORITY,

                  TASK1_PRIORITY,

                  task1_stk,

                  TASK_STACKSIZE,

                  NULL,

                  0);

  OSTaskCreateExt(task2,

                  NULL,

                  (void *)&task2_stk[TASK_STACKSIZE-1],

                  TASK2_PRIORITY,

                  TASK2_PRIORITY,

                  task2_stk,

                  TASK_STACKSIZE,

                  NULL,

                  0);

  OSTaskCreateExt(task3,

                    NULL,

                    (void *)&task3_stk[TASK_STACKSIZE-1],

                    TASK3_PRIORITY,

                    TASK3_PRIORITY,

                    task3_stk,

                    TASK_STACKSIZE,

                    NULL,

                    0);

  OSStart();

  return 0;

}

LCD.h的顶层文件为:

#ifndef _LCD_H_

#define _LCD_H_

//LCD Module 16*2

#define  lcd_write_cmd(base,data)    IOWR(base, 0, data)

#define  lcd_read_cmd(base)         IORD(base, 1)

#define  lcd_write_data(base,data)    IOWR(base, 2, data)

#define  lcd_read_data(base)         IORD(base, 3)

//==========================

void   LCD_Init();

void   LCD_Show_Text(char*Text);

void   LCD_Line2();

void   LCD_Test();

//=========================

#endif //_LCD_H_

5、连接开发板,将文件下载到开发板,运行文件检验是否正确。

6、检查错误并修改,知道结果正确。

7、运行结果

  

图3.运行结果

五、运行情况与问题分析

1、建立工程时,注意不能出现中文或者空格,且工程名需与文件名一致,选定芯片;

2、在生成CPU硬件系统时,定义端口时,需注意设定端口输入与输出的位宽,需与程序定义的数值一致,否则运行溢出报错,须修改;

3、建立图形文件后,需进行编译,出现错误得返回原理图核对,找到错误修改后重新编译;

4、进行引脚锁定时,注意引脚文件的编写,否则选择引脚文件点击Run后会不成功,从而影响后面程序的调试;

六、结论

采用NIOSⅡ集成开发环境提供的快捷开发手段,在Cyclone 1C6Q240C8芯片上创建了一个用户定制CPU和外设的片上系统,同时完成对液晶显示器和LED的编程控制。整个系统充分体现了SOPC设计方法的灵活性,设计时只定制系统需要的外设器件接口,避免过多的外围电路和器件造成体积、功耗的增多和可靠性的下降。由于采用软核结构,方便系统的升级和扩展,而不必硬件改版,节约了成本,加快开发进度,缩短了产品的开发周期。

七、心得体会

经过本次SOPC课程设计实验,使我更加熟悉了Quartus Ⅱ与Nios Ⅱ DE2以及开发板的使用,熟练掌握了从理论设计到硬件开发的流程,了解了万年历通过编程实现的整个过程。从整个实验实现的过程中,碰到一些以前未出现过的问题,在自己的努力以及同学、老师的帮助下,使自己的理论及操作水平有所提高。

指导教师评语

                              课程设计成绩:  

   

                              指导教师签字:     

文档

SOPC课程设计实验报告--基于 NIOS 的 μCOS-II 实验

FPGA-CPLD原理及应用课程设计报告题目:基于NIOS的μC/OS-II实验学院:信息与电子工程学院专业:电子科学与技术学号:姓名:指导老师:时间:2013-7-15~2013-7-20一、摘要本实验项目使用QuartusII、SOPCBuilder和NiosIIEDS从零开始构建一个能够在DE2-115实验平台上运行的μC/OS-II操作系统的NiosII系统。初学者可以借此范例熟悉QuartusII、SOPCBuilder、NiosIIEDS的使用,并且了解基于FPGA的嵌入式系统开发
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top