6289|2

35

帖子

0

TA的资源

一粒金砂(中级)

【Altera SOC 体验之旅】Monitor Program在线仿真器的使用 [复制链接]

本帖最后由 Jackzhang1992 于 2015-2-23 21:01 编辑

大家好,拿到DE1-SOC板子已经快两个月了,之前由于一些原因,虽然一直在熟悉板子官方手册里面的历程,但一直没有好好写点东西总结一下,从现在开始会陆陆续续发一些帖子,希望和大家多多交流。

       一、概要:
今天详细介绍Altera Monitor Program这个工具 image001 - 副本.png ,它是Altera大学计划的一部分,可从官网免费下载,界面如下图1所示。明眼人一看就知道,这其实就是一个simulator,可以进行编译、trace、修改功能。这些功能也许NIOSEDS和DS-5也有而且更强大,但是我想说,从学习ARM和NIOS体系结构的角度,这个工具无疑是最简单,最好用的工具,你可以在上面在线仿真你的每一句汇编指令或者是C指令,看具体Memory或Register的使用情况,甚至实时修改它。闲话不多说,让我们开始学习使用这个软件。

image003 - 副本.png
1

       二、使用思路
              先用Qsys建立硬件系统,然后用文本编辑器编写软件代码,最后下载和调试。
image005 - 副本.png
1


三、
第一步让我们建立一个qsys硬件系统,

image007 - 副本.png
2
首先添加上图所示ip单元:clk, nios2(jtag_debug)jtag_uart, memory, pio2个)
image009 - 副本.png
3



接下来进行参数定义和连线:
1.设置clk: 50MHZ 然后将所有ipclkreset端都连接至clk模块的clk端口和clk_reset端口。
2.nios2:
(1)将data_master端口接至jtag_uart的avalon_jtag_slave端、memory的s1端、leds的s1端和switches的s1端。
(2)将instruction_master端口接至memory端的s1端(因为memory需要得到pc的指令地址作取指令用)。
(3)将jtag_debug_module_reset端口截至nios2的reset_n端,memory的reset1端,led的reset端和switches的reset端。
3. jtag_uart
将jtag_uart的irq端接至nios2的d_irq端。以达到PC可以对nios2产生中断的要求。

4. nios2参数设置,设为e型,Reset_Vectormemory;Exception_Vectormemory, Advanced FeaturesRAM memory protection去除勾选(否则导致Monitor Program下载时出错)。
5. leds设为10位,outputSwitches设为10, input。并将ledsswitchesexternel_connection行的Export列双击命名,随即定义外部引脚。
6.固定memory基地址为0x0000,base列小锁前双击。
7. JTAG UARTIRQ栏设置其中断号为5
8. 点选System Assign baseadresses,进行其余地址的自动分配。
至此,qsys系统就全部定义完毕了。
地下Message栏显示 0 Errors,0 Warning.
image011 - 副本.png
4
最后,总结一下,现有模块的地址分配:
Leds:   0x2010   
switches0x2000



点选  GENERATE HDL

四、在quartus外围进行配置和全编译。
1.在工程目录下的..\synthesis文件夹下找到.qipquartus ip)文件,这里我命名的是qsys.qip将其添加到工程文件中。
image013 - 副本.png

图 5


这个文件是刚刚创建的qsys系统,是最重要的文件,缺少它在编译综合时就会提示缺少文件。

2.创建top顶层文件:
   首先创建最基本的顶层文件,把CLOCK, LED, SW信号定义好,
   然后,这里有一个例化qsys系统最快速的方法,在..\synthesis文件夹下找到xxx_inst.v这个文件(这里是qsys_inst.v),打开,发现generate hdl的时候人性化地已经生成了例化的格式文件。将其copy到顶层文件中,并稍作改动就可以快速完成端口定义。
       最后效果如下图所示
image015 - 副本.png

6
最后进行一下pinassignment后,进行全编译了。

