sopc 实验指导EP2C35

更新时间:2023-05-23 22:05:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

sopc 实验指导EP2C35 Qsys

实验一 Hello from Nios II

一. 实验目的

1. 熟悉用Quartus II开发SOPC的基本流程。

2. 熟悉用SOPC Builder进行NiOS II CPU开发的基本流程。 3. 熟悉用NIOS II IDE进行C语言编译、下载的基本过程。 4. 掌握NIOS II 集成开发环境。

二. 实验内容

实验完成的是一个简单的系统设计,系统中包括NIOS CPU 、作为标准输入/输出的JTAG UART、存储器on chip memory和SDRAM、并行输入输出PIO。通过SOPC实现NIOS 系统配置、生成以及与NIOS II 系统相关的监控和软件调试平台的生成;在NIOS II IDE中完成系统软件开发和调试;通过Quartus II 完成NIOS 系统的分析综合、硬件优化、适配、配置文件编程下载以及硬件系统调试等。实验最终实现在NIOS II IDE 窗口打印一条信息——―Hello from Nios II ‖。 三. 实验平台

硬件平台:SOPC 实验开发系统

软件平台:Quartus II 7.0 NIOS II IDE 四. 实验原理

Altera 公司提供的Nios II 嵌入式微处理器软核专为SOPC系统设计核优化,是一种面向用户、可以灵活定制的通用RISC嵌入式处理器。它采用Avalon总线结构通信接口,带有增强的内存、调试和软件功能,可采用汇编或C、C++等进行程序优化开发。Nios II具有32位指令集、32位数据通道和可配置的指令及数据缓冲。与普通嵌入式CPU系统的特性不同,其外设可以灵活选择或增减,可以自定制用户逻辑为外设,可以允许用户定制自己的指令集。由硬件模块构成的自定制指令可通过硬件算法操作来完成复杂的软件处理任务,也能访问存储器或Nios II 系统外的接口逻辑。设计者可以使用Nios II及外部的Flash、ROM、SRAM等,在FPGA上构成一个嵌入式处理器系统。

基于NiOS II处理器软核的SOPC系统设计是一个软硬件协同开发的过程,在设计时可分为硬件核软件两部分,需要多款EDA软件和软件开发环境的相互协同配合。 SOPC的开发流程包括两个方面:基于Quartus II 和SOPC Builder的硬件开发和基于Nios II IDE 的软件开发。基本设计流程如下:

(1) 分析系统需求,设计规划系统哪些由硬件实现,哪些由软件实现; (2) 启动Quartus II 并创建一个新的工程,建立系统的顶层模块文件;

(3) 启动SOPC Builder,添加需要的功能模块,定义和生成系统模块。这是整

个开发流程中最核心的一步。在定义系统时,SOPC Builder可以根据用户的编辑实时的生成sopc文件和ptf文件(7.1版本之前为ptf文件),类似一个数据库文件,存储了系统设计信息;

(4) 将SOPC Builder生成的Nios II系统元件导入Quartus II,根据需要添加其

他逻辑模块。按照Quartus II的开发流程最终生成FPGA的编程文件,完成Nios II系统的硬件开发;

(5) 启动Nios II IDE集成开发环境,创建一个软件工程项目,并指向生成的

Nios II硬件系统。

(6) 在Nios II IDE下开发应用程序;

sopc 实验指导EP2C35 Qsys

(7) 将硬件配置文件下载到硬件目标板上的FPGA,将软件可执行文件下载到

目标板的RAM,调试软件,达到设计要求;

(8) 利用Nios II IDE 的Flash编程器工具烧写配置文件和软件代码。 五. 实验步骤

基于SOPC Builder工具设计流程

