EDA技术——SOPC设计“hello-world”

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

昆明理工大学信息工程与自动化学院学生实验报告(201—201学年第学期)课程名称:EDA技术开课实验室:年月日年级、专业、班学号姓名成绩实验项目名称SOPC设计“helloworld”实验指导教师教师评语教师签名:年月日一、实验目的通过本实验具体学习SOPC开发流程。二、实验设备1、带有windows操作系统,quartusII,niosII软件的PC机台。2、FPGA实验箱及电源线,下载线。三、实验要求熟悉SOPC从定制cpu到nios软核内程序编写的整个流程。四实验原理利用QuartusII中的SOPCbuilder来定制cpu,然后配合niosII,来实现一个完整的嵌入式系统功能,这是不同于FPGA的开发方式。五、实验步骤1、按照前面实验在QuartusII中建立工程,在TOOLs菜单中选择SOPCBuilder,如图3.1。图3.1建立工程新工程名命名为SOPC。建完这个工程后,首先建一个原理图文件。File-new-BlockDiagram/SchematicFile,通过此操作建好一个原理图文件,如图3.2所示。图3.2建立原理图文件2、定制CPU,参照上图,有一个图标,点击它打开SOPCbuilder,打开后,在弹出的界面systemname后填写名字,这里写的是cpu,自己可以起其他名字,然后点ok,如图3.3。图3.3SOPCbuilder界面1)构建处理器模块:处理器就是用来做解释程序,运算等操作,图中左栏可以看到,NiosIIProcesser选项,双击后弹出处理器的属性选项框,我们自己设置参数,来定制所需的处理器,如图3.4。图3.4处理器属性框这里为我们提供了三种类型的CPU,NiosII/e占用资源最少600-800LEs,功能也最简单,速度最慢。NiosII/s占资源比前者多一些,功能也多了,速度也快一些。NiosII/f占资源最多,功能也最多,速度就快。选择的时候要根据你的需求和你的芯片资源来决定。在这里,我们选择NiosII/e,功能和速度都可以得到满足。其他的选用默认选项,点击finish,cpu模块就出现在主框区中了,如图3.5。图3.5定好的处理器2)定制on-chipmemory:它是用来存储程序的,它的容量比较小,因为我们的“helloworld”程序也比较小,所以只要on-chipmemory就好了,如果以后写的程序比较复杂,on-chipmemory装不下了,我们就要用sdram代替,我们先点击图中菜单中选项,如图3.6。图3.6on-chipmemory选项位置点击后像处理器一样,我们先对其属性进行设置,如图3.7。图3.7on-chipmemory属性框这里改下内存大小,如图中所示,改好后点finish,如果报错,重新分配一下地址。在上面菜单栏中,选system-auto-assignbaseaddresses,点击它,就自动分好了,我们的memory定制就完成了,如图3.8。图3.8主框区观察上图,主框区又多了一项。3)定制jtag-uart:这是用来调试程序的,通过它,我们的“helloworld”就能打在console栏里了,它的位置如图3.9。图3.9jtag-uart位置属性框中都用默认的,点finish,定制好后,看图3.10。图3.10主框区4)配置CPU:还有一项重要的工作就是配置cpumemory,点击上图中主框区的cpu_0后,出现如图3.11。图3.11memory配置界面下面的ResetVector是复位后的Memory类型。ExceptionVector是异常情况时的Memory类型。因为我们只定制了on-chipmemory,所以下拉菜单中只有这一项,两个memory后的白框里都选on-chipmemory。offset不管,点击finish。5)分配地址:接下来我们要再分配一下地址,是很好操作的,回到主框区后,上面菜单栏中,选system-auto-assignbaseaddresses,点击它,就自动分好了。6)编译:至此,完成了三个模块的定制,它们互相配合就能实现“helloworld”实验了。写好的程序存在on-chipmemory中,然后处理器开始解释程序,运行程序,程序运行后,就把“helloworld”这句话打在console栏里了。当然,此模块中能定制多种模块。保存后点,开始编译;编译完成后,所定制的CPU就会以原理图的方式展现在我们面前。编译完成后,如图3.12。图3.12编译完成点击exit。回到quartus界面,如图3.13。图3.13quartus原理图输入界面3、分配引脚,编译工程。将我们定制好的CPU调入上图空白处,双击点击空白处,出现如图3.14。图3.14所定制cpu点ok将其调入空白区,如图3.15。图3.15quartus界面这就是定制的CPU,由于定制的模块少,所以看起来很简洁。下面给它分配管脚,鼠标放在它上面,右键,有个选项是generatepinsforsymbolports,点击它就分好了。自动分配的管脚名是和CPU模块上的名字一样的,需要改一下,要想让管脚分配正确,必须保证管脚名和tcl文件中的一样。根据tcl文件里的管脚名改原理图中管脚,分别改成clk,rst,如图3.16。图3.16管脚分配分配好后,需要run一下tcl文件,首先保证工程文件夹里有一份tcl文件,然后tool-tcl需要script,点击后如图3.17。图3.17runtcl文件这里有三个tcl文件,选中用到的那个,点run,管脚就分配好了。分配好管脚后保存,编译。编译好后,quartus中的操作就告一段落了,先把它放在一边。接下来要在niosII中操作。4、niosII中的操作。打开niosII,如图3.18。图3.18noisII界面1)建立工程:这个工程不需要单独的文件夹,默认下就放在了我们在quartus中的工程文件夹中。File-new-protect,点击后,如图3.19。图3.19创建C文件点击Next,如图3.20。图3.20引入ptf文件Browse,找到我们工程文件夹里的cpu.ptf文件,把它导入进来。这个文件是nios中工程与quartus中的cpu连接的桥梁,两者联系起来才能工作。选好后,点finish,如图3.21。图3.21代码区可见,工程目录区多了几个文件夹,代码区自动装入了一个代码,不是“helloworld”。但是,输出的字都是自己定义的,自己可以改。可把“hellofromniosII”改成“helloworld”。到时打出的字就变了,其他的一样。改好后,要进行一些必要的设置,图3.22为属性配置界面。图3.22属性配置2)属性配置:选中图3.22中选项,右键,点击systemlibraryproperties,出现图3.23图3.23优化设置界面选中图中蓝色选项,再点击右边general,出现菜单,进行如图3.24设置。图3.24优化设置还有一项需要设置,看下图3.25。图3.25优化设置前两步的设置,是设置优化级别,如果不优化,编译生成的代码就会很大,on-chipmemory就放不下了,编译时就会报错了。设置好后,apply-ok。回到主界面,因为给的程序就能用,还不需要自己写程序,下面就要开始编译。3)编译:鼠标放在hello_word_0文件夹上,右键,buildproject,就开始编译了,编译时间较长,需耐心等待。4)运行:编译好后,就要开始在开发板上运行了,jtag接口上连上下载线,然后按以下步骤进行,首先看软件界面菜单栏,这里点Run,出现下拉菜单,再点另一个Run,出现下面图3.26。图3.26run设置界面默认这页会自动设置好,但意外情况下,文件没有自动加进来,还需要自己把文件加进来(通过Browse),设置好后,再点设置下一页,如图3.27。图3.27run设置界面设置好后,点击Run。成功后,如下图3.28所示。图3.28最终结果六、实验总结在第前两次实验的基础上进行了SOPC设计,感觉实验的难点并不完全类似于单片机的学习,在于以往觉得复杂的编程上,更重要的是SOPC系统硬件设计流程,不管是添加相应得UART引脚,还是改变开发板上的串口连接线,每一个步骤都要我们熟悉才能更好的完成实验设计。

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功