当前位置:文档之家› 1-硬件开发流程

1-硬件开发流程

前言

从今天开始,NIOS的学习征途正式拉开了。对于NIOS的学习爱好者,我相信这是一个福音,我将毫无保留的将我对NIOS的研究成果分享给大家。我之所以采用博客这种方式,就是想跟大家充分的交流,大家可以给我留言,也可以在Ourdev中提出问题,我将尽我的全力为大家解决问题。由于本人水平有限,如果有我解决不了的问题,还请高手们多多帮忙,我相信能为大家解决问题是一件很快乐的事情,你不会错过的。

废话少说,我们马上进入正题。今天是第一节,我首先说一下学习NIOS 都需要哪些前提条件。听到这,初学者可以会有些害怕了,难道学习NIOS 还要条件?是的,需要条件,不过这些条件并不是很高,只要大家努力,这些条件都不是问题。

?具有一定的单片机基础;

?具有一定的C语言编程能力;

?了解Quartus II的开发流程;

?一块开发板;

就这么多,大家觉得难么?首先说说第一条,具有一定的单片机基础,这个条件是要有的。单片机的基础在NIOS II学习中体现在它的寄存器操作方式上,这种操作方式是通用的,不管是ARM,DSP,还是51都是一样的,你只要有一种单片机的实践经验就没问题了。再说第二条,这一条没什么可争议的,NIOS的开发完全是用C语言的,如果你没有C

语言的基础,我建议你还是先学习一下C语言再考虑学习NIOS吧。第三条呢,有最好,如果没有的话也可以,我在以后的文章中都会涉及到,大家跟着学就可以了。第四条也不是必须的,不过学习NIOS不像学习Verilog/VHDL,通过仿真看看也行,NIOS的学习跟单片机很相似,最好是亲手操作硬件,这样对你的学习有更好的效率和效果。在这里推荐一下我的FPGA黑金开发板,不仅仅是广告哦,因为我以后的讲解都是以我的黑金板为基础的,大家学习起来也很方便的。

简介

NIOS是一个用户可配置的通用32位RISC嵌入式处理器,它是SOPC (System On a Programmable Chip,片上可编程系统)的核心。处理器以软核形式实现,具有高度的灵活性和可配置性。NIOS的开发包括硬件开发和软件开发两部分。硬件开发是在Quartus II中实现的,而软件开发部分是在NIOS IDE软件中实现的。我们首先来介绍NIOS的硬件开发。所谓硬件开发就是用Quartus II 和 SOPC builder来建立自己需要的软核。

软件版本:本教程基于Quartus II 9.0,NIOS IDE 9.0编写

建立工程

首先,打开Quartus II 9.0软件

接下来,建立一个工程File->New Project Wizard

第一行是工程的路径,你选择你放置的路径即可。第二,第三行都是是工程名,写好以后如下

点击Next,

这个不用动,接着点击Next

在这里,Family里选择Cyclone II,在Available devices中选择EP2C5Q208C8(具体内容根据你的芯片所定)。如上图所示。

接着点击Next,不用动,点击Finish,显示如下图所示。

到此为止,工程已经建立完成。接下来,需要建立一个Block Diagram/Schematic File,点击File->New,如下图所示

点击OK,完成建立,工程中出现了一个Block1.bdf文件

建立NIOS II软核

接下来,我们进入了软核建立环节,这一步很重要,是建立软核的核心步骤。点击Tools->SOPC Builder或者下图红圈标示的图标

点击以后,SOPC Builder运行,界面如下图示

System Name中输入软核的名字:我将其命名为KERNEL。点击OK后,如下图所示

按图中标注的,clk_0为时钟名称,50.0为时钟值(单位为MHz),我们可以对他们进行修改。用鼠标点击50.0,将其改为100.0。这时候,我们的软核时钟就为100.0MHz了。这是软核建立的第一步,接下来,我们要建立Nios II Processor。

建立CPU

用鼠标点击左侧边框的Nios II Processor,如下图红框所示

点击后,将出现下图

这一步我们来选择软核的类型。这里给我们提供了三种类型,Nios II/e 占用资源最少600-800LEs,功能也最简单,速度最慢。Nios II/s占资源比前者多一些,功能也多了,速度也快一些Nios II/f占资源最多,功能也最多,速度就快。选择的时候要根据你的需求和你的芯片资源来决定。在这里,我选择Nios II/s,功能和速度都可以得到满足。下面的Reset Vector是复位后启动时的Memory类型和偏移量, Exception Vector是异常情况时的Memory类型和偏移量。现在还不能配置,需要SDRAM和FLASH设置好以后才能修改这里,这两个地方很重要。接下来连续点击Next,一直到下图为止

这里设置JTAG Debug Module,即JTAG调试时所用到的功能模块。功能越多,需要的资源越多,这里,我们选择Level 1即可,不需要过多其他的功能。点击Finish,结束Nios II Processor的建立后,如下图所示

建立SDRAM模块

接下来,我们要建立SDRAM控制器,点击下图红框所示的地方

点击后,如下图所示

在Presets中选择第一项Custom,在Bits中选择16,其他项不动,点击Next,点击Finish,完成SDRAM控制器的设置。在这里之所以选择16,是因为我们用的SDRAM(HY57V641620)是16位的。

建立Avalon三态桥

接下来,我们要建立一个Avalon三态桥,在NIOS系统中,要实现与FPGA片外存储器通信,就必须在Avalon总线和连接外部存储器的总线之间添加一个桥,这个桥就是Avalon三态桥。点击下图所示红圈处

点击后,如下图所示

点击Finish后,完成三态桥的建立。

建立CFI模块

接下来,我们就建立Flash Memory Interface(CFI)模块,点击下图所示红圈处

点击后,如下图所示

其中Presets,我们选择Custom,Address Width(bits)是地址线宽度,我们选择21,Data Width(bits)数据线宽度,我们选择8位。这些的选择都是根据芯片和电路设置决定的,我们的FLASH(AM29LV1602)可以选择为8位模式和16位模式,我在设计电路的时候将其配置为8位模式,所以在此数据线宽度选择为6位,地址线宽度选择为21位。设置好以后,点击Next,出现下图所示

这里,我们需要设置三个量,Setup,Wait,Hold,我们分别将其设置为40,160,40如上图所示。这些量都是根据FLASH的芯片决定的,各个芯片都不一样,在此不具体讲了。点击Finish后,完成Flash Memory Interface(CFI)的建立。到此为止,我们已经建立了CPU,SDRAM,FLASH 模块,接下来,我们还要添加一些必要的模块,System ID,JTAG UART。

建立SYSTEM ID

System ID就是一种标示符,类似校验和的这么个东西,在你下载程序之前或者重启之后,都会对它进行检验,以防止错误发生,大家知道这个东西就可以了,没太大的用处,但需要有的。点击下图所示红圈处

点击后下图所示

相关主题
相关文档 最新文档