1. 打开Quartus II 7.0 ,在Quartus 中新建一个工程,新建一个原理图工程文 件。 这一步请参考《FPGA与VHDL应用设计实验指导书》,这里不再说明。另外,注意:工程路存放地址为E盘或学生盘;工程和实体名一致;命名由字母、数字、下划线组成,不能包括空格和汉字。FPGA器件选 Cyclone II EP2C35F672C8或Cyclone IV EP4CE6E22C8,使用SOPC Builder创建Nios系统。注:实验流程设置是以Cyclone II EP2C35F672C8为目标器件的。 (1) 添加 NIOS II系统 在SOPC Builder窗口,System Contents栏下,Avalon Components中选择Nios II Processor.

设置如下图1、图2所示。

图1 NIOS II处理器核的调用和配置

图2 NIOS II处理器核的调用和配置

(2)添加作为标准输入/输出的JTAG UART

在System Contents\Avalon Components\Communication 中选择JTAG UART。 参数设置如下图3所示。

sopc 实验指导EP2C35 Qsys

图3 JTAG UART调试接口的调用及配置(EP2C35)

(3)添加SDRAM

选择System Contents\Avalon Components\Memory\SDRAM Controller,参数设置如图4所示。

图4 SDRAM的调用及配置

sopc 实验指导EP2C35 Qsys

(4)添加on-chip memory

选择System Contents\Avalon Components\Memory \On-Chip Memory(RAM or ROM) ,参数设置如图5所示。

图5 on-chip memory 的调用及配置

(5)添加LED-PIO

选择System Contents\Avalon Components\other\PIO(Parallel I\O),参数设置如图6所示。

图6 PIO设置对话框

sopc 实验指导EP2C35 Qsys

(6)分配基地址及中断优先级

选择System/Auto-Assign Base Address菜单自动分配各组件的基地址;选择System/Auto-Assign IRQs菜单自动分配中断号。

图7 分配基地址及中断优先级 (7)生成系统模块

选择System Generation 选项卡,单击Generation 按钮,当生成结束时,将出现System Generation Completed信息,单击Exit按钮退出SOPC Builder。

3. 在Quartus II 中添加所建的Nios 系统以及PLL (1)添加锁相环

在Quartus II原理图编辑窗口空白处双击鼠标左键,弹出Symbol窗口,在Libraries中选择megafunctions\IO\altpll。

参数设置如下图8至图11所示。PLL输入输出时钟均为50MHz。由于时钟信号在PCB板上的传输延时明显,考虑到信号的同步性,必须设置时钟相移-70deg(重要)。

图8 锁相环参数设置

sopc 实验指导EP2C35 Qsys

图9锁相环参数设置

图10 锁相环参数设置

图11 锁相环参数设置

sopc 实验指导EP2C35 Qsys

(2)添加所建的Nios系统

在Quartus II 窗口,在原理图文件的空白区双击鼠标左键,在弹出的Symbol 对话框中,选择Libraries窗口下面Project文件夹中的myCPU,如图12所示。

图12 调入myCPU

(3)模块连接及管脚分配

图13 模块连接及管脚分配

管脚分配如图14所示。

sopc 实验指导EP2C35 Qsys

sopc 实验指导EP2C35 Qsys

图14.a 管脚分配(EP2C35)

(4)全编译、下载配置 4. 软件设计

(1)运行Nios II IDE,新建工程。

在File菜单下单击New/Nios II C/C++Application,出现如图15所示对话框。命工程名为hello_world_0,选择工程模板 Hello world Small,从Browse找到系统文件myCPU.ptf,单击Finish返回主界面。

图15 用户软件工程向导设置

(2)创建并编译源文件

Nios II 主界面左侧显示项目的名称,对每个项目,Nios II IDE都将生成一个

System Library,本例中项目名称为hello_world_0, System Library为hello_world_0_syslib。选中hello_world_0,单击鼠标右键,选择Build Project,进行编译;再选中hello_world_0_syslib,单击鼠标右键,选择Build Project;编译之后,在hello_world_0和hello_world_0_syslib栏下生成了一些文件。 (3)系统属性修改

