与开发ARM等通常的处理器不同,NiosII的开发多了一个非常重要的手段:仿真。因为NiosII毕竟还是基于FPGA的软核处理器。在这里,我粗略得介绍一下nios的仿真;更加详细的帮助信息请您参考Altera公司提供的文档。如果本文能对您有一点点帮助,我都会感到非常高兴。
对于仿真,我主要讲述一下在ModelSim6.0环境下的前仿真(niosII系统生成的时候,可以自动生成仿真环境)。后仿真需要自己建立TestBench,比较繁琐一点,在此我就不再赘述了)。我只挑要点讲一下,关于仿真的详细指导,请您参考官方提供的help文档。
1、准备工作:
在硬件调试(Debugashardware)前,有几个准备工作要做:1配置modelsim的路径。在AlteraSOPCBuilder中,选择File-〉SOPCBuilderSetup,检察ModelsSimDirectory是否被正确得配置。如下图:

2生成niosII系统的时候,仿真环境被自动生成。也就是在生成sopc系统的时候,Simulation.CreateModelSim(tm)projectfile被打勾选中。

3部分组件,比如JTAGUART,PIO,DRAM也有针对仿真选项,请你正确得选择!
4如果您的系统比较复杂,需要专门生成针对simulation的代码。也就是在ModelSimonly,nohardwaresupport前打勾。否则仅仅是系统初始化的过程,就让人无法忍受,因为仿真比正常的运行要慢太多了。但如果系统简单,直接仿真在硬件上实际运行的代码也无妨(也就是无需在ModelSimonly,nohardwaresupport前打勾。)

5。适当得修改代码,使之合适于仿真。
比如,我将
i=0;
while(i<50000)
i++;
修改为:
i=0;
while(i<5)
i++;
否则,这个循环会花费太多的仿真时间。
6ModelSim6.0已经被正确得安装。如够没有搞定,请参考我以前写的EDA软件的安装与配置。
下面我们以调试在Nios无痛入门中生成系统为范例,介绍如何仿真nios处理器。
1启动NiosIIIDE。
2选中待仿真的C/C++Project
3适当得修改代码,使之与仿真相合适。
需要将
i=0;
while(i<50000)
i++;
修改为:
i=0;
while(i<5)
i++;
4专门生成针对simulation的代码。也就是在ModelSimonly,nohardwaresupport前打勾。其实这个project比较简单,直接仿真在硬件上实际运行的代码也无妨(也就是无需在ModelSimonly,nohardwaresupport前打勾。)
5然后选择Project->BuildProject(Crtl+Shift+F3)
6选择Run->RunAs->3.NiosIIModelSim
系统会自动调用ModelSim6.0,进入仿真环境。

7键入s,并回车

s是个宏命令,表示重新载入所有的HDL并编译、仿真。
如下是一些预定制的macro的含义:
#@@s--Loadalldesign(HDL)files.
#@@re-vlogandre-vsimthedesign.
#@@
#@@c--Re-compilememorycontents.
#@@BuildsC-andassembly-languageprograms
#@@(andassociatedsimulationdata-files
#@@suchasUARTsimulationstrings)for
#@@refreshingmemorycontents.
#@@DoesNOTre-generatehardware(HDL)files
#@@ONLYWORKSWITHLEGACYSDK(NottheNiosIDE)
#@@
#@@w--Sets-upwaveformsforthisdesign
#@@EachSOPC-Buildercomponentmayhave
#@@signals'marked'fordisplayduring
#@@simulation.Thiscommandopensawave-
#@@windowc ontainingallsuchsignals.