NIOS II学习 第一课 硬件环境的建立
0赞软件环境:Quartus II 10.0SP1 + Nios II 10.0 SP1
一、构建工程
1、首先打开QUARTUS II,依次点击File->New Project Wizard->Next,出现如下的界面:

2、依次点击Next,出现下面的界面:

这里选取的是Cyclone II系列的EP2C8Q208C芯片。
3.依次点击Next,出现最终的界面:

4.点击Finish,完成工程的创建。
5.新建一个Block Diagram文件,点击File->New,出现一下的界面:



二、构建NIOS II 软核
首先点击Tools->SOPC Builder或者点击快捷方式如下红圈中所示:

点击后运行SOPC Builder,出现如下的界面:

在System Name中输入软核的名字,这里命名为:KERNEL。点击OK后,出现如下的界面:

将时钟的频率改为100.0,则这个软核的时钟频率就为100MHZ。接下来为软核添加其它的模块。
1、 加入NIOS II CPU模块
双击Processors->Nios II Processor,如下图红圈处所示:

出现以下界面:

红圈处现在还不能设置,需要配置好SDRAM和FLASH后才能设置。接下来点击Next,出现以下的界面,红圈处设置为NONE

一路Next,直到下面的这个界面处,选择Level 1,然后点击Finish。

此时完成了CPU模块的添加,如下所示:

2、 加入SDRAM模块
如下所示,双击红圈中SDRAM Controller,

点击后出现如下界面:

Presets中改为Custom,Bits为16,如红圈中所示。然后点击Finish 完成SDRAM模块的添加。
3、 加入EPCS模块
双击下图中红圈所示处,然后点击Finish 即可完成EPCS模块的添加。


4、 建立System ID
双击下图中红圈处,弹出一新的对话框,直接点击Finish,完成System ID的建立。

5、 加入JATG UART模块
双击如下的红圈处,弹出一新的对话框,直接点击Finish,完成JTAG UART的添加。

6、 其它设置
完成上述五步以后,一个基本的NIOS II系统就建立了。首先把它们的名字改一下,鼠标右键点击相应的名字,然后点击Rename,将名字改为下面所示的样子:

然后对CPU进行下设置,前面在添加CPU模块时提到两个Vector要设置。如下面红圈中所示,然后点击Finish 完成设置。

接下来要对FLASH的地址进行锁定。首先将FLASH的地址改为0x00000000,然后点击下面红圈中的小锁,

点击后如下面所示,开着的锁合上了。

然后依次点击System->Auto-assign Base Address和System-> Auto-assign IRQs,自动分配地址和中断。接着点击Next,出现下面的界面:

如果需要产生仿真文件则点击红框处所示,一般不选这一项,即不产生仿真文件。
最后点击Generate,开始编译我们建立的NIOS II系统。
经过一段时间的等待,终于编译好了。如下所示。点击Exit,返回Quartus II界面。

7、在Quartus II下分配管脚
在Block1.bdf中双击空白处,出现以下的界面,点击红圈处,将新建的NIOS II 软核放在原理图上。

点击OK后,将其放好,如下所示:

右键点击KERNEL,然后点击Generate Pins for symbol ports,出现以下界面:

三、建立PLL模块
由于我的开发板上的晶振是20MHZ的,而在建立NIOS II软核是使用的是100MHZ的频率,因而需要有PLL来进行倍频。
首先点击Tools->MegaWizard Plug-In Manager,如下所示:

出现下图:

然后点击Next,如下所示:

按照红圈中所示进行设置。
后续依次按照图示红圈进行设置即可。




然后一路Next,再点击Finish完成PLL的配置。
接下来把PLL连接在NIOS II软核上。如下所示:

四、分配引脚
分配引脚有两种方法:
1、 通过Tcl脚本
2、 手动输入
由于不会编写Tcl脚本,因而只能采用手动输入来完成分配引脚。
五、配置工程
首先点击Assignments->Device,出现如下界面:

点击红圈处后出现如下的界面:

设置为和红圈中一样的即可。然后按照如下所示进行设置。


都修改完成后,点击OK,完成工程的配置。接下来就是对工程进行编译。编译完成后的界面如下所示:

六、参考资料
1、黑金动力社区 《NIOS那些事
2、侯建军郭勇《SOPC技术基础教程》 北京:清华大学出版社北京交通大学出版社 2008.5
边操作边记录,一晚上把NIOS II的硬件环境建立好了,在这里记录下我的学习过程。呵呵!