在 Nios II 主界面选中hello_world_0,单击鼠标右键,选择Properties,出现如图16所示窗口。选中C/C++ Build,Configuration 设置为Release,再在Configuration Setting/Tool Setting 栏选中General,Optimization Levels/Optimize size(-0s)。

sopc 实验指导EP2C35 Qsys

图16 修改系统属性

重新选中项目名,单击右键,选择System Library Properties,出现如图17所示窗口,设置如下图。

图17 修改系统库的属性

(4)运行,即软件、硬件协同工作

连接FPGA实验箱,在Quartus II 中通过USB下载电缆将***.sof 文件通过JTAG接口下载到FPGA中。

下载成功后,回到Nios II IDE 窗口,点击Run/run,弹出如下所示窗口。

sopc 实验指导EP2C35 Qsys

图19 下载用户软件程序

注意:初次打开图19所示窗口,若JTAG cable、JTAG device栏为空时,点击右侧Refresh按钮。

sopc 实验指导EP2C35 Qsys

设置后之后点击窗口下方的run按钮,运行结果如下图所示。

图20运行结果 实验结束。

sopc 实验指导EP2C35 Qsys

基于Qsys工具设计流程

1.在Quartus II 中新建工程,选择器件cyclone II EP2C35F672C8或cyclone IV EP4CE6E22C8N,将不用的引脚设置为三态,如图1所示。新建原理图文件。

图21 设置不用的引脚为三态 2.添加锁相环 步骤同上

3.创建自己的CPU系统

进入Qsys设计界面。打开Qsys工具命令如图22所示。进入Qsys设计界面,如图23所示。

图22 打开Qsys工具命令

sopc 实验指导EP2C35 Qsys

图23 Qsys的设计界面

(1)添加Nios II Processor

选择合适的CPU处理器(依据器件资源而定),出现错误先忽视。

sopc 实验指导EP2C35 Qsys

图24 选择Nios II处理器

(2)添加on-chip memory

图25 .a 选择片内存储器(EP2C35)

sopc 实验指导EP2C35 Qsys

图25 .b 选择片内存储器(EP4CE6)

(3)添加SDRAM

SDRAM控制器参数选择,(必须依据datasheet),否则c代码可以下载但不可运行。在此ROW:13 Column:9

sopc 实验指导EP2C35 Qsys

图26.a SDRAM参数设置

(EP2C35)

图26.b SDRAM参数设置(EP4CE6)

sopc 实验指导EP2C35 Qsys

(4)添加

PIO

图27 PIO参数设置

(5)添加JTAG UART 默认参数设置。

图 28 JTAG UART参数设置

(6)添加system ID

SYS_ID是CPU的标记,如果不添加也行,为防止后续软件下载时对应不了底层硬件,elipse会自动识别sys_id而避免错误。

sopc 实验指导EP2C35 Qsys

图 29 选择system ID

(7)进行时钟、数据端口,指令端口的连接。

根据需要在总线界面重新排列IP核和修改IP核名称,单击IP核的结合点,变为实心黑点表征电气上连接,如图30所示。

sopc 实验指导EP2C35 Qsys

图30 总线结构

(8)设置复位向量和异常向量

选择双击CPU,配置程序存储器类型和地址,如下所示窗口,设置复位向量和异常向量均指向onchip_mem.s1。

sopc 实验指导EP2C35 Qsys

图31 配置NIOS II核的存储器

(9)分配IP核的基地址,选择菜单选项System /Assign Base Addresses,自动排列NIOS处理器系统各个部分的地址;分配中断优先级,在IRQ栏下选择Avalon Memory Slave和IRQ的连接点,就会添加一个值为0的中断号;双击Export栏需要引出的端口将其引出,如图32所示。

图32 中断优先级设置

(10)确认无错误和警告,点击generate生成系统文件,并为CPU命名、保存,记住保存路径,至出现如下窗口,表明系统生成结束。

本文来源:https://www.bwwdw.com/article/1hf4.html

Top