NiosII实验:循环点亮DE0开发板的LED灯

 

NIOSⅡ简介:

前不久,Altera正式推出了NiosII系列32位RSIC嵌入式处理器。NiosII系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在AlteraFPGA中实现仅需35美分。Altera的Stratix、StratixGX、StratixII和Cyclone系列FPGA全面支持NiosII处理器,以后推出的FPGA器件也将支持NiosII。

NiosII系列包括3种产品,分别是:NiosII/f(快速)——最高的系统性能,中等FPGA使用量;NiosII/s(标准)——高性能,低FPGA使用量;NiosII/e(经济)——低性能,最低的FPGA使用量。这3种产品具有32位处理器的基本结构单元——32位指令大小,32位数据和地址路径,32位通用寄存器和32个外部中断源;使用同样的指令集架构(ISA),100%二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。

特别是,NiosII系列支持使用专用指令。专用指令是用户增加的硬件模块,它增加了算术逻辑单元(ALU)。用户能为系统中使用的每个NiosII处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。专用指令逻辑和本身NiosII指令相同,能够从多达两个源寄存器取值,可选择将结果写回目标寄存器。同时,NiosII系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅片功能。

NiosII处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议栈。设计者能够用AlteraQuartusII开发软件中的SOPCBuilder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加NiosII处理器核的数量。

使用NiosII软件开发工具能够为NiosII系统构建软件,即一键式自动生成适用于系统硬件的专用C/C++运行环境。NiosII集成开发环境(IDE)提供了许多软件模板,简化了项目设置。此外,NiosII开发套件包括两个第三方实时操作系统(RTOS)——MicroC/OS-II(Micrium),NucleusPlus(ATI/Mentor)以及供网络应用使用的TCP/IP协议栈。

实验要求:

利用NIOS循环点亮10个LED灯

实验过程:

1.     先新建一个工程(名为NIOS),由于使用DE0开发板,在选择芯片时应选择cycloneⅢ->EP3C16F484,其他保持默认选项。

NiosII实验:循环点亮DE0开发板的LED灯_第1张图片

2.     新建一个Block Diagram / Schematic File,然后点击Tools-> SOPCBuilder…创建nios软核,取名为south,target HDL选择Verilog

NiosII实验:循环点亮DE0开发板的LED灯_第2张图片

3.     为该软核配置cpu、ram、system id、协议和一个PIO模块(Parallel I/O)。其中cpu选择niosⅡ/s,debugginglevel选择level1,cpu的reset vector memory和exception vector memory都选择自己手动新建的on-chipmemory(ram or rom);协议选择JTAG UART协议;PIO模块中width选择10(因为DEO开发板有10个LED灯),direction选择output port only。

NiosII实验:循环点亮DE0开发板的LED灯_第3张图片

NiosII实验:循环点亮DE0开发板的LED灯_第4张图片

NiosII实验:循环点亮DE0开发板的LED灯_第5张图片

NiosII实验:循环点亮DE0开发板的LED灯_第6张图片

NiosII实验:循环点亮DE0开发板的LED灯_第7张图片

4.     配置完成后,点击System->Auto-Assign Base Addresses 自动分配一下地址。然后点击SOPCBuilder主窗口左上角的System Generation选项卡进行编译,点击generate执行编译,编译成功后会提示Info: System generation was successful,点exit退出回到主界面。

NiosII实验:循环点亮DE0开发板的LED灯_第8张图片

5.     在bdf文件中放置刚才编译好的nios软核,并为其分配管脚,参照DE0开发板的管脚编号分别为clk时钟信号、reset复位信号及10个LED灯信号分配管脚,分配管脚完成后进行编译,完成nios循环点亮LED灯实验的硬件准备部分。

NiosII实验:循环点亮DE0开发板的LED灯_第9张图片

NiosII实验:循环点亮DE0开发板的LED灯_第10张图片

6.     打开Nios II 9.0 IDE,新建一个Nios II C/C++ Application,工程,设置工程名为led,SelectProject Template选择下面的Hello World Small模板,在Select Target hardware组合框中的SOPC Builder System PTF File,指向之前nios项目所在的目录,找到目录下的ptf文件,CPU栏为自动填写的。

右键工程选择System Library Prorerties,设置工程属性。将C/C++build->general 的Optimization Levels改为optimizi size,Debug Level改为none。

NiosII实验:循环点亮DE0开发板的LED灯_第11张图片

NiosII实验:循环点亮DE0开发板的LED灯_第12张图片

7.     接下来新建一个led.c文件控制LED灯的循环点亮。具体代码如下,代码编写完成后右击工程选择Build Project进行编译。

NiosII实验:循环点亮DE0开发板的LED灯_第13张图片

8.     连接DE0开发板,将.pof文件写入开发板中,右键工程点击run as-> NiosII Hardware将代码下载到开发板上,输出结果如下,并可以看见开发板10个LED灯自动循环点亮。

NiosII实验:循环点亮DE0开发板的LED灯_第14张图片

NiosII实验:循环点亮DE0开发板的LED灯_第15张图片

 

你可能感兴趣的:(FPGA;Verilog)