NIOS II 和QUARTUS II 90建立一个工程示例.docx
- 文档编号:6361141
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:9
- 大小:22.51KB
NIOS II 和QUARTUS II 90建立一个工程示例.docx
《NIOS II 和QUARTUS II 90建立一个工程示例.docx》由会员分享,可在线阅读,更多相关《NIOS II 和QUARTUS II 90建立一个工程示例.docx(9页珍藏版)》请在冰豆网上搜索。
NIOSII和QUARTUSII90建立一个工程示例
∙
NIOSII和QUARTUSII9.0建立一个工程示例
安装设计文件
在继续之前,您必须安装QuartusII软件和NiosII嵌入式设计套件。
分析系统要求
本部分介绍的教程示例设计的系统要求。
设计的目标如下:
有关这些和其他组件,完整详细信息请参阅___<
启动QuartusII软件并新建设计项目
在设计之前,应该建立工作目录。
每个设计都是一项工程,一般都单独建一个工作目录。
在此设置的工作目录为E:
\sopc_project\led
1.启动QuartusII软件。
在Windows计算机上,单击<开始>,指向<程序>,Altera,QuartusII9.0,然后单击QuartusII9.0。
2.启动NewProjectWizard
选择File→NewProjectWizard,弹出如图1所示对话框。
单击该对话框最上一栏右侧的按钮“…”,设置当前工作目录。
在第二栏设置当前工程名字,一般将顶层文件的名字作为工程名,例如工程名为sopc_led。
第三栏是顶层文件的实体名。
3.把设计文件添加到工程中
单击Next按钮,弹出AddFile对话框,如图2所示。
在此可将有关的文件加入到工程中,选择默认即可。
4.选择目标器件
单击Next按钮,出现选择目标器件对话框,如图3所示。
在Family选项中选择CycloneII器件系列,并在Targetdevice中选择第二项
在可选的设备列表中指定目标器件。
可以通过右边的Filters“过滤”选择。
在此选择EP2C35F484C8器件。
用户可以根据自己开发板的情况进行不同的设置。
5.选择综合器和仿真器
单击Next按钮,则弹出选择仿真器和综合器的对话框EDAToolSettings,如图4所示。
如果选择默认的None,则表示选择QuartusII自带的仿真器和综合器。
也可以选择其他第三方综合器和仿真器等专业EDA工具。
(5)、结束设置
单击Next按钮,出现工程设置信息显示画面,如图5所示,对前面设置情况进行了汇总。
点击Finish按钮,即完成了当前工程的创建。
在工程管理窗口中出现当前工程的层次结构显示,如图6所示。
创建一个新的SOPCBuilder系统
您可以使用SOPCBuilder来生成NiosII处理器的系统,添加所需的组件,并配置它们如何连接在一起。
请执行以下步骤来创建一个新的SOPCBuilder系统:
1.在QuartusII软件中的工具菜单上单击SOPCBuilder。
SOPCBuilder将启动并显示创建新的系统对话框。
2.键入std_2c35作为该系统的名称。
3.选择Verilog或VHDL作为目标硬件描述语言。
以后当您生成的系统,SOPCBuilder将输出中您选择的语言的设计文件。
4.单击确定。
SOPCBuilderGUI将出现,显示系统目录选项卡。
如下图:
SOPCBuilder图形用户界面
使用SOPCBuilder创建NiosII系统模块
可以使用SOPCBuilder来定义硬件特性的NiosII系统,例如,哪些NiosII核心要使用,以及哪些组件,包括在系统中。
SOPCBuilder并不定义软件行为,如在内存中存储的指令或发送stderr字符流的位置在哪里。
在本节中,您将执行以下步骤:
1.指定目标FPGA和时钟设置。
2.添加NiosIICPU、内存和其他组件。
3.指定基址和中断请求(IRQ)的优先事项。
4.生成SOPCBuilder系统。
SOPCBuilder设计过程不需要是线性的。
在本教程中的设计步骤为新用户了解的最简单的顺序显示。
但是,您可以按不同的顺序来执行SOPCBuilder设计步骤。
指定目标FPGA和时钟设置
系统内容选项卡的目标和时钟设置部分指定系统中的SOPCBuilder系统关系到其他设备。
请执行以下步骤:
1.选择匹配您的目标的AlteraFPGA的设备系列。
在这里选择器件系列DeviceFamily是cycloneII。
2.系统的工作的外部时钟频率改为100Mhz(双击它即可修改)。
添加NiosIICPUCore
选择SOPCBuilder组件选择栏中的ComponentLibrary→NiosIIProcessor,双击或者单击下面的“ADD”,打开添加NiosIIProcessor对话框,如图10所示。
这里给我们提供了三种类型:
NiosII/e占用资源最少600-800LEs,功能也最简单,速度最慢。
NiosII/s占资源比前者多一些,功能也多了,速度也要快一些。
NiosII/f占资源最多,功能也最多,速度最快。
选择的时候要根据你的需求和你的芯片资源来决定。
在这里,我选择NiosII/f,功能和速度都可以得到满足。
下面的:
ResetVector是复位后启动时的Memory类型和偏移量,
ExceptionVector是异常情况时的Memory类型和偏移量。
现在还不能配置,需要SDRAM和FLASH设置好以后才能修改这里,这两个地方很重要。
点击Next,如下11所示,将Datamaster→DataCache处选择为None,也就是关闭DataCache。
接下来连续点击Next,一直到如图12为止。
这是设置JTAGDebugModule,即JTAG调试时所用到的功能模块。
功能越多,需要的资源越多。
这里我们选择Level1即可,不需要过多其他的功能。
点击Finish,结束NiosIIProcessor的建立后,如图13所示。
添加SDRAM模块
选择SOPCBuilder组件选择栏中的systemcontent→memoriesandmemorycontrollers→SDRAM→SDRAMcontroller,双击或者单击下面的“ADD”,打开SDRAMcontroller的对话框。
如图14所示。
在Presets中选择第一项Custom。
在datawidth中选择16.在Architecture中的chipselect:
2,bank:
4。
在Addresswidths中的row:
13,column:
9。
如图15所示。
点击Next,点击Finish,完成SDRAM控制器的设置。
在这里我们用的SDRAM是两片HY57V561620。
添加EPCS控制器
选择SOPCBuilder组件选择栏中的systemcontent→memoriesandmemorycontrollers→Flash→EPCSserialFlash。
双击或者单击下面的“ADD”,打开EPCSserialflashcontroller的对话框。
如图16所示。
直接点击Finish完成添加。
添加JTAGUART
选择SOPCBuilder组件选择栏中的systemcontent→Interfaceprotocols→serial→JTAGUART。
双击或者单击下面的“ADD”,打开JTAGUART的对话框。
如图18所示。
直接点击Next→Finish完成。
添加systenID模块
选择SOPCBuilder组件选择栏中的systemcontent→peripherals→DebugandperformancesystemIDperipheral。
双击或者单击下面的“ADD”,打开systemIDperipheral的对话框。
如图17所示。
点击Finish,完成SystemID的建立。
添加PIO模块
选择SOPCBuilder组件选择栏中的systemcontent→peripherals→microcontrollerperipherals→PIO。
双击或者单击下面的“ADD”,打开PIO的对话框,配置成4位输出。
如图19所示。
点击Next→Finish完成。
到此为止,基本的NIOS系统模块就建立完成了,如图20所示。
如上图所示,我们可以把各个模块的名称的后面的_0去掉,单击要修改的名字ctrl+r或右键选Rename,输入新名字即可。
如21图所示.
指定基址和中断请求(IRQ)的优先事项。
我们需要对FLASH地址进行锁定,复位重启的地址我们锁定为0x00000000,双击cfi_flash_controller的base地址修改,修改完成后再点击它前面的小锁,使其锁住。
表示地址已锁定,如图23所示。
接下来是地址自动分配操作,点击SYSTEM->Auto-assignBasicAddresses,如图24所示。
接下来是中断的自动分配,和地址自动分配一样,SYSTEM->Auto-assignIRQs,如图25所示。
也可以手动分配。
接下来我们需要对cpu进行设置,双击cpu,ResetVector处的Memeory选择cfi_flash_controller,ExceptioniVector选择sdram,其他不变,如图22所示.
点击Finish,完成cpu设置。
生成SOPCBuilder系统
生成NiosII系统,单击systemGeneration标签,在options下进行如图26所示的设置。
点击Generate。
开始生成NiosII系统。
需要等待一会儿。
知道出现info:
systemgenerationwassuccessful,如图27所示。
表示已经编译好,点击Exit,回到了Quartus界面。
集成NiosII系统到QuartusII项目
在本节中,您执行以下步骤来完成的硬件设计:
■实例中,QuartusIISOPCBuilder系统模块化项目。
■分配FPGA针脚。
■编译QuartusII项目。
■验证时间。
配置工程
我们要对工程配置一下了,在左侧边框栏右键点击,如图47所示。
点击setting后,如图48所示,点击DeviceandPinOptions。
点击后如图49所示,点击Configuration。
点击后,将useconfigurationdevice改为EPCS16,如图50所示。
实例化SOPCBuilder系统模块QuartusII项目中
首先创建一个顶层文件,在QuartusII窗口中选择File→New,打开如图28所示的窗口,选择blockDiagram/schematicFile,即建立原理图文件。
点击File→saveAs…保存为sopc_led.bdf,如图29所示。
在sopc_led.bdf中的空白处双击,即可弹出symbol窗口。
选择project→std_2c35,如图30所示。
点击OK,将系统模块添加到了顶层模块中。
如图31所示。
建立锁相环PLL模块。
接下来的工作我们需要建立一个锁相环,对时钟进行倍频,我们板子上是50MHz的有源晶振,我们要将其倍频到100MHz满足我们前面所设定的NOIS软核的时钟,还需要为SDRAM提供100MHz的时钟。
下面我们就开始锁相环PLL模块。
在sopc_led.bdf的空白处双击鼠标,点击megawizardplug-inmanager…如图32所示。
出现如图33点击Next
选中IO下的ALTPLL,将锁相环命名为PLL,如图34所示。
点击下一步,将General的速度设置为8,输入时钟为50Mhz,如图35所示。
设置好以后,点击Next,将下图中选中的地方去掉后。
如图36所示。
连续点击Next,直到出现C0输出频率的设置,将倍频设置为2,输出100Mhz时钟,如图37所示。
设置好以后点击Next,选中USEthisclock,使用这部分给SDRAM提供时钟,时钟频率为100Mhz,偏移量为-75deg。
如图38所示。
设置好以后,连续点击Next,中间没有需要修改的,最后点击Finish,完成PLL的建立,然后点击OK,回到Quartus界面,将我们建好的PLL放到空白处。
接下来的工作就是将PLL连接到NIOS软核上。
如图39所示。
分配FPGA的针脚
PLL和std_3c25上点击右键后点击GeneratePinsforsymbolports,这一步作用就是生成管脚,通过命名以后分配真实的引脚。
如图40所示。
生成引脚后,如图41所示。
修改引脚的名称,使其具有意义,与脚本文件中的引脚命名相对应,修改完成后如图42所示。
脚本文件分配管脚
先将脚本文件复制到工程文件下面如图43所示。
我们将会提供给大家写好的TCL文件,到时候大家根据我给大家的TCL文件,将相应的管脚命名即可。
修改好以后,按图44所示操作。
点击以后,出现45图,我们选择第一个EP2C35F484C8.tcl。
点击RUN。
出现如图46图,说明脚本文件运行成功了。
编译QuartusII项目
点击StartCompilation如图52所示的按钮,开始编译。
接下来就开始了又一个漫长的编译过程了,大家又可以休息一会了。
经过了漫长的编译过程,如果没有问题,编译成功后将出现如图52所示的对话框。
点击确定,编译过程全部结束。
我们可以通过编译报告来看看我们用了多少资源,如图53所示。
下载到目标FPGA的硬件设计
1.打开编程窗口和配置文件
在QuartusII中直接点击Programmer或选择主菜单Tools—>Programmer,打开编程窗口,如下图所示,在Mode下拉列表框中有4种编程模式可以选择:
JTAG、ActiveSerial、PassiveSerial和In-Socket。
为了直接对FPGA进行配置,选择JTAG模式,并选中下载文件右侧的第一个小方框Program/Configure,注意核对下载文件的路径与文件名。
如果此文件没有出现或者有错,可以单击左侧AddFile按钮,手动配置所需下载的文件是sopc_led.sof。
2.设置编程器
在配置好下载文件sopc_led.sof后,要进行编程器设置。
如果是首次使用Programmer进行连接下载,则须将试验系统与USB通信电缆连接好并打开电源。
这时,系统提示用户安装USB-Blaster的驱动程序,用户须指定驱动程序存放的路径,然后进行安装。
安装成功后,在编程窗口中HardwareSetup按钮的右边显示出USB-Blaster编程方式。
以后再打开编程窗口时,只要USB电缆连接好,电源打开,系统就会自动设置成USB-Blaster编程方式。
3.下载配置文件
单击编程窗口左侧的Start按钮,编程器开始把配置数据下载到FPGA中。
这时,在下载进度条Progress段会显示下载数据的百分比,如下图。
当下载完成时,会在信息窗口出现下载成功的消息。
使用NiosIIIDE的软件开发
创建新的NiosIIC/c++应用程序项目
1.启动IDENiosII。
在Windows计算机上,单击开始,指向程序,Altera、NiosIIEDS9.0,然后单击NiosIIIDE9.0。
2.在NiosIIIDE中,选择FileàNewàProject,开启新项目对话框,选择AlteraNiosIIàC/C++Application,如下图:
3.单击Next按钮,进行新项目的设定。
在这个步骤中提示用户指定新项目名、项目工作路径、目标硬件及新项目模板。
在此选择项目模板为HelloWorld,设定项目名为Hello_led,设定工作路径为D:
\sopc_project\led\software,单击SOPCBuilderSystem右边的Browse按钮,选择前面生成的ptf文件,因为NiosIIIDE需要从这个文件中获取该系统的相关信息。
如下图所示:
4.然后单击Next按钮,进入下一步,为项目创建系统库。
系统库是设备驱动程序集,提供对目标硬件的访问,如下图所示:
5.这样,整个新项目创建完成了,单击Finish按钮,出现下图:
修改源程序文件
修改程序的文件名。
如下图所示,选中Hello_World,右键选择Rename。
键入hello_led.c。
修改程序,双击helllo_led.c。
编辑它,如图所示:
编译项目
1.右键单击hello_led,然后单击SystemLibraryProperties。
如下图:
2.单击SystemLibrary。
3.更改以下设置以减少编译的可执行文件的大小。
如下图:
a.开启程序从不退出。
b.关闭支持c++。
c.关闭清洁退出(刷新缓冲区)。
d.打开小C库。
4.单击确定以关闭属性对话框并返回到IDE工作台。
5.单击ProjectàBuildAll或按ctrl+B键,对项目进行编译。
如下图:
编译进度:
编译完成:
运行程序
在项目编译调试之后,就可以运行程序了。
运行方式有:
NiosIIHardware、NiosIIInstructionSetSimulator,分别是目标板运行、指令集仿真器运行。
运行程序的方法可以有如下几种:
选择RunàRunAs,这种方式比较简单、快捷。
选择RunàRun…,此运行方式可进行一些具体的设置。
使用工具栏中运行图标也可以运行程序。
在此,选择RunàRun…,出现如下图所示的窗口。
根据需求选择采用的目标连接,在此选择NiosIIHardware,然后右键单击New按钮,添加要运行的项目,如下图所示。
如上图所示的右侧包含5个标签,可以根据要求进行相关的设定。
其中Main标签显示运行工程的名称,最下方复选框ValidateNiosIIsystemIDbeforesoftwaredownload为选择在软件下载前是否验证NiosII系统ID,默认情况为选中,即验证系统ID;TargetConnection标签用于建立目标连接,选择JTAG电缆、JTAG设备及NiosII终端通信设备;Debugger标签用于调试配置。
设置完成后,单击Run按钮,则在控制台上显示运行结果“Hello_LED!
”,如下图所示,同时在开发板上显示跑马灯,运行成功。
当然,如果用户没有开发板,则可以采用指令集仿真运行。
使用指令集仿真运行,可以选择RunàRunAsàNiosIIISS运行工程,同样出现“Hello_LED”运行结果如下图所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NIOS II 和QUARTUS 90建立一个工程示例 QUARTUS 90 建立 一个 工程 示例