五、软件代码的编写:
image017 - 副本.png
图7
这是一段汇编代码,首先将switchesleds的地址赋值给变量。然后将switches赋值给r3,leds赋值给r3, 并完成将(r2)地址的数据读入至r4寄存器,将r4寄存器的数据写入至(r3)这个地址。不断循环。


image019 - 副本.png
        图8
这是一段与图7功能一样的c代码,具体用法显然,就不解释了。

六、下载与综合调试
1)打开Altera Monitor Program图标 image021 - 副本.jpg ,随即打开软件。选Fileànew project, 指定路径和工程名。如图9(qsys系统基于HPSArchitectuer也可选ARM)
image022 - 副本.png

9


2)点选Next, Select a System选择Custom System。其余都是默认示例,可以学习里面的示例代码。不过对于非友晶公司出品的DE系列板子,就不适用了,故这里选择的是定制系统。然后在下面两个空格中选中工程文件中的.sopcinfo文件(qsysgenerate hdl后生成)和.sof文件(全编译后生成)。再点选Next

image024 - 副本.png

图10  




3)选择软件语言种类。这里先选Assembly Program
image026 - 副本.png
图11
4add选中汇编语言代码start.s
image028 - 副本.png
图12
下面框中的_start是默认的,表示汇编代码中程序开头的地方。
5)再点Next。如图下图所示,此时连上开发板,上电。
image030 - 副本.png
图13
6Next,出现下图所示,这里是存储器的设置,这个要配合qsys中的来,当初qsys中添加memory的时候都是使用的是默认大小4096x32bits。故这里可以看到memory地址范围在0x00000000-0x00000fff,正好4096个,对应起来了。点选Next
image032 - 副本.png
图14

插一句,LinkerSection Presets还可以设置为Exception异常,就会如下图所示,这种情况下下可以允许系统有中断。不过这里我们先选Basic类型的做测试。
image034 - 副本.png
图15
7)点选Next,会自动提示是否下载相关硬件进入系统。点选“是”。
image036 - 副本.png
图16

8)稍作等待,提示下载成功。这里的system其实就是.sof硬件。


9)点选确定后问,是否暂停系统,如选是,会使程序下载后马上暂停,等待仿真器单步、全速执行等调试指令。反之,程序下载后则全速运行。这里点选是。
10)稍作等待后,可见右下角Sucessfully halted nios2。说明系统已挂起。注意,这里软件程序还没下载呢,选Action->Compile & load,对软件程序先编译、后下载。

image042 - 副本.png

                                                                                                                                                     图17

11)最后可以看到仿真器成功了。点选工具栏中的单步、全速运行按钮查看效果。
右边有详细的寄存器的查看栏。点选全速运行后,即可看到程序正常运作了。Switch一一对应控制小灯。

image044 - 副本.png                                     image046.png

七、总结
这一次演示了利用Altera Monitor Program仿真器进行软件的流程。我发现,仿真器工具对于学习NIOS和HPS的体系结构非常有用。
如果进一步需要学习NIOS和ARM详细的指令集用法,请参考附件
Instruction toAltera NiosII soft Prosessor .pdf
Introduction toARM Processor Using Altera Toolchain.pdf

谢谢。

Instruction to Altera NiosII soft Prosessor .pdf (578.38 KB, 下载次数: 19)
此帖出自FPGA/CPLD论坛

最新回复

这个不错啊,是通过USB blaster仿真的吗  详情 回复 发表于 2015-3-6 09:28

赞赏

1

查看全部赞赏


回复
举报

1173

帖子

3

TA的资源

五彩晶圆(初级)

这个不错啊,是通过USB blaster仿真的吗
此帖出自FPGA/CPLD论坛

点评

是的,是通过usb blaster仿真的  详情 回复 发表于 2015-4-17 10:45

回复

35

帖子

0

TA的资源

一粒金砂(中级)

ou513 发表于 2015-3-6 09:28
这个不错啊,是通过USB blaster仿真的吗

是的,是通过usb blaster仿真的
此帖出自FPGA/CPLD论坛

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表