基于FPGA的片上可编程系统(SOPC)设计之:典型实例-基于NIOS II处理器的“Hello LED”程序设计
8.4典型实例14:基于NIOSII处理器的“HelloLED”程序设计
8.4.1实例的内容及目标
1.实例的主要内容
本节旨在通过给定的工程实例——“HelloLED”来熟悉Altera软嵌入式系统的软硬件设计方法。同时使用基于AlteraFPGA的开发板将该实例进行下载验证,完成工程设计的硬件实现。本节主要讲解下面一些知识点。
·QuartusIISOPCBuilder使用方法。
·NIOSIIIDE软件开发流程。
通过这些知识点,按照本节实例的实现过程,读者可以迅速掌握Altera软嵌入式软硬件设计方法。
2.实例目标
通过详细的流程讲解,读者应达到下面的目标。
·熟悉QuartusIISOPCbuilder使用方法。
·熟悉NIOSIIIDE软件设计方法。
8.4.2实例详解
本实例使用图解的方式将整个流程一步一步展现给读者,使读者能够轻松掌握开发的流程。
本实例重点在于熟悉使用QuartusⅡ和SOPCBuilder来创建一个NiosⅡ嵌入式处理器系统,并通过软件编程实现对实验板上面的LED灯的控制,具体实现过程如下。
(1)新建工程。
新建一个工程目录“sopc_led”,在此目录下建立一个名为“sopc_led”的QuartusII工程,并新建一个顶层图,保存于工程中。
(2)SOPCBuilder定制NIOSII处理器。
用SOPCBuilder定制NiosII处理器及其外设。打开“Tools”/“SOPCBuilder”,如图8.30所示。
图8.30打开Tools--SOPCBuilder
指定系统名字,本例中我们输入niosii_c。单击“OK”按钮进入SOPC定制界面。
图8.31SOPCBuilder界面
为“Target”选择“UnspecifiedBoard”,为“Clock(MHz)”选择时钟频率为50.0,为“TargetDeviceFamily”选择目标器件系列为Cyclone。
在SOPC定制界面的左边,我们可以看到有很多功能模块,用户可以按照需要将这些模块添加到所设计的系统中。
首先,我们需要一个CPU。选择“NiosIIProcessor”/“AlteraCorporation”,弹出AlteraNiosII对话框,我们选择一个经济型的CPU核,即NiosII/e,如图8.32所示。
图8.32加入NIOSIICPU
单击“JTAGDebugModule”标签页,选择第一级调试支持Level1:特点是占用逻辑资源少,编译速度快,不包括缓存,如图8.33所示。
图8.33设置CPU调试模型
单击“Finish”按钮完成NiosIICPU的配置工作。项目中会增加一个NiosII处理器,名字为cpu_0,为了简便起见,没有将它改名。改名的方法是:单击右键,选择“Rename”,输入名字后回车即可,如图8.34。
图8.34定制CPU完成图
(3)SOPCBuilder定制JTAG串口。
在左侧器件池中双击“JTAGUARTInterface”,使用默认参数设置,如图8.35所示。
它是NiosII系统嵌入式处理器新添加的接口元件,通过内嵌在AlteraFPGA内部的联合测试行动组(JTAG)电路,在PC主机和FPGA之间进行串行字符流通信。特点是在运行时在调试区输入信息可以与FPGA进行交互。
(4)SOPCBuilder定制计时器。
在左侧器件池中双击“IntervalTimer”。定时器对于HAL系统库中的器件驱动非常有用,比如JTAGUART驱动使用定时器来实现10s的暂停。选择“IntervalTimer”,在设置向导中周期选择1msec,预设置中选择Full-featured,如图8.36所示。
图8.35JTAGUART参数设置 图8.36计时器设置
(5)SOPCBuilder定制外部Flash。
在左侧器件池中双击“CompactFlashInterface”。在“Presets”中选自定义Custom,地址宽度21bits,带宽16bits。由于Flash是通用设备,所以时序标签使用默认设置。如图8.37和8.38所示。
图8.37Flash带宽设参数置界面 图8.38Flash时序参数设置界面
(6)SOPCBuilder定制外部SDRAM。
通常的系统都需要用户指定一个内存空间,这个内存是指RAM,可以是片上的,也可以是片外的SDRAM或SRAM等。如果用户程序较大,超出了FPGA所能定制的最大片上RAM容量,则也可以将程序放在SDRAM中运行。在左侧器件池中双击“SDRAMcontroller”。
在“Presets”中选择“micronMT48LC4M32B2-7chip”,其他的参数设置可以使用系统的默认选项,如图8.39所示。
(7)SOPCBuilder定制外部RAM总线。
添加外部RAM总线(AvalonTri-StateBridge)。软件使用Avalon接口来连接片上元件和Avalon主从端口。
图8.39SDRAM参数设置
在Nios开发板上,要实现Nios系统与FPGA片外存储器通信,就必须在Avalon总线和连接外部存储器的总线之间添加一个桥,这个桥就是
- 单片DSP处理器功能系统的SOPC技术设计(01-12)
- 基于DSP和SOPC数字信号发生器的设计(01-05)
- 基于Linux的SoPC应用系统设计(04-23)
- 基于DSP的实时数据处理系统浅析(02-28)
- 基于LXI总线的1553B通讯模块设计与开发(11-24)
- 双MicroBlaze软核处理器的SOPC系统设计(01-27)