sopc实验报告.docx
《sopc实验报告.docx》由会员分享,可在线阅读,更多相关《sopc实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
sopc实验报告
武汉工业学院
数学与计算机学院
SOPC技术实验报告
姓名:
班级:
学号:
任课教师:
实验1、HelloWorld实验
1、1实验目的
学习基于NiosII软核处理器的设计流程
1、2实验环境
PC机、QuartusII10.0、NiosIIIDE10.0、开发板DE2-115
1、3实验内容
按照书上介绍的方法和流程,完成HelloWorld实验,包括NiosII软核处理器系统的产生、编译、综合、NiosIIIDE工程创建、C语言源文件的编辑及编译、配置目标FPGA器件、下载观察实验结果
1、4实验步骤
之前选定的是八段电子管的实验,因为难度过大,改为了实验helloworld
Stept1、启动QuartusII10.0,如图1-1所示
图1-1
Stept2、建立工作库目标文件夹以便设计工程项目的存储
(1)单击File/NewProjectWizard,弹出“工程设置”对话框,新建工程如图1-2所示
图1-2
第1行的E:
/hello表示工程所在的工作库文件夹,第2行表示工程的工程名,此工程名可以去取任何其它的名,也可以用顶层文件的实体名作为工程名;第3行表示当前工程顶层文件的实体名,此处为hello,也可单击对话框右侧的“…”选择输入
(2)加入设计文件
单击Next按钮,在弹出对话框中单击File栏中的“…”,此处不需要添加设计文件,所以此处只需要单击Next按钮即可,如图1-3所示
图1-3
(3)选择目标芯片
这时弹出选择目标芯片的窗口,首先在Family栏选择目标芯片系列,在此选择Cyclone系列,选择此系列的具体芯片EP4CE115F29C7,如图1-4所示
图1-4
(4)选择仿真器和综合器。
单击图1-4中Next按钮,可从弹出的窗口中选择仿真器和综合器类型,如果都选None,表示选QuartusII中自带的仿真器和综合器
(5)单击Next按钮后进入下一步。
弹出“工程设置统计”窗口,如图1-5所示
图1-5
(6)结束设置
最后单击Finish按钮,即表示已设定好此工程,并出现如图1-6所示界面
图1-6
(7)配置没有用的的引脚
在图1-6所示界面下选择Assignments-Device,出现界面后单击DeviceandPinsOptions,出现如图1-7所示,选项unusedpins为Asinputtri-stated.如图1-7所示,再单击OK
图1-7
Stept3、创建NiosII软核处理器系统
(1)选择Tools—SopcBuilder后,SopcBuilde弹出对话框,填入SystemName,如nios2_small,HDLLanguage选择VHDL,最后单击OK,如图1-8所示
图1-8
(2)选择Target为CyloneIVE,ClockFrequency为50MHZ,如图1-9所示
图1-9
(3)配置NiosII软核处理器系统
在图1-9所示的NiosII软核处理器系统配置窗口的“SystemContents”选项卡中,双击左侧Processors下的NiosIIProcessor,弹出CoreNiosII配置选项卡,如图1-10所示
图1-10
NiosII软核处理器有3中类型:
经济型内核“NiosII/e”、标准型内核“NiosII/s”和快速型内核“NiosII/f”。
如图1-10所示,不同类型的处理器内核具有不同的功能和技术指标,当然在获得强功能和高技术指标的同时也需要付出较多的逻辑资源,同时使用过程也变得复杂。
这里鉴于测试HelloWorld实验比较简单,系统工作速度不需要很高,因此选择经济型内核“NiosII/e”。
此时复位矢量“ResetVector”和异常矢量“ExceptionVector”无效,必须在指向的存储器及地址在完成存储器配置之后才能设置。
配置一个最简单的NiosII软核处理器还需要设置“JTAGDebugModule”选项卡的内容,如图1-11所示,在经济型内核“NiosII/e”的情况下,处理器只支持“Level1”级的JTAG调试模块。
其它选项可以不做任何处理即可。
图1-11
(4)单击Finish,完成cpu_0的配置,回到如图1-12所示的界面,此时系统中已经具有了处理器cpu_0
图1-12
(5)配置存储器
在NiosII软核处理器系统配置窗口的“SystemContents”选项卡中,有菜单“MemoriesandMemoryControllers”中双击On-Chip下的On-Chip-Memory(RAMorROM)可以打开在片存储器配置对话框,在存储器容量“Totalmemorysizees”文本框中输入32,单位选择“Kbytes”如图1-13所示
图1-13
(6)单击Finish按钮,对Onchip-memory2_0右击Rename进行重命名为onchip-memory,如图1-14所示
图1-14
(7)在NiosII软核处理器系统配置窗口的“SystemContents”选项卡中,有菜单“InterfaceProtocols下Serial中双击JTAGUART,如图1-15所示,再单击Finish即可。
图1-15
(8)回到NiosII软核处理器系统配置窗口,此时JTAG_UART已在系统中,对jtag_uart_0进行重命名为jtag_uart,如图1-16所示
图1-16
Stept4、产生NiosII软核处理器系统
(1)双击图1-16中cpu_0配置产生NiosII软核处理器的复位矢量“ResetVector”和异常矢量“ExceptionVector”均为onchip_memory,之后单击Finish,如图1-17所示
图1-17
(2)在NiosII软核处理器配置窗口中,由菜单“System-Auto-AssignBaseaddresses”自动排列NiosII软核处理器系统各个部分的地址,由菜单“System-Auto-AssignIRQs”自动排列NiosII软核处理器系统各个部分的中断。
完成后,单击Generate,出现如图1-18所示,单击Save
图1-18
(3)这个产生过程需要一段时间,请稍等,产生过程会出现一系列相关信息,当出现“Systemgenerationwassuccessful”时,表示这个产生过程完成。
如图1-19所示
图1-19
(4)单击Exit后回到Quartus窗口,单击File-New下BlockDiagram/SchematicFile,出现如图1-20界面
图1-20
(5)单击图1-20所示的OK,回到Quartus窗口,双击空白处,在Project下单击所设计nios2_small,如图1-21及1-22所示
图1-21
图1-22
(6)单击OK,把这个电路符号放入原理图编辑窗口,保存为hello.bdf,编译,进行引脚配置,再次编译,引脚配置如图1-23所示
图1-22
Stept5、创建NiosIIIDE环境下的应用工程
(1)启动NiosIIIDE10.0,如图1-23所示的C语言开发窗口“NiosIIC/C++”,利用这个环境进行C语言程序的编辑、编译和调试。
图1-23
(2)由NiosIIC/C++菜单File-New-NiosIIC/C++Application打开新工程设置窗口,选中HelloWorld测试程序,如图1-24所示
图1-24
(3)在SelectTargetHardware中选择SOPCBuildSystemPTFFile,找到所建立的HelloWorld软核处理器,如图1-25所示
图1-25
(4)单击Finish,HelloWorld测试程序hello_world.c就在窗口中,如图1-26所示
图1-26
(5)在左侧“NiosIIC/C++Projects”栏中选择“hello_world_0”条目中的“SystemLibraryPrperties”命令打开如图1-27所示的应用系统库特性设置窗口,对“LinkerScript”选择栏的相关内容进行修改,如图1-27所示使Useauto-generatedlinkerscrpt的内容为onchip_memory,单击OK
图1-27
(6)在C语言开发窗口中,有菜单“Project-BuildProject”对hello_world.c进行编译,编译过程需要一段时间,随着工作的进行,在console栏目中将显示编译信息,结果如图1-28所示
图1-28
Stept6、在目标板上运行程序
(1)将开发板连接好,在QuartusII开发窗口中,由菜单“Tools-Programmer”可以打开编程/配置窗口,将NiosII软核处理器系统配置到目标FPGA芯片中,DE2-115采用USB-Blaster接口下载线,模式为JTAG,如图1-29所示,然后单击Start完成下载
图1-29
(2)完成目标芯片的配置后,回到C语言开发窗口“NiosIIC/C++”首先由菜单“Run-Run”打开如图1-30所示的运行设置窗口
图1-30
(3)双击左侧的NiosIIHardware,进行配置,在“TargetConnection”选项中将“JTAGcable”设置为“USB-Blaster”,将“JTAGdevice”设置为如图1-31所示,其他设计默认即可
图1-31
(4)单击Apply,在单击Run,回到C语言编辑窗口,此时将C语言程序代码下载到目标电路板上,下载完成后,出现如图1-32所示“HellofromNiosII!
”的字样,至此HelloWorld实验已经完成
图1-32
实验总结:
首先要感谢学校,学院给我提供了这次宝贵的机会,让我充分锻炼了实际操作能力,把理论和实践联系到了一起,取得了巨大的收获。
同时也要感谢学院提供了良好的设计条件,使我能在规定的时间内保质保量的完成了这次设计和答辩。
本课题在设计和调试的过程中都得刘昌华老师的悉心指导,并为我答疑解惑。
在此对帮助我的同学和老师表示我深深的谢意。
感谢学校为我们提供环境,让我们有良好的学习环境,最后献上我真诚的谢意。
在编写程序的过程中,我不仅得到了同学们的热情帮助,还有老师们的大力支持,认真阅读书籍,网上查询,我的能力得到了提高,同时养成了科学、严谨的学习作风和生活习
通过这次实验,通过这学习,我学会了QuartusII,SOPCBuider和NiosIIDE2的使用,并通过这些软件可以进行简单的实验操作,强化了我的动手能力,并通过这几次实验更加了解SOPC的设计与应用。
在实验中,遇到了各种各样的问题,首先是自己进行检查,查不出来再由老师同学进行检查和讲解,在解决问题的同时,也加强了解决问题的能力。
向老师提的问题:
引脚无法锁定
后经仔细实验后得到解决。