NiOS II SOPC 嵌入式系统基础教程
- 格式:pdf
- 大小:858.06 KB
- 文档页数:38
NIOS2完整教程NIOS II 是一款高度可配置的32位嵌入式软核处理器,由Intel旗下的Altera(现在归属于英特尔)推出。
它具有低功耗、高性能和可扩展性的特点,适用于各种嵌入式应用领域。
下面是一份简要的NIOSII完整教程,帮助您了解如何开始使用NIOSII。
1. Nios II 架构Nios II 架构包括处理器核、总线接口、存储器和外设设备。
处理器核包括CPU和一些协处理器,如乘法器、除法器等。
总线接口用于连接处理器核、存储器和外设设备。
存储器用于存储指令和数据。
外设设备包括UART、GPIO、SPI、I2C等。
2. Nios II 开发环境搭建首先,您需要安装Altera的Quartus软件来进行Nios II的开发。
Quartus提供了一个开发工具套件,包括编译器、仿真器和调试器。
您还需要安装Nios II EDS,这是一个集成开发环境,用于配置和生成Nios II处理器的软件。
安装完软件后,您可以创建一个新的Nios II项目。
3. Nios II 项目配置在Quartus中创建新的Nios II项目时,您需要指定处理器类型、时钟频率和存储器大小等参数。
您还可以选择添加外设设备和协处理器。
一旦项目创建完成,您可以使用Nios II EDS来配置处理器和外设设备,并生成相关的软件。
4. Nios II 软件开发Nios II 支持多种软件开发工具,包括C/C++编译器、汇编器和调试器。
您可以使用C/C++编译器来编写和调试应用程序。
您还可以使用汇编器来编写高性能的关键代码。
调试器可以帮助您检测和修复应用程序中的错误。
5. Nios II 系统调试在开发过程中,您可能需要进行系统调试,以解决应用程序的问题。
Nios II 支持硬件和软件调试。
硬件调试通过连接JTAG接口进行,可以在硬件级别上进行调试。
软件调试使用Nios II调试器进行,可以在软件级别上进行调试。
6. Nios II 系统验证在完成软件开发和调试后,您可以进行系统验证,确保系统的正确性和稳定性。
1、打开quaratusII软件2、打开low_cost_lcd工程打开的工程:3、打开sopcbuilder正在打开:Sopc builder中建立的niosII系统4、选择system generationSystem generation界面5、点击run niosII IDE 正在读取中间会提示选择workplace点browse选择在你电脑中的low_cost_lcd文件夹中的software---workspace作为工作空间这是在我电脑中的情况之后等待一会儿,根据电脑的配置不同时间也不同。
可以从上图看到workspace文件夹上面还有一些文件夹。
这些就是存放c/c++例程的地方:这就是存储c文件的地方这个文件夹中就是你所熟悉的c语言程序。
好了言归正传,现在niosII ide 应该已经启动好了,如下显示:6、打开一个你向下载到实验板上的c程序,我以flash_test为例:点击flash_test:7、因为这些文件都是编译过的,就可以不编译了,当然在编译一次也没关系:点project-build project8、先把qaratusII的工程下载到实验板上9、实验板不要断电,下载软件程序注意控制台中显示的内容显示到这一步你的程序就成功了最后讲一下如何建立新的软件工程:1、现在新建一个工程:2、点next选择空白工程3、为你的工程起个名字这时会在旁边出现一个新的工程---flash_test_26、新建一个c/c++文档:出现如下的对话框:7、上面是选择父目录,下面打入文件名8、完成:这时在左侧的工程池中出现了你刚建的文件:9、我先把flash_test.c中的程序复制了,flash_test.c文件的位置上文已经提过了在low_cost_lcd---software---flash_test中。
10、打开文件,然后把刚才复制过的内容粘贴进去,一个新的niosII软件工程就做好了。
编译下载。
第1节并行输入/输出内核并行输入/输出(PIO)内核提供了Avalon存储器映射从端口和通用IO端口直接的接口。
I/O端口连接到片内的用户逻辑或是连到与FPGA片外设备相连的引脚上。
PIO内核提供对用户逻辑或外部设备简单的I/O访问,应用实例如下:∙控制LED∙获取开关数据∙控制显示设备∙配置并与片外设备通信,例如专用标准产品(ASSP)的设备。
PIO内核可以基于输入信号而发出中断请求 (IRQ) 输出。
SOPC Builder 中提供了现成的 PIO内核,可以很容易地将PIO内核集成到SOPC Builder生成的系统中。
7.1.1 PIO 寄存器描述每个PIO内核可提供多达32I/O端口,用户可以添加一个或多个PIO内核。
CPU通过读/ 写PIO接口的映射寄存器来控制PIO端口。
在CPU的控制下,PIO内核在输入端口捕获数据,驱动数据到输出端口。
当PIO端口直接连到了I/O管脚,通过写控制寄存器,CPU能够将管脚置成三态。
图7-1是一个PIO应用的例子,本例使用了多个 PIO内核。
图7-1 使用PIO内核的系统实例当集成到SOPC Builder生成的系统中,PIO内核有两个特性对用户是可见的。
∙具有四个寄存器的存储器映射的寄存器空间,4个寄存器是data、direction、 interruptmask和edgecapture。
∙1到32个的I/O端口。
有些寄存器在某些硬件配置下不是必需的,这时相应的寄存器就不存在了。
对一个不存在的寄存器进行读操作,则返回一个未定义的值;一个不存在寄存器进行写操作则没有任何结果。
表7-1给出了PIO寄存器的描述。
1. 数据寄存器(Data Input & Output)PIO内核I/O端口可以连接到片上或片外的逻辑。
内核可以配置成仅有输入端口,或仅有输出端口,或两者都有。
如果内核用于控制设备上的双向I/O 管脚,内核提供具有三态控制的双向模式。
n i o s-i i-入门手册一、建立quartus ii工程首先,双击quartus ii 9.1图标打开软件,界面如下图1.1所示图1.11.1新建工程(1)点击file –>New Project Wizard 出现图1.2所示的对话框。
图1.2(2)点击Next。
如图1.3所示:第一行是工程的路径,二、三行为实体名。
填好后点击Next。
图1.3(3)此处可选择加入已设计好的文件到工程,点击Next。
图1.4(4)选择设计器件如图1.5所示。
接着点击Next。
图1.5(5)接着点击Next。
无需改动,点击finish,显示如下图所示。
图1.6(6)此时,工程已经建立完成,接下来需要建立一个原理图输入文件,点击file –>New ->Block Diagram/Schematic File 后如图1.7所示。
图1.7二、构建一个nios ii 软核(1)首先点击Tools ->Sopc Builder图2.1在System Name中输入软核的名称,注意:软核的名称不能和quartus工程的实体名相同,否则编译会出现错误,接着点击ok。
图2.2图中clk_0为时钟名称,100.0为时钟值双击可修改其值。
即软核的时钟就是100MHZ。
(2)建立nios ii处理器点击Processors -> Nios ii Processor 如图2.3所示图2.3点击后,将出现下图,在下图中选择软核的类型。
这里提供了三种类型,Nios II/e占用资源最少600-800LEs,功能也最简单,速度最慢。
Nios II/s占资源比,前者多一些,功能也多了,速度也忚一些Nios II/f占资源最多,功能也最多,速度就最快,用户可根据实际的需要选择不同的类型。
此处选择Nios II/f型,速度和功能都能满足。
下方Reset Vector是复位后启动的Memory类型和偏移量。
待SDRAM设置号以后再来设置此处。
SOPC嵌入式系统基础教程课程设计课程设计背景SOPC (System on a Programmable Chip) 是将数字系统设计的各个模块集成到一个芯片上的技术,可以利用 FPGA 技术实现。
使用SOPC 技术设计嵌入式系统时,可以将各种外设控制器集成到可编程器件中,从而完成完整的嵌入式系统。
随着现代物联网技术的快速发展和普及,嵌入式系统应用场景越来越广泛,嵌入式系统的开发工程师越来越受到关注。
因此,对于计算机科学专业的学生来说,掌握 SOPC 嵌入式系统的基础知识和技能也变得非常重要。
本课程设计旨在通过实践操作,让学生了解 SOPC 嵌入式系统的基本概念和应用,提高学生对嵌入式系统的设计能力。
课程设计内容实验环境准备软件环境1.Quartus II 集成开发环境2.ModelSim 集成仿真环境硬件环境采用 Altera 公司推出的 DE1-SoC 开发板,该开发板主要包括以下硬件资源:1.Cyclone V SoC FPGA 设备,包括 FPGA 逻辑资源和 ARM处理器资源2.DDR3 SDRAM 存储器3.VGA 视频输出端口4.以太网口5.GPIO 端口6.SD 卡口7.麦克风输入口8.音频输出端口实验流程本课程设计共包括两个实验设计,分别为:实验一:利用 Quartus II + Nios II + SOPC 技术搭建一个包含I/O 和 LED 控制的简单系统1.学习 Nios II 基本概念,如指令集架构、寄存器组、内存、中断等。
2.学习 Quartus II + Nios II IDE 集成开发系统的使用,包括类型定义、信号定义、仿真和调试功能。
3.建立一个简单的 SOPC 系统,包括 Nios II 处理器、I/O控制,用于控制 VGA 显示器中的 LED 灯。
4.用 C 语言编写应用程序来控制 LED 灯,并将程序下载到板子上,观察 LED 灯在 VGA 显示器中的状态。
一.关于SOPC1)SOPC英文全名为:System-On-a-Programmable-Chip,即可编程片上系统。
SOPC 用可编程逻辑技术把整个系统放到一块硅片上,来用于嵌入式系统研究和电子信息处理。
SOPC是一种特殊的嵌入式系统,它是片上系统(System-On-a -Chip,SOC),即由单个芯片完成整个系统的主要逻辑功能但它不是简单的SOC,它也是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
SOPC设计包括以32位NIOSII软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计以及软件调试等。
SOPC系统设计的基本软件工具有:1)QuartusII:用于完成NIOSII系统的综合、硬件优化、适配、编程下载以及硬件系统调试等;2)SOPC Builder:Altera NiosII嵌入式处理器开发软件包,用于实现NiosII 系统的配置、生成,内嵌于QuartusII软件中;3)ModelSim: 用于对SOPC生成的NiosII系统的HDL描述进行系统的功能仿真;4)NiosII IDE:用于进行软件的开发、调试,以及向目标开发板进行Flash下载;二.关于NIOSII处理器NIOSII 是一个可配置的软核处理器。
“可配置”的意思是设计者可以根据性能和成本的要求来增加或删减处理器的功能。
ALTERA公司并不销售NIOSII处理器芯片,而是销售空的FPGA,并提供NIOSII 系统相应的IP核来组成NIOSII系统,然后将这个系统下载到FPGA中实现。
1)关于AVALONAvalon总线是SOPC硬件系统的重要组成部分,Avalon总线规范是为了开发SOPC 环境下外设而设计的。
图1-1 一个SOPC的示例二. SOPC简单实例:软核控制LCD液晶字母显示器1.系统构成规划1)系统功能:在character LCD上显示”Hello LCD from NiosII!”2)本系统中需要的外围器件:(1)L CD:输出显示(2)S RAM存储器:程序运行时将其导入SRAM3)SOPC中建立系统需要添加的模块包括:(1)N ios II 32bit CPU(2)L CD display(3)外部RAM总线(4)外部RAM接口(5)J TAG UART Interface(6)定时器2.硬件系统的建立1)首先打开Quartus II 建立工程文件:将工程文件命名为hello_lcd,顶层文件与工程文件同